@athenaintel/react 0.57.1 → 0.59.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 (811) hide show
  1. package/README.md +778 -9
  2. package/dist/agent-runtime/src/addressed-agents.cjs +16 -0
  3. package/dist/agent-runtime/src/addressed-agents.cjs.map +1 -0
  4. package/dist/agent-runtime/src/addressed-agents.d.ts +30 -0
  5. package/dist/agent-runtime/src/addressed-agents.js +16 -0
  6. package/dist/agent-runtime/src/addressed-agents.js.map +1 -0
  7. package/dist/agent-runtime/src/answer-label.cjs +4 -3
  8. package/dist/agent-runtime/src/answer-label.cjs.map +1 -1
  9. package/dist/agent-runtime/src/answer-label.d.ts +13 -6
  10. package/dist/agent-runtime/src/answer-label.js +4 -3
  11. package/dist/agent-runtime/src/answer-label.js.map +1 -1
  12. package/dist/agent-runtime/src/chat-outbox-attachments.cjs.map +1 -1
  13. package/dist/agent-runtime/src/chat-outbox-attachments.d.ts +1 -1
  14. package/dist/agent-runtime/src/chat-outbox-attachments.js.map +1 -1
  15. package/dist/agent-runtime/src/chat-outbox-entry.cjs +101 -0
  16. package/dist/agent-runtime/src/chat-outbox-entry.cjs.map +1 -0
  17. package/dist/agent-runtime/src/chat-outbox-entry.d.ts +99 -0
  18. package/dist/agent-runtime/src/chat-outbox-entry.js +101 -0
  19. package/dist/agent-runtime/src/chat-outbox-entry.js.map +1 -0
  20. package/dist/agent-runtime/src/chat-outbox-legacy.cjs +252 -0
  21. package/dist/agent-runtime/src/chat-outbox-legacy.cjs.map +1 -0
  22. package/dist/agent-runtime/src/chat-outbox-legacy.d.ts +96 -0
  23. package/dist/agent-runtime/src/chat-outbox-legacy.js +252 -0
  24. package/dist/agent-runtime/src/chat-outbox-legacy.js.map +1 -0
  25. package/dist/agent-runtime/src/chat-outbox-policy.cjs +30 -0
  26. package/dist/agent-runtime/src/chat-outbox-policy.cjs.map +1 -0
  27. package/dist/agent-runtime/src/chat-outbox-policy.d.ts +42 -0
  28. package/dist/agent-runtime/src/chat-outbox-policy.js +30 -0
  29. package/dist/agent-runtime/src/chat-outbox-policy.js.map +1 -0
  30. package/dist/agent-runtime/src/chat-outbox-storage.cjs +306 -0
  31. package/dist/agent-runtime/src/chat-outbox-storage.cjs.map +1 -0
  32. package/dist/agent-runtime/src/chat-outbox-storage.d.ts +194 -0
  33. package/dist/agent-runtime/src/chat-outbox-storage.js +306 -0
  34. package/dist/agent-runtime/src/chat-outbox-storage.js.map +1 -0
  35. package/dist/agent-runtime/src/chat-outbox-thread.cjs +21 -94
  36. package/dist/agent-runtime/src/chat-outbox-thread.cjs.map +1 -1
  37. package/dist/agent-runtime/src/chat-outbox-thread.d.ts +22 -18
  38. package/dist/agent-runtime/src/chat-outbox-thread.js +21 -94
  39. package/dist/agent-runtime/src/chat-outbox-thread.js.map +1 -1
  40. package/dist/agent-runtime/src/chat-outbox.cjs +492 -547
  41. package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
  42. package/dist/agent-runtime/src/chat-outbox.d.ts +110 -142
  43. package/dist/agent-runtime/src/chat-outbox.js +492 -547
  44. package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
  45. package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
  46. package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
  47. package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
  48. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
  49. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
  50. package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
  51. package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
  52. package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
  53. package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
  54. package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
  55. package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
  56. package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
  57. package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
  58. package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
  59. package/dist/agent-runtime/src/edit-command.d.ts +1 -1
  60. package/dist/agent-runtime/src/edit-command.js.map +1 -1
  61. package/dist/agent-runtime/src/errors.cjs +1 -0
  62. package/dist/agent-runtime/src/errors.cjs.map +1 -1
  63. package/dist/agent-runtime/src/errors.js +1 -0
  64. package/dist/agent-runtime/src/errors.js.map +1 -1
  65. package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
  66. package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
  67. package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
  68. package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
  69. package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
  70. package/dist/agent-runtime/src/index.d.ts +14 -8
  71. package/dist/agent-runtime/src/lane-follow.cjs +289 -0
  72. package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
  73. package/dist/agent-runtime/src/lane-follow.js +289 -0
  74. package/dist/agent-runtime/src/lane-follow.js.map +1 -0
  75. package/dist/agent-runtime/src/lane-images.cjs +387 -0
  76. package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
  77. package/dist/agent-runtime/src/lane-images.js +387 -0
  78. package/dist/agent-runtime/src/lane-images.js.map +1 -0
  79. package/dist/agent-runtime/src/message-window.js +1 -1
  80. package/dist/agent-runtime/src/messages.cjs +19 -1
  81. package/dist/agent-runtime/src/messages.cjs.map +1 -1
  82. package/dist/agent-runtime/src/messages.d.ts +8 -0
  83. package/dist/agent-runtime/src/messages.js +21 -3
  84. package/dist/agent-runtime/src/messages.js.map +1 -1
  85. package/dist/agent-runtime/src/named-agents.cjs +301 -0
  86. package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
  87. package/dist/agent-runtime/src/named-agents.d.ts +246 -0
  88. package/dist/agent-runtime/src/named-agents.js +301 -0
  89. package/dist/agent-runtime/src/named-agents.js.map +1 -0
  90. package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
  91. package/dist/agent-runtime/src/offline-status.d.ts +66 -2
  92. package/dist/agent-runtime/src/offline-status.js.map +1 -1
  93. package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
  94. package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
  95. package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
  96. package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
  97. package/dist/agent-runtime/src/queue.cjs +2 -2
  98. package/dist/agent-runtime/src/queue.cjs.map +1 -1
  99. package/dist/agent-runtime/src/queue.d.ts +20 -25
  100. package/dist/agent-runtime/src/queue.js +2 -2
  101. package/dist/agent-runtime/src/queue.js.map +1 -1
  102. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
  103. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
  104. package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
  105. package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
  106. package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
  107. package/dist/agent-runtime/src/run-send.cjs +54 -0
  108. package/dist/agent-runtime/src/run-send.cjs.map +1 -0
  109. package/dist/agent-runtime/src/run-send.d.ts +51 -0
  110. package/dist/agent-runtime/src/run-send.js +54 -0
  111. package/dist/agent-runtime/src/run-send.js.map +1 -0
  112. package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
  113. package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
  114. package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
  115. package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
  116. package/dist/agent-runtime/src/runtime.d.ts +9 -5
  117. package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
  118. package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
  119. package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
  120. package/dist/agent-runtime/src/sealed-idb.js +64 -0
  121. package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
  122. package/dist/agent-runtime/src/send-recovery.cjs +90 -118
  123. package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
  124. package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
  125. package/dist/agent-runtime/src/send-recovery.js +90 -118
  126. package/dist/agent-runtime/src/send-recovery.js.map +1 -1
  127. package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
  128. package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
  129. package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
  130. package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
  131. package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
  132. package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
  133. package/dist/agent-runtime/src/statewire-state.cjs +4 -0
  134. package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
  135. package/dist/agent-runtime/src/statewire-state.js +4 -0
  136. package/dist/agent-runtime/src/statewire-state.js.map +1 -1
  137. package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
  138. package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
  139. package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
  140. package/dist/agent-runtime/src/statewire-transport.js +8 -2
  141. package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
  142. package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
  143. package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
  144. package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
  145. package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
  146. package/dist/agent-runtime/src/subagents.cjs +22 -29
  147. package/dist/agent-runtime/src/subagents.cjs.map +1 -1
  148. package/dist/agent-runtime/src/subagents.js +23 -30
  149. package/dist/agent-runtime/src/subagents.js.map +1 -1
  150. package/dist/agent-runtime/src/thread-extras.cjs +27 -19
  151. package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
  152. package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
  153. package/dist/agent-runtime/src/thread-extras.js +27 -19
  154. package/dist/agent-runtime/src/thread-extras.js.map +1 -1
  155. package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
  156. package/dist/agent-runtime/src/tool-metadata.cjs +12 -0
  157. package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
  158. package/dist/agent-runtime/src/tool-metadata.js +12 -0
  159. package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
  160. package/dist/agent-runtime/src/tool-names.cjs +21 -0
  161. package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
  162. package/dist/agent-runtime/src/tool-names.d.ts +8 -0
  163. package/dist/agent-runtime/src/tool-names.js +21 -0
  164. package/dist/agent-runtime/src/tool-names.js.map +1 -1
  165. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
  166. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
  167. package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
  168. package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
  169. package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
  170. package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
  171. package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
  172. package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
  173. package/dist/agent-runtime/src/typed-interrupts.js +48 -0
  174. package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
  175. package/dist/agent-runtime/src/types.d.ts +1 -1
  176. package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
  177. package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
  178. package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
  179. package/dist/agent-runtime/src/use-conversation-list.js +1 -0
  180. package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
  181. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
  182. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
  183. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
  184. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
  185. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
  186. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
  187. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
  188. package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
  189. package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
  190. package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
  191. package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
  192. package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
  193. package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
  194. package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
  195. package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
  196. package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
  197. package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
  198. package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
  199. package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
  200. package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
  201. package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
  202. package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
  203. package/dist/agent-runtime/src/work-in.d.ts +127 -0
  204. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
  205. package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
  206. package/dist/assets/AthenaAssetEmbed.js.map +1 -1
  207. package/dist/assets/asset-panel-store.cjs +13 -5
  208. package/dist/assets/asset-panel-store.cjs.map +1 -1
  209. package/dist/assets/asset-panel-store.d.ts +33 -2
  210. package/dist/assets/asset-panel-store.js +13 -5
  211. package/dist/assets/asset-panel-store.js.map +1 -1
  212. package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
  213. package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
  214. package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
  215. package/dist/auth/AthenaCredentialSourceContext.js +11 -0
  216. package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
  217. package/dist/auth/account-identity.cjs +13 -2
  218. package/dist/auth/account-identity.cjs.map +1 -1
  219. package/dist/auth/account-identity.d.ts +9 -0
  220. package/dist/auth/account-identity.js +13 -2
  221. package/dist/auth/account-identity.js.map +1 -1
  222. package/dist/auth/credential-source.cjs +20 -4
  223. package/dist/auth/credential-source.cjs.map +1 -1
  224. package/dist/auth/credential-source.d.ts +9 -0
  225. package/dist/auth/credential-source.js +20 -4
  226. package/dist/auth/credential-source.js.map +1 -1
  227. package/dist/catalog/chat-pickers.cjs +31 -0
  228. package/dist/catalog/chat-pickers.cjs.map +1 -1
  229. package/dist/catalog/chat-pickers.d.ts +17 -0
  230. package/dist/catalog/chat-pickers.js +33 -2
  231. package/dist/catalog/chat-pickers.js.map +1 -1
  232. package/dist/catalog/runtime-catalog.cjs +63 -3
  233. package/dist/catalog/runtime-catalog.cjs.map +1 -1
  234. package/dist/catalog/runtime-catalog.d.ts +63 -3
  235. package/dist/catalog/runtime-catalog.js +64 -4
  236. package/dist/catalog/runtime-catalog.js.map +1 -1
  237. package/dist/chat/AthenaChat.cjs +337 -99
  238. package/dist/chat/AthenaChat.cjs.map +1 -1
  239. package/dist/chat/AthenaChat.d.ts +80 -4
  240. package/dist/chat/AthenaChat.js +337 -99
  241. package/dist/chat/AthenaChat.js.map +1 -1
  242. package/dist/chat/StatewireApprovalCard.cjs +35 -5
  243. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  244. package/dist/chat/StatewireApprovalCard.d.ts +55 -2
  245. package/dist/chat/StatewireApprovalCard.js +37 -7
  246. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  247. package/dist/chat/StatewireQueuedMessages.cjs +17 -2
  248. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  249. package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
  250. package/dist/chat/StatewireQueuedMessages.js +18 -3
  251. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  252. package/dist/chat/chat-agent-mentions.cjs +70 -0
  253. package/dist/chat/chat-agent-mentions.cjs.map +1 -0
  254. package/dist/chat/chat-agent-mentions.d.ts +13 -0
  255. package/dist/chat/chat-agent-mentions.js +70 -0
  256. package/dist/chat/chat-agent-mentions.js.map +1 -0
  257. package/dist/chat/composer-actions.cjs +12 -0
  258. package/dist/chat/composer-actions.cjs.map +1 -0
  259. package/dist/chat/composer-actions.d.ts +22 -0
  260. package/dist/chat/composer-actions.js +12 -0
  261. package/dist/chat/composer-actions.js.map +1 -0
  262. package/dist/chat/follow-up-suggestions.cjs +185 -0
  263. package/dist/chat/follow-up-suggestions.cjs.map +1 -0
  264. package/dist/chat/follow-up-suggestions.d.ts +64 -0
  265. package/dist/chat/follow-up-suggestions.js +185 -0
  266. package/dist/chat/follow-up-suggestions.js.map +1 -0
  267. package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
  268. package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
  269. package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
  270. package/dist/chat/super-grouping/ToolTimeline.js +4 -3
  271. package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
  272. package/dist/chat/turn-changes.cjs +284 -0
  273. package/dist/chat/turn-changes.cjs.map +1 -0
  274. package/dist/chat/turn-changes.d.ts +130 -0
  275. package/dist/chat/turn-changes.js +284 -0
  276. package/dist/chat/turn-changes.js.map +1 -0
  277. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
  278. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
  279. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
  280. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
  281. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
  282. package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
  283. package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
  284. package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
  285. package/dist/chat/typed-interrupts/approval-cards.js +250 -0
  286. package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
  287. package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
  288. package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
  289. package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
  290. package/dist/chat/typed-interrupts/form-cards.js +289 -0
  291. package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
  292. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
  293. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
  294. package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
  295. package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
  296. package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
  297. package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
  298. package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
  299. package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
  300. package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
  301. package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
  302. package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
  303. package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
  304. package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
  305. package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
  306. package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
  307. package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
  308. package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
  309. package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
  310. package/dist/chat/typed-interrupts/request-file-card.js +159 -0
  311. package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
  312. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
  313. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
  314. package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
  315. package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
  316. package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
  317. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
  318. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
  319. package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
  320. package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
  321. package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
  322. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
  323. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
  324. package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
  325. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
  326. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
  327. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
  328. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
  329. package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
  330. package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
  331. package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
  332. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
  333. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
  334. package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
  335. package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
  336. package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
  337. package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
  338. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
  339. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
  340. package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
  341. package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
  342. package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
  343. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
  344. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
  345. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
  346. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
  347. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
  348. package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
  349. package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
  350. package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
  351. package/dist/chat-ui/composer/composer-named-agents.js +13 -0
  352. package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
  353. package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
  354. package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
  355. package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
  356. package/dist/chat-ui/composer/slash-command-menu.js +143 -0
  357. package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
  358. package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
  359. package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
  360. package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
  361. package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
  362. package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
  363. package/dist/chat-ui/composer/slash-commands.cjs +74 -0
  364. package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
  365. package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
  366. package/dist/chat-ui/composer/slash-commands.js +74 -0
  367. package/dist/chat-ui/composer/slash-commands.js.map +1 -0
  368. package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
  369. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  370. package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
  371. package/dist/chat-ui/composer/tiptap-composer.js +135 -9
  372. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  373. package/dist/chat-ui/index.cjs +3 -0
  374. package/dist/chat-ui/index.cjs.map +1 -1
  375. package/dist/chat-ui/index.d.ts +3 -2
  376. package/dist/chat-ui/index.js +3 -0
  377. package/dist/chat-ui/index.js.map +1 -1
  378. package/dist/chat-ui/mentions/mention-chip.cjs +1 -1
  379. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  380. package/dist/chat-ui/mentions/mention-chip.js +2 -2
  381. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  382. package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
  383. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
  384. package/dist/chat-ui/mentions/mention-extension.js +8 -1
  385. package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
  386. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
  387. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
  388. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
  389. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
  390. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +2 -0
  391. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
  392. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +3 -1
  393. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
  394. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
  395. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
  396. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
  397. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
  398. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +36 -0
  399. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
  400. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +42 -0
  401. package/dist/chat-ui/mentions/suggestions/data/api-client.js +36 -0
  402. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
  403. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +235 -19
  404. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
  405. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
  406. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +236 -20
  407. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
  408. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
  409. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
  410. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
  411. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
  412. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
  413. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
  414. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
  415. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
  416. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
  417. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
  418. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
  419. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
  420. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
  421. package/dist/chat-ui/statewire.d.ts +1 -1
  422. package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
  423. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
  424. package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
  425. package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
  426. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
  427. package/dist/collab/client.cjs +17 -5
  428. package/dist/collab/client.cjs.map +1 -1
  429. package/dist/collab/client.d.ts +22 -7
  430. package/dist/collab/client.js +17 -5
  431. package/dist/collab/client.js.map +1 -1
  432. package/dist/composer/ComposerAttachedReferences.cjs +119 -0
  433. package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
  434. package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
  435. package/dist/composer/ComposerAttachedReferences.js +119 -0
  436. package/dist/composer/ComposerAttachedReferences.js.map +1 -0
  437. package/dist/composer/ComposerNamedAgents.cjs +63 -0
  438. package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
  439. package/dist/composer/ComposerNamedAgents.d.ts +16 -0
  440. package/dist/composer/ComposerNamedAgents.js +63 -0
  441. package/dist/composer/ComposerNamedAgents.js.map +1 -0
  442. package/dist/composer/attached-references.cjs +159 -0
  443. package/dist/composer/attached-references.cjs.map +1 -0
  444. package/dist/composer/attached-references.d.ts +86 -0
  445. package/dist/composer/attached-references.js +159 -0
  446. package/dist/composer/attached-references.js.map +1 -0
  447. package/dist/composer/build-composed-message.cjs +14 -7
  448. package/dist/composer/build-composed-message.cjs.map +1 -1
  449. package/dist/composer/build-composed-message.d.ts +6 -1
  450. package/dist/composer/build-composed-message.js +14 -7
  451. package/dist/composer/build-composed-message.js.map +1 -1
  452. package/dist/composer/composer-handoff.cjs +6 -2
  453. package/dist/composer/composer-handoff.cjs.map +1 -1
  454. package/dist/composer/composer-handoff.d.ts +7 -1
  455. package/dist/composer/composer-handoff.js +6 -2
  456. package/dist/composer/composer-handoff.js.map +1 -1
  457. package/dist/composer/folder-upload.cjs +149 -0
  458. package/dist/composer/folder-upload.cjs.map +1 -0
  459. package/dist/composer/folder-upload.d.ts +79 -0
  460. package/dist/composer/folder-upload.js +149 -0
  461. package/dist/composer/folder-upload.js.map +1 -0
  462. package/dist/composer/index.d.ts +1 -1
  463. package/dist/composer/useAttachToChat.cjs +35 -0
  464. package/dist/composer/useAttachToChat.cjs.map +1 -0
  465. package/dist/composer/useAttachToChat.d.ts +54 -0
  466. package/dist/composer/useAttachToChat.js +35 -0
  467. package/dist/composer/useAttachToChat.js.map +1 -0
  468. package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
  469. package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
  470. package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
  471. package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
  472. package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
  473. package/dist/composer/useFileUpload.cjs +95 -7
  474. package/dist/composer/useFileUpload.cjs.map +1 -1
  475. package/dist/composer/useFileUpload.d.ts +21 -2
  476. package/dist/composer/useFileUpload.js +95 -7
  477. package/dist/composer/useFileUpload.js.map +1 -1
  478. package/dist/data/athena-api-error.cjs +125 -0
  479. package/dist/data/athena-api-error.cjs.map +1 -0
  480. package/dist/data/athena-api-error.d.ts +96 -0
  481. package/dist/data/athena-api-error.js +125 -0
  482. package/dist/data/athena-api-error.js.map +1 -0
  483. package/dist/data/athena-data-client.cjs +106 -0
  484. package/dist/data/athena-data-client.cjs.map +1 -0
  485. package/dist/data/athena-data-client.d.ts +74 -0
  486. package/dist/data/athena-data-client.js +106 -0
  487. package/dist/data/athena-data-client.js.map +1 -0
  488. package/dist/data/athena-member.cjs +93 -0
  489. package/dist/data/athena-member.cjs.map +1 -0
  490. package/dist/data/athena-member.d.ts +125 -0
  491. package/dist/data/athena-member.js +93 -0
  492. package/dist/data/athena-member.js.map +1 -0
  493. package/dist/data/athena-request.cjs +458 -0
  494. package/dist/data/athena-request.cjs.map +1 -0
  495. package/dist/data/athena-request.d.ts +120 -0
  496. package/dist/data/athena-request.js +458 -0
  497. package/dist/data/athena-request.js.map +1 -0
  498. package/dist/data/use-athena-fetch.cjs +14 -0
  499. package/dist/data/use-athena-fetch.cjs.map +1 -0
  500. package/dist/data/use-athena-fetch.d.ts +19 -0
  501. package/dist/data/use-athena-fetch.js +14 -0
  502. package/dist/data/use-athena-fetch.js.map +1 -0
  503. package/dist/data/use-athena-graphql.cjs +66 -0
  504. package/dist/data/use-athena-graphql.cjs.map +1 -0
  505. package/dist/data/use-athena-graphql.d.ts +56 -0
  506. package/dist/data/use-athena-graphql.js +66 -0
  507. package/dist/data/use-athena-graphql.js.map +1 -0
  508. package/dist/data/use-athena-rest.cjs +33 -0
  509. package/dist/data/use-athena-rest.cjs.map +1 -0
  510. package/dist/data/use-athena-rest.d.ts +21 -0
  511. package/dist/data/use-athena-rest.js +33 -0
  512. package/dist/data/use-athena-rest.js.map +1 -0
  513. package/dist/data/use-semantic-query.cjs +44 -0
  514. package/dist/data/use-semantic-query.cjs.map +1 -0
  515. package/dist/data/use-semantic-query.d.ts +92 -0
  516. package/dist/data/use-semantic-query.js +44 -0
  517. package/dist/data/use-semantic-query.js.map +1 -0
  518. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
  519. package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
  520. package/dist/diagnostics/athena-diagnostics.js.map +1 -1
  521. package/dist/diagnostics/errors.cjs +7 -0
  522. package/dist/diagnostics/errors.cjs.map +1 -1
  523. package/dist/diagnostics/errors.d.ts +7 -0
  524. package/dist/diagnostics/errors.js +7 -0
  525. package/dist/diagnostics/errors.js.map +1 -1
  526. package/dist/index.cjs +155 -11
  527. package/dist/index.cjs.map +1 -1
  528. package/dist/index.d.ts +72 -13
  529. package/dist/index.js +148 -4
  530. package/dist/index.js.map +1 -1
  531. package/dist/keryx-http/src/initial-sync.cjs +64 -16
  532. package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
  533. package/dist/keryx-http/src/initial-sync.d.ts +31 -1
  534. package/dist/keryx-http/src/initial-sync.js +64 -16
  535. package/dist/keryx-http/src/initial-sync.js.map +1 -1
  536. package/dist/keryx-http/src/own-awareness.cjs +20 -0
  537. package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
  538. package/dist/keryx-http/src/own-awareness.d.ts +50 -0
  539. package/dist/keryx-http/src/own-awareness.js +20 -0
  540. package/dist/keryx-http/src/own-awareness.js.map +1 -0
  541. package/dist/keryx-http/src/update-attributions.cjs +26 -1
  542. package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
  543. package/dist/keryx-http/src/update-attributions.d.ts +10 -1
  544. package/dist/keryx-http/src/update-attributions.js +26 -1
  545. package/dist/keryx-http/src/update-attributions.js.map +1 -1
  546. package/dist/offline/chat-outbox.cjs +262 -26
  547. package/dist/offline/chat-outbox.cjs.map +1 -1
  548. package/dist/offline/chat-outbox.d.ts +90 -12
  549. package/dist/offline/chat-outbox.js +263 -27
  550. package/dist/offline/chat-outbox.js.map +1 -1
  551. package/dist/provider/AthenaProvider.cjs +63 -19
  552. package/dist/provider/AthenaProvider.cjs.map +1 -1
  553. package/dist/provider/AthenaProvider.d.ts +24 -8
  554. package/dist/provider/AthenaProvider.js +66 -22
  555. package/dist/provider/AthenaProvider.js.map +1 -1
  556. package/dist/react/package.json.cjs +1 -1
  557. package/dist/react/package.json.js +1 -1
  558. package/dist/references/src/anchors/types.cjs +5 -0
  559. package/dist/references/src/anchors/types.cjs.map +1 -1
  560. package/dist/references/src/anchors/types.js +5 -0
  561. package/dist/references/src/anchors/types.js.map +1 -1
  562. package/dist/references/src/attachable.cjs +149 -0
  563. package/dist/references/src/attachable.cjs.map +1 -0
  564. package/dist/references/src/attachable.d.ts +87 -0
  565. package/dist/references/src/attachable.js +149 -0
  566. package/dist/references/src/attachable.js.map +1 -0
  567. package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
  568. package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
  569. package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
  570. package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
  571. package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
  572. package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
  573. package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
  574. package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
  575. package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
  576. package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
  577. package/dist/runtime/statewire-plan-mode.cjs +71 -0
  578. package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
  579. package/dist/runtime/statewire-plan-mode.d.ts +88 -0
  580. package/dist/runtime/statewire-plan-mode.js +71 -0
  581. package/dist/runtime/statewire-plan-mode.js.map +1 -0
  582. package/dist/runtime/statewire-run-config.cjs +18 -1
  583. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  584. package/dist/runtime/statewire-run-config.d.ts +20 -0
  585. package/dist/runtime/statewire-run-config.js +18 -1
  586. package/dist/runtime/statewire-run-config.js.map +1 -1
  587. package/dist/runtime/statewire-session-key.cjs +11 -5
  588. package/dist/runtime/statewire-session-key.cjs.map +1 -1
  589. package/dist/runtime/statewire-session-key.d.ts +22 -10
  590. package/dist/runtime/statewire-session-key.js +11 -5
  591. package/dist/runtime/statewire-session-key.js.map +1 -1
  592. package/dist/runtime/useAthenaStatewireRuntime.cjs +65 -8
  593. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  594. package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
  595. package/dist/runtime/useAthenaStatewireRuntime.js +67 -10
  596. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  597. package/dist/search/useAthenaAssets.cjs +394 -0
  598. package/dist/search/useAthenaAssets.cjs.map +1 -0
  599. package/dist/search/useAthenaAssets.d.ts +186 -0
  600. package/dist/search/useAthenaAssets.js +394 -0
  601. package/dist/search/useAthenaAssets.js.map +1 -0
  602. package/dist/sheet-range/index.cjs +4 -0
  603. package/dist/sheet-range/index.cjs.map +1 -1
  604. package/dist/sheet-range/index.d.ts +4 -2
  605. package/dist/sheet-range/index.js +4 -0
  606. package/dist/sheet-range/index.js.map +1 -1
  607. package/dist/sheet-range/query-range.cjs +102 -0
  608. package/dist/sheet-range/query-range.cjs.map +1 -0
  609. package/dist/sheet-range/query-range.d.ts +46 -0
  610. package/dist/sheet-range/query-range.js +102 -0
  611. package/dist/sheet-range/query-range.js.map +1 -0
  612. package/dist/styles.css +1 -1
  613. package/dist/subagents/index.cjs +49 -0
  614. package/dist/subagents/index.cjs.map +1 -0
  615. package/dist/subagents/index.d.ts +16 -0
  616. package/dist/subagents/index.js +49 -0
  617. package/dist/subagents/index.js.map +1 -0
  618. package/dist/subagents/lane-follow.cjs +19 -0
  619. package/dist/subagents/lane-follow.cjs.map +1 -0
  620. package/dist/subagents/lane-follow.d.ts +9 -0
  621. package/dist/subagents/lane-follow.js +19 -0
  622. package/dist/subagents/lane-follow.js.map +1 -0
  623. package/dist/subagents/lane-model.cjs +178 -0
  624. package/dist/subagents/lane-model.cjs.map +1 -0
  625. package/dist/subagents/lane-model.d.ts +140 -0
  626. package/dist/subagents/lane-model.js +178 -0
  627. package/dist/subagents/lane-model.js.map +1 -0
  628. package/dist/subagents/lane-parts.cjs +517 -0
  629. package/dist/subagents/lane-parts.cjs.map +1 -0
  630. package/dist/subagents/lane-parts.d.ts +130 -0
  631. package/dist/subagents/lane-parts.js +517 -0
  632. package/dist/subagents/lane-parts.js.map +1 -0
  633. package/dist/subagents/subagent-lane-group.cjs +215 -0
  634. package/dist/subagents/subagent-lane-group.cjs.map +1 -0
  635. package/dist/subagents/subagent-lane-group.d.ts +67 -0
  636. package/dist/subagents/subagent-lane-group.js +215 -0
  637. package/dist/subagents/subagent-lane-group.js.map +1 -0
  638. package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
  639. package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
  640. package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
  641. package/dist/subagents/subagent-transcript-drawer.js +431 -0
  642. package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
  643. package/dist/subagents/task-subagent-group.cjs +115 -0
  644. package/dist/subagents/task-subagent-group.cjs.map +1 -0
  645. package/dist/subagents/task-subagent-group.d.ts +36 -0
  646. package/dist/subagents/task-subagent-group.js +115 -0
  647. package/dist/subagents/task-subagent-group.js.map +1 -0
  648. package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
  649. package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
  650. package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
  651. package/dist/subagents/use-omitted-images-in-view.js +68 -0
  652. package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
  653. package/dist/threads/Inbox.cjs +2 -2
  654. package/dist/threads/Inbox.cjs.map +1 -1
  655. package/dist/threads/SessionList.cjs +27 -24
  656. package/dist/threads/SessionList.cjs.map +1 -1
  657. package/dist/threads/SessionList.js +22 -19
  658. package/dist/threads/SessionList.js.map +1 -1
  659. package/dist/threads/SessionsPage.cjs +13 -7
  660. package/dist/threads/SessionsPage.cjs.map +1 -1
  661. package/dist/threads/SessionsPage.d.ts +10 -1
  662. package/dist/threads/SessionsPage.js +9 -3
  663. package/dist/threads/SessionsPage.js.map +1 -1
  664. package/dist/threads/live-session-rows.cjs +207 -0
  665. package/dist/threads/live-session-rows.cjs.map +1 -0
  666. package/dist/threads/live-session-rows.d.ts +175 -0
  667. package/dist/threads/live-session-rows.js +207 -0
  668. package/dist/threads/live-session-rows.js.map +1 -0
  669. package/dist/threads/session-list-model.cjs.map +1 -1
  670. package/dist/threads/session-list-model.d.ts +2 -1
  671. package/dist/threads/session-list-model.js.map +1 -1
  672. package/dist/threads/session-row-parts.cjs +3 -3
  673. package/dist/threads/session-row-parts.cjs.map +1 -1
  674. package/dist/threads/sessions-page-model.cjs +13 -5
  675. package/dist/threads/sessions-page-model.cjs.map +1 -1
  676. package/dist/threads/sessions-page-model.d.ts +7 -0
  677. package/dist/threads/sessions-page-model.js +11 -3
  678. package/dist/threads/sessions-page-model.js.map +1 -1
  679. package/dist/threads/sessions-page-storage.cjs +8 -8
  680. package/dist/threads/sessions-page-storage.cjs.map +1 -1
  681. package/dist/threads/sessions-page-storage.d.ts +5 -1
  682. package/dist/threads/sessions-page-storage.js +8 -8
  683. package/dist/threads/sessions-page-storage.js.map +1 -1
  684. package/dist/threads/statewire-thread-list.cjs +173 -20
  685. package/dist/threads/statewire-thread-list.cjs.map +1 -1
  686. package/dist/threads/statewire-thread-list.d.ts +44 -1
  687. package/dist/threads/statewire-thread-list.js +174 -21
  688. package/dist/threads/statewire-thread-list.js.map +1 -1
  689. package/dist/threads/use-athena-sessions.cjs +1 -0
  690. package/dist/threads/use-athena-sessions.cjs.map +1 -1
  691. package/dist/threads/use-athena-sessions.d.ts +7 -0
  692. package/dist/threads/use-athena-sessions.js +1 -0
  693. package/dist/threads/use-athena-sessions.js.map +1 -1
  694. package/dist/threads/use-athena-thread-agent.cjs +31 -0
  695. package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
  696. package/dist/threads/use-athena-thread-agent.d.ts +38 -0
  697. package/dist/threads/use-athena-thread-agent.js +31 -0
  698. package/dist/threads/use-athena-thread-agent.js.map +1 -0
  699. package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
  700. package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
  701. package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
  702. package/dist/threads/use-athena-thread-plan-mode.js +18 -0
  703. package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
  704. package/dist/threads/use-rest-conversation-history.d.ts +1 -0
  705. package/dist/tools/agent-creations.cjs +97 -0
  706. package/dist/tools/agent-creations.cjs.map +1 -0
  707. package/dist/tools/agent-creations.d.ts +38 -0
  708. package/dist/tools/agent-creations.js +97 -0
  709. package/dist/tools/agent-creations.js.map +1 -0
  710. package/dist/tools/agent-highlights.cjs +100 -0
  711. package/dist/tools/agent-highlights.cjs.map +1 -0
  712. package/dist/tools/agent-highlights.d.ts +57 -0
  713. package/dist/tools/agent-highlights.js +100 -0
  714. package/dist/tools/agent-highlights.js.map +1 -0
  715. package/dist/tools/append-document-tool-ui.cjs +1 -0
  716. package/dist/tools/append-document-tool-ui.cjs.map +1 -1
  717. package/dist/tools/append-document-tool-ui.d.ts +7 -0
  718. package/dist/tools/append-document-tool-ui.js +2 -1
  719. package/dist/tools/append-document-tool-ui.js.map +1 -1
  720. package/dist/tools/auto-open-tools.cjs +144 -71
  721. package/dist/tools/auto-open-tools.cjs.map +1 -1
  722. package/dist/tools/auto-open-tools.d.ts +131 -1
  723. package/dist/tools/auto-open-tools.js +145 -72
  724. package/dist/tools/auto-open-tools.js.map +1 -1
  725. package/dist/tools/browser-tool-uis.cjs +594 -0
  726. package/dist/tools/browser-tool-uis.cjs.map +1 -0
  727. package/dist/tools/browser-tool-uis.d.ts +8 -0
  728. package/dist/tools/browser-tool-uis.js +594 -0
  729. package/dist/tools/browser-tool-uis.js.map +1 -0
  730. package/dist/tools/computer-asset-tool-uis.cjs +313 -0
  731. package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
  732. package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
  733. package/dist/tools/computer-asset-tool-uis.js +313 -0
  734. package/dist/tools/computer-asset-tool-uis.js.map +1 -0
  735. package/dist/tools/document-edit-tool-uis.cjs +218 -0
  736. package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
  737. package/dist/tools/document-edit-tool-uis.d.ts +40 -0
  738. package/dist/tools/document-edit-tool-uis.js +218 -0
  739. package/dist/tools/document-edit-tool-uis.js.map +1 -0
  740. package/dist/tools/drive-tool-uis.cjs +425 -0
  741. package/dist/tools/drive-tool-uis.cjs.map +1 -0
  742. package/dist/tools/drive-tool-uis.d.ts +120 -0
  743. package/dist/tools/drive-tool-uis.js +425 -0
  744. package/dist/tools/drive-tool-uis.js.map +1 -0
  745. package/dist/tools/email-calendar-tool-uis.cjs +789 -0
  746. package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
  747. package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
  748. package/dist/tools/email-calendar-tool-uis.js +789 -0
  749. package/dist/tools/email-calendar-tool-uis.js.map +1 -0
  750. package/dist/tools/ontology-tool-uis.cjs +83 -0
  751. package/dist/tools/ontology-tool-uis.cjs.map +1 -0
  752. package/dist/tools/ontology-tool-uis.d.ts +9 -0
  753. package/dist/tools/ontology-tool-uis.js +83 -0
  754. package/dist/tools/ontology-tool-uis.js.map +1 -0
  755. package/dist/tools/orchestration-tool-uis.cjs +586 -0
  756. package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
  757. package/dist/tools/orchestration-tool-uis.d.ts +141 -0
  758. package/dist/tools/orchestration-tool-uis.js +586 -0
  759. package/dist/tools/orchestration-tool-uis.js.map +1 -0
  760. package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
  761. package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
  762. package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
  763. package/dist/tools/presentation-edit-tool-uis.js +516 -0
  764. package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
  765. package/dist/tools/project-tool-uis.cjs +213 -0
  766. package/dist/tools/project-tool-uis.cjs.map +1 -0
  767. package/dist/tools/project-tool-uis.d.ts +14 -0
  768. package/dist/tools/project-tool-uis.js +213 -0
  769. package/dist/tools/project-tool-uis.js.map +1 -0
  770. package/dist/tools/sandbox-tool-uis.cjs +491 -0
  771. package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
  772. package/dist/tools/sandbox-tool-uis.d.ts +116 -0
  773. package/dist/tools/sandbox-tool-uis.js +491 -0
  774. package/dist/tools/sandbox-tool-uis.js.map +1 -0
  775. package/dist/tools/sheet-query-tool-ui.cjs +138 -0
  776. package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
  777. package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
  778. package/dist/tools/sheet-query-tool-ui.js +138 -0
  779. package/dist/tools/sheet-query-tool-ui.js.map +1 -0
  780. package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
  781. package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
  782. package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
  783. package/dist/tools/studio-screenshot-tool-uis.js +262 -0
  784. package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
  785. package/dist/tools/subagent-task-tool-ui.cjs +24 -475
  786. package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
  787. package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
  788. package/dist/tools/subagent-task-tool-ui.js +28 -479
  789. package/dist/tools/subagent-task-tool-ui.js.map +1 -1
  790. package/dist/tools/tool-summary.cjs +36 -0
  791. package/dist/tools/tool-summary.cjs.map +1 -1
  792. package/dist/tools/tool-summary.js +36 -0
  793. package/dist/tools/tool-summary.js.map +1 -1
  794. package/dist/tools/tool-uis.cjs +181 -53
  795. package/dist/tools/tool-uis.cjs.map +1 -1
  796. package/dist/tools/tool-uis.d.ts +40 -0
  797. package/dist/tools/tool-uis.js +183 -55
  798. package/dist/tools/tool-uis.js.map +1 -1
  799. package/dist/typed-interrupts/index.cjs +15 -0
  800. package/dist/typed-interrupts/index.cjs.map +1 -0
  801. package/dist/typed-interrupts/index.d.ts +20 -0
  802. package/dist/typed-interrupts/index.js +15 -0
  803. package/dist/typed-interrupts/index.js.map +1 -0
  804. package/dist/workbench/session-workbench-panes.cjs +6 -6
  805. package/dist/workbench/session-workbench-panes.cjs.map +1 -1
  806. package/package.json +28 -6
  807. package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
  808. package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
  809. package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
  810. package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
  811. package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
@@ -0,0 +1,789 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
3
+ import { CalendarIcon, MailIcon } from "lucide-react";
4
+ import { useAssetPanelStore } from "../assets/asset-panel-store.js";
5
+ import { rendersAsGenericCard, waitingTitle } from "./document-edit-tool-uis.js";
6
+ import { truncate, ToolCard, normalizeResult, ExpandableSection } from "./primitives.js";
7
+ import { ToolFallback } from "./tool-fallback.js";
8
+ import { stringField, classifyToolResult, isRecord } from "../agent-runtime/src/tool-result.js";
9
+ import { cn } from "cnfast";
10
+ function recordOf(value) {
11
+ return isRecord(value) ? value : {};
12
+ }
13
+ function text(value) {
14
+ return typeof value === "string" ? value : "";
15
+ }
16
+ function nonEmpty(value) {
17
+ return typeof value === "string" && value.trim() ? value : null;
18
+ }
19
+ function list(value) {
20
+ return Array.isArray(value) ? value : [];
21
+ }
22
+ function plural(count, unit) {
23
+ return `${count} ${unit}${count === 1 ? "" : "s"}`;
24
+ }
25
+ const WRAPPED_MANAGE_URL = /\s*\(\s*\/dashboard\/email\/?\?[^\s)]*view=manage[^\s)]*\s*\)/i;
26
+ const MANAGE_URL = /\/dashboard\/email\/?\?[^\s)]*view=manage[^\s)]*/i;
27
+ function withoutManageLink(message) {
28
+ return message.replace(WRAPPED_MANAGE_URL, "").replace(MANAGE_URL, "").trim();
29
+ }
30
+ function FailureGuidance({ guidance }) {
31
+ if (!guidance) return null;
32
+ return /* @__PURE__ */ jsx("div", { className: "border-t border-border/40 px-4 py-2", children: /* @__PURE__ */ jsx("p", { className: "text-[11px] leading-relaxed text-muted-foreground", children: guidance }) });
33
+ }
34
+ const EMAIL_NOT_CONNECTED_STATUS = "not_connected";
35
+ const EMAIL_NOT_CONNECTED_ERROR = "No email accounts connected";
36
+ function sanitizeErrorMessage(raw) {
37
+ return raw.replace(/Please fix your mistakes\.?/gi, "").replace(/\s{2,}/g, " ").trim();
38
+ }
39
+ const FAILED_TO_SEND = /^Failed to send:?\s*/;
40
+ function readAthenaEmailSendOutcome({
41
+ status,
42
+ result,
43
+ isError
44
+ }) {
45
+ const classification = classifyToolResult({ status, result, isError });
46
+ if (classification.state === "error") {
47
+ return { kind: "failed", detail: sanitizeErrorMessage(classification.failure.message) };
48
+ }
49
+ if (typeof result === "string" && FAILED_TO_SEND.test(result.trim())) {
50
+ const detail = sanitizeErrorMessage(result.trim().replace(FAILED_TO_SEND, ""));
51
+ return { kind: "failed", detail: detail || "Something went wrong while sending the email." };
52
+ }
53
+ const data = normalizeResult(result);
54
+ const message = nonEmpty(data == null ? void 0 : data.message);
55
+ if ((data == null ? void 0 : data.status) === "skipped" && message) return { kind: "not-sent", message };
56
+ if ((data == null ? void 0 : data.status) === "duplicate_suppressed" && message) {
57
+ return { kind: "already-sent", message };
58
+ }
59
+ return { kind: "sent" };
60
+ }
61
+ function recipientsText(value) {
62
+ if (Array.isArray(value)) {
63
+ return value.filter((item) => typeof item === "string").join(", ");
64
+ }
65
+ return text(value).trim();
66
+ }
67
+ function attachmentIds(value) {
68
+ if (Array.isArray(value)) {
69
+ return value.filter((id) => typeof id === "string" && id.trim() !== "");
70
+ }
71
+ const raw = text(value).trim();
72
+ if (!raw) return [];
73
+ try {
74
+ const parsed = JSON.parse(raw);
75
+ if (Array.isArray(parsed)) {
76
+ return parsed.filter((id) => typeof id === "string" && id.trim() !== "");
77
+ }
78
+ } catch {
79
+ }
80
+ return [raw];
81
+ }
82
+ const BODY_EXCERPT_CHARS = 280;
83
+ function emailBodyExcerpt({
84
+ body,
85
+ contentType
86
+ }) {
87
+ const plain = contentType === "text/html" ? body.replace(/<(style|script)[^>]*>[\s\S]*?<\/\1>/gi, " ").replace(/<[^>]+>/g, " ").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">") : body;
88
+ return truncate(plain.replace(/\s+/g, " ").trim(), BODY_EXCERPT_CHARS);
89
+ }
90
+ function DetailRow({ label, children }) {
91
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
92
+ /* @__PURE__ */ jsx("dt", { className: "font-medium text-muted-foreground", children: label }),
93
+ /* @__PURE__ */ jsx("dd", { className: "min-w-0 break-all text-foreground", children })
94
+ ] });
95
+ }
96
+ function AthenaEmailDetails({ args }) {
97
+ const openAsset = useAssetPanelStore((s) => s.openAsset);
98
+ const to = recipientsText(args.to);
99
+ const cc = recipientsText(args.cc);
100
+ const bcc = recipientsText(args.bcc);
101
+ const subject = text(args.subject).trim();
102
+ const files = attachmentIds(args.asset_ids);
103
+ const excerpt = emailBodyExcerpt({
104
+ body: text(args.body),
105
+ contentType: text(args.content_type)
106
+ });
107
+ if (!to && !cc && !bcc && !subject && files.length === 0 && !excerpt) return null;
108
+ return /* @__PURE__ */ jsxs("div", { className: "border-t border-border/40 px-4 py-2.5", children: [
109
+ /* @__PURE__ */ jsxs("dl", { className: "grid grid-cols-[3.5rem_minmax(0,1fr)] gap-x-2 gap-y-1 text-[12px]", children: [
110
+ to ? /* @__PURE__ */ jsx(DetailRow, { label: "To", children: to }) : null,
111
+ cc ? /* @__PURE__ */ jsx(DetailRow, { label: "CC", children: cc }) : null,
112
+ bcc ? /* @__PURE__ */ jsx(DetailRow, { label: "BCC", children: bcc }) : null,
113
+ subject ? /* @__PURE__ */ jsx(DetailRow, { label: "Subject", children: subject }) : null,
114
+ files.length > 0 ? /* @__PURE__ */ jsx(DetailRow, { label: "Files", children: /* @__PURE__ */ jsx("span", { className: "flex flex-wrap gap-1.5", children: files.map((id) => /* @__PURE__ */ jsx(
115
+ "button",
116
+ {
117
+ type: "button",
118
+ title: id,
119
+ onClick: () => openAsset(id),
120
+ className: "max-w-[200px] truncate rounded-md border border-border/60 bg-muted/40 px-2 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
121
+ children: `${id.slice(0, 8)}...`
122
+ },
123
+ id
124
+ )) }) }) : null
125
+ ] }),
126
+ excerpt ? /* @__PURE__ */ jsx("p", { className: "mt-2 border-t border-border/40 pt-2 text-[11px] leading-relaxed text-muted-foreground", children: excerpt }) : null
127
+ ] });
128
+ }
129
+ const SendAthenaEmailToolUIImpl = (props) => {
130
+ const { toolName, args, result, status, isError } = props;
131
+ if (rendersAsGenericCard(props)) return /* @__PURE__ */ jsx(ToolFallback, { ...props, icon: MailIcon });
132
+ const typedArgs = recordOf(args);
133
+ const subject = text(typedArgs.subject).trim();
134
+ const to = recipientsText(typedArgs.to);
135
+ const isRunning = (status == null ? void 0 : status.type) === "running";
136
+ const isWaiting = (status == null ? void 0 : status.type) === "requires-action";
137
+ const outcome = isRunning || isWaiting ? null : readAthenaEmailSendOutcome({ status, result, isError });
138
+ const cardStatus = isRunning ? "running" : isWaiting ? "requires-action" : (outcome == null ? void 0 : outcome.kind) === "failed" || (outcome == null ? void 0 : outcome.kind) === "not-sent" ? "incomplete" : "complete";
139
+ const title = isRunning ? "Sending email..." : isWaiting ? waitingTitle(toolName) : (outcome == null ? void 0 : outcome.kind) === "failed" ? "Failed to send email" : (outcome == null ? void 0 : outcome.kind) === "not-sent" ? "Email not sent" : (outcome == null ? void 0 : outcome.kind) === "already-sent" ? "Email already sent" : "Email sent";
140
+ const error = (outcome == null ? void 0 : outcome.kind) === "failed" ? outcome.detail : (outcome == null ? void 0 : outcome.kind) === "not-sent" ? outcome.message : null;
141
+ return /* @__PURE__ */ jsxs(
142
+ ToolCard,
143
+ {
144
+ icon: MailIcon,
145
+ status: cardStatus,
146
+ title,
147
+ subtitle: subject ? truncate(subject, 60) : to ? `To: ${truncate(to, 40)}` : void 0,
148
+ toolName,
149
+ error,
150
+ args: typedArgs,
151
+ result,
152
+ children: [
153
+ (outcome == null ? void 0 : outcome.kind) === "already-sent" ? /* @__PURE__ */ jsx("div", { className: "border-t border-border/40 bg-amber-500/10 px-4 py-2.5", children: /* @__PURE__ */ jsx("p", { className: "text-[12px] leading-relaxed text-amber-600", children: outcome.message }) }) : null,
154
+ (outcome == null ? void 0 : outcome.kind) !== "failed" ? /* @__PURE__ */ jsx(AthenaEmailDetails, { args: typedArgs }) : null
155
+ ]
156
+ }
157
+ );
158
+ };
159
+ const SendAthenaEmailToolUI = memo(
160
+ SendAthenaEmailToolUIImpl
161
+ );
162
+ SendAthenaEmailToolUI.displayName = "SendAthenaEmailToolUI";
163
+ function readEmailToolFailure(result) {
164
+ const record = normalizeResult(result);
165
+ if (!record) return null;
166
+ const error = text(record.error).trim();
167
+ if (record.status === EMAIL_NOT_CONNECTED_STATUS || error === EMAIL_NOT_CONNECTED_ERROR) {
168
+ return {
169
+ title: "Email Not Connected",
170
+ detail: "Connect your email account to use this feature.",
171
+ guidance: null
172
+ };
173
+ }
174
+ if (record.reconnect_required === true) {
175
+ return {
176
+ title: "Email Connection Expired",
177
+ detail: "Your email account's authorization has expired or been revoked. Reconnect it to continue.",
178
+ guidance: null
179
+ };
180
+ }
181
+ if (!error) return null;
182
+ return { title: "Error", detail: withoutManageLink(error), guidance: nonEmpty(record.guidance) };
183
+ }
184
+ const NAMED_ADDRESS = /^\s*"?([^"<>]*?)"?\s*<\s*([^<>\s]+)\s*>\s*$/;
185
+ function senderOf(value) {
186
+ if (isRecord(value)) {
187
+ const name = text(value.name).trim();
188
+ const address = text(value.email).trim();
189
+ return { label: name || localPart(address), address };
190
+ }
191
+ const raw = text(value).trim();
192
+ const named = NAMED_ADDRESS.exec(raw);
193
+ if (named) {
194
+ const name = (named[1] ?? "").trim();
195
+ const address = named[2] ?? "";
196
+ return { label: name || localPart(address), address };
197
+ }
198
+ return raw.includes("@") ? { label: localPart(raw), address: raw } : { label: raw, address: "" };
199
+ }
200
+ function localPart(address) {
201
+ const at = address.indexOf("@");
202
+ return at > 0 ? address.slice(0, at) : address;
203
+ }
204
+ function parseEmailDate(value) {
205
+ const raw = value.trim();
206
+ if (!raw) return null;
207
+ const parsed = new Date(raw);
208
+ return Number.isNaN(parsed.getTime()) ? null : parsed;
209
+ }
210
+ const MESSAGE_SEPARATOR = /^--- Message \d+ of \d+ ---$/m;
211
+ const TEXT_HEADER_LINE = /^(Subject|From|To|Cc|Date):/;
212
+ const DRAFT_BANNER_LINE = /^\[UNSENT DRAFT\b/;
213
+ function legacyBody(block) {
214
+ const lines = block.replace(/^\n+/, "").split("\n");
215
+ let index = 0;
216
+ if (DRAFT_BANNER_LINE.test(lines[index] ?? "")) index += 1;
217
+ const headerStart = index;
218
+ while (index < lines.length && TEXT_HEADER_LINE.test(lines[index] ?? "")) index += 1;
219
+ if (index > headerStart && (lines[index] ?? "").trim() === "") index += 1;
220
+ return lines.slice(index).join("\n").trim();
221
+ }
222
+ function legacyBodies(content, count) {
223
+ const parts = content.split(MESSAGE_SEPARATOR);
224
+ const blocks = parts.length > 1 ? parts.slice(1) : parts;
225
+ const bodies = blocks.map(legacyBody);
226
+ if (bodies.length === count) return bodies;
227
+ if (count === 1) return [bodies.join("\n\n").trim()];
228
+ return Array.from({ length: count }, (_, index) => bodies[index] ?? "");
229
+ }
230
+ const SNIPPET_CHARS = 240;
231
+ function threadMessageOf(value, body) {
232
+ if (!isRecord(value)) return null;
233
+ const labels = list(value.labels).filter(
234
+ (label) => typeof label === "string" && label !== ""
235
+ );
236
+ const sender = senderOf(value.from);
237
+ const dateText = text(value.date);
238
+ return {
239
+ sender: sender.label,
240
+ senderAddress: sender.address,
241
+ date: parseEmailDate(dateText),
242
+ dateText,
243
+ snippet: (text(value.text) || body).replace(/\s+/g, " ").trim().slice(0, SNIPPET_CHARS),
244
+ isDraft: value.is_draft === true || labels.includes("DRAFT"),
245
+ labels
246
+ };
247
+ }
248
+ function parseEmailThreadResult(result) {
249
+ const record = normalizeResult(result);
250
+ if (!record || record.success === false) return null;
251
+ let messages = list(record.messages).flatMap((item) => {
252
+ const message = threadMessageOf(item, "");
253
+ return message ? [message] : [];
254
+ });
255
+ if (messages.length === 0) {
256
+ const metadata = list(record.messages_metadata);
257
+ const content = text(record.content);
258
+ if (metadata.length === 0 && !content.trim()) return null;
259
+ const count = Math.max(metadata.length, 1);
260
+ const bodies = legacyBodies(content, count);
261
+ messages = Array.from(
262
+ { length: count },
263
+ (_, index) => threadMessageOf(recordOf(metadata[index]), bodies[index] ?? "")
264
+ ).filter((message) => message !== null);
265
+ }
266
+ if (messages.length === 0) return null;
267
+ const subjectSource = [...list(record.messages), ...list(record.messages_metadata)].find(
268
+ (item) => nonEmpty(recordOf(item).subject) !== null
269
+ );
270
+ return {
271
+ subject: text(recordOf(subjectSource).subject).trim(),
272
+ provider: text(record.provider),
273
+ messages,
274
+ isSingleMessage: nonEmpty(record.message_id) !== null && record.message_count === void 0
275
+ };
276
+ }
277
+ const MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
278
+ const NARROW_SPACE = " ";
279
+ function gmailTime(date) {
280
+ const hours = date.getHours();
281
+ const hour12 = hours % 12 === 0 ? 12 : hours % 12;
282
+ const minutes = String(date.getMinutes()).padStart(2, "0");
283
+ return `${hour12}:${minutes}${NARROW_SPACE}${hours < 12 ? "AM" : "PM"}`;
284
+ }
285
+ function gmailListDate({ date, now }) {
286
+ if (date.toDateString() === now.toDateString()) return gmailTime(date);
287
+ if (date.getFullYear() === now.getFullYear()) {
288
+ return `${MONTHS[date.getMonth()]} ${date.getDate()}`;
289
+ }
290
+ const year = String(date.getFullYear() % 100).padStart(2, "0");
291
+ return `${date.getMonth() + 1}/${date.getDate()}/${year}`;
292
+ }
293
+ function gmailFullDate(date) {
294
+ return `${MONTHS[date.getMonth()]} ${date.getDate()}, ${date.getFullYear()}, ${gmailTime(date)}`;
295
+ }
296
+ const LABEL_CHIP_NAMES = {
297
+ INBOX: "Inbox",
298
+ SPAM: "Spam",
299
+ TRASH: "Trash"
300
+ };
301
+ function ThreadMessageRow({ message, now }) {
302
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 py-2 first:pt-0 last:pb-0", children: [
303
+ /* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [
304
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-baseline gap-1 text-[12px] font-medium text-foreground", children: [
305
+ /* @__PURE__ */ jsx("span", { className: "truncate", title: message.senderAddress || void 0, children: message.sender || message.senderAddress || "Unknown sender" }),
306
+ message.isDraft ? /* @__PURE__ */ jsx("span", { className: "shrink-0 font-normal text-destructive", children: "Draft" }) : null
307
+ ] }),
308
+ message.date ? /* @__PURE__ */ jsx(
309
+ "span",
310
+ {
311
+ className: "shrink-0 text-[10px] text-muted-foreground",
312
+ title: gmailFullDate(message.date),
313
+ children: gmailListDate({ date: message.date, now })
314
+ }
315
+ ) : message.dateText ? /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: message.dateText }) : null
316
+ ] }),
317
+ message.snippet ? /* @__PURE__ */ jsx("p", { className: "text-[11px] leading-relaxed text-muted-foreground/80", children: truncate(message.snippet, 150) }) : null
318
+ ] });
319
+ }
320
+ function ThreadMessages({ messages }) {
321
+ var _a;
322
+ const now = /* @__PURE__ */ new Date();
323
+ const folded = messages.length > 3 ? messages.slice(1, -2) : [];
324
+ const head = folded.length > 0 ? messages.slice(0, 1) : messages;
325
+ const tail = folded.length > 0 ? messages.slice(-2) : [];
326
+ const chips = (((_a = messages[messages.length - 1]) == null ? void 0 : _a.labels) ?? []).flatMap((label) => {
327
+ const name = LABEL_CHIP_NAMES[label];
328
+ return name ? [name] : [];
329
+ });
330
+ return /* @__PURE__ */ jsxs("div", { className: "border-t border-border/40 px-4 py-2.5", children: [
331
+ chips.length > 0 ? /* @__PURE__ */ jsx("div", { className: "mb-2 flex flex-wrap gap-1", children: chips.map((chip) => /* @__PURE__ */ jsx(
332
+ "span",
333
+ {
334
+ className: "rounded bg-muted px-1 py-px text-[10px] text-muted-foreground",
335
+ children: chip
336
+ },
337
+ chip
338
+ )) }) : null,
339
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col divide-y divide-border/30", children: head.map((message, index) => /* @__PURE__ */ jsx(ThreadMessageRow, { message, now }, index)) }),
340
+ folded.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
341
+ /* @__PURE__ */ jsx(ExpandableSection, { label: plural(folded.length, "older message"), children: /* @__PURE__ */ jsx("div", { className: "flex flex-col divide-y divide-border/30", children: folded.map((message, index) => /* @__PURE__ */ jsx(ThreadMessageRow, { message, now }, index)) }) }),
342
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col divide-y divide-border/30 border-t border-border/30 pt-2", children: tail.map((message, index) => /* @__PURE__ */ jsx(ThreadMessageRow, { message, now }, index)) })
343
+ ] }) : null
344
+ ] });
345
+ }
346
+ const EmailThreadToolUIImpl = (props) => {
347
+ const { toolName, args, result, status, isError } = props;
348
+ const view = useMemo(() => parseEmailThreadResult(result), [result]);
349
+ if (rendersAsGenericCard(props)) return /* @__PURE__ */ jsx(ToolFallback, { ...props, icon: MailIcon });
350
+ const typedArgs = recordOf(args);
351
+ const isMessage = toolName === "unified_email_get_message" || nonEmpty(typedArgs.message_id) !== null && nonEmpty(typedArgs.thread_id) === null;
352
+ const classification = classifyToolResult({ status, result, isError });
353
+ const isRunning = classification.state === "running";
354
+ const isWaiting = classification.state === "requires-action";
355
+ const failure = isRunning || isWaiting ? null : readEmailToolFailure(result) ?? (classification.state === "error" ? { title: "Error", detail: classification.failure.message, guidance: null } : null);
356
+ const shown = failure ? null : view;
357
+ const cardStatus = isRunning ? "running" : isWaiting ? "requires-action" : failure ? "incomplete" : "complete";
358
+ const title = isRunning ? isMessage ? "Reading email..." : "Reading conversation..." : isWaiting ? waitingTitle(toolName) : failure ? failure.title : isMessage ? "Email read" : "Conversation read";
359
+ const count = (shown == null ? void 0 : shown.messages.length) ?? 0;
360
+ return /* @__PURE__ */ jsxs(
361
+ ToolCard,
362
+ {
363
+ icon: MailIcon,
364
+ status: cardStatus,
365
+ title,
366
+ subtitle: shown ? truncate(shown.subject || "(no subject)", 90) : void 0,
367
+ toolName,
368
+ badge: shown && count > 0 ? `${plural(count, "message")}${shown.provider ? ` · ${shown.provider}` : ""}` : void 0,
369
+ error: (failure == null ? void 0 : failure.detail) ?? null,
370
+ args: typedArgs,
371
+ result,
372
+ children: [
373
+ failure ? /* @__PURE__ */ jsx(FailureGuidance, { guidance: failure.guidance }) : null,
374
+ shown && count > 0 ? /* @__PURE__ */ jsx(ThreadMessages, { messages: shown.messages }) : null
375
+ ]
376
+ }
377
+ );
378
+ };
379
+ const EmailThreadToolUI = memo(
380
+ EmailThreadToolUIImpl
381
+ );
382
+ EmailThreadToolUI.displayName = "EmailThreadToolUI";
383
+ function readCalendarToolFailure(result) {
384
+ const record = normalizeResult(result);
385
+ if (!record) return null;
386
+ const error = nonEmpty(record.error);
387
+ const notConnected = record.status === EMAIL_NOT_CONNECTED_STATUS || error === EMAIL_NOT_CONNECTED_ERROR;
388
+ const reconnect = record.reconnect_required === true;
389
+ if (!error && !notConnected && !reconnect) return null;
390
+ const raw = error ?? nonEmpty(record.message) ?? "Something went wrong.";
391
+ return {
392
+ title: notConnected ? "Connect a calendar to continue" : reconnect ? "Reconnect your calendar account" : "The calendar request didn’t go through",
393
+ detail: notConnected ? "Athena has no calendar account to use yet." : withoutManageLink(raw),
394
+ guidance: notConnected ? null : nonEmpty(record.guidance)
395
+ };
396
+ }
397
+ const DATE_ONLY = /^(\d{4})-(\d{2})-(\d{2})$/;
398
+ const HAS_OFFSET = /(?:Z|[+-]\d{2}:?\d{2})$/i;
399
+ function isDateOnly(value) {
400
+ return typeof value === "string" && DATE_ONLY.test(value);
401
+ }
402
+ function readTime(detail, flat) {
403
+ if (isRecord(detail)) {
404
+ const time = {};
405
+ const date = nonEmpty(detail.date);
406
+ const dateTime = nonEmpty(detail.dateTime);
407
+ const timeZone = nonEmpty(detail.timeZone);
408
+ if (date) time.date = date;
409
+ if (dateTime) time.dateTime = dateTime;
410
+ if (timeZone) time.timeZone = timeZone;
411
+ if (time.date || time.dateTime) return time;
412
+ }
413
+ const raw = text(flat).trim();
414
+ if (!raw) return {};
415
+ return isDateOnly(raw) ? { date: raw } : { dateTime: raw };
416
+ }
417
+ function dateOnlyAsUtc(date) {
418
+ const match = DATE_ONLY.exec(date);
419
+ if (!match) return new Date(Number.NaN);
420
+ return new Date(Date.UTC(Number(match[1]), Number(match[2]) - 1, Number(match[3])));
421
+ }
422
+ function addDaysToDateOnly({ date, days }) {
423
+ const base = dateOnlyAsUtc(date);
424
+ if (Number.isNaN(base.getTime())) return date;
425
+ return new Date(base.getTime() + days * 864e5).toISOString().slice(0, 10);
426
+ }
427
+ function normalizeResponse(value) {
428
+ switch (text(value)) {
429
+ case "accepted":
430
+ case "organizer":
431
+ return "accepted";
432
+ case "declined":
433
+ return "declined";
434
+ case "tentative":
435
+ case "tentativelyAccepted":
436
+ return "tentative";
437
+ default:
438
+ return "needsAction";
439
+ }
440
+ }
441
+ function wholeNumber(value) {
442
+ return typeof value === "number" && Number.isFinite(value) ? Math.trunc(value) : null;
443
+ }
444
+ function myResponseOf(raw) {
445
+ const stated = nonEmpty(raw.my_response_status);
446
+ if (stated) return stated === "organizer" ? null : normalizeResponse(stated);
447
+ const self = list(raw.attendees).find((attendee) => recordOf(attendee).self === true);
448
+ if (self) return normalizeResponse(recordOf(self).response_status);
449
+ return recordOf(raw.organizer).self === true ? "accepted" : null;
450
+ }
451
+ function parseCalendarEvent(raw) {
452
+ if (!isRecord(raw)) return null;
453
+ const start = readTime(raw.start_detail, raw.start ?? raw.start_time);
454
+ if (!start.date && !start.dateTime) return null;
455
+ let end = readTime(raw.end_detail, raw.end ?? raw.end_time);
456
+ const allDay = typeof raw.all_day === "boolean" ? raw.all_day : Boolean(start.date && !start.dateTime);
457
+ let endDateInclusive = nonEmpty(raw.end_date_inclusive);
458
+ if (allDay) {
459
+ const startDay = start.date ?? (start.dateTime ?? "").slice(0, 10);
460
+ if (!start.date && isDateOnly(startDay)) start.date = startDay;
461
+ if (!endDateInclusive) {
462
+ const exclusive = end.date ?? (end.dateTime ? end.dateTime.slice(0, 10) : "");
463
+ endDateInclusive = isDateOnly(exclusive) && exclusive > startDay ? addDaysToDateOnly({ date: exclusive, days: -1 }) : startDay;
464
+ }
465
+ if (!end.date && endDateInclusive) {
466
+ end = { date: addDaysToDateOnly({ date: endDateInclusive, days: 1 }) };
467
+ }
468
+ }
469
+ const guests = list(raw.attendees).filter(
470
+ (attendee) => isRecord(attendee) && nonEmpty(attendee.email) !== null && attendee.resource !== true
471
+ );
472
+ const counted = wholeNumber(recordOf(raw.attendee_counts).total);
473
+ const response = myResponseOf(raw);
474
+ return {
475
+ id: text(raw.id) || text(raw.event_id),
476
+ title: text(raw.title) || text(raw.summary) || "(No title)",
477
+ start,
478
+ end,
479
+ allDay,
480
+ endDateInclusive: allDay ? endDateInclusive : null,
481
+ location: text(raw.location).trim(),
482
+ guestCount: counted ?? Math.max(wholeNumber(raw.attendee_count) ?? 0, guests.length),
483
+ declined: response === "declined",
484
+ awaiting: response === "needsAction"
485
+ };
486
+ }
487
+ function parseCalendarSearchResult(result) {
488
+ const record = normalizeResult(result);
489
+ if (!record) return null;
490
+ if (isRecord(record.event)) {
491
+ const event = parseCalendarEvent(record.event);
492
+ return event ? { events: [event], isSingleEvent: true, hasMore: false, accountEmail: nonEmpty(record.account_email) } : null;
493
+ }
494
+ if (!Array.isArray(record.results)) return null;
495
+ return {
496
+ events: record.results.flatMap((raw) => {
497
+ const event = parseCalendarEvent(raw);
498
+ return event ? [event] : [];
499
+ }),
500
+ isSingleEvent: false,
501
+ hasMore: nonEmpty(record.next_page_token) !== null,
502
+ accountEmail: nonEmpty(record.account_email)
503
+ };
504
+ }
505
+ function viewerTimeZone() {
506
+ try {
507
+ return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
508
+ } catch {
509
+ return "UTC";
510
+ }
511
+ }
512
+ function dateOnlyInZone({ instant, timeZone }) {
513
+ const parts = new Intl.DateTimeFormat("en-CA", {
514
+ timeZone,
515
+ year: "numeric",
516
+ month: "2-digit",
517
+ day: "2-digit"
518
+ }).formatToParts(instant);
519
+ const get = (type) => {
520
+ var _a;
521
+ return ((_a = parts.find((part) => part.type === type)) == null ? void 0 : _a.value) ?? "";
522
+ };
523
+ return `${get("year")}-${get("month")}-${get("day")}`;
524
+ }
525
+ function zoneOffsetMinutes({ instant, timeZone }) {
526
+ const parts = new Intl.DateTimeFormat("en-US", {
527
+ timeZone,
528
+ hourCycle: "h23",
529
+ year: "numeric",
530
+ month: "2-digit",
531
+ day: "2-digit",
532
+ hour: "2-digit",
533
+ minute: "2-digit",
534
+ second: "2-digit"
535
+ }).formatToParts(instant);
536
+ const get = (type) => {
537
+ var _a;
538
+ return Number(((_a = parts.find((part) => part.type === type)) == null ? void 0 : _a.value) ?? 0);
539
+ };
540
+ const wall = Date.UTC(get("year"), get("month") - 1, get("day"), get("hour") % 24, get("minute"), get("second"));
541
+ return Math.round((wall - instant.getTime()) / 6e4);
542
+ }
543
+ function instantOf(time) {
544
+ var _a;
545
+ const raw = (_a = time.dateTime) == null ? void 0 : _a.trim().replace(/(\.\d{3})\d+/, "$1");
546
+ if (!raw) return null;
547
+ if (HAS_OFFSET.test(raw)) {
548
+ const parsed = new Date(raw);
549
+ return Number.isNaN(parsed.getTime()) ? null : parsed;
550
+ }
551
+ const asUtc = /* @__PURE__ */ new Date(`${raw}Z`);
552
+ if (Number.isNaN(asUtc.getTime())) return null;
553
+ const zone = time.timeZone;
554
+ if (!zone || zone.toUpperCase() === "UTC") return asUtc;
555
+ try {
556
+ const offset = zoneOffsetMinutes({ instant: asUtc, timeZone: zone });
557
+ const guess = new Date(asUtc.getTime() - offset * 6e4);
558
+ const settled = zoneOffsetMinutes({ instant: guess, timeZone: zone });
559
+ return settled === offset ? guess : new Date(asUtc.getTime() - settled * 6e4);
560
+ } catch {
561
+ return asUtc;
562
+ }
563
+ }
564
+ function clockParts({ instant, timeZone }) {
565
+ const parts = new Intl.DateTimeFormat("en-US", {
566
+ timeZone,
567
+ hour: "numeric",
568
+ minute: "2-digit",
569
+ hour12: true
570
+ }).formatToParts(instant);
571
+ const get = (type) => {
572
+ var _a;
573
+ return ((_a = parts.find((part) => part.type === type)) == null ? void 0 : _a.value) ?? "";
574
+ };
575
+ return {
576
+ hour: get("hour"),
577
+ minute: get("minute"),
578
+ period: get("dayPeriod").toLowerCase().startsWith("p") ? "pm" : "am"
579
+ };
580
+ }
581
+ function clockText({ parts, withPeriod }) {
582
+ const time = parts.minute !== "00" ? `${parts.hour}:${parts.minute}` : parts.hour;
583
+ return withPeriod ? `${time}${parts.period}` : time;
584
+ }
585
+ const RANGE_SEPARATOR = " – ";
586
+ function formatTimeRange({ start, end, timeZone }) {
587
+ const from = clockParts({ instant: start, timeZone });
588
+ if (start.getTime() === end.getTime()) return clockText({ parts: from, withPeriod: true });
589
+ const to = clockParts({ instant: end, timeZone });
590
+ return `${clockText({ parts: from, withPeriod: from.period !== to.period })}${RANGE_SEPARATOR}${clockText({ parts: to, withPeriod: true })}`;
591
+ }
592
+ function eventDays({ event, timeZone }) {
593
+ let first;
594
+ let last;
595
+ if (event.allDay) {
596
+ first = event.start.date ?? "";
597
+ last = event.endDateInclusive ?? first;
598
+ } else {
599
+ const start = instantOf(event.start);
600
+ if (!start) return [];
601
+ const end = instantOf(event.end) ?? start;
602
+ first = dateOnlyInZone({ instant: start, timeZone });
603
+ const lastInstant = end.getTime() > start.getTime() ? new Date(end.getTime() - 1) : end;
604
+ last = dateOnlyInZone({ instant: lastInstant, timeZone });
605
+ }
606
+ if (!isDateOnly(first)) return [];
607
+ if (!isDateOnly(last) || last < first) return [first];
608
+ const days = [];
609
+ for (let day = first; day <= last && days.length < 366; day = addDaysToDateOnly({ date: day, days: 1 })) {
610
+ days.push(day);
611
+ }
612
+ return days;
613
+ }
614
+ function formatAgendaTime({
615
+ event,
616
+ day,
617
+ timeZone
618
+ }) {
619
+ if (event.allDay) return "All day";
620
+ const start = instantOf(event.start);
621
+ if (!start) return "";
622
+ const end = instantOf(event.end) ?? start;
623
+ const days = eventDays({ event, timeZone });
624
+ const startDay = dateOnlyInZone({ instant: start, timeZone });
625
+ if (days.length <= 1) return formatTimeRange({ start, end, timeZone });
626
+ if (day === startDay) {
627
+ return `${clockText({ parts: clockParts({ instant: start, timeZone }), withPeriod: true })}${RANGE_SEPARATOR}12am`;
628
+ }
629
+ if (day === days[days.length - 1]) {
630
+ return `Until ${clockText({ parts: clockParts({ instant: end, timeZone }), withPeriod: true })}`;
631
+ }
632
+ return "All day";
633
+ }
634
+ function agendaRows({
635
+ events,
636
+ timeZone
637
+ }) {
638
+ const byDay = /* @__PURE__ */ new Map();
639
+ for (const event of events) {
640
+ for (const day of eventDays({ event, timeZone })) {
641
+ byDay.set(day, [...byDay.get(day) ?? [], event]);
642
+ }
643
+ }
644
+ const startOf = (event) => {
645
+ var _a;
646
+ return event.allDay ? Number.NEGATIVE_INFINITY : ((_a = instantOf(event.start)) == null ? void 0 : _a.getTime()) ?? 0;
647
+ };
648
+ return [...byDay.entries()].sort(([left], [right]) => left.localeCompare(right)).flatMap(
649
+ ([day, dayEvents]) => [...dayEvents].sort((left, right) => startOf(left) - startOf(right)).map((event) => ({ day, event }))
650
+ );
651
+ }
652
+ function dayLabel(day) {
653
+ const date = dateOnlyAsUtc(day);
654
+ if (Number.isNaN(date.getTime())) return day;
655
+ return new Intl.DateTimeFormat("en-US", {
656
+ weekday: "short",
657
+ month: "short",
658
+ day: "numeric",
659
+ timeZone: "UTC"
660
+ }).format(date);
661
+ }
662
+ const COLLAPSED_ROW_COUNT = 8;
663
+ function AgendaRows({
664
+ rows,
665
+ timeZone,
666
+ today
667
+ }) {
668
+ return /* @__PURE__ */ jsx("ul", { className: "flex flex-col", children: rows.map(({ day, event }, index) => {
669
+ var _a;
670
+ const meta = [event.location, event.guestCount > 0 ? plural(event.guestCount, "guest") : ""].filter((part) => part !== "").join(" · ");
671
+ return /* @__PURE__ */ jsxs("li", { className: "flex flex-col", children: [
672
+ index === 0 || ((_a = rows[index - 1]) == null ? void 0 : _a.day) !== day ? /* @__PURE__ */ jsx(
673
+ "p",
674
+ {
675
+ className: cn(
676
+ "pt-1.5 pb-0.5 text-[10px] font-semibold uppercase tracking-wide first:pt-0",
677
+ day === today ? "text-primary" : "text-muted-foreground"
678
+ ),
679
+ children: dayLabel(day)
680
+ }
681
+ ) : null,
682
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 py-1", children: [
683
+ /* @__PURE__ */ jsx(
684
+ "span",
685
+ {
686
+ "aria-hidden": "true",
687
+ className: cn(
688
+ "mt-1 size-2 shrink-0 rounded-full",
689
+ event.awaiting || event.declined ? "border border-primary" : "bg-primary"
690
+ )
691
+ }
692
+ ),
693
+ /* @__PURE__ */ jsx("span", { className: "w-24 shrink-0 text-[11px] text-muted-foreground tabular-nums", children: formatAgendaTime({ event, day, timeZone }) }),
694
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
695
+ /* @__PURE__ */ jsx(
696
+ "span",
697
+ {
698
+ className: cn(
699
+ "truncate text-[12px] font-medium text-foreground",
700
+ event.declined && "text-muted-foreground line-through"
701
+ ),
702
+ children: event.title
703
+ }
704
+ ),
705
+ meta ? /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: meta }) : null
706
+ ] })
707
+ ] })
708
+ ] }, `${day}:${event.id || event.title}:${index}`);
709
+ }) });
710
+ }
711
+ function CalendarAgenda({ view }) {
712
+ const timeZone = viewerTimeZone();
713
+ const rows = agendaRows({ events: view.events, timeZone });
714
+ const today = dateOnlyInZone({ instant: /* @__PURE__ */ new Date(), timeZone });
715
+ const inline = rows.slice(0, COLLAPSED_ROW_COUNT);
716
+ const overflow = rows.slice(COLLAPSED_ROW_COUNT);
717
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
718
+ /* @__PURE__ */ jsxs("div", { className: "border-t border-border/40 px-4 py-2.5", children: [
719
+ rows.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[12px] text-muted-foreground", children: "No events found" }) : /* @__PURE__ */ jsx(AgendaRows, { rows: inline, timeZone, today }),
720
+ overflow.length > 0 ? /* @__PURE__ */ jsx(ExpandableSection, { label: `Show ${overflow.length} more`, children: /* @__PURE__ */ jsx(AgendaRows, { rows: overflow, timeZone, today }) }) : null
721
+ ] }),
722
+ view.hasMore || view.accountEmail ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-t border-border/40 px-4 py-1.5 text-[11px] text-muted-foreground", children: [
723
+ view.hasMore ? /* @__PURE__ */ jsx("span", { children: "More events match; ask Athena for the next page" }) : null,
724
+ view.accountEmail ? /* @__PURE__ */ jsx("span", { className: "ml-auto truncate", children: view.accountEmail }) : null
725
+ ] }) : null
726
+ ] });
727
+ }
728
+ const CalendarEventsToolUIImpl = (props) => {
729
+ const { toolName, args, result, status, isError } = props;
730
+ const view = useMemo(() => parseCalendarSearchResult(result), [result]);
731
+ if (rendersAsGenericCard(props)) return /* @__PURE__ */ jsx(ToolFallback, { ...props, icon: CalendarIcon });
732
+ const typedArgs = recordOf(args);
733
+ const readsOneEvent = nonEmpty(typedArgs.event_id) !== null;
734
+ const titleFilter = stringField(typedArgs, ["title"]);
735
+ const classification = classifyToolResult({ status, result, isError });
736
+ const isRunning = classification.state === "running";
737
+ const isWaiting = classification.state === "requires-action";
738
+ const failure = isRunning || isWaiting ? null : readCalendarToolFailure(result) ?? (classification.state === "error" ? {
739
+ title: "The calendar request didn’t go through",
740
+ detail: classification.failure.message,
741
+ guidance: null
742
+ } : null);
743
+ const shown = failure ? null : view;
744
+ const single = (shown == null ? void 0 : shown.isSingleEvent) ? shown.events[0] : void 0;
745
+ const count = (shown == null ? void 0 : shown.events.length) ?? 0;
746
+ const cardStatus = isRunning ? "running" : isWaiting ? "requires-action" : failure ? "incomplete" : "complete";
747
+ const title = isRunning ? readsOneEvent ? "Reading the event..." : "Searching your calendar..." : isWaiting ? waitingTitle(toolName) : failure ? failure.title : single ? "Calendar event" : "Calendar events";
748
+ const subtitle = single ? truncate(single.title, 90) : titleFilter && !readsOneEvent ? `“${truncate(titleFilter, 80)}”` : void 0;
749
+ return /* @__PURE__ */ jsxs(
750
+ ToolCard,
751
+ {
752
+ icon: CalendarIcon,
753
+ status: cardStatus,
754
+ title,
755
+ subtitle,
756
+ toolName,
757
+ badge: shown && !single ? count > 0 ? plural(count, "event") : "No events" : void 0,
758
+ error: (failure == null ? void 0 : failure.detail) ?? null,
759
+ args: typedArgs,
760
+ result,
761
+ children: [
762
+ failure ? /* @__PURE__ */ jsx(FailureGuidance, { guidance: failure.guidance }) : null,
763
+ shown ? /* @__PURE__ */ jsx(CalendarAgenda, { view: shown }) : null
764
+ ]
765
+ }
766
+ );
767
+ };
768
+ const CalendarEventsToolUI = memo(
769
+ CalendarEventsToolUIImpl
770
+ );
771
+ CalendarEventsToolUI.displayName = "CalendarEventsToolUI";
772
+ export {
773
+ CalendarEventsToolUI,
774
+ EmailThreadToolUI,
775
+ SendAthenaEmailToolUI,
776
+ agendaRows,
777
+ emailBodyExcerpt,
778
+ formatAgendaTime,
779
+ gmailFullDate,
780
+ gmailListDate,
781
+ parseCalendarEvent,
782
+ parseCalendarSearchResult,
783
+ parseEmailThreadResult,
784
+ readAthenaEmailSendOutcome,
785
+ readCalendarToolFailure,
786
+ readEmailToolFailure,
787
+ viewerTimeZone
788
+ };
789
+ //# sourceMappingURL=email-calendar-tool-uis.js.map