@athenaintel/react 0.28.1 → 0.32.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 (817) hide show
  1. package/README.md +479 -10
  2. package/dist/agent-runtime/src/asset-attachment.cjs.map +1 -0
  3. package/dist/agent-runtime/src/asset-attachment.js.map +1 -0
  4. package/dist/agent-runtime/src/athena-asset-drag.cjs +44 -0
  5. package/dist/agent-runtime/src/athena-asset-drag.cjs.map +1 -0
  6. package/dist/agent-runtime/src/athena-asset-drag.js +44 -0
  7. package/dist/agent-runtime/src/athena-asset-drag.js.map +1 -0
  8. package/dist/agent-runtime/src/auth-denial.cjs.map +1 -0
  9. package/dist/agent-runtime/src/auth-denial.js.map +1 -0
  10. package/dist/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
  11. package/dist/agent-runtime/src/client-tool-bridge.js.map +1 -0
  12. package/dist/agent-runtime/src/client-tools.cjs.map +1 -0
  13. package/dist/agent-runtime/src/client-tools.js.map +1 -0
  14. package/dist/agent-runtime/src/composer-markdown.cjs +124 -0
  15. package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -0
  16. package/dist/agent-runtime/src/composer-markdown.js +124 -0
  17. package/dist/agent-runtime/src/composer-markdown.js.map +1 -0
  18. package/dist/agent-runtime/src/config-mutations.cjs +59 -0
  19. package/dist/agent-runtime/src/config-mutations.cjs.map +1 -0
  20. package/dist/agent-runtime/src/config-mutations.js +59 -0
  21. package/dist/agent-runtime/src/config-mutations.js.map +1 -0
  22. package/dist/agent-runtime/src/conversation-index.cjs.map +1 -0
  23. package/dist/agent-runtime/src/conversation-index.js.map +1 -0
  24. package/dist/{packages/agent-runtime → agent-runtime}/src/conversation-list.cjs +36 -0
  25. package/dist/agent-runtime/src/conversation-list.cjs.map +1 -0
  26. package/dist/{packages/agent-runtime → agent-runtime}/src/conversation-list.js +36 -0
  27. package/dist/agent-runtime/src/conversation-list.js.map +1 -0
  28. package/dist/{packages/agent-runtime → agent-runtime}/src/deep-agent-transport-recipe.cjs +5 -3
  29. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -0
  30. package/dist/{packages/agent-runtime → agent-runtime}/src/deep-agent-transport-recipe.js +6 -4
  31. package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -0
  32. package/dist/agent-runtime/src/edit-command.cjs.map +1 -0
  33. package/dist/agent-runtime/src/edit-command.js.map +1 -0
  34. package/dist/{packages/agent-runtime → agent-runtime}/src/errors.cjs +23 -0
  35. package/dist/agent-runtime/src/errors.cjs.map +1 -0
  36. package/dist/{packages/agent-runtime → agent-runtime}/src/errors.js +23 -0
  37. package/dist/agent-runtime/src/errors.js.map +1 -0
  38. package/dist/agent-runtime/src/execute-output.cjs +41 -0
  39. package/dist/agent-runtime/src/execute-output.cjs.map +1 -0
  40. package/dist/agent-runtime/src/execute-output.js +41 -0
  41. package/dist/agent-runtime/src/execute-output.js.map +1 -0
  42. package/dist/{packages/agent-runtime → agent-runtime}/src/generated/runconfig-contract.cjs +16 -2
  43. package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
  44. package/dist/{packages/agent-runtime → agent-runtime}/src/generated/runconfig-contract.js +16 -2
  45. package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
  46. package/dist/agent-runtime/src/github-wake-event.cjs.map +1 -0
  47. package/dist/agent-runtime/src/github-wake-event.js.map +1 -0
  48. package/dist/{packages/agent-runtime → agent-runtime}/src/interrupts.cjs +24 -1
  49. package/dist/agent-runtime/src/interrupts.cjs.map +1 -0
  50. package/dist/{packages/agent-runtime → agent-runtime}/src/interrupts.js +24 -1
  51. package/dist/agent-runtime/src/interrupts.js.map +1 -0
  52. package/dist/agent-runtime/src/message-author.cjs.map +1 -0
  53. package/dist/agent-runtime/src/message-author.js.map +1 -0
  54. package/dist/agent-runtime/src/message-window.cjs.map +1 -0
  55. package/dist/agent-runtime/src/message-window.js.map +1 -0
  56. package/dist/{packages/agent-runtime → agent-runtime}/src/messages.cjs +8 -4
  57. package/dist/agent-runtime/src/messages.cjs.map +1 -0
  58. package/dist/{packages/agent-runtime → agent-runtime}/src/messages.js +6 -2
  59. package/dist/agent-runtime/src/messages.js.map +1 -0
  60. package/dist/agent-runtime/src/model-context.cjs.map +1 -0
  61. package/dist/agent-runtime/src/model-context.js.map +1 -0
  62. package/dist/agent-runtime/src/optimistic-content.cjs.map +1 -0
  63. package/dist/agent-runtime/src/optimistic-content.js.map +1 -0
  64. package/dist/agent-runtime/src/protocol.cjs.map +1 -0
  65. package/dist/agent-runtime/src/protocol.js.map +1 -0
  66. package/dist/{packages/agent-runtime → agent-runtime}/src/queue.cjs +23 -2
  67. package/dist/agent-runtime/src/queue.cjs.map +1 -0
  68. package/dist/{packages/agent-runtime → agent-runtime}/src/queue.js +23 -2
  69. package/dist/agent-runtime/src/queue.js.map +1 -0
  70. package/dist/{packages/agent-runtime → agent-runtime}/src/quota-safe-local-storage-session.cjs +71 -13
  71. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -0
  72. package/dist/{packages/agent-runtime → agent-runtime}/src/quota-safe-local-storage-session.js +73 -15
  73. package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -0
  74. package/dist/agent-runtime/src/runtime-messages.cjs.map +1 -0
  75. package/dist/agent-runtime/src/runtime-messages.js.map +1 -0
  76. package/dist/agent-runtime/src/screen-point.cjs.map +1 -0
  77. package/dist/agent-runtime/src/screen-point.js.map +1 -0
  78. package/dist/agent-runtime/src/send-recovery.cjs.map +1 -0
  79. package/dist/agent-runtime/src/send-recovery.js.map +1 -0
  80. package/dist/agent-runtime/src/statewire-attach-observer.cjs.map +1 -0
  81. package/dist/agent-runtime/src/statewire-attach-observer.js.map +1 -0
  82. package/dist/{packages/agent-runtime → agent-runtime}/src/statewire-state.cjs +8 -0
  83. package/dist/agent-runtime/src/statewire-state.cjs.map +1 -0
  84. package/dist/{packages/agent-runtime → agent-runtime}/src/statewire-state.js +8 -0
  85. package/dist/agent-runtime/src/statewire-state.js.map +1 -0
  86. package/dist/{packages/agent-runtime → agent-runtime}/src/statewire-suspended.cjs +4 -0
  87. package/dist/agent-runtime/src/statewire-suspended.cjs.map +1 -0
  88. package/dist/{packages/agent-runtime → agent-runtime}/src/statewire-suspended.js +4 -0
  89. package/dist/agent-runtime/src/statewire-suspended.js.map +1 -0
  90. package/dist/agent-runtime/src/statewire-transport.cjs +43 -0
  91. package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -0
  92. package/dist/agent-runtime/src/statewire-transport.js +43 -0
  93. package/dist/agent-runtime/src/statewire-transport.js.map +1 -0
  94. package/dist/agent-runtime/src/streaming-markdown.cjs.map +1 -0
  95. package/dist/agent-runtime/src/streaming-markdown.js.map +1 -0
  96. package/dist/agent-runtime/src/subscription-wake-event.cjs +252 -0
  97. package/dist/agent-runtime/src/subscription-wake-event.cjs.map +1 -0
  98. package/dist/agent-runtime/src/subscription-wake-event.js +252 -0
  99. package/dist/agent-runtime/src/subscription-wake-event.js.map +1 -0
  100. package/dist/agent-runtime/src/thread-extras.cjs.map +1 -0
  101. package/dist/agent-runtime/src/thread-extras.js.map +1 -0
  102. package/dist/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -0
  103. package/dist/agent-runtime/src/thread-snapshot-cache.js.map +1 -0
  104. package/dist/agent-runtime/src/thread-status.cjs.map +1 -0
  105. package/dist/agent-runtime/src/thread-status.js.map +1 -0
  106. package/dist/{packages/agent-runtime → agent-runtime}/src/tool-metadata.cjs +304 -9
  107. package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -0
  108. package/dist/{packages/agent-runtime → agent-runtime}/src/tool-metadata.js +304 -9
  109. package/dist/agent-runtime/src/tool-metadata.js.map +1 -0
  110. package/dist/agent-runtime/src/tool-names.cjs +5 -0
  111. package/dist/agent-runtime/src/tool-names.cjs.map +1 -0
  112. package/dist/agent-runtime/src/tool-names.js +5 -0
  113. package/dist/agent-runtime/src/tool-names.js.map +1 -0
  114. package/dist/agent-runtime/src/tool-outputs.cjs.map +1 -0
  115. package/dist/agent-runtime/src/tool-outputs.js.map +1 -0
  116. package/dist/agent-runtime/src/tool-result.cjs.map +1 -0
  117. package/dist/agent-runtime/src/tool-result.js.map +1 -0
  118. package/dist/{packages/agent-runtime → agent-runtime}/src/use-conversation-list.cjs +33 -22
  119. package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -0
  120. package/dist/{packages/agent-runtime → agent-runtime}/src/use-conversation-list.js +34 -23
  121. package/dist/agent-runtime/src/use-conversation-list.js.map +1 -0
  122. package/dist/agent-runtime/src/use-deep-agent-config.cjs +129 -0
  123. package/dist/agent-runtime/src/use-deep-agent-config.cjs.map +1 -0
  124. package/dist/agent-runtime/src/use-deep-agent-config.js +129 -0
  125. package/dist/agent-runtime/src/use-deep-agent-config.js.map +1 -0
  126. package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-edit-submit.cjs +2 -0
  127. package/dist/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -0
  128. package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-edit-submit.js +2 -0
  129. package/dist/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -0
  130. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -0
  131. package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -0
  132. package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-thread.cjs +1 -0
  133. package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -0
  134. package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-thread.js +2 -1
  135. package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -0
  136. package/dist/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -0
  137. package/dist/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -0
  138. package/dist/agent-runtime/src/use-historical-edit-attachments.cjs +52 -0
  139. package/dist/agent-runtime/src/use-historical-edit-attachments.cjs.map +1 -0
  140. package/dist/agent-runtime/src/use-historical-edit-attachments.js +52 -0
  141. package/dist/agent-runtime/src/use-historical-edit-attachments.js.map +1 -0
  142. package/dist/{packages/agent-runtime → agent-runtime}/src/voice-presentation.cjs +14 -0
  143. package/dist/agent-runtime/src/voice-presentation.cjs.map +1 -0
  144. package/dist/{packages/agent-runtime → agent-runtime}/src/voice-presentation.js +14 -0
  145. package/dist/agent-runtime/src/voice-presentation.js.map +1 -0
  146. package/dist/agent-runtime/src/voice-turn-grouping.cjs.map +1 -0
  147. package/dist/agent-runtime/src/voice-turn-grouping.js.map +1 -0
  148. package/dist/assets/AthenaAssetEmbed.cjs +13 -2
  149. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
  150. package/dist/assets/AthenaAssetEmbed.d.ts +10 -0
  151. package/dist/assets/AthenaAssetEmbed.js +14 -3
  152. package/dist/assets/AthenaAssetEmbed.js.map +1 -1
  153. package/dist/assets/AthenaLayout.cjs +97 -31
  154. package/dist/assets/AthenaLayout.cjs.map +1 -1
  155. package/dist/assets/AthenaLayout.d.ts +13 -0
  156. package/dist/assets/AthenaLayout.js +98 -32
  157. package/dist/assets/AthenaLayout.js.map +1 -1
  158. package/dist/assets/asset-embed-messages.cjs +6 -0
  159. package/dist/assets/asset-embed-messages.cjs.map +1 -1
  160. package/dist/assets/asset-embed-messages.d.ts +13 -0
  161. package/dist/assets/asset-embed-messages.js +6 -0
  162. package/dist/assets/asset-embed-messages.js.map +1 -1
  163. package/dist/assets/asset-panel-store.cjs +68 -32
  164. package/dist/assets/asset-panel-store.cjs.map +1 -1
  165. package/dist/assets/asset-panel-store.d.ts +47 -1
  166. package/dist/assets/asset-panel-store.js +68 -32
  167. package/dist/assets/asset-panel-store.js.map +1 -1
  168. package/dist/assets/use-asset-embed.cjs +29 -8
  169. package/dist/assets/use-asset-embed.cjs.map +1 -1
  170. package/dist/assets/use-asset-embed.d.ts +7 -0
  171. package/dist/assets/use-asset-embed.js +29 -8
  172. package/dist/assets/use-asset-embed.js.map +1 -1
  173. package/dist/catalog/chat-pickers.cjs +152 -0
  174. package/dist/catalog/chat-pickers.cjs.map +1 -0
  175. package/dist/catalog/chat-pickers.d.ts +22 -0
  176. package/dist/catalog/chat-pickers.js +152 -0
  177. package/dist/catalog/chat-pickers.js.map +1 -0
  178. package/dist/catalog/runtime-catalog.cjs +181 -0
  179. package/dist/catalog/runtime-catalog.cjs.map +1 -0
  180. package/dist/catalog/runtime-catalog.d.ts +100 -0
  181. package/dist/catalog/runtime-catalog.js +181 -0
  182. package/dist/catalog/runtime-catalog.js.map +1 -0
  183. package/dist/chat/AthenaChat.cjs +122 -67
  184. package/dist/chat/AthenaChat.cjs.map +1 -1
  185. package/dist/chat/AthenaChat.d.ts +21 -4
  186. package/dist/chat/AthenaChat.js +124 -69
  187. package/dist/chat/AthenaChat.js.map +1 -1
  188. package/dist/chat/StatewireApprovalCard.cjs +38 -37
  189. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  190. package/dist/chat/StatewireApprovalCard.d.ts +2 -0
  191. package/dist/chat/StatewireApprovalCard.js +39 -38
  192. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  193. package/dist/chat/StatewireClientToolBridge.cjs +2 -2
  194. package/dist/chat/StatewireClientToolBridge.js +2 -2
  195. package/dist/chat/StatewireQueuedMessages.cjs +15 -12
  196. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  197. package/dist/chat/StatewireQueuedMessages.d.ts +22 -2
  198. package/dist/chat/StatewireQueuedMessages.js +15 -12
  199. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  200. package/dist/chat/StatewireRunRefusalNotice.cjs +48 -0
  201. package/dist/chat/StatewireRunRefusalNotice.cjs.map +1 -0
  202. package/dist/chat/StatewireRunRefusalNotice.d.ts +25 -0
  203. package/dist/chat/StatewireRunRefusalNotice.js +48 -0
  204. package/dist/chat/StatewireRunRefusalNotice.js.map +1 -0
  205. package/dist/chat/WaitingOnYouBanner.cjs +2 -2
  206. package/dist/chat/WaitingOnYouBanner.js +2 -2
  207. package/dist/chat/athena-citation-links.cjs +19 -15
  208. package/dist/chat/athena-citation-links.cjs.map +1 -1
  209. package/dist/chat/athena-citation-links.js +19 -15
  210. package/dist/chat/athena-citation-links.js.map +1 -1
  211. package/dist/chat/run-activity.cjs +9 -1
  212. package/dist/chat/run-activity.cjs.map +1 -1
  213. package/dist/chat/run-activity.d.ts +6 -0
  214. package/dist/chat/run-activity.js +10 -2
  215. package/dist/chat/run-activity.js.map +1 -1
  216. package/dist/chat/statewire-banners.cjs +30 -1
  217. package/dist/chat/statewire-banners.cjs.map +1 -1
  218. package/dist/chat/statewire-banners.d.ts +20 -1
  219. package/dist/chat/statewire-banners.js +32 -3
  220. package/dist/chat/statewire-banners.js.map +1 -1
  221. package/dist/chat/statewire-client-tools.cjs +1 -1
  222. package/dist/chat/statewire-client-tools.js +1 -1
  223. package/dist/chat/super-grouping/CollapsibleGroup.cjs +1 -1
  224. package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -1
  225. package/dist/chat/super-grouping/CollapsibleGroup.js +1 -1
  226. package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -1
  227. package/dist/chat/super-grouping/SuperGroupingCard.cjs +38 -16
  228. package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -1
  229. package/dist/chat/super-grouping/SuperGroupingCard.d.ts +21 -4
  230. package/dist/chat/super-grouping/SuperGroupingCard.js +39 -17
  231. package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -1
  232. package/dist/chat/super-grouping/SuperGroupingTranscript.cjs +377 -0
  233. package/dist/chat/super-grouping/SuperGroupingTranscript.cjs.map +1 -0
  234. package/dist/chat/super-grouping/SuperGroupingTranscript.d.ts +31 -0
  235. package/dist/chat/super-grouping/SuperGroupingTranscript.js +377 -0
  236. package/dist/chat/super-grouping/SuperGroupingTranscript.js.map +1 -0
  237. package/dist/chat/super-grouping/ToolTimeline.cjs +13 -2
  238. package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
  239. package/dist/chat/super-grouping/ToolTimeline.d.ts +10 -3
  240. package/dist/chat/super-grouping/ToolTimeline.js +13 -2
  241. package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
  242. package/dist/chat/super-grouping/activity-timeline.cjs +69 -29
  243. package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -1
  244. package/dist/chat/super-grouping/activity-timeline.d.ts +60 -9
  245. package/dist/chat/super-grouping/activity-timeline.js +70 -30
  246. package/dist/chat/super-grouping/activity-timeline.js.map +1 -1
  247. package/dist/chat/super-grouping/index.cjs +14 -0
  248. package/dist/chat/super-grouping/index.cjs.map +1 -1
  249. package/dist/chat/super-grouping/index.d.ts +7 -2
  250. package/dist/chat/super-grouping/index.js +16 -2
  251. package/dist/chat/super-grouping/index.js.map +1 -1
  252. package/dist/chat/super-grouping/timeline-step.cjs +14 -5
  253. package/dist/chat/super-grouping/timeline-step.cjs.map +1 -1
  254. package/dist/chat/super-grouping/timeline-step.d.ts +10 -1
  255. package/dist/chat/super-grouping/timeline-step.js +15 -6
  256. package/dist/chat/super-grouping/timeline-step.js.map +1 -1
  257. package/dist/chat/super-grouping/toolkit-map.cjs +1 -0
  258. package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -1
  259. package/dist/chat/super-grouping/toolkit-map.js +1 -0
  260. package/dist/chat/super-grouping/toolkit-map.js.map +1 -1
  261. package/dist/chat/super-grouping/turn-segments.cjs +82 -0
  262. package/dist/chat/super-grouping/turn-segments.cjs.map +1 -0
  263. package/dist/chat/super-grouping/turn-segments.d.ts +69 -0
  264. package/dist/chat/super-grouping/turn-segments.js +82 -0
  265. package/dist/chat/super-grouping/turn-segments.js.map +1 -0
  266. package/dist/chat/super-grouping/turn-timing.cjs +110 -0
  267. package/dist/chat/super-grouping/turn-timing.cjs.map +1 -0
  268. package/dist/chat/super-grouping/turn-timing.d.ts +52 -0
  269. package/dist/chat/super-grouping/turn-timing.js +110 -0
  270. package/dist/chat/super-grouping/turn-timing.js.map +1 -0
  271. package/dist/chat/tiptap-text.cjs +1 -1
  272. package/dist/chat/tiptap-text.js +1 -1
  273. package/dist/chat/use-athena-run-live.cjs +1 -1
  274. package/dist/chat/use-athena-run-live.js +1 -1
  275. package/dist/chat/use-statewire-approval-request.cjs +73 -4
  276. package/dist/chat/use-statewire-approval-request.cjs.map +1 -1
  277. package/dist/chat/use-statewire-approval-request.js +74 -5
  278. package/dist/chat/use-statewire-approval-request.js.map +1 -1
  279. package/dist/chat-ui/composer/composer-message.cjs +284 -0
  280. package/dist/chat-ui/composer/composer-message.cjs.map +1 -0
  281. package/dist/chat-ui/composer/composer-message.d.ts +152 -0
  282. package/dist/chat-ui/composer/composer-message.js +284 -0
  283. package/dist/chat-ui/composer/composer-message.js.map +1 -0
  284. package/dist/chat-ui/composer/tiptap-composer.cjs +97 -15
  285. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  286. package/dist/chat-ui/composer/tiptap-composer.d.ts +34 -6
  287. package/dist/chat-ui/composer/tiptap-composer.js +97 -15
  288. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  289. package/dist/chat-ui/index.cjs +4 -1
  290. package/dist/chat-ui/index.cjs.map +1 -1
  291. package/dist/chat-ui/index.d.ts +3 -2
  292. package/dist/chat-ui/index.js +5 -2
  293. package/dist/chat-ui/index.js.map +1 -1
  294. package/dist/chat-ui/mentions/mention-chip.cjs +31 -3
  295. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  296. package/dist/chat-ui/mentions/mention-chip.d.ts +2 -5
  297. package/dist/chat-ui/mentions/mention-chip.js +33 -5
  298. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  299. package/dist/chat-ui/mentions/mention-extension.cjs +9 -3
  300. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
  301. package/dist/chat-ui/mentions/mention-extension.js +9 -3
  302. package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
  303. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +3 -1
  304. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -1
  305. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js +3 -1
  306. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js.map +1 -1
  307. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +65 -19
  308. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
  309. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +15 -0
  310. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +67 -21
  311. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
  312. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +4 -2
  313. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
  314. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +2 -1
  315. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +5 -3
  316. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
  317. package/dist/chat-ui/mentions/use-account-workspace-id.cjs +61 -0
  318. package/dist/chat-ui/mentions/use-account-workspace-id.cjs.map +1 -0
  319. package/dist/chat-ui/mentions/use-account-workspace-id.d.ts +3 -0
  320. package/dist/chat-ui/mentions/use-account-workspace-id.js +61 -0
  321. package/dist/chat-ui/mentions/use-account-workspace-id.js.map +1 -0
  322. package/dist/chat-ui/mentions/use-member-avatar.cjs +75 -0
  323. package/dist/chat-ui/mentions/use-member-avatar.cjs.map +1 -0
  324. package/dist/chat-ui/mentions/use-member-avatar.d.ts +2 -0
  325. package/dist/chat-ui/mentions/use-member-avatar.js +75 -0
  326. package/dist/chat-ui/mentions/use-member-avatar.js.map +1 -0
  327. package/dist/chat-ui/messages/message-components.cjs +30 -10
  328. package/dist/chat-ui/messages/message-components.cjs.map +1 -1
  329. package/dist/chat-ui/messages/message-components.d.ts +21 -1
  330. package/dist/chat-ui/messages/message-components.js +30 -10
  331. package/dist/chat-ui/messages/message-components.js.map +1 -1
  332. package/dist/chat-ui/messages/runtime-message.cjs +1 -1
  333. package/dist/chat-ui/messages/runtime-message.js +1 -1
  334. package/dist/chat-ui/messages/statewire-continue-run.cjs +5 -5
  335. package/dist/chat-ui/messages/statewire-continue-run.js +5 -5
  336. package/dist/chat-ui/messages/user-edit-composer.cjs +1 -1
  337. package/dist/chat-ui/messages/user-edit-composer.js +1 -1
  338. package/dist/chat-ui/messages/wake-marker.cjs +39 -4
  339. package/dist/chat-ui/messages/wake-marker.cjs.map +1 -1
  340. package/dist/chat-ui/messages/wake-marker.d.ts +16 -5
  341. package/dist/chat-ui/messages/wake-marker.js +40 -5
  342. package/dist/chat-ui/messages/wake-marker.js.map +1 -1
  343. package/dist/chat-ui/rich-text/chat-message-body.cjs +12 -8
  344. package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -1
  345. package/dist/chat-ui/rich-text/chat-message-body.d.ts +6 -1
  346. package/dist/chat-ui/rich-text/chat-message-body.js +13 -9
  347. package/dist/chat-ui/rich-text/chat-message-body.js.map +1 -1
  348. package/dist/chat-ui/rich-text/chat-text-schema.cjs +64 -6
  349. package/dist/chat-ui/rich-text/chat-text-schema.cjs.map +1 -1
  350. package/dist/chat-ui/rich-text/chat-text-schema.d.ts +5 -0
  351. package/dist/chat-ui/rich-text/chat-text-schema.js +66 -8
  352. package/dist/chat-ui/rich-text/chat-text-schema.js.map +1 -1
  353. package/dist/chat-ui/statewire.cjs +1 -1
  354. package/dist/chat-ui/statewire.d.ts +1 -1
  355. package/dist/chat-ui/statewire.js +1 -1
  356. package/dist/chat-ui/thread/statewire-history-edge.cjs +2 -2
  357. package/dist/chat-ui/thread/statewire-history-edge.js +2 -2
  358. package/dist/collab/client.cjs +282 -16
  359. package/dist/collab/client.cjs.map +1 -1
  360. package/dist/collab/client.d.ts +127 -2
  361. package/dist/collab/client.js +285 -20
  362. package/dist/collab/client.js.map +1 -1
  363. package/dist/collab/index.cjs +2 -0
  364. package/dist/collab/index.cjs.map +1 -1
  365. package/dist/collab/index.d.ts +1 -1
  366. package/dist/collab/index.js +3 -1
  367. package/dist/composer/AttachmentContext.cjs +38 -12
  368. package/dist/composer/AttachmentContext.cjs.map +1 -1
  369. package/dist/composer/AttachmentContext.d.ts +22 -1
  370. package/dist/composer/AttachmentContext.js +40 -14
  371. package/dist/composer/AttachmentContext.js.map +1 -1
  372. package/dist/composer/QuoteContext.cjs +80 -28
  373. package/dist/composer/QuoteContext.cjs.map +1 -1
  374. package/dist/composer/QuoteContext.d.ts +35 -6
  375. package/dist/composer/QuoteContext.js +82 -30
  376. package/dist/composer/QuoteContext.js.map +1 -1
  377. package/dist/composer/build-composed-message.cjs +27 -0
  378. package/dist/composer/build-composed-message.cjs.map +1 -1
  379. package/dist/composer/build-composed-message.d.ts +21 -0
  380. package/dist/composer/build-composed-message.js +28 -1
  381. package/dist/composer/build-composed-message.js.map +1 -1
  382. package/dist/composer/composer-handoff.cjs +13 -1
  383. package/dist/composer/composer-handoff.cjs.map +1 -1
  384. package/dist/composer/composer-handoff.d.ts +12 -0
  385. package/dist/composer/composer-handoff.js +15 -3
  386. package/dist/composer/composer-handoff.js.map +1 -1
  387. package/dist/composer/index.d.ts +6 -3
  388. package/dist/composer/useReadComposerDraft.cjs +16 -0
  389. package/dist/composer/useReadComposerDraft.cjs.map +1 -0
  390. package/dist/composer/useReadComposerDraft.d.ts +6 -0
  391. package/dist/composer/useReadComposerDraft.js +16 -0
  392. package/dist/composer/useReadComposerDraft.js.map +1 -0
  393. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
  394. package/dist/diagnostics/athena-diagnostics.d.ts +3 -1
  395. package/dist/diagnostics/athena-diagnostics.js.map +1 -1
  396. package/dist/diagnostics/errors.cjs +6 -0
  397. package/dist/diagnostics/errors.cjs.map +1 -1
  398. package/dist/diagnostics/errors.d.ts +6 -0
  399. package/dist/diagnostics/errors.js +6 -0
  400. package/dist/diagnostics/errors.js.map +1 -1
  401. package/dist/index.cjs +163 -7
  402. package/dist/index.cjs.map +1 -1
  403. package/dist/index.d.ts +55 -12
  404. package/dist/index.js +170 -14
  405. package/dist/index.js.map +1 -1
  406. package/dist/lib/owner-document.cjs +32 -0
  407. package/dist/lib/owner-document.cjs.map +1 -0
  408. package/dist/lib/owner-document.d.ts +17 -0
  409. package/dist/lib/owner-document.js +32 -0
  410. package/dist/lib/owner-document.js.map +1 -0
  411. package/dist/lib/portal-surface.cjs +55 -0
  412. package/dist/lib/portal-surface.cjs.map +1 -0
  413. package/dist/lib/portal-surface.d.ts +37 -0
  414. package/dist/lib/portal-surface.js +55 -0
  415. package/dist/lib/portal-surface.js.map +1 -0
  416. package/dist/lib/use-athena-rest-query.cjs +34 -0
  417. package/dist/lib/use-athena-rest-query.cjs.map +1 -0
  418. package/dist/lib/use-athena-rest-query.d.ts +31 -0
  419. package/dist/lib/use-athena-rest-query.js +34 -0
  420. package/dist/lib/use-athena-rest-query.js.map +1 -0
  421. package/dist/provider/AthenaProvider.cjs +70 -10
  422. package/dist/provider/AthenaProvider.cjs.map +1 -1
  423. package/dist/provider/AthenaProvider.d.ts +27 -2
  424. package/dist/provider/AthenaProvider.js +74 -14
  425. package/dist/provider/AthenaProvider.js.map +1 -1
  426. package/dist/provider/citation-links.d.ts +10 -2
  427. package/dist/{packages/react → react}/package.json.cjs +1 -1
  428. package/dist/{packages/react → react}/package.json.js +1 -1
  429. package/dist/runtime/StatewireModelLaneSync.cjs +96 -0
  430. package/dist/runtime/StatewireModelLaneSync.cjs.map +1 -0
  431. package/dist/runtime/StatewireModelLaneSync.d.ts +45 -0
  432. package/dist/runtime/StatewireModelLaneSync.js +96 -0
  433. package/dist/runtime/StatewireModelLaneSync.js.map +1 -0
  434. package/dist/runtime/statewire-lifecycle.cjs +20 -5
  435. package/dist/runtime/statewire-lifecycle.cjs.map +1 -1
  436. package/dist/runtime/statewire-lifecycle.d.ts +11 -0
  437. package/dist/runtime/statewire-lifecycle.js +20 -5
  438. package/dist/runtime/statewire-lifecycle.js.map +1 -1
  439. package/dist/runtime/statewire-model-lane.cjs +28 -0
  440. package/dist/runtime/statewire-model-lane.cjs.map +1 -0
  441. package/dist/runtime/statewire-model-lane.d.ts +64 -0
  442. package/dist/runtime/statewire-model-lane.js +28 -0
  443. package/dist/runtime/statewire-model-lane.js.map +1 -0
  444. package/dist/runtime/statewire-run-config.cjs +16 -2
  445. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  446. package/dist/runtime/statewire-run-config.d.ts +10 -0
  447. package/dist/runtime/statewire-run-config.js +16 -2
  448. package/dist/runtime/statewire-run-config.js.map +1 -1
  449. package/dist/runtime/statewire-server-lane-context.cjs +24 -0
  450. package/dist/runtime/statewire-server-lane-context.cjs.map +1 -0
  451. package/dist/runtime/statewire-server-lane-context.d.ts +30 -0
  452. package/dist/runtime/statewire-server-lane-context.js +24 -0
  453. package/dist/runtime/statewire-server-lane-context.js.map +1 -0
  454. package/dist/runtime/useAthenaStatewireRuntime.cjs +47 -23
  455. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  456. package/dist/runtime/useAthenaStatewireRuntime.d.ts +8 -1
  457. package/dist/runtime/useAthenaStatewireRuntime.js +48 -24
  458. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  459. package/dist/search/useAthenaRepoSearch.cjs +5 -13
  460. package/dist/search/useAthenaRepoSearch.cjs.map +1 -1
  461. package/dist/search/useAthenaRepoSearch.d.ts +3 -3
  462. package/dist/search/useAthenaRepoSearch.js +6 -14
  463. package/dist/search/useAthenaRepoSearch.js.map +1 -1
  464. package/dist/sheet-range/a1.cjs +162 -0
  465. package/dist/sheet-range/a1.cjs.map +1 -0
  466. package/dist/sheet-range/a1.d.ts +91 -0
  467. package/dist/sheet-range/a1.js +162 -0
  468. package/dist/sheet-range/a1.js.map +1 -0
  469. package/dist/sheet-range/index.cjs +22 -0
  470. package/dist/sheet-range/index.cjs.map +1 -0
  471. package/dist/sheet-range/index.d.ts +12 -0
  472. package/dist/sheet-range/index.js +22 -0
  473. package/dist/sheet-range/index.js.map +1 -0
  474. package/dist/sheet-range/range-preview-table.cjs +75 -0
  475. package/dist/sheet-range/range-preview-table.cjs.map +1 -0
  476. package/dist/sheet-range/range-preview-table.d.ts +20 -0
  477. package/dist/sheet-range/range-preview-table.js +75 -0
  478. package/dist/sheet-range/range-preview-table.js.map +1 -0
  479. package/dist/sheet-range/range-preview.cjs +116 -0
  480. package/dist/sheet-range/range-preview.cjs.map +1 -0
  481. package/dist/sheet-range/range-preview.d.ts +67 -0
  482. package/dist/sheet-range/range-preview.js +116 -0
  483. package/dist/sheet-range/range-preview.js.map +1 -0
  484. package/dist/styles.css +1 -1
  485. package/dist/threads/Inbox.cjs +289 -0
  486. package/dist/threads/Inbox.cjs.map +1 -0
  487. package/dist/threads/Inbox.d.ts +46 -0
  488. package/dist/threads/Inbox.js +289 -0
  489. package/dist/threads/Inbox.js.map +1 -0
  490. package/dist/threads/SessionList.cjs +51 -126
  491. package/dist/threads/SessionList.cjs.map +1 -1
  492. package/dist/threads/SessionList.d.ts +26 -1
  493. package/dist/threads/SessionList.js +45 -120
  494. package/dist/threads/SessionList.js.map +1 -1
  495. package/dist/threads/SessionsPage.cjs +753 -0
  496. package/dist/threads/SessionsPage.cjs.map +1 -0
  497. package/dist/threads/SessionsPage.d.ts +35 -0
  498. package/dist/threads/SessionsPage.js +753 -0
  499. package/dist/threads/SessionsPage.js.map +1 -0
  500. package/dist/threads/api.cjs +23 -2
  501. package/dist/threads/api.cjs.map +1 -1
  502. package/dist/threads/api.d.ts +60 -0
  503. package/dist/threads/api.js +23 -2
  504. package/dist/threads/api.js.map +1 -1
  505. package/dist/threads/conversation-list-fetcher.cjs +9 -2
  506. package/dist/threads/conversation-list-fetcher.cjs.map +1 -1
  507. package/dist/threads/conversation-list-fetcher.d.ts +14 -1
  508. package/dist/threads/conversation-list-fetcher.js +9 -2
  509. package/dist/threads/conversation-list-fetcher.js.map +1 -1
  510. package/dist/threads/index.d.ts +2 -1
  511. package/dist/threads/pull-request-display.cjs +25 -0
  512. package/dist/threads/pull-request-display.cjs.map +1 -0
  513. package/dist/threads/pull-request-display.d.ts +15 -0
  514. package/dist/threads/pull-request-display.js +25 -0
  515. package/dist/threads/pull-request-display.js.map +1 -0
  516. package/dist/threads/session-list-model.cjs +16 -2
  517. package/dist/threads/session-list-model.cjs.map +1 -1
  518. package/dist/threads/session-list-model.d.ts +10 -0
  519. package/dist/threads/session-list-model.js +16 -2
  520. package/dist/threads/session-list-model.js.map +1 -1
  521. package/dist/threads/session-row-parts.cjs +152 -0
  522. package/dist/threads/session-row-parts.cjs.map +1 -0
  523. package/dist/threads/session-row-parts.d.ts +50 -0
  524. package/dist/threads/session-row-parts.js +152 -0
  525. package/dist/threads/session-row-parts.js.map +1 -0
  526. package/dist/threads/sessions-page-model.cjs +305 -0
  527. package/dist/threads/sessions-page-model.cjs.map +1 -0
  528. package/dist/threads/sessions-page-model.d.ts +86 -0
  529. package/dist/threads/sessions-page-model.js +305 -0
  530. package/dist/threads/sessions-page-model.js.map +1 -0
  531. package/dist/threads/sessions-page-storage.cjs +93 -0
  532. package/dist/threads/sessions-page-storage.cjs.map +1 -0
  533. package/dist/threads/sessions-page-storage.d.ts +23 -0
  534. package/dist/threads/sessions-page-storage.js +93 -0
  535. package/dist/threads/sessions-page-storage.js.map +1 -0
  536. package/dist/threads/sessions-query.cjs +235 -0
  537. package/dist/threads/sessions-query.cjs.map +1 -0
  538. package/dist/threads/sessions-query.d.ts +119 -0
  539. package/dist/threads/sessions-query.js +235 -0
  540. package/dist/threads/sessions-query.js.map +1 -0
  541. package/dist/threads/statewire-thread-list.cjs +133 -40
  542. package/dist/threads/statewire-thread-list.cjs.map +1 -1
  543. package/dist/threads/statewire-thread-list.d.ts +83 -2
  544. package/dist/threads/statewire-thread-list.js +134 -41
  545. package/dist/threads/statewire-thread-list.js.map +1 -1
  546. package/dist/threads/use-athena-sessions.cjs +198 -0
  547. package/dist/threads/use-athena-sessions.cjs.map +1 -0
  548. package/dist/threads/use-athena-sessions.d.ts +81 -0
  549. package/dist/threads/use-athena-sessions.js +198 -0
  550. package/dist/threads/use-athena-sessions.js.map +1 -0
  551. package/dist/threads/use-athena-thread-model.cjs +14 -0
  552. package/dist/threads/use-athena-thread-model.cjs.map +1 -0
  553. package/dist/threads/use-athena-thread-model.d.ts +22 -0
  554. package/dist/threads/use-athena-thread-model.js +14 -0
  555. package/dist/threads/use-athena-thread-model.js.map +1 -0
  556. package/dist/threads/use-rest-conversation-history.cjs +1 -1
  557. package/dist/threads/use-rest-conversation-history.js +1 -1
  558. package/dist/threads/use-statewire-conversation-history.cjs +1 -1
  559. package/dist/threads/use-statewire-conversation-history.d.ts +3 -0
  560. package/dist/threads/use-statewire-conversation-history.js +1 -1
  561. package/dist/threads/use-thread-read-state.cjs +73 -0
  562. package/dist/threads/use-thread-read-state.cjs.map +1 -0
  563. package/dist/threads/use-thread-read-state.d.ts +51 -0
  564. package/dist/threads/use-thread-read-state.js +73 -0
  565. package/dist/threads/use-thread-read-state.js.map +1 -0
  566. package/dist/tiptap-markdown-table/src/markdown-table-serializer.cjs.map +1 -0
  567. package/dist/tiptap-markdown-table/src/markdown-table-serializer.js.map +1 -0
  568. package/dist/tools/auto-open-tools.cjs +2 -0
  569. package/dist/tools/auto-open-tools.cjs.map +1 -1
  570. package/dist/tools/auto-open-tools.js +2 -0
  571. package/dist/tools/auto-open-tools.js.map +1 -1
  572. package/dist/tools/file-tool-uis.cjs +18 -43
  573. package/dist/tools/file-tool-uis.cjs.map +1 -1
  574. package/dist/tools/file-tool-uis.d.ts +1 -2
  575. package/dist/tools/file-tool-uis.js +18 -42
  576. package/dist/tools/file-tool-uis.js.map +1 -1
  577. package/dist/tools/index.cjs +6 -2
  578. package/dist/tools/index.cjs.map +1 -1
  579. package/dist/tools/index.d.ts +1 -0
  580. package/dist/tools/index.js +6 -2
  581. package/dist/tools/index.js.map +1 -1
  582. package/dist/tools/misc-tool-uis.cjs +2 -2
  583. package/dist/tools/misc-tool-uis.js +2 -2
  584. package/dist/tools/primitives.cjs +1 -1
  585. package/dist/tools/primitives.js +1 -1
  586. package/dist/tools/read-asset-tool-ui.cjs +21 -70
  587. package/dist/tools/read-asset-tool-ui.cjs.map +1 -1
  588. package/dist/tools/read-asset-tool-ui.js +21 -70
  589. package/dist/tools/read-asset-tool-ui.js.map +1 -1
  590. package/dist/tools/step-text.cjs +21 -0
  591. package/dist/tools/step-text.cjs.map +1 -0
  592. package/dist/tools/step-text.d.ts +10 -0
  593. package/dist/tools/step-text.js +21 -0
  594. package/dist/tools/step-text.js.map +1 -0
  595. package/dist/tools/tool-fallback.cjs +24 -5
  596. package/dist/tools/tool-fallback.cjs.map +1 -1
  597. package/dist/tools/tool-fallback.d.ts +3 -1
  598. package/dist/tools/tool-fallback.js +24 -5
  599. package/dist/tools/tool-fallback.js.map +1 -1
  600. package/dist/tools/tool-summary.cjs +661 -0
  601. package/dist/tools/tool-summary.cjs.map +1 -0
  602. package/dist/tools/tool-summary.d.ts +99 -0
  603. package/dist/tools/tool-summary.js +661 -0
  604. package/dist/tools/tool-summary.js.map +1 -0
  605. package/dist/tools/tool-uis.cjs +37 -95
  606. package/dist/tools/tool-uis.cjs.map +1 -1
  607. package/dist/tools/tool-uis.js +37 -95
  608. package/dist/tools/tool-uis.js.map +1 -1
  609. package/dist/tools/voice-update-tool-ui.cjs +1 -1
  610. package/dist/tools/voice-update-tool-ui.js +1 -1
  611. package/dist/tools/write-todos-tool-ui.cjs +3 -2
  612. package/dist/tools/write-todos-tool-ui.cjs.map +1 -1
  613. package/dist/tools/write-todos-tool-ui.d.ts +5 -0
  614. package/dist/tools/write-todos-tool-ui.js +5 -4
  615. package/dist/tools/write-todos-tool-ui.js.map +1 -1
  616. package/dist/ui/popover.cjs +6 -6
  617. package/dist/ui/popover.cjs.map +1 -1
  618. package/dist/ui/popover.js +6 -6
  619. package/dist/ui/popover.js.map +1 -1
  620. package/dist/ui/tooltip.cjs +16 -2
  621. package/dist/ui/tooltip.cjs.map +1 -1
  622. package/dist/ui/tooltip.d.ts +1 -1
  623. package/dist/ui/tooltip.js +16 -2
  624. package/dist/ui/tooltip.js.map +1 -1
  625. package/dist/version.cjs +1 -1
  626. package/dist/version.js +1 -1
  627. package/dist/voice/use-athena-voice-session.cjs.map +1 -1
  628. package/dist/voice/use-athena-voice-session.d.ts +3 -3
  629. package/dist/voice/use-athena-voice-session.js.map +1 -1
  630. package/dist/workbench/SessionWorkbench.cjs +378 -0
  631. package/dist/workbench/SessionWorkbench.cjs.map +1 -0
  632. package/dist/workbench/SessionWorkbench.d.ts +30 -0
  633. package/dist/workbench/SessionWorkbench.js +378 -0
  634. package/dist/workbench/SessionWorkbench.js.map +1 -0
  635. package/dist/workbench/session-workbench-context.cjs +26 -0
  636. package/dist/workbench/session-workbench-context.cjs.map +1 -0
  637. package/dist/workbench/session-workbench-context.d.ts +55 -0
  638. package/dist/workbench/session-workbench-context.js +26 -0
  639. package/dist/workbench/session-workbench-context.js.map +1 -0
  640. package/dist/workbench/session-workbench-model.cjs +288 -0
  641. package/dist/workbench/session-workbench-model.cjs.map +1 -0
  642. package/dist/workbench/session-workbench-model.d.ts +168 -0
  643. package/dist/workbench/session-workbench-model.js +288 -0
  644. package/dist/workbench/session-workbench-model.js.map +1 -0
  645. package/dist/workbench/session-workbench-panes.cjs +580 -0
  646. package/dist/workbench/session-workbench-panes.cjs.map +1 -0
  647. package/dist/workbench/session-workbench-panes.d.ts +16 -0
  648. package/dist/workbench/session-workbench-panes.js +580 -0
  649. package/dist/workbench/session-workbench-panes.js.map +1 -0
  650. package/dist/workbench/session-workspace-api.cjs +157 -0
  651. package/dist/workbench/session-workspace-api.cjs.map +1 -0
  652. package/dist/workbench/session-workspace-api.d.ts +70 -0
  653. package/dist/workbench/session-workspace-api.js +157 -0
  654. package/dist/workbench/session-workspace-api.js.map +1 -0
  655. package/dist/workbench/use-session-workspace.cjs +100 -0
  656. package/dist/workbench/use-session-workspace.cjs.map +1 -0
  657. package/dist/workbench/use-session-workspace.d.ts +45 -0
  658. package/dist/workbench/use-session-workspace.js +100 -0
  659. package/dist/workbench/use-session-workspace.js.map +1 -0
  660. package/dist/workbench/workbench-layout-context.cjs +10 -0
  661. package/dist/workbench/workbench-layout-context.cjs.map +1 -0
  662. package/dist/workbench/workbench-layout-context.d.ts +17 -0
  663. package/dist/workbench/workbench-layout-context.js +10 -0
  664. package/dist/workbench/workbench-layout-context.js.map +1 -0
  665. package/package.json +21 -10
  666. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +0 -77
  667. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +0 -1
  668. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +0 -77
  669. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +0 -1
  670. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +0 -181
  671. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +0 -1
  672. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +0 -181
  673. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +0 -1
  674. package/dist/packages/agent-runtime/src/asset-attachment.cjs.map +0 -1
  675. package/dist/packages/agent-runtime/src/asset-attachment.js.map +0 -1
  676. package/dist/packages/agent-runtime/src/auth-denial.cjs.map +0 -1
  677. package/dist/packages/agent-runtime/src/auth-denial.js.map +0 -1
  678. package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +0 -1
  679. package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +0 -1
  680. package/dist/packages/agent-runtime/src/client-tools.cjs.map +0 -1
  681. package/dist/packages/agent-runtime/src/client-tools.js.map +0 -1
  682. package/dist/packages/agent-runtime/src/conversation-index.cjs.map +0 -1
  683. package/dist/packages/agent-runtime/src/conversation-index.js.map +0 -1
  684. package/dist/packages/agent-runtime/src/conversation-list.cjs.map +0 -1
  685. package/dist/packages/agent-runtime/src/conversation-list.js.map +0 -1
  686. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +0 -1
  687. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +0 -1
  688. package/dist/packages/agent-runtime/src/edit-command.cjs.map +0 -1
  689. package/dist/packages/agent-runtime/src/edit-command.js.map +0 -1
  690. package/dist/packages/agent-runtime/src/errors.cjs.map +0 -1
  691. package/dist/packages/agent-runtime/src/errors.js.map +0 -1
  692. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +0 -1
  693. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +0 -1
  694. package/dist/packages/agent-runtime/src/github-wake-event.cjs.map +0 -1
  695. package/dist/packages/agent-runtime/src/github-wake-event.js.map +0 -1
  696. package/dist/packages/agent-runtime/src/interrupts.cjs.map +0 -1
  697. package/dist/packages/agent-runtime/src/interrupts.js.map +0 -1
  698. package/dist/packages/agent-runtime/src/message-author.cjs.map +0 -1
  699. package/dist/packages/agent-runtime/src/message-author.js.map +0 -1
  700. package/dist/packages/agent-runtime/src/message-window.cjs.map +0 -1
  701. package/dist/packages/agent-runtime/src/message-window.js.map +0 -1
  702. package/dist/packages/agent-runtime/src/messages.cjs.map +0 -1
  703. package/dist/packages/agent-runtime/src/messages.js.map +0 -1
  704. package/dist/packages/agent-runtime/src/model-context.cjs.map +0 -1
  705. package/dist/packages/agent-runtime/src/model-context.js.map +0 -1
  706. package/dist/packages/agent-runtime/src/optimistic-content.cjs.map +0 -1
  707. package/dist/packages/agent-runtime/src/optimistic-content.js.map +0 -1
  708. package/dist/packages/agent-runtime/src/protocol.cjs.map +0 -1
  709. package/dist/packages/agent-runtime/src/protocol.js.map +0 -1
  710. package/dist/packages/agent-runtime/src/queue.cjs.map +0 -1
  711. package/dist/packages/agent-runtime/src/queue.js.map +0 -1
  712. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +0 -1
  713. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +0 -1
  714. package/dist/packages/agent-runtime/src/runtime-messages.cjs.map +0 -1
  715. package/dist/packages/agent-runtime/src/runtime-messages.js.map +0 -1
  716. package/dist/packages/agent-runtime/src/screen-point.cjs.map +0 -1
  717. package/dist/packages/agent-runtime/src/screen-point.js.map +0 -1
  718. package/dist/packages/agent-runtime/src/send-recovery.cjs.map +0 -1
  719. package/dist/packages/agent-runtime/src/send-recovery.js.map +0 -1
  720. package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs.map +0 -1
  721. package/dist/packages/agent-runtime/src/statewire-attach-observer.js.map +0 -1
  722. package/dist/packages/agent-runtime/src/statewire-state.cjs.map +0 -1
  723. package/dist/packages/agent-runtime/src/statewire-state.js.map +0 -1
  724. package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +0 -1
  725. package/dist/packages/agent-runtime/src/statewire-suspended.js.map +0 -1
  726. package/dist/packages/agent-runtime/src/statewire-transport.cjs +0 -11
  727. package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +0 -1
  728. package/dist/packages/agent-runtime/src/statewire-transport.js +0 -11
  729. package/dist/packages/agent-runtime/src/statewire-transport.js.map +0 -1
  730. package/dist/packages/agent-runtime/src/streaming-markdown.cjs.map +0 -1
  731. package/dist/packages/agent-runtime/src/streaming-markdown.js.map +0 -1
  732. package/dist/packages/agent-runtime/src/thread-extras.cjs.map +0 -1
  733. package/dist/packages/agent-runtime/src/thread-extras.js.map +0 -1
  734. package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +0 -1
  735. package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +0 -1
  736. package/dist/packages/agent-runtime/src/thread-status.cjs.map +0 -1
  737. package/dist/packages/agent-runtime/src/thread-status.js.map +0 -1
  738. package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +0 -1
  739. package/dist/packages/agent-runtime/src/tool-metadata.js.map +0 -1
  740. package/dist/packages/agent-runtime/src/tool-outputs.cjs.map +0 -1
  741. package/dist/packages/agent-runtime/src/tool-outputs.js.map +0 -1
  742. package/dist/packages/agent-runtime/src/tool-result.cjs.map +0 -1
  743. package/dist/packages/agent-runtime/src/tool-result.js.map +0 -1
  744. package/dist/packages/agent-runtime/src/use-conversation-list.cjs.map +0 -1
  745. package/dist/packages/agent-runtime/src/use-conversation-list.js.map +0 -1
  746. package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs +0 -13
  747. package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs.map +0 -1
  748. package/dist/packages/agent-runtime/src/use-deep-agent-config.js +0 -13
  749. package/dist/packages/agent-runtime/src/use-deep-agent-config.js.map +0 -1
  750. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +0 -1
  751. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +0 -1
  752. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +0 -1
  753. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +0 -1
  754. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +0 -1
  755. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +0 -1
  756. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +0 -1
  757. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +0 -1
  758. package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +0 -1
  759. package/dist/packages/agent-runtime/src/voice-presentation.js.map +0 -1
  760. package/dist/packages/agent-runtime/src/voice-turn-grouping.cjs.map +0 -1
  761. package/dist/packages/agent-runtime/src/voice-turn-grouping.js.map +0 -1
  762. package/dist/packages/tiptap-markdown-table/src/markdown-table-serializer.cjs.map +0 -1
  763. package/dist/packages/tiptap-markdown-table/src/markdown-table-serializer.js.map +0 -1
  764. /package/dist/{packages/agent-runtime → agent-runtime}/src/asset-attachment.cjs +0 -0
  765. /package/dist/{packages/agent-runtime → agent-runtime}/src/asset-attachment.js +0 -0
  766. /package/dist/{packages/agent-runtime → agent-runtime}/src/auth-denial.cjs +0 -0
  767. /package/dist/{packages/agent-runtime → agent-runtime}/src/auth-denial.js +0 -0
  768. /package/dist/{packages/agent-runtime → agent-runtime}/src/client-tool-bridge.cjs +0 -0
  769. /package/dist/{packages/agent-runtime → agent-runtime}/src/client-tool-bridge.js +0 -0
  770. /package/dist/{packages/agent-runtime → agent-runtime}/src/client-tools.cjs +0 -0
  771. /package/dist/{packages/agent-runtime → agent-runtime}/src/client-tools.js +0 -0
  772. /package/dist/{packages/agent-runtime → agent-runtime}/src/conversation-index.cjs +0 -0
  773. /package/dist/{packages/agent-runtime → agent-runtime}/src/conversation-index.js +0 -0
  774. /package/dist/{packages/agent-runtime → agent-runtime}/src/edit-command.cjs +0 -0
  775. /package/dist/{packages/agent-runtime → agent-runtime}/src/edit-command.js +0 -0
  776. /package/dist/{packages/agent-runtime → agent-runtime}/src/github-wake-event.cjs +0 -0
  777. /package/dist/{packages/agent-runtime → agent-runtime}/src/github-wake-event.js +0 -0
  778. /package/dist/{packages/agent-runtime → agent-runtime}/src/message-author.cjs +0 -0
  779. /package/dist/{packages/agent-runtime → agent-runtime}/src/message-author.js +0 -0
  780. /package/dist/{packages/agent-runtime → agent-runtime}/src/message-window.cjs +0 -0
  781. /package/dist/{packages/agent-runtime → agent-runtime}/src/message-window.js +0 -0
  782. /package/dist/{packages/agent-runtime → agent-runtime}/src/model-context.cjs +0 -0
  783. /package/dist/{packages/agent-runtime → agent-runtime}/src/model-context.js +0 -0
  784. /package/dist/{packages/agent-runtime → agent-runtime}/src/optimistic-content.cjs +0 -0
  785. /package/dist/{packages/agent-runtime → agent-runtime}/src/optimistic-content.js +0 -0
  786. /package/dist/{packages/agent-runtime → agent-runtime}/src/protocol.cjs +0 -0
  787. /package/dist/{packages/agent-runtime → agent-runtime}/src/protocol.js +0 -0
  788. /package/dist/{packages/agent-runtime → agent-runtime}/src/runtime-messages.cjs +0 -0
  789. /package/dist/{packages/agent-runtime → agent-runtime}/src/runtime-messages.js +0 -0
  790. /package/dist/{packages/agent-runtime → agent-runtime}/src/screen-point.cjs +0 -0
  791. /package/dist/{packages/agent-runtime → agent-runtime}/src/screen-point.js +0 -0
  792. /package/dist/{packages/agent-runtime → agent-runtime}/src/send-recovery.cjs +0 -0
  793. /package/dist/{packages/agent-runtime → agent-runtime}/src/send-recovery.js +0 -0
  794. /package/dist/{packages/agent-runtime → agent-runtime}/src/statewire-attach-observer.cjs +0 -0
  795. /package/dist/{packages/agent-runtime → agent-runtime}/src/statewire-attach-observer.js +0 -0
  796. /package/dist/{packages/agent-runtime → agent-runtime}/src/streaming-markdown.cjs +0 -0
  797. /package/dist/{packages/agent-runtime → agent-runtime}/src/streaming-markdown.js +0 -0
  798. /package/dist/{packages/agent-runtime → agent-runtime}/src/thread-extras.cjs +0 -0
  799. /package/dist/{packages/agent-runtime → agent-runtime}/src/thread-extras.js +0 -0
  800. /package/dist/{packages/agent-runtime → agent-runtime}/src/thread-snapshot-cache.cjs +0 -0
  801. /package/dist/{packages/agent-runtime → agent-runtime}/src/thread-snapshot-cache.js +0 -0
  802. /package/dist/{packages/agent-runtime → agent-runtime}/src/thread-status.cjs +0 -0
  803. /package/dist/{packages/agent-runtime → agent-runtime}/src/thread-status.js +0 -0
  804. /package/dist/{packages/agent-runtime → agent-runtime}/src/tool-outputs.cjs +0 -0
  805. /package/dist/{packages/agent-runtime → agent-runtime}/src/tool-outputs.js +0 -0
  806. /package/dist/{packages/agent-runtime → agent-runtime}/src/tool-result.cjs +0 -0
  807. /package/dist/{packages/agent-runtime → agent-runtime}/src/tool-result.js +0 -0
  808. /package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-runtime.cjs +0 -0
  809. /package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-runtime.js +0 -0
  810. /package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-window-sync.cjs +0 -0
  811. /package/dist/{packages/agent-runtime → agent-runtime}/src/use-deep-agent-window-sync.js +0 -0
  812. /package/dist/{packages/agent-runtime → agent-runtime}/src/voice-turn-grouping.cjs +0 -0
  813. /package/dist/{packages/agent-runtime → agent-runtime}/src/voice-turn-grouping.js +0 -0
  814. /package/dist/{packages/react → react}/package.json.cjs.map +0 -0
  815. /package/dist/{packages/react → react}/package.json.js.map +0 -0
  816. /package/dist/{packages/tiptap-markdown-table → tiptap-markdown-table}/src/markdown-table-serializer.cjs +0 -0
  817. /package/dist/{packages/tiptap-markdown-table → tiptap-markdown-table}/src/markdown-table-serializer.js +0 -0
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const lucideReact = require("lucide-react");
5
+ const reactQuery = require("@tanstack/react-query");
6
+ const react = require("react");
7
+ const useAthenaRestQuery = require("../lib/use-athena-rest-query.cjs");
8
+ const credentialRenewal = require("../runtime/credential-renewal.cjs");
9
+ const popover = require("../ui/popover.cjs");
10
+ const api = require("./api.cjs");
11
+ const SessionList = require("./SessionList.cjs");
12
+ const sessionListModel = require("./session-list-model.cjs");
13
+ const sessionRowParts = require("./session-row-parts.cjs");
14
+ const sessionsPageModel = require("./sessions-page-model.cjs");
15
+ const statewireThreadList = require("./statewire-thread-list.cjs");
16
+ const useAthenaSessions = require("./use-athena-sessions.cjs");
17
+ const cnfast = require("cnfast");
18
+ const INBOX_QUERY = { createdByMe: true, excludeDismissed: true };
19
+ const INBOX_UNREAD_QUERY = { ...INBOX_QUERY, unreadOnly: true };
20
+ const INBOX_PAGE_SIZE = 50;
21
+ function useAthenaInboxUnreadCount() {
22
+ const unread = useAthenaSessions.useAthenaSessions({ query: INBOX_UNREAD_QUERY, pageSize: INBOX_PAGE_SIZE });
23
+ const count = unread.rows.length;
24
+ const hasMore = unread.hasNextPage;
25
+ return {
26
+ count,
27
+ hasMore,
28
+ label: count === 0 ? "" : `${count}${hasMore ? "+" : ""}`,
29
+ isAvailable: unread.isAvailable
30
+ };
31
+ }
32
+ function useInboxDismiss(refresh) {
33
+ const live = react.useContext(statewireThreadList.AthenaSessionsLiveContext);
34
+ const queryClient = useAthenaRestQuery.useAthenaQueryClient();
35
+ const [hidden, setHidden] = react.useState(() => /* @__PURE__ */ new Set());
36
+ const mutation = reactQuery.useMutation(
37
+ {
38
+ mutationKey: ["athena-sdk", "inbox-dismiss", (live == null ? void 0 : live.backendUrl) ?? "", (live == null ? void 0 : live.principal) ?? ""],
39
+ mutationFn: async (threadId) => {
40
+ if (!live) throw new Error("[AthenaSDK] The inbox needs enableThreadList.");
41
+ return credentialRenewal.withCredentialRenewal(
42
+ live.getAuth,
43
+ (auth) => api.dismissThreadFromInbox(live.backendUrl, auth, { threadId, dismissed: true })
44
+ );
45
+ },
46
+ onMutate: (threadId) => setHidden((current) => new Set(current).add(threadId)),
47
+ // The local hide only bridges the write and the refresh after it: once
48
+ // the inbox has re-read, the server decides — a dismissed session comes
49
+ // back with its next message, and a failed dismiss shows it again.
50
+ onSettled: async (_result, _error, threadId) => {
51
+ try {
52
+ await refresh();
53
+ } finally {
54
+ setHidden((current) => {
55
+ if (!current.has(threadId)) return current;
56
+ const next = new Set(current);
57
+ next.delete(threadId);
58
+ return next;
59
+ });
60
+ }
61
+ }
62
+ },
63
+ queryClient
64
+ );
65
+ return { hidden, dismiss: mutation.mutate, pending: mutation.isPending };
66
+ }
67
+ const InboxRow = ({ row, isActive, list, onOpen, onDismiss }) => {
68
+ const chip = sessionsPageModel.inboxStateChip(row);
69
+ const excerpt = sessionsPageModel.plainExcerpt(row.preview);
70
+ return /* @__PURE__ */ jsxRuntime.jsxs(
71
+ "li",
72
+ {
73
+ "data-thread-id": row.id,
74
+ "data-unread": row.isUnread || void 0,
75
+ className: cnfast.cn(
76
+ "group relative flex items-start gap-2 rounded-lg transition-colors hover:bg-muted/40",
77
+ isActive && "bg-muted"
78
+ ),
79
+ children: [
80
+ /* @__PURE__ */ jsxRuntime.jsxs(
81
+ "button",
82
+ {
83
+ type: "button",
84
+ onClick: () => onOpen(row),
85
+ className: cnfast.cn("flex min-w-0 flex-1 items-start gap-2 rounded-lg p-2 pl-2.5 text-left", sessionRowParts.FOCUS_RING_CLASS),
86
+ children: [
87
+ /* @__PURE__ */ jsxRuntime.jsx(
88
+ "span",
89
+ {
90
+ role: row.isUnread ? "img" : void 0,
91
+ "aria-label": row.isUnread ? "Unread" : void 0,
92
+ "aria-hidden": row.isUnread ? void 0 : true,
93
+ className: cnfast.cn("mt-1.5 size-2 shrink-0 rounded-full", row.isUnread ? "bg-primary" : "bg-transparent")
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1", children: [
97
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
98
+ /* @__PURE__ */ jsxRuntime.jsx(
99
+ "span",
100
+ {
101
+ "data-title": true,
102
+ className: cnfast.cn("min-w-0 flex-1 truncate text-foreground text-sm", row.isUnread ? "font-semibold" : "font-medium"),
103
+ children: row.title ?? "Untitled"
104
+ }
105
+ ),
106
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: sessionListModel.relativeTime(row.updatedAt) })
107
+ ] }),
108
+ excerpt ? /* @__PURE__ */ jsxRuntime.jsx("span", { "data-excerpt": true, className: "mt-0.5 line-clamp-2 break-words text-muted-foreground text-xs", children: excerpt }) : null,
109
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 flex", children: /* @__PURE__ */ jsxRuntime.jsx(sessionRowParts.StatusChip, { label: chip.label, tone: chip.tone, detail: row.nextAction }) })
110
+ ] })
111
+ ]
112
+ }
113
+ ),
114
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-row-actions": true, className: "flex shrink-0 items-center gap-0.5 py-2 pr-2", children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx(
116
+ sessionRowParts.RowIconButton,
117
+ {
118
+ label: row.isUnread ? "Mark read" : "Mark unread",
119
+ action: "read-state",
120
+ pending: list.readStatePendingThreadIds.has(row.id),
121
+ onClick: () => list.setReadState({ threadId: row.id, isUnread: !row.isUnread, updatedAt: row.updatedAt }),
122
+ children: row.isUnread ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MailOpenIcon, { className: "size-3.5", "aria-hidden": true }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MailIcon, { className: "size-3.5", "aria-hidden": true })
123
+ }
124
+ ),
125
+ onDismiss ? /* @__PURE__ */ jsxRuntime.jsx(sessionRowParts.RowIconButton, { label: "Dismiss from inbox", action: "dismiss", onClick: () => onDismiss(row.id), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "size-3.5", "aria-hidden": true }) }) : null
126
+ ] })
127
+ ]
128
+ }
129
+ );
130
+ };
131
+ function InboxBody({
132
+ className,
133
+ title = "Inbox",
134
+ defaultTab = "all",
135
+ onOpenSession,
136
+ list
137
+ }) {
138
+ var _a;
139
+ const [tab, setTab] = react.useState(defaultTab);
140
+ const all = useAthenaSessions.useAthenaSessions({ query: INBOX_QUERY, pageSize: INBOX_PAGE_SIZE });
141
+ const unread = useAthenaSessions.useAthenaSessions({ query: INBOX_UNREAD_QUERY, pageSize: INBOX_PAGE_SIZE });
142
+ const shown = tab === "unread" ? unread : all;
143
+ const refreshBoth = async () => {
144
+ await Promise.all([all.refresh(), unread.refresh()]);
145
+ };
146
+ const dismissal = useInboxDismiss(refreshBoth);
147
+ const canDismiss = ((_a = shown.supportedFilters) == null ? void 0 : _a.has("exclude_dismissed")) ?? false;
148
+ const rows = react.useMemo(
149
+ () => shown.rows.filter((row) => !dismissal.hidden.has(row.id)),
150
+ [shown.rows, dismissal.hidden]
151
+ );
152
+ const unreadRows = unread.rows.filter((row) => !dismissal.hidden.has(row.id));
153
+ const unreadLabel = `${unreadRows.length}${unread.hasNextPage ? "+" : ""}`;
154
+ const allLabel = `${all.rows.filter((row) => !dismissal.hidden.has(row.id)).length}${all.hasNextPage ? "+" : ""}`;
155
+ const open = (row) => {
156
+ list.selectThread(row.id);
157
+ if (row.isUnread) {
158
+ list.setReadState({ threadId: row.id, isUnread: false, updatedAt: row.updatedAt });
159
+ }
160
+ onOpenSession == null ? void 0 : onOpenSession({ threadId: row.id, title: row.title });
161
+ };
162
+ const markAllRead = () => {
163
+ for (const row of unreadRows) {
164
+ list.setReadState({ threadId: row.id, isUnread: false, updatedAt: row.updatedAt });
165
+ }
166
+ };
167
+ const showSkeleton = rows.length === 0 && (!shown.hasResolvedFirstPage || shown.isFetching);
168
+ const notice = shown.unavailableFields.length > 0 ? "This Athena server cannot narrow the inbox to your own, undismissed sessions yet, so it lists every session you can see." : null;
169
+ const tabClass = (active) => cnfast.cn(
170
+ "inline-flex h-7 items-center gap-1.5 rounded-md px-2.5 font-medium text-xs transition-colors",
171
+ active ? "bg-muted text-foreground" : "text-muted-foreground hover:text-foreground",
172
+ sessionRowParts.FOCUS_RING_CLASS
173
+ );
174
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "inbox", className: cnfast.cn("athena-sdk-chrome flex min-h-0 flex-col gap-2", className), children: [
175
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 px-1", children: [
176
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-semibold text-foreground text-sm", children: title }),
177
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "tablist", "aria-label": "Inbox", className: "flex items-center gap-0.5", children: [
178
+ /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", role: "tab", "aria-selected": tab === "all", onClick: () => setTab("all"), className: tabClass(tab === "all"), children: [
179
+ "All",
180
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "data-testid": "inbox-all-count", className: "text-muted-foreground", children: allLabel })
181
+ ] }),
182
+ /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", role: "tab", "aria-selected": tab === "unread", onClick: () => setTab("unread"), className: tabClass(tab === "unread"), children: [
183
+ "Unread",
184
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "data-testid": "inbox-unread-count", className: "text-muted-foreground", children: unreadLabel })
185
+ ] })
186
+ ] }),
187
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
188
+ /* @__PURE__ */ jsxRuntime.jsxs(
189
+ "button",
190
+ {
191
+ type: "button",
192
+ onClick: markAllRead,
193
+ disabled: unreadRows.length === 0,
194
+ className: cnfast.cn(
195
+ "inline-flex h-7 items-center gap-1 rounded-md px-2 text-muted-foreground text-xs transition-colors hover:bg-muted hover:text-foreground disabled:opacity-50",
196
+ sessionRowParts.FOCUS_RING_CLASS
197
+ ),
198
+ title: "Mark the loaded unread sessions read",
199
+ children: [
200
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCheckIcon, { className: "size-3.5", "aria-hidden": true }),
201
+ "Mark all read"
202
+ ]
203
+ }
204
+ )
205
+ ] }),
206
+ notice ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "status", "data-testid": "inbox-degraded", className: "mx-1 rounded-md border border-amber-200 bg-amber-50 px-2.5 py-1.5 text-[11px] text-amber-900", children: notice }) : null,
207
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto", children: [
208
+ showSkeleton ? /* @__PURE__ */ jsxRuntime.jsx(SessionList.SessionListSkeleton, { rows: 4 }) : rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "inbox-empty", className: "px-3 py-8 text-center text-muted-foreground text-xs", children: tab === "unread" ? "You are all caught up." : "Nothing in your inbox." }) : /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5", "aria-busy": shown.isFetching || void 0, children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx(
209
+ InboxRow,
210
+ {
211
+ row,
212
+ isActive: row.id === list.activeThreadId,
213
+ list,
214
+ onOpen: open,
215
+ onDismiss: canDismiss ? dismissal.dismiss : null
216
+ },
217
+ row.id
218
+ )) }),
219
+ shown.hasNextPage && !showSkeleton ? /* @__PURE__ */ jsxRuntime.jsx(
220
+ "button",
221
+ {
222
+ type: "button",
223
+ onClick: shown.fetchNextPage,
224
+ disabled: shown.isFetchingNextPage,
225
+ className: cnfast.cn("mt-1 w-full rounded-md py-2 text-muted-foreground text-xs transition-colors hover:bg-muted disabled:opacity-50", sessionRowParts.FOCUS_RING_CLASS),
226
+ children: shown.isFetchingNextPage ? "Loading…" : "Load more"
227
+ }
228
+ ) : null
229
+ ] })
230
+ ] });
231
+ }
232
+ function Inbox(props) {
233
+ const list = statewireThreadList.useAthenaStatewireThreadList();
234
+ const live = react.useContext(statewireThreadList.AthenaSessionsLiveContext);
235
+ if (!list || !live) return null;
236
+ return /* @__PURE__ */ jsxRuntime.jsx(InboxBody, { ...props, list });
237
+ }
238
+ function InboxButtonBody({ className, panelClassName, align = "end", onOpenSession, ...inboxProps }) {
239
+ const [open, setOpen] = react.useState(false);
240
+ const unread = useAthenaInboxUnreadCount();
241
+ return /* @__PURE__ */ jsxRuntime.jsxs(popover.Popover, { open, onOpenChange: setOpen, children: [
242
+ /* @__PURE__ */ jsxRuntime.jsx(popover.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
243
+ "button",
244
+ {
245
+ type: "button",
246
+ "aria-label": unread.count > 0 ? `Inbox, ${unread.label} unread` : "Inbox",
247
+ "data-testid": "inbox-button",
248
+ className: cnfast.cn(
249
+ "relative inline-flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
250
+ sessionRowParts.FOCUS_RING_CLASS,
251
+ className
252
+ ),
253
+ children: [
254
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellIcon, { className: "size-4", "aria-hidden": true }),
255
+ unread.count > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
256
+ "span",
257
+ {
258
+ "data-testid": "inbox-badge",
259
+ className: "absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 font-semibold text-[10px] text-primary-foreground leading-none",
260
+ children: unread.label
261
+ }
262
+ ) : null
263
+ ]
264
+ }
265
+ ) }),
266
+ /* @__PURE__ */ jsxRuntime.jsx(popover.PopoverContent, { align, className: cnfast.cn("flex max-h-[70vh] w-96 flex-col p-2", panelClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
267
+ Inbox,
268
+ {
269
+ ...inboxProps,
270
+ onOpenSession: (target) => {
271
+ setOpen(false);
272
+ onOpenSession == null ? void 0 : onOpenSession(target);
273
+ }
274
+ }
275
+ ) })
276
+ ] });
277
+ }
278
+ function InboxButton(props) {
279
+ const live = react.useContext(statewireThreadList.AthenaSessionsLiveContext);
280
+ if (!live) return null;
281
+ return /* @__PURE__ */ jsxRuntime.jsx(InboxButtonBody, { ...props });
282
+ }
283
+ exports.INBOX_PAGE_SIZE = INBOX_PAGE_SIZE;
284
+ exports.INBOX_QUERY = INBOX_QUERY;
285
+ exports.INBOX_UNREAD_QUERY = INBOX_UNREAD_QUERY;
286
+ exports.Inbox = Inbox;
287
+ exports.InboxButton = InboxButton;
288
+ exports.useAthenaInboxUnreadCount = useAthenaInboxUnreadCount;
289
+ //# sourceMappingURL=Inbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Inbox.cjs","sources":["../../src/threads/Inbox.tsx"],"sourcesContent":["/**\n * `Inbox` and `InboxButton` — the Devin-style notifications inbox over the\n * session list, with no endpoint of its own:\n *\n * - **What is in it.** The viewer's own sessions, newest activity first, minus\n * the ones dismissed from the inbox — the same set Athena's inbox shows —\n * read through `POST /api/conversations/threads/list` with\n * `created_by_me` + `exclude_dismissed` (+ `unread_only` for the Unread\n * tab). Each row is the session's title, its latest message, a state chip\n * (Needs you / Working / PR merged / Answered …) and an unread dot.\n * - **Live.** The rows fold the per-user conversation index like every other\n * list under the provider, so a session flipping to \"needs you\" or getting\n * a new message moves in place.\n * - **Writes.** Opening a row (or \"Mark read\") stores the read receipt through\n * `POST /api/conversations/threads/read-state`; \"Dismiss\" uses\n * `POST /api/conversations/threads/notifications/dismiss` (EDIT on the\n * session — a dismissed session comes back with its next message).\n * - **Counts.** The unread badge counts the unread page (50 rows); past that\n * it reads `50+`.\n *\n * Renders nothing outside `<AthenaProvider enableThreadList>`.\n */\nimport { BellIcon, CheckCheckIcon, MailIcon, MailOpenIcon, XIcon } from 'lucide-react';\nimport { useMutation } from '@tanstack/react-query';\nimport type { FC } from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport { cn } from '../lib/utils';\nimport { useAthenaQueryClient } from '../lib/use-athena-rest-query';\nimport { withCredentialRenewal } from '../runtime/credential-renewal';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\nimport { dismissThreadFromInbox } from './api';\nimport { SessionListSkeleton, type SessionOpenTarget } from './SessionList';\nimport { relativeTime } from './session-list-model';\nimport { FOCUS_RING_CLASS, RowIconButton, StatusChip } from './session-row-parts';\nimport { inboxStateChip, plainExcerpt } from './sessions-page-model';\nimport type { AthenaSessionsQuery } from './sessions-query';\nimport {\n AthenaSessionsLiveContext,\n type AthenaStatewireThreadListState,\n type AthenaStatewireThreadSummary,\n useAthenaStatewireThreadList,\n} from './statewire-thread-list';\nimport { type AthenaSessionsList, useAthenaSessions } from './use-athena-sessions';\n\n/** The inbox's sessions: the viewer's own, not dismissed, newest activity first. */\nexport const INBOX_QUERY: AthenaSessionsQuery = { createdByMe: true, excludeDismissed: true };\n/** The Unread tab, and what the badge counts. */\nexport const INBOX_UNREAD_QUERY: AthenaSessionsQuery = { ...INBOX_QUERY, unreadOnly: true };\n\n/** Rows per inbox page — and the badge's ceiling before it reads `50+`. */\nexport const INBOX_PAGE_SIZE = 50;\n\nexport type InboxTab = 'all' | 'unread';\n\nexport interface AthenaInboxUnreadCount {\n /** Unread sessions loaded (at most one page). */\n count: number;\n /** More unread sessions exist beyond `count`. */\n hasMore: boolean;\n /** `count` with `+` when there are more, `''` for none. */\n label: string;\n isAvailable: boolean;\n}\n\n/** The unread count the inbox badge shows; shares the Unread tab's cache. */\nexport function useAthenaInboxUnreadCount(): AthenaInboxUnreadCount {\n const unread = useAthenaSessions({ query: INBOX_UNREAD_QUERY, pageSize: INBOX_PAGE_SIZE });\n const count = unread.rows.length;\n const hasMore = unread.hasNextPage;\n return {\n count,\n hasMore,\n label: count === 0 ? '' : `${count}${hasMore ? '+' : ''}`,\n isAvailable: unread.isAvailable,\n };\n}\n\n/** Dismiss from the inbox: hidden at once, back on failure, the inbox lists refreshed after. */\nfunction useInboxDismiss(refresh: () => Promise<void>) {\n const live = useContext(AthenaSessionsLiveContext);\n const queryClient = useAthenaQueryClient();\n const [hidden, setHidden] = useState<ReadonlySet<string>>(() => new Set());\n const mutation = useMutation(\n {\n mutationKey: ['athena-sdk', 'inbox-dismiss', live?.backendUrl ?? '', live?.principal ?? ''],\n mutationFn: async (threadId: string) => {\n if (!live) throw new Error('[AthenaSDK] The inbox needs enableThreadList.');\n return withCredentialRenewal(live.getAuth, (auth) =>\n dismissThreadFromInbox(live.backendUrl, auth, { threadId, dismissed: true }),\n );\n },\n onMutate: (threadId) => setHidden((current) => new Set(current).add(threadId)),\n // The local hide only bridges the write and the refresh after it: once\n // the inbox has re-read, the server decides — a dismissed session comes\n // back with its next message, and a failed dismiss shows it again.\n onSettled: async (_result, _error, threadId) => {\n try {\n await refresh();\n } finally {\n setHidden((current) => {\n if (!current.has(threadId)) return current;\n const next = new Set(current);\n next.delete(threadId);\n return next;\n });\n }\n },\n },\n queryClient,\n );\n return { hidden, dismiss: mutation.mutate, pending: mutation.isPending };\n}\n\nconst InboxRow: FC<{\n row: AthenaStatewireThreadSummary;\n isActive: boolean;\n list: AthenaStatewireThreadListState;\n onOpen: (row: AthenaStatewireThreadSummary) => void;\n onDismiss: ((threadId: string) => void) | null;\n}> = ({ row, isActive, list, onOpen, onDismiss }) => {\n const chip = inboxStateChip(row);\n const excerpt = plainExcerpt(row.preview);\n return (\n <li\n data-thread-id={row.id}\n data-unread={row.isUnread || undefined}\n className={cn(\n 'group relative flex items-start gap-2 rounded-lg transition-colors hover:bg-muted/40',\n isActive && 'bg-muted',\n )}\n >\n <button\n type=\"button\"\n onClick={() => onOpen(row)}\n className={cn('flex min-w-0 flex-1 items-start gap-2 rounded-lg p-2 pl-2.5 text-left', FOCUS_RING_CLASS)}\n >\n <span\n role={row.isUnread ? 'img' : undefined}\n aria-label={row.isUnread ? 'Unread' : undefined}\n aria-hidden={row.isUnread ? undefined : true}\n className={cn('mt-1.5 size-2 shrink-0 rounded-full', row.isUnread ? 'bg-primary' : 'bg-transparent')}\n />\n <span className=\"min-w-0 flex-1\">\n <span className=\"flex items-center gap-2\">\n <span\n data-title\n className={cn('min-w-0 flex-1 truncate text-foreground text-sm', row.isUnread ? 'font-semibold' : 'font-medium')}\n >\n {row.title ?? 'Untitled'}\n </span>\n <span className=\"shrink-0 text-[11px] text-muted-foreground\">{relativeTime(row.updatedAt)}</span>\n </span>\n {excerpt ? (\n <span data-excerpt className=\"mt-0.5 line-clamp-2 break-words text-muted-foreground text-xs\">\n {excerpt}\n </span>\n ) : null}\n <span className=\"mt-1 flex\">\n <StatusChip label={chip.label} tone={chip.tone} detail={row.nextAction} />\n </span>\n </span>\n </button>\n <div data-row-actions className=\"flex shrink-0 items-center gap-0.5 py-2 pr-2\">\n <RowIconButton\n label={row.isUnread ? 'Mark read' : 'Mark unread'}\n action=\"read-state\"\n pending={list.readStatePendingThreadIds.has(row.id)}\n onClick={() =>\n list.setReadState({ threadId: row.id, isUnread: !row.isUnread, updatedAt: row.updatedAt })\n }\n >\n {row.isUnread ? <MailOpenIcon className=\"size-3.5\" aria-hidden /> : <MailIcon className=\"size-3.5\" aria-hidden />}\n </RowIconButton>\n {onDismiss ? (\n <RowIconButton label=\"Dismiss from inbox\" action=\"dismiss\" onClick={() => onDismiss(row.id)}>\n <XIcon className=\"size-3.5\" aria-hidden />\n </RowIconButton>\n ) : null}\n </div>\n </li>\n );\n};\n\nexport interface InboxProps {\n className?: string;\n /** Heading (default \"Inbox\"). */\n title?: string;\n /** The tab it opens on (default `all`). */\n defaultTab?: InboxTab;\n /** Called after a row is opened (selected and marked read), so a host can show its chat. */\n onOpenSession?: (target: SessionOpenTarget) => void;\n}\n\nfunction InboxBody({\n className,\n title = 'Inbox',\n defaultTab = 'all',\n onOpenSession,\n list,\n}: InboxProps & { list: AthenaStatewireThreadListState }) {\n const [tab, setTab] = useState<InboxTab>(defaultTab);\n const all = useAthenaSessions({ query: INBOX_QUERY, pageSize: INBOX_PAGE_SIZE });\n const unread = useAthenaSessions({ query: INBOX_UNREAD_QUERY, pageSize: INBOX_PAGE_SIZE });\n const shown: AthenaSessionsList = tab === 'unread' ? unread : all;\n const refreshBoth = async () => {\n await Promise.all([all.refresh(), unread.refresh()]);\n };\n const dismissal = useInboxDismiss(refreshBoth);\n // Dismissal is only offered where the server can leave dismissed sessions\n // out of the inbox; elsewhere a dismissed row would stay in the list.\n const canDismiss = shown.supportedFilters?.has('exclude_dismissed') ?? false;\n const rows = useMemo(\n () => shown.rows.filter((row) => !dismissal.hidden.has(row.id)),\n [shown.rows, dismissal.hidden],\n );\n const unreadRows = unread.rows.filter((row) => !dismissal.hidden.has(row.id));\n const unreadLabel = `${unreadRows.length}${unread.hasNextPage ? '+' : ''}`;\n const allLabel = `${all.rows.filter((row) => !dismissal.hidden.has(row.id)).length}${all.hasNextPage ? '+' : ''}`;\n\n const open = (row: AthenaStatewireThreadSummary) => {\n list.selectThread(row.id);\n if (row.isUnread) {\n list.setReadState({ threadId: row.id, isUnread: false, updatedAt: row.updatedAt });\n }\n onOpenSession?.({ threadId: row.id, title: row.title });\n };\n const markAllRead = () => {\n for (const row of unreadRows) {\n list.setReadState({ threadId: row.id, isUnread: false, updatedAt: row.updatedAt });\n }\n };\n const showSkeleton = rows.length === 0 && (!shown.hasResolvedFirstPage || shown.isFetching);\n const notice =\n shown.unavailableFields.length > 0\n ? 'This Athena server cannot narrow the inbox to your own, undismissed sessions yet, so it lists every session you can see.'\n : null;\n\n const tabClass = (active: boolean) =>\n cn(\n 'inline-flex h-7 items-center gap-1.5 rounded-md px-2.5 font-medium text-xs transition-colors',\n active ? 'bg-muted text-foreground' : 'text-muted-foreground hover:text-foreground',\n FOCUS_RING_CLASS,\n );\n\n return (\n <div data-testid=\"inbox\" className={cn('athena-sdk-chrome flex min-h-0 flex-col gap-2', className)}>\n <div className=\"flex items-center gap-2 px-1\">\n <h2 className=\"font-semibold text-foreground text-sm\">{title}</h2>\n <div role=\"tablist\" aria-label=\"Inbox\" className=\"flex items-center gap-0.5\">\n <button type=\"button\" role=\"tab\" aria-selected={tab === 'all'} onClick={() => setTab('all')} className={tabClass(tab === 'all')}>\n All\n <span data-testid=\"inbox-all-count\" className=\"text-muted-foreground\">\n {allLabel}\n </span>\n </button>\n <button type=\"button\" role=\"tab\" aria-selected={tab === 'unread'} onClick={() => setTab('unread')} className={tabClass(tab === 'unread')}>\n Unread\n <span data-testid=\"inbox-unread-count\" className=\"text-muted-foreground\">\n {unreadLabel}\n </span>\n </button>\n </div>\n <div className=\"flex-1\" />\n <button\n type=\"button\"\n onClick={markAllRead}\n disabled={unreadRows.length === 0}\n className={cn(\n 'inline-flex h-7 items-center gap-1 rounded-md px-2 text-muted-foreground text-xs transition-colors hover:bg-muted hover:text-foreground disabled:opacity-50',\n FOCUS_RING_CLASS,\n )}\n title=\"Mark the loaded unread sessions read\"\n >\n <CheckCheckIcon className=\"size-3.5\" aria-hidden />\n Mark all read\n </button>\n </div>\n {notice ? (\n <p role=\"status\" data-testid=\"inbox-degraded\" className=\"mx-1 rounded-md border border-amber-200 bg-amber-50 px-2.5 py-1.5 text-[11px] text-amber-900\">\n {notice}\n </p>\n ) : null}\n <div className=\"min-h-0 flex-1 overflow-y-auto\">\n {showSkeleton ? (\n <SessionListSkeleton rows={4} />\n ) : rows.length === 0 ? (\n <p data-testid=\"inbox-empty\" className=\"px-3 py-8 text-center text-muted-foreground text-xs\">\n {tab === 'unread' ? 'You are all caught up.' : 'Nothing in your inbox.'}\n </p>\n ) : (\n <ul className=\"flex flex-col gap-0.5\" aria-busy={shown.isFetching || undefined}>\n {rows.map((row) => (\n <InboxRow\n key={row.id}\n row={row}\n isActive={row.id === list.activeThreadId}\n list={list}\n onOpen={open}\n onDismiss={canDismiss ? dismissal.dismiss : null}\n />\n ))}\n </ul>\n )}\n {shown.hasNextPage && !showSkeleton ? (\n <button\n type=\"button\"\n onClick={shown.fetchNextPage}\n disabled={shown.isFetchingNextPage}\n className={cn('mt-1 w-full rounded-md py-2 text-muted-foreground text-xs transition-colors hover:bg-muted disabled:opacity-50', FOCUS_RING_CLASS)}\n >\n {shown.isFetchingNextPage ? 'Loading…' : 'Load more'}\n </button>\n ) : null}\n </div>\n </div>\n );\n}\n\n/**\n * The notifications inbox: All / Unread tabs with counts, rows of title,\n * latest message, state chip and unread dot, mark read / mark all read and\n * dismiss. Renders nothing outside `<AthenaProvider enableThreadList>`.\n */\nexport function Inbox(props: InboxProps) {\n const list = useAthenaStatewireThreadList();\n const live = useContext(AthenaSessionsLiveContext);\n if (!list || !live) return null;\n return <InboxBody {...props} list={list} />;\n}\n\nexport interface InboxButtonProps extends Omit<InboxProps, 'className'> {\n className?: string;\n /** Classes for the popover panel. */\n panelClassName?: string;\n align?: 'start' | 'center' | 'end';\n}\n\nfunction InboxButtonBody({ className, panelClassName, align = 'end', onOpenSession, ...inboxProps }: InboxButtonProps) {\n const [open, setOpen] = useState(false);\n const unread = useAthenaInboxUnreadCount();\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={unread.count > 0 ? `Inbox, ${unread.label} unread` : 'Inbox'}\n data-testid=\"inbox-button\"\n className={cn(\n 'relative inline-flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground',\n FOCUS_RING_CLASS,\n className,\n )}\n >\n <BellIcon className=\"size-4\" aria-hidden />\n {unread.count > 0 ? (\n <span\n data-testid=\"inbox-badge\"\n className=\"absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 font-semibold text-[10px] text-primary-foreground leading-none\"\n >\n {unread.label}\n </span>\n ) : null}\n </button>\n </PopoverTrigger>\n <PopoverContent align={align} className={cn('flex max-h-[70vh] w-96 flex-col p-2', panelClassName)}>\n <Inbox\n {...inboxProps}\n onOpenSession={(target) => {\n setOpen(false);\n onOpenSession?.(target);\n }}\n />\n </PopoverContent>\n </Popover>\n );\n}\n\n/**\n * A bell with the unread count that opens `Inbox` in a popover. Renders\n * nothing outside `<AthenaProvider enableThreadList>`.\n */\nexport function InboxButton(props: InboxButtonProps) {\n const live = useContext(AthenaSessionsLiveContext);\n if (!live) return null;\n return <InboxButtonBody {...props} />;\n}\n"],"names":["useAthenaSessions","useContext","AthenaSessionsLiveContext","useAthenaQueryClient","useState","useMutation","withCredentialRenewal","dismissThreadFromInbox","inboxStateChip","plainExcerpt","jsxs","cn","FOCUS_RING_CLASS","jsx","relativeTime","StatusChip","RowIconButton","MailOpenIcon","MailIcon","XIcon","useMemo","CheckCheckIcon","SessionListSkeleton","useAthenaStatewireThreadList","Popover","PopoverTrigger","BellIcon","PopoverContent"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { type SessionOpenTarget } from './SessionList';
2
+ import type { AthenaSessionsQuery } from './sessions-query';
3
+ /** The inbox's sessions: the viewer's own, not dismissed, newest activity first. */
4
+ export declare const INBOX_QUERY: AthenaSessionsQuery;
5
+ /** The Unread tab, and what the badge counts. */
6
+ export declare const INBOX_UNREAD_QUERY: AthenaSessionsQuery;
7
+ /** Rows per inbox page — and the badge's ceiling before it reads `50+`. */
8
+ export declare const INBOX_PAGE_SIZE = 50;
9
+ export type InboxTab = 'all' | 'unread';
10
+ export interface AthenaInboxUnreadCount {
11
+ /** Unread sessions loaded (at most one page). */
12
+ count: number;
13
+ /** More unread sessions exist beyond `count`. */
14
+ hasMore: boolean;
15
+ /** `count` with `+` when there are more, `''` for none. */
16
+ label: string;
17
+ isAvailable: boolean;
18
+ }
19
+ /** The unread count the inbox badge shows; shares the Unread tab's cache. */
20
+ export declare function useAthenaInboxUnreadCount(): AthenaInboxUnreadCount;
21
+ export interface InboxProps {
22
+ className?: string;
23
+ /** Heading (default "Inbox"). */
24
+ title?: string;
25
+ /** The tab it opens on (default `all`). */
26
+ defaultTab?: InboxTab;
27
+ /** Called after a row is opened (selected and marked read), so a host can show its chat. */
28
+ onOpenSession?: (target: SessionOpenTarget) => void;
29
+ }
30
+ /**
31
+ * The notifications inbox: All / Unread tabs with counts, rows of title,
32
+ * latest message, state chip and unread dot, mark read / mark all read and
33
+ * dismiss. Renders nothing outside `<AthenaProvider enableThreadList>`.
34
+ */
35
+ export declare function Inbox(props: InboxProps): import("react").JSX.Element | null;
36
+ export interface InboxButtonProps extends Omit<InboxProps, 'className'> {
37
+ className?: string;
38
+ /** Classes for the popover panel. */
39
+ panelClassName?: string;
40
+ align?: 'start' | 'center' | 'end';
41
+ }
42
+ /**
43
+ * A bell with the unread count that opens `Inbox` in a popover. Renders
44
+ * nothing outside `<AthenaProvider enableThreadList>`.
45
+ */
46
+ export declare function InboxButton(props: InboxButtonProps): import("react").JSX.Element | null;