@athenaintel/react 0.18.0 → 0.20.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 (848) hide show
  1. package/README.md +195 -7
  2. package/dist/assets/AssetPanel.cjs +277 -0
  3. package/dist/assets/AssetPanel.cjs.map +1 -0
  4. package/dist/assets/AssetPanel.js +277 -0
  5. package/dist/assets/AssetPanel.js.map +1 -0
  6. package/dist/assets/AthenaAssetEmbed.cjs +151 -0
  7. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -0
  8. package/dist/assets/AthenaAssetEmbed.js +151 -0
  9. package/dist/assets/AthenaAssetEmbed.js.map +1 -0
  10. package/dist/assets/AthenaLayout.cjs +69 -0
  11. package/dist/assets/AthenaLayout.cjs.map +1 -0
  12. package/dist/assets/AthenaLayout.js +69 -0
  13. package/dist/assets/AthenaLayout.js.map +1 -0
  14. package/dist/assets/asset-embed-messages.cjs +39 -0
  15. package/dist/assets/asset-embed-messages.cjs.map +1 -0
  16. package/dist/assets/asset-embed-messages.js +39 -0
  17. package/dist/assets/asset-embed-messages.js.map +1 -0
  18. package/dist/assets/asset-panel-store.cjs +124 -0
  19. package/dist/assets/asset-panel-store.cjs.map +1 -0
  20. package/dist/assets/asset-panel-store.js +124 -0
  21. package/dist/assets/asset-panel-store.js.map +1 -0
  22. package/dist/assets/asset-panel-url.cjs +40 -0
  23. package/dist/assets/asset-panel-url.cjs.map +1 -0
  24. package/dist/assets/asset-panel-url.js +40 -0
  25. package/dist/assets/asset-panel-url.js.map +1 -0
  26. package/dist/assets/use-asset-embed.cjs +362 -0
  27. package/dist/assets/use-asset-embed.cjs.map +1 -0
  28. package/dist/assets/use-asset-embed.js +362 -0
  29. package/dist/assets/use-asset-embed.js.map +1 -0
  30. package/dist/{AthenaAuthContext-B3AwLA5Z.cjs → auth/AthenaAuthContext.cjs} +5 -4
  31. package/dist/auth/AthenaAuthContext.cjs.map +1 -0
  32. package/dist/{AthenaAuthContext-DQsdayH2.js → auth/AthenaAuthContext.js} +3 -3
  33. package/dist/auth/AthenaAuthContext.js.map +1 -0
  34. package/dist/auth/AthenaAuthProvider.cjs +141 -0
  35. package/dist/auth/AthenaAuthProvider.cjs.map +1 -0
  36. package/dist/auth/AthenaAuthProvider.js +141 -0
  37. package/dist/auth/AthenaAuthProvider.js.map +1 -0
  38. package/dist/{auth.cjs → auth/AthenaSSOProvider.cjs} +14 -151
  39. package/dist/auth/AthenaSSOProvider.cjs.map +1 -0
  40. package/dist/{auth.js → auth/AthenaSSOProvider.js} +4 -142
  41. package/dist/auth/AthenaSSOProvider.js.map +1 -0
  42. package/dist/auth/index.cjs +10 -0
  43. package/dist/auth/index.cjs.map +1 -0
  44. package/dist/auth/index.js +10 -0
  45. package/dist/auth/index.js.map +1 -0
  46. package/dist/chat/AthenaChat.cjs +753 -0
  47. package/dist/chat/AthenaChat.cjs.map +1 -0
  48. package/dist/chat/AthenaChat.d.ts +3 -2
  49. package/dist/chat/AthenaChat.js +753 -0
  50. package/dist/chat/AthenaChat.js.map +1 -0
  51. package/dist/chat/AthenaChatErrorBoundary.cjs +53 -0
  52. package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -0
  53. package/dist/chat/AthenaChatErrorBoundary.js +53 -0
  54. package/dist/chat/AthenaChatErrorBoundary.js.map +1 -0
  55. package/dist/chat/StatewireApprovalCard.cjs +171 -0
  56. package/dist/chat/StatewireApprovalCard.cjs.map +1 -0
  57. package/dist/chat/StatewireApprovalCard.d.ts +59 -2
  58. package/dist/chat/StatewireApprovalCard.js +171 -0
  59. package/dist/chat/StatewireApprovalCard.js.map +1 -0
  60. package/dist/chat/StatewireClientToolBridge.cjs +50 -0
  61. package/dist/chat/StatewireClientToolBridge.cjs.map +1 -0
  62. package/dist/chat/StatewireClientToolBridge.d.ts +3 -3
  63. package/dist/chat/StatewireClientToolBridge.js +50 -0
  64. package/dist/chat/StatewireClientToolBridge.js.map +1 -0
  65. package/dist/chat/StatewireQueuedMessages.cjs +432 -0
  66. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -0
  67. package/dist/chat/StatewireQueuedMessages.d.ts +104 -6
  68. package/dist/chat/StatewireQueuedMessages.js +432 -0
  69. package/dist/chat/StatewireQueuedMessages.js.map +1 -0
  70. package/dist/chat/athena-citation-links.cjs +326 -0
  71. package/dist/chat/athena-citation-links.cjs.map +1 -0
  72. package/dist/chat/athena-citation-links.js +326 -0
  73. package/dist/chat/athena-citation-links.js.map +1 -0
  74. package/dist/chat/run-activity.cjs +28 -0
  75. package/dist/chat/run-activity.cjs.map +1 -0
  76. package/dist/chat/run-activity.js +28 -0
  77. package/dist/chat/run-activity.js.map +1 -0
  78. package/dist/chat/statewire-approval.d.ts +1 -1
  79. package/dist/chat/statewire-banners.cjs +83 -0
  80. package/dist/chat/statewire-banners.cjs.map +1 -0
  81. package/dist/chat/statewire-banners.js +83 -0
  82. package/dist/chat/statewire-banners.js.map +1 -0
  83. package/dist/chat/statewire-client-tools.cjs +73 -0
  84. package/dist/chat/statewire-client-tools.cjs.map +1 -0
  85. package/dist/chat/statewire-client-tools.d.ts +15 -21
  86. package/dist/chat/statewire-client-tools.js +73 -0
  87. package/dist/chat/statewire-client-tools.js.map +1 -0
  88. package/dist/chat/super-grouping/CollapsibleGroup.cjs +158 -0
  89. package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -0
  90. package/dist/chat/super-grouping/CollapsibleGroup.d.ts +52 -11
  91. package/dist/chat/super-grouping/CollapsibleGroup.js +158 -0
  92. package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -0
  93. package/dist/chat/super-grouping/SuperGroupingCard.cjs +361 -0
  94. package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -0
  95. package/dist/chat/super-grouping/SuperGroupingCard.d.ts +81 -21
  96. package/dist/chat/super-grouping/SuperGroupingCard.js +361 -0
  97. package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -0
  98. package/dist/chat/super-grouping/activity-timeline.cjs +151 -0
  99. package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -0
  100. package/dist/chat/super-grouping/activity-timeline.d.ts +91 -0
  101. package/dist/chat/super-grouping/activity-timeline.js +151 -0
  102. package/dist/chat/super-grouping/activity-timeline.js.map +1 -0
  103. package/dist/chat/super-grouping/grouping-function.cjs +55 -0
  104. package/dist/chat/super-grouping/grouping-function.cjs.map +1 -0
  105. package/dist/chat/super-grouping/grouping-function.d.ts +13 -10
  106. package/dist/chat/super-grouping/grouping-function.js +55 -0
  107. package/dist/chat/super-grouping/grouping-function.js.map +1 -0
  108. package/dist/chat/super-grouping/index.cjs +26 -0
  109. package/dist/chat/super-grouping/index.cjs.map +1 -0
  110. package/dist/chat/super-grouping/index.d.ts +12 -0
  111. package/dist/chat/super-grouping/index.js +26 -0
  112. package/dist/chat/super-grouping/index.js.map +1 -0
  113. package/dist/chat/super-grouping/toolkit-map.cjs +96 -0
  114. package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -0
  115. package/dist/chat/super-grouping/toolkit-map.d.ts +8 -1
  116. package/dist/chat/super-grouping/toolkit-map.js +96 -0
  117. package/dist/chat/super-grouping/toolkit-map.js.map +1 -0
  118. package/dist/chat/tiptap-text.cjs +101 -0
  119. package/dist/chat/tiptap-text.cjs.map +1 -0
  120. package/dist/chat/tiptap-text.js +101 -0
  121. package/dist/chat/tiptap-text.js.map +1 -0
  122. package/dist/chat/tooltip-icon-button.cjs +32 -0
  123. package/dist/chat/tooltip-icon-button.cjs.map +1 -0
  124. package/dist/chat/tooltip-icon-button.js +32 -0
  125. package/dist/chat/tooltip-icon-button.js.map +1 -0
  126. package/dist/chat/use-athena-run-live.cjs +23 -0
  127. package/dist/chat/use-athena-run-live.cjs.map +1 -0
  128. package/dist/chat/use-athena-run-live.d.ts +10 -0
  129. package/dist/chat/use-athena-run-live.js +23 -0
  130. package/dist/chat/use-athena-run-live.js.map +1 -0
  131. package/dist/chat/use-statewire-approval-request.cjs +46 -0
  132. package/dist/chat/use-statewire-approval-request.cjs.map +1 -0
  133. package/dist/chat/use-statewire-approval-request.d.ts +44 -0
  134. package/dist/chat/use-statewire-approval-request.js +46 -0
  135. package/dist/chat/use-statewire-approval-request.js.map +1 -0
  136. package/dist/chat-ui/auth/sign-in-card.cjs +128 -0
  137. package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -0
  138. package/dist/chat-ui/auth/sign-in-card.js +128 -0
  139. package/dist/chat-ui/auth/sign-in-card.js.map +1 -0
  140. package/dist/chat-ui/composer/composer-action.cjs +11 -0
  141. package/dist/chat-ui/composer/composer-action.cjs.map +1 -0
  142. package/dist/chat-ui/composer/composer-action.d.ts +5 -8
  143. package/dist/chat-ui/composer/composer-action.js +11 -0
  144. package/dist/chat-ui/composer/composer-action.js.map +1 -0
  145. package/dist/chat-ui/composer/pending-attachment-uploads.cjs +25 -0
  146. package/dist/chat-ui/composer/pending-attachment-uploads.cjs.map +1 -0
  147. package/dist/chat-ui/composer/pending-attachment-uploads.js +25 -0
  148. package/dist/chat-ui/composer/pending-attachment-uploads.js.map +1 -0
  149. package/dist/chat-ui/composer/tiptap-composer.cjs +590 -0
  150. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -0
  151. package/dist/chat-ui/composer/tiptap-composer.d.ts +44 -7
  152. package/dist/chat-ui/composer/tiptap-composer.js +590 -0
  153. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -0
  154. package/dist/chat-ui/header/chat-header.cjs +33 -0
  155. package/dist/chat-ui/header/chat-header.cjs.map +1 -0
  156. package/dist/chat-ui/header/chat-header.js +33 -0
  157. package/dist/chat-ui/header/chat-header.js.map +1 -0
  158. package/dist/chat-ui/header/conversation-history-panel.cjs +369 -0
  159. package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -0
  160. package/dist/chat-ui/header/conversation-history-panel.d.ts +11 -1
  161. package/dist/chat-ui/header/conversation-history-panel.js +369 -0
  162. package/dist/chat-ui/header/conversation-history-panel.js.map +1 -0
  163. package/dist/chat-ui/index.cjs +139 -0
  164. package/dist/chat-ui/index.cjs.map +1 -0
  165. package/dist/chat-ui/index.d.ts +11 -4
  166. package/dist/chat-ui/index.js +139 -0
  167. package/dist/chat-ui/index.js.map +1 -0
  168. package/dist/chat-ui/lib/asset-urls.cjs +18 -0
  169. package/dist/chat-ui/lib/asset-urls.cjs.map +1 -0
  170. package/dist/chat-ui/lib/asset-urls.js +18 -0
  171. package/dist/chat-ui/lib/asset-urls.js.map +1 -0
  172. package/dist/chat-ui/mentions/mention-chip.cjs +208 -0
  173. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -0
  174. package/dist/chat-ui/mentions/mention-chip.js +208 -0
  175. package/dist/chat-ui/mentions/mention-chip.js.map +1 -0
  176. package/dist/chat-ui/mentions/mention-extension.cjs +184 -0
  177. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -0
  178. package/dist/chat-ui/mentions/mention-extension.d.ts +24 -2
  179. package/dist/chat-ui/mentions/mention-extension.js +184 -0
  180. package/dist/chat-ui/mentions/mention-extension.js.map +1 -0
  181. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +35 -0
  182. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -0
  183. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +35 -0
  184. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -0
  185. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +95 -0
  186. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -0
  187. package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +5 -0
  188. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +95 -0
  189. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -0
  190. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +116 -0
  191. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -0
  192. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +116 -0
  193. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -0
  194. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +31 -0
  195. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -0
  196. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js +31 -0
  197. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js.map +1 -0
  198. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs +27 -0
  199. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs.map +1 -0
  200. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js +27 -0
  201. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js.map +1 -0
  202. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +62 -0
  203. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -0
  204. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +62 -0
  205. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -0
  206. package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +63 -0
  207. package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -0
  208. package/dist/chat-ui/mentions/suggestions/components/menu-list.js +63 -0
  209. package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -0
  210. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs +11 -0
  211. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs.map +1 -0
  212. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js +11 -0
  213. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js.map +1 -0
  214. package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs +33 -0
  215. package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs.map +1 -0
  216. package/dist/chat-ui/mentions/suggestions/components/menu-summary.js +33 -0
  217. package/dist/chat-ui/mentions/suggestions/components/menu-summary.js.map +1 -0
  218. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +58 -0
  219. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -0
  220. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js +58 -0
  221. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js.map +1 -0
  222. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +81 -0
  223. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -0
  224. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js +81 -0
  225. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js.map +1 -0
  226. package/dist/chat-ui/mentions/suggestions/components/utils.cjs +18 -0
  227. package/dist/chat-ui/mentions/suggestions/components/utils.cjs.map +1 -0
  228. package/dist/chat-ui/mentions/suggestions/components/utils.js +18 -0
  229. package/dist/chat-ui/mentions/suggestions/components/utils.js.map +1 -0
  230. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +123 -0
  231. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -0
  232. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +10 -0
  233. package/dist/chat-ui/mentions/suggestions/data/api-client.js +123 -0
  234. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -0
  235. package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs +37 -0
  236. package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs.map +1 -0
  237. package/dist/chat-ui/mentions/suggestions/data/item-cache.js +37 -0
  238. package/dist/chat-ui/mentions/suggestions/data/item-cache.js.map +1 -0
  239. package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +134 -0
  240. package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -0
  241. package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +134 -0
  242. package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -0
  243. package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs +91 -0
  244. package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs.map +1 -0
  245. package/dist/chat-ui/mentions/suggestions/data/scope-registry.js +91 -0
  246. package/dist/chat-ui/mentions/suggestions/data/scope-registry.js.map +1 -0
  247. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +137 -0
  248. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -0
  249. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +137 -0
  250. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -0
  251. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +375 -0
  252. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -0
  253. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +16 -1
  254. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +375 -0
  255. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -0
  256. package/dist/chat-ui/mentions/suggestions/data/types.cjs +9 -0
  257. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -0
  258. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +14 -0
  259. package/dist/chat-ui/mentions/suggestions/data/types.js +9 -0
  260. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -0
  261. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +173 -0
  262. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -0
  263. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +14 -4
  264. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +173 -0
  265. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -0
  266. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +45 -0
  267. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -0
  268. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +45 -0
  269. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -0
  270. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs +43 -0
  271. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs.map +1 -0
  272. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js +43 -0
  273. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js.map +1 -0
  274. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs +14 -0
  275. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs.map +1 -0
  276. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js +14 -0
  277. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js.map +1 -0
  278. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs +48 -0
  279. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs.map +1 -0
  280. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js +48 -0
  281. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js.map +1 -0
  282. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +71 -0
  283. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -0
  284. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +71 -0
  285. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -0
  286. package/dist/chat-ui/mentions/suggestions/shims.d.ts +0 -4
  287. package/dist/chat-ui/messages/continue-pill.cjs +54 -0
  288. package/dist/chat-ui/messages/continue-pill.cjs.map +1 -0
  289. package/dist/chat-ui/messages/continue-pill.js +54 -0
  290. package/dist/chat-ui/messages/continue-pill.js.map +1 -0
  291. package/dist/chat-ui/messages/message-actions-config.cjs +12 -0
  292. package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -0
  293. package/dist/chat-ui/messages/message-actions-config.js +12 -0
  294. package/dist/chat-ui/messages/message-actions-config.js.map +1 -0
  295. package/dist/chat-ui/messages/message-components.cjs +343 -0
  296. package/dist/chat-ui/messages/message-components.cjs.map +1 -0
  297. package/dist/chat-ui/messages/message-components.d.ts +13 -1
  298. package/dist/chat-ui/messages/message-components.js +343 -0
  299. package/dist/chat-ui/messages/message-components.js.map +1 -0
  300. package/dist/chat-ui/messages/running-indicator.cjs +49 -0
  301. package/dist/chat-ui/messages/running-indicator.cjs.map +1 -0
  302. package/dist/chat-ui/messages/running-indicator.js +49 -0
  303. package/dist/chat-ui/messages/running-indicator.js.map +1 -0
  304. package/dist/chat-ui/messages/runtime-message.cjs +65 -0
  305. package/dist/chat-ui/messages/runtime-message.cjs.map +1 -0
  306. package/dist/chat-ui/messages/runtime-message.d.ts +2 -3
  307. package/dist/chat-ui/messages/runtime-message.js +65 -0
  308. package/dist/chat-ui/messages/runtime-message.js.map +1 -0
  309. package/dist/chat-ui/messages/statewire-continue-run.cjs +154 -0
  310. package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
  311. package/dist/chat-ui/messages/statewire-continue-run.d.ts +52 -7
  312. package/dist/chat-ui/messages/statewire-continue-run.js +154 -0
  313. package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -0
  314. package/dist/chat-ui/messages/user-edit-composer.cjs +61 -0
  315. package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -0
  316. package/dist/chat-ui/messages/user-edit-composer.d.ts +5 -2
  317. package/dist/chat-ui/messages/user-edit-composer.js +61 -0
  318. package/dist/chat-ui/messages/user-edit-composer.js.map +1 -0
  319. package/dist/chat-ui/messages/voice-delegation-card.cjs +51 -0
  320. package/dist/chat-ui/messages/voice-delegation-card.cjs.map +1 -0
  321. package/dist/chat-ui/messages/voice-delegation-card.d.ts +26 -0
  322. package/dist/chat-ui/messages/voice-delegation-card.js +51 -0
  323. package/dist/chat-ui/messages/voice-delegation-card.js.map +1 -0
  324. package/dist/chat-ui/statewire.cjs +39 -0
  325. package/dist/chat-ui/statewire.cjs.map +1 -0
  326. package/dist/chat-ui/statewire.d.ts +19 -0
  327. package/dist/chat-ui/statewire.js +39 -0
  328. package/dist/chat-ui/statewire.js.map +1 -0
  329. package/dist/chat-ui/thread/chat-composer-dock.cjs +37 -0
  330. package/dist/chat-ui/thread/chat-composer-dock.cjs.map +1 -0
  331. package/dist/chat-ui/thread/chat-composer-dock.js +37 -0
  332. package/dist/chat-ui/thread/chat-composer-dock.js.map +1 -0
  333. package/dist/chat-ui/thread/chat-thread-shell.cjs +102 -0
  334. package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -0
  335. package/dist/chat-ui/thread/chat-thread-shell.d.ts +7 -1
  336. package/dist/chat-ui/thread/chat-thread-shell.js +102 -0
  337. package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -0
  338. package/dist/chat-ui/thread/composer-send-or-stop.cjs +75 -0
  339. package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -0
  340. package/dist/chat-ui/thread/composer-send-or-stop.d.ts +0 -6
  341. package/dist/chat-ui/thread/composer-send-or-stop.js +75 -0
  342. package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -0
  343. package/dist/chat-ui/thread/statewire-history-edge.cjs +134 -0
  344. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -0
  345. package/dist/chat-ui/thread/statewire-history-edge.d.ts +52 -0
  346. package/dist/chat-ui/thread/statewire-history-edge.js +134 -0
  347. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -0
  348. package/dist/{collab.cjs → collab/client.cjs} +6 -166
  349. package/dist/collab/client.cjs.map +1 -0
  350. package/dist/{collab.js → collab/client.js} +5 -164
  351. package/dist/collab/client.js.map +1 -0
  352. package/dist/collab/close-policy.cjs +14 -0
  353. package/dist/collab/close-policy.cjs.map +1 -0
  354. package/dist/collab/close-policy.js +14 -0
  355. package/dist/collab/close-policy.js.map +1 -0
  356. package/dist/collab/index.cjs +17 -0
  357. package/dist/collab/index.cjs.map +1 -0
  358. package/dist/collab/index.js +17 -0
  359. package/dist/collab/index.js.map +1 -0
  360. package/dist/collab/mint.cjs +59 -0
  361. package/dist/collab/mint.cjs.map +1 -0
  362. package/dist/collab/mint.js +59 -0
  363. package/dist/collab/mint.js.map +1 -0
  364. package/dist/collab/react.cjs +58 -0
  365. package/dist/collab/react.cjs.map +1 -0
  366. package/dist/collab/react.js +58 -0
  367. package/dist/collab/react.js.map +1 -0
  368. package/dist/collab/shape.cjs +45 -0
  369. package/dist/collab/shape.cjs.map +1 -0
  370. package/dist/collab/shape.js +45 -0
  371. package/dist/collab/shape.js.map +1 -0
  372. package/dist/composer/AttachmentContext.cjs +40 -0
  373. package/dist/composer/AttachmentContext.cjs.map +1 -0
  374. package/dist/composer/AttachmentContext.js +40 -0
  375. package/dist/composer/AttachmentContext.js.map +1 -0
  376. package/dist/composer/ComposerAttachmentPreview.cjs +39 -0
  377. package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -0
  378. package/dist/composer/ComposerAttachmentPreview.js +39 -0
  379. package/dist/composer/ComposerAttachmentPreview.js.map +1 -0
  380. package/dist/composer/ComposerDropZone.cjs +61 -0
  381. package/dist/composer/ComposerDropZone.cjs.map +1 -0
  382. package/dist/composer/ComposerDropZone.d.ts +1 -1
  383. package/dist/composer/ComposerDropZone.js +61 -0
  384. package/dist/composer/ComposerDropZone.js.map +1 -0
  385. package/dist/composer/ComposerQuotePreview.cjs +42 -0
  386. package/dist/composer/ComposerQuotePreview.cjs.map +1 -0
  387. package/dist/composer/ComposerQuotePreview.js +42 -0
  388. package/dist/composer/ComposerQuotePreview.js.map +1 -0
  389. package/dist/composer/FileUploadButton.cjs +65 -0
  390. package/dist/composer/FileUploadButton.cjs.map +1 -0
  391. package/dist/composer/FileUploadButton.d.ts +1 -1
  392. package/dist/composer/FileUploadButton.js +65 -0
  393. package/dist/composer/FileUploadButton.js.map +1 -0
  394. package/dist/composer/QuoteContext.cjs +68 -0
  395. package/dist/composer/QuoteContext.cjs.map +1 -0
  396. package/dist/composer/QuoteContext.js +68 -0
  397. package/dist/composer/QuoteContext.js.map +1 -0
  398. package/dist/composer/build-composed-message.cjs +25 -0
  399. package/dist/composer/build-composed-message.cjs.map +1 -0
  400. package/dist/composer/build-composed-message.js +25 -0
  401. package/dist/composer/build-composed-message.js.map +1 -0
  402. package/dist/composer/clipboard.cjs +62 -0
  403. package/dist/composer/clipboard.cjs.map +1 -0
  404. package/dist/composer/clipboard.d.ts +27 -3
  405. package/dist/composer/clipboard.js +62 -0
  406. package/dist/composer/clipboard.js.map +1 -0
  407. package/dist/composer/useAppendToComposer.cjs +21 -0
  408. package/dist/composer/useAppendToComposer.cjs.map +1 -0
  409. package/dist/composer/useAppendToComposer.js +21 -0
  410. package/dist/composer/useAppendToComposer.js.map +1 -0
  411. package/dist/composer/useAttachFiles.cjs +40 -0
  412. package/dist/composer/useAttachFiles.cjs.map +1 -0
  413. package/dist/composer/useAttachFiles.d.ts +24 -0
  414. package/dist/composer/useAttachFiles.js +40 -0
  415. package/dist/composer/useAttachFiles.js.map +1 -0
  416. package/dist/composer/useComposerAttachment.cjs +25 -0
  417. package/dist/composer/useComposerAttachment.cjs.map +1 -0
  418. package/dist/composer/useComposerAttachment.js +25 -0
  419. package/dist/composer/useComposerAttachment.js.map +1 -0
  420. package/dist/composer/useFileUpload.cjs +123 -0
  421. package/dist/composer/useFileUpload.cjs.map +1 -0
  422. package/dist/composer/useFileUpload.js +123 -0
  423. package/dist/composer/useFileUpload.js.map +1 -0
  424. package/dist/composer/useSendMessage.cjs +22 -0
  425. package/dist/composer/useSendMessage.cjs.map +1 -0
  426. package/dist/composer/useSendMessage.js +22 -0
  427. package/dist/composer/useSendMessage.js.map +1 -0
  428. package/dist/diagnostics/athena-diagnostics.cjs +329 -0
  429. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -0
  430. package/dist/diagnostics/athena-diagnostics.d.ts +1 -1
  431. package/dist/diagnostics/athena-diagnostics.js +329 -0
  432. package/dist/diagnostics/athena-diagnostics.js.map +1 -0
  433. package/dist/diagnostics/errors.cjs +89 -0
  434. package/dist/diagnostics/errors.cjs.map +1 -0
  435. package/dist/diagnostics/errors.d.ts +4 -0
  436. package/dist/diagnostics/errors.js +89 -0
  437. package/dist/diagnostics/errors.js.map +1 -0
  438. package/dist/diagnostics/useAthenaDiagnostics.cjs +16 -0
  439. package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -0
  440. package/dist/diagnostics/useAthenaDiagnostics.js +16 -0
  441. package/dist/diagnostics/useAthenaDiagnostics.js.map +1 -0
  442. package/dist/index.cjs +283 -30852
  443. package/dist/index.cjs.map +1 -1
  444. package/dist/index.d.ts +27 -10
  445. package/dist/index.js +155 -30711
  446. package/dist/index.js.map +1 -1
  447. package/dist/lib/athena-urls.cjs +194 -0
  448. package/dist/lib/athena-urls.cjs.map +1 -0
  449. package/dist/lib/athena-urls.d.ts +20 -5
  450. package/dist/lib/athena-urls.js +194 -0
  451. package/dist/lib/athena-urls.js.map +1 -0
  452. package/dist/lib/posthog/before-send.cjs +58 -0
  453. package/dist/lib/posthog/before-send.cjs.map +1 -0
  454. package/dist/lib/posthog/before-send.js +58 -0
  455. package/dist/lib/posthog/before-send.js.map +1 -0
  456. package/dist/lib/posthog/capture-gate.cjs +322 -0
  457. package/dist/lib/posthog/capture-gate.cjs.map +1 -0
  458. package/dist/lib/posthog/capture-gate.js +322 -0
  459. package/dist/lib/posthog/capture-gate.js.map +1 -0
  460. package/dist/lib/posthog/wrap-posthog-client.cjs +163 -0
  461. package/dist/lib/posthog/wrap-posthog-client.cjs.map +1 -0
  462. package/dist/lib/posthog/wrap-posthog-client.js +163 -0
  463. package/dist/lib/posthog/wrap-posthog-client.js.map +1 -0
  464. package/dist/lib/utils.cjs +12 -0
  465. package/dist/lib/utils.cjs.map +1 -0
  466. package/dist/lib/utils.js +9 -0
  467. package/dist/lib/utils.js.map +1 -0
  468. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +77 -0
  469. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +1 -0
  470. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +77 -0
  471. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +1 -0
  472. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +181 -0
  473. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +1 -0
  474. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +181 -0
  475. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +1 -0
  476. package/dist/packages/agent-runtime/src/asset-attachment.cjs +19 -0
  477. package/dist/packages/agent-runtime/src/asset-attachment.cjs.map +1 -0
  478. package/dist/packages/agent-runtime/src/asset-attachment.js +19 -0
  479. package/dist/packages/agent-runtime/src/asset-attachment.js.map +1 -0
  480. package/dist/packages/agent-runtime/src/auth-denial.cjs +28 -0
  481. package/dist/packages/agent-runtime/src/auth-denial.cjs.map +1 -0
  482. package/dist/packages/agent-runtime/src/auth-denial.js +28 -0
  483. package/dist/packages/agent-runtime/src/auth-denial.js.map +1 -0
  484. package/dist/packages/agent-runtime/src/client-tool-bridge.cjs +270 -0
  485. package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
  486. package/dist/packages/agent-runtime/src/client-tool-bridge.js +270 -0
  487. package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +1 -0
  488. package/dist/packages/agent-runtime/src/client-tools.cjs +137 -0
  489. package/dist/packages/agent-runtime/src/client-tools.cjs.map +1 -0
  490. package/dist/packages/agent-runtime/src/client-tools.js +137 -0
  491. package/dist/packages/agent-runtime/src/client-tools.js.map +1 -0
  492. package/dist/packages/agent-runtime/src/conversation-index.cjs +80 -0
  493. package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -0
  494. package/dist/packages/agent-runtime/src/conversation-index.js +80 -0
  495. package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -0
  496. package/dist/packages/agent-runtime/src/conversation-list.cjs +86 -0
  497. package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -0
  498. package/dist/packages/agent-runtime/src/conversation-list.js +86 -0
  499. package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -0
  500. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs +55 -0
  501. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -0
  502. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js +55 -0
  503. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -0
  504. package/dist/packages/agent-runtime/src/edit-command.cjs +89 -0
  505. package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -0
  506. package/dist/packages/agent-runtime/src/edit-command.js +89 -0
  507. package/dist/packages/agent-runtime/src/edit-command.js.map +1 -0
  508. package/dist/packages/agent-runtime/src/errors.cjs +95 -0
  509. package/dist/packages/agent-runtime/src/errors.cjs.map +1 -0
  510. package/dist/packages/agent-runtime/src/errors.js +95 -0
  511. package/dist/packages/agent-runtime/src/errors.js.map +1 -0
  512. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +236 -0
  513. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
  514. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +236 -0
  515. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
  516. package/dist/packages/agent-runtime/src/interrupts.cjs +117 -0
  517. package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -0
  518. package/dist/packages/agent-runtime/src/interrupts.js +117 -0
  519. package/dist/packages/agent-runtime/src/interrupts.js.map +1 -0
  520. package/dist/packages/agent-runtime/src/message-author.cjs +31 -0
  521. package/dist/packages/agent-runtime/src/message-author.cjs.map +1 -0
  522. package/dist/packages/agent-runtime/src/message-author.js +31 -0
  523. package/dist/packages/agent-runtime/src/message-author.js.map +1 -0
  524. package/dist/packages/agent-runtime/src/message-window.cjs +85 -0
  525. package/dist/packages/agent-runtime/src/message-window.cjs.map +1 -0
  526. package/dist/packages/agent-runtime/src/message-window.js +85 -0
  527. package/dist/packages/agent-runtime/src/message-window.js.map +1 -0
  528. package/dist/packages/agent-runtime/src/messages.cjs +433 -0
  529. package/dist/packages/agent-runtime/src/messages.cjs.map +1 -0
  530. package/dist/packages/agent-runtime/src/messages.js +433 -0
  531. package/dist/packages/agent-runtime/src/messages.js.map +1 -0
  532. package/dist/packages/agent-runtime/src/model-context.cjs +13 -0
  533. package/dist/packages/agent-runtime/src/model-context.cjs.map +1 -0
  534. package/dist/packages/agent-runtime/src/model-context.js +13 -0
  535. package/dist/packages/agent-runtime/src/model-context.js.map +1 -0
  536. package/dist/packages/agent-runtime/src/optimistic-content.cjs +17 -0
  537. package/dist/packages/agent-runtime/src/optimistic-content.cjs.map +1 -0
  538. package/dist/packages/agent-runtime/src/optimistic-content.js +17 -0
  539. package/dist/packages/agent-runtime/src/optimistic-content.js.map +1 -0
  540. package/dist/packages/agent-runtime/src/protocol.cjs +33 -0
  541. package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -0
  542. package/dist/packages/agent-runtime/src/protocol.js +33 -0
  543. package/dist/packages/agent-runtime/src/protocol.js.map +1 -0
  544. package/dist/packages/agent-runtime/src/queue.cjs +67 -0
  545. package/dist/packages/agent-runtime/src/queue.cjs.map +1 -0
  546. package/dist/packages/agent-runtime/src/queue.js +67 -0
  547. package/dist/packages/agent-runtime/src/queue.js.map +1 -0
  548. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +47 -0
  549. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -0
  550. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +47 -0
  551. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -0
  552. package/dist/packages/agent-runtime/src/runtime-messages.cjs +187 -0
  553. package/dist/packages/agent-runtime/src/runtime-messages.cjs.map +1 -0
  554. package/dist/packages/agent-runtime/src/runtime-messages.js +187 -0
  555. package/dist/packages/agent-runtime/src/runtime-messages.js.map +1 -0
  556. package/dist/packages/agent-runtime/src/send-recovery.cjs +128 -0
  557. package/dist/packages/agent-runtime/src/send-recovery.cjs.map +1 -0
  558. package/dist/packages/agent-runtime/src/send-recovery.js +128 -0
  559. package/dist/packages/agent-runtime/src/send-recovery.js.map +1 -0
  560. package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs +249 -0
  561. package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs.map +1 -0
  562. package/dist/packages/agent-runtime/src/statewire-attach-observer.js +249 -0
  563. package/dist/packages/agent-runtime/src/statewire-attach-observer.js.map +1 -0
  564. package/dist/packages/agent-runtime/src/statewire-state.cjs +16 -0
  565. package/dist/packages/agent-runtime/src/statewire-state.cjs.map +1 -0
  566. package/dist/packages/agent-runtime/src/statewire-state.js +16 -0
  567. package/dist/packages/agent-runtime/src/statewire-state.js.map +1 -0
  568. package/dist/packages/agent-runtime/src/statewire-suspended.cjs +41 -0
  569. package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +1 -0
  570. package/dist/packages/agent-runtime/src/statewire-suspended.js +41 -0
  571. package/dist/packages/agent-runtime/src/statewire-suspended.js.map +1 -0
  572. package/dist/packages/agent-runtime/src/statewire-transport.cjs +6 -0
  573. package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -0
  574. package/dist/packages/agent-runtime/src/statewire-transport.js +6 -0
  575. package/dist/packages/agent-runtime/src/statewire-transport.js.map +1 -0
  576. package/dist/packages/agent-runtime/src/streaming-markdown.cjs +214 -0
  577. package/dist/packages/agent-runtime/src/streaming-markdown.cjs.map +1 -0
  578. package/dist/packages/agent-runtime/src/streaming-markdown.js +214 -0
  579. package/dist/packages/agent-runtime/src/streaming-markdown.js.map +1 -0
  580. package/dist/packages/agent-runtime/src/thread-extras.cjs +38 -0
  581. package/dist/packages/agent-runtime/src/thread-extras.cjs.map +1 -0
  582. package/dist/packages/agent-runtime/src/thread-extras.js +38 -0
  583. package/dist/packages/agent-runtime/src/thread-extras.js.map +1 -0
  584. package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs +90 -0
  585. package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -0
  586. package/dist/packages/agent-runtime/src/thread-snapshot-cache.js +90 -0
  587. package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +1 -0
  588. package/dist/packages/agent-runtime/src/thread-status.cjs +49 -0
  589. package/dist/packages/agent-runtime/src/thread-status.cjs.map +1 -0
  590. package/dist/packages/agent-runtime/src/thread-status.js +49 -0
  591. package/dist/packages/agent-runtime/src/thread-status.js.map +1 -0
  592. package/dist/packages/agent-runtime/src/tool-metadata.cjs +1802 -0
  593. package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -0
  594. package/dist/packages/agent-runtime/src/tool-metadata.js +1802 -0
  595. package/dist/packages/agent-runtime/src/tool-metadata.js.map +1 -0
  596. package/dist/packages/agent-runtime/src/tool-outputs.cjs +46 -0
  597. package/dist/packages/agent-runtime/src/tool-outputs.cjs.map +1 -0
  598. package/dist/packages/agent-runtime/src/tool-outputs.js +46 -0
  599. package/dist/packages/agent-runtime/src/tool-outputs.js.map +1 -0
  600. package/dist/packages/agent-runtime/src/tool-result.cjs +151 -0
  601. package/dist/packages/agent-runtime/src/tool-result.cjs.map +1 -0
  602. package/dist/packages/agent-runtime/src/tool-result.js +151 -0
  603. package/dist/packages/agent-runtime/src/tool-result.js.map +1 -0
  604. package/dist/packages/agent-runtime/src/use-conversation-list.cjs +139 -0
  605. package/dist/packages/agent-runtime/src/use-conversation-list.cjs.map +1 -0
  606. package/dist/packages/agent-runtime/src/use-conversation-list.js +139 -0
  607. package/dist/packages/agent-runtime/src/use-conversation-list.js.map +1 -0
  608. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +28 -0
  609. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -0
  610. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js +28 -0
  611. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -0
  612. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs +138 -0
  613. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -0
  614. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js +138 -0
  615. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +1 -0
  616. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +387 -0
  617. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -0
  618. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +387 -0
  619. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -0
  620. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs +133 -0
  621. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -0
  622. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js +133 -0
  623. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -0
  624. package/dist/packages/agent-runtime/src/voice-presentation.cjs +37 -0
  625. package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +1 -0
  626. package/dist/packages/agent-runtime/src/voice-presentation.js +37 -0
  627. package/dist/packages/agent-runtime/src/voice-presentation.js.map +1 -0
  628. package/dist/packages/react/package.json.cjs +9 -0
  629. package/dist/packages/react/package.json.cjs.map +1 -0
  630. package/dist/packages/react/package.json.js +9 -0
  631. package/dist/packages/react/package.json.js.map +1 -0
  632. package/dist/{AthenaContext-B1QMhIP-.cjs → provider/AthenaContext.cjs} +5 -4
  633. package/dist/provider/AthenaContext.cjs.map +1 -0
  634. package/dist/{AthenaContext-MOslgOmE.js → provider/AthenaContext.js} +3 -3
  635. package/dist/provider/AthenaContext.js.map +1 -0
  636. package/dist/provider/AthenaProvider.cjs +403 -0
  637. package/dist/provider/AthenaProvider.cjs.map +1 -0
  638. package/dist/provider/AthenaProvider.d.ts +4 -2
  639. package/dist/provider/AthenaProvider.js +403 -0
  640. package/dist/provider/AthenaProvider.js.map +1 -0
  641. package/dist/provider/PostHogProvider.cjs +81 -0
  642. package/dist/provider/PostHogProvider.cjs.map +1 -0
  643. package/dist/provider/PostHogProvider.js +59 -0
  644. package/dist/provider/PostHogProvider.js.map +1 -0
  645. package/dist/provider/config.d.ts +17 -9
  646. package/dist/provider/statewire-lifecycle-context.cjs +10 -0
  647. package/dist/provider/statewire-lifecycle-context.cjs.map +1 -0
  648. package/dist/provider/statewire-lifecycle-context.js +10 -0
  649. package/dist/provider/statewire-lifecycle-context.js.map +1 -0
  650. package/dist/provider/statewire-window-context.cjs +10 -0
  651. package/dist/provider/statewire-window-context.cjs.map +1 -0
  652. package/dist/provider/statewire-window-context.d.ts +12 -0
  653. package/dist/provider/statewire-window-context.js +10 -0
  654. package/dist/provider/statewire-window-context.js.map +1 -0
  655. package/dist/runtime/auth.cjs +309 -0
  656. package/dist/runtime/auth.cjs.map +1 -0
  657. package/dist/runtime/auth.d.ts +19 -18
  658. package/dist/runtime/auth.js +309 -0
  659. package/dist/runtime/auth.js.map +1 -0
  660. package/dist/runtime/statewire-auth-headers.cjs +18 -0
  661. package/dist/runtime/statewire-auth-headers.cjs.map +1 -0
  662. package/dist/runtime/statewire-auth-headers.d.ts +38 -0
  663. package/dist/runtime/statewire-auth-headers.js +18 -0
  664. package/dist/runtime/statewire-auth-headers.js.map +1 -0
  665. package/dist/runtime/statewire-lifecycle.cjs +67 -0
  666. package/dist/runtime/statewire-lifecycle.cjs.map +1 -0
  667. package/dist/runtime/statewire-lifecycle.d.ts +25 -0
  668. package/dist/runtime/statewire-lifecycle.js +67 -0
  669. package/dist/runtime/statewire-lifecycle.js.map +1 -0
  670. package/dist/runtime/statewire-run-config.cjs +68 -0
  671. package/dist/runtime/statewire-run-config.cjs.map +1 -0
  672. package/dist/runtime/statewire-run-config.js +68 -0
  673. package/dist/runtime/statewire-run-config.js.map +1 -0
  674. package/dist/runtime/statewire-session-key.cjs +11 -0
  675. package/dist/runtime/statewire-session-key.cjs.map +1 -0
  676. package/dist/runtime/statewire-session-key.d.ts +13 -0
  677. package/dist/runtime/statewire-session-key.js +11 -0
  678. package/dist/runtime/statewire-session-key.js.map +1 -0
  679. package/dist/runtime/useAthenaStatewireRuntime.cjs +179 -0
  680. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -0
  681. package/dist/runtime/useAthenaStatewireRuntime.d.ts +36 -5
  682. package/dist/runtime/useAthenaStatewireRuntime.js +180 -0
  683. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -0
  684. package/dist/styles.css +1 -1
  685. package/dist/theme/index.cjs +182 -0
  686. package/dist/theme/index.cjs.map +1 -0
  687. package/dist/theme/index.js +182 -0
  688. package/dist/theme/index.js.map +1 -0
  689. package/dist/threads/ThreadList.cjs +55 -0
  690. package/dist/threads/ThreadList.cjs.map +1 -0
  691. package/dist/threads/ThreadList.js +55 -0
  692. package/dist/threads/ThreadList.js.map +1 -0
  693. package/dist/threads/api.cjs +208 -0
  694. package/dist/threads/api.cjs.map +1 -0
  695. package/dist/threads/api.js +208 -0
  696. package/dist/threads/api.js.map +1 -0
  697. package/dist/threads/conversation-list-fetcher.cjs +70 -0
  698. package/dist/threads/conversation-list-fetcher.cjs.map +1 -0
  699. package/dist/threads/conversation-list-fetcher.js +70 -0
  700. package/dist/threads/conversation-list-fetcher.js.map +1 -0
  701. package/dist/threads/mint-thread-id.cjs +7 -0
  702. package/dist/threads/mint-thread-id.cjs.map +1 -0
  703. package/dist/threads/mint-thread-id.d.ts +8 -0
  704. package/dist/threads/mint-thread-id.js +7 -0
  705. package/dist/threads/mint-thread-id.js.map +1 -0
  706. package/dist/threads/statewire-thread-list.cjs +231 -0
  707. package/dist/threads/statewire-thread-list.cjs.map +1 -0
  708. package/dist/threads/statewire-thread-list.d.ts +20 -4
  709. package/dist/threads/statewire-thread-list.js +231 -0
  710. package/dist/threads/statewire-thread-list.js.map +1 -0
  711. package/dist/threads/thread-id-context.cjs +22 -0
  712. package/dist/threads/thread-id-context.cjs.map +1 -0
  713. package/dist/threads/thread-id-context.d.ts +9 -0
  714. package/dist/threads/thread-id-context.js +22 -0
  715. package/dist/threads/thread-id-context.js.map +1 -0
  716. package/dist/threads/title.cjs +95 -0
  717. package/dist/threads/title.cjs.map +1 -0
  718. package/dist/threads/title.js +95 -0
  719. package/dist/threads/title.js.map +1 -0
  720. package/dist/threads/use-rest-conversation-history.cjs +79 -0
  721. package/dist/threads/use-rest-conversation-history.cjs.map +1 -0
  722. package/dist/threads/use-rest-conversation-history.js +79 -0
  723. package/dist/threads/use-rest-conversation-history.js.map +1 -0
  724. package/dist/threads/use-statewire-conversation-history.cjs +243 -0
  725. package/dist/threads/use-statewire-conversation-history.cjs.map +1 -0
  726. package/dist/threads/use-statewire-conversation-history.js +243 -0
  727. package/dist/threads/use-statewire-conversation-history.js.map +1 -0
  728. package/dist/threads/useAthenaThreadManager.cjs +24 -0
  729. package/dist/threads/useAthenaThreadManager.cjs.map +1 -0
  730. package/dist/threads/useAthenaThreadManager.js +24 -0
  731. package/dist/threads/useAthenaThreadManager.js.map +1 -0
  732. package/dist/toolkits/index.cjs +279 -0
  733. package/dist/toolkits/index.cjs.map +1 -0
  734. package/dist/toolkits/index.js +279 -0
  735. package/dist/toolkits/index.js.map +1 -0
  736. package/dist/tools/NestedPtcMessages.cjs +46 -0
  737. package/dist/tools/NestedPtcMessages.cjs.map +1 -0
  738. package/dist/tools/NestedPtcMessages.js +46 -0
  739. package/dist/tools/NestedPtcMessages.js.map +1 -0
  740. package/dist/tools/append-document-tool-ui.cjs +145 -0
  741. package/dist/tools/append-document-tool-ui.cjs.map +1 -0
  742. package/dist/tools/append-document-tool-ui.js +145 -0
  743. package/dist/tools/append-document-tool-ui.js.map +1 -0
  744. package/dist/tools/asset-utils.cjs +16 -0
  745. package/dist/tools/asset-utils.cjs.map +1 -0
  746. package/dist/tools/asset-utils.js +16 -0
  747. package/dist/tools/asset-utils.js.map +1 -0
  748. package/dist/tools/auto-open-tools.cjs +121 -0
  749. package/dist/tools/auto-open-tools.cjs.map +1 -0
  750. package/dist/tools/auto-open-tools.js +121 -0
  751. package/dist/tools/auto-open-tools.js.map +1 -0
  752. package/dist/tools/file-tool-uis.cjs +108 -0
  753. package/dist/tools/file-tool-uis.cjs.map +1 -0
  754. package/dist/tools/file-tool-uis.js +108 -0
  755. package/dist/tools/file-tool-uis.js.map +1 -0
  756. package/dist/tools/index.cjs +56 -0
  757. package/dist/tools/index.cjs.map +1 -0
  758. package/dist/tools/index.d.ts +15 -0
  759. package/dist/tools/index.js +56 -0
  760. package/dist/tools/index.js.map +1 -0
  761. package/dist/tools/misc-tool-uis.cjs +54 -0
  762. package/dist/tools/misc-tool-uis.cjs.map +1 -0
  763. package/dist/tools/misc-tool-uis.d.ts +2 -0
  764. package/dist/tools/misc-tool-uis.js +54 -0
  765. package/dist/tools/misc-tool-uis.js.map +1 -0
  766. package/dist/tools/primitives.cjs +166 -0
  767. package/dist/tools/primitives.cjs.map +1 -0
  768. package/dist/tools/primitives.d.ts +41 -0
  769. package/dist/tools/primitives.js +166 -0
  770. package/dist/tools/primitives.js.map +1 -0
  771. package/dist/tools/read-asset-tool-ui.cjs +284 -0
  772. package/dist/tools/read-asset-tool-ui.cjs.map +1 -0
  773. package/dist/tools/read-asset-tool-ui.js +284 -0
  774. package/dist/tools/read-asset-tool-ui.js.map +1 -0
  775. package/dist/tools/todo-plan-store.cjs +88 -0
  776. package/dist/tools/todo-plan-store.cjs.map +1 -0
  777. package/dist/tools/todo-plan-store.js +88 -0
  778. package/dist/tools/todo-plan-store.js.map +1 -0
  779. package/dist/tools/tool-fallback.cjs +667 -0
  780. package/dist/tools/tool-fallback.cjs.map +1 -0
  781. package/dist/tools/tool-fallback.d.ts +78 -6
  782. package/dist/tools/tool-fallback.js +667 -0
  783. package/dist/tools/tool-fallback.js.map +1 -0
  784. package/dist/tools/tool-icons.cjs +61 -0
  785. package/dist/tools/tool-icons.cjs.map +1 -0
  786. package/dist/tools/tool-icons.d.ts +10 -0
  787. package/dist/tools/tool-icons.js +61 -0
  788. package/dist/tools/tool-icons.js.map +1 -0
  789. package/dist/tools/tool-uis.cjs +3049 -0
  790. package/dist/tools/tool-uis.cjs.map +1 -0
  791. package/dist/tools/tool-uis.d.ts +1 -23
  792. package/dist/tools/tool-uis.js +3049 -0
  793. package/dist/tools/tool-uis.js.map +1 -0
  794. package/dist/tools/voice-update-tool-ui.cjs +89 -0
  795. package/dist/tools/voice-update-tool-ui.cjs.map +1 -0
  796. package/dist/tools/voice-update-tool-ui.d.ts +27 -0
  797. package/dist/tools/voice-update-tool-ui.js +89 -0
  798. package/dist/tools/voice-update-tool-ui.js.map +1 -0
  799. package/dist/tools/write-todos-tool-ui.cjs +270 -0
  800. package/dist/tools/write-todos-tool-ui.cjs.map +1 -0
  801. package/dist/tools/write-todos-tool-ui.js +270 -0
  802. package/dist/tools/write-todos-tool-ui.js.map +1 -0
  803. package/dist/ui/button.cjs +57 -0
  804. package/dist/ui/button.cjs.map +1 -0
  805. package/dist/ui/button.js +57 -0
  806. package/dist/ui/button.js.map +1 -0
  807. package/dist/ui/collapsible.cjs +17 -0
  808. package/dist/ui/collapsible.cjs.map +1 -0
  809. package/dist/ui/collapsible.js +17 -0
  810. package/dist/ui/collapsible.js.map +1 -0
  811. package/dist/ui/tooltip.cjs +48 -0
  812. package/dist/ui/tooltip.cjs.map +1 -0
  813. package/dist/ui/tooltip.js +48 -0
  814. package/dist/ui/tooltip.js.map +1 -0
  815. package/dist/version.cjs +6 -0
  816. package/dist/version.cjs.map +1 -0
  817. package/dist/version.js +6 -0
  818. package/dist/version.js.map +1 -0
  819. package/package.json +35 -19
  820. package/dist/AthenaAuthContext-B3AwLA5Z.cjs.map +0 -1
  821. package/dist/AthenaAuthContext-DQsdayH2.js.map +0 -1
  822. package/dist/AthenaContext-B1QMhIP-.cjs.map +0 -1
  823. package/dist/AthenaContext-MOslgOmE.js.map +0 -1
  824. package/dist/auth.cjs.map +0 -1
  825. package/dist/auth.js.map +0 -1
  826. package/dist/chat/ComposerEditorContext.d.ts +0 -36
  827. package/dist/chat/super-grouping/tool-status-labels.d.ts +0 -1
  828. package/dist/chat/tiptap-composer.d.ts +0 -7
  829. package/dist/chat-ui.cjs +0 -2667
  830. package/dist/chat-ui.cjs.map +0 -1
  831. package/dist/chat-ui.js +0 -2668
  832. package/dist/chat-ui.js.map +0 -1
  833. package/dist/collab.cjs.map +0 -1
  834. package/dist/collab.js.map +0 -1
  835. package/dist/mentions/composer-keybinds.d.ts +0 -5
  836. package/dist/mentions/mention-extension.d.ts +0 -6
  837. package/dist/mentions/mention-icons.d.ts +0 -4
  838. package/dist/mentions/mention-node-view.d.ts +0 -2
  839. package/dist/mentions/mention-suggestion-list.d.ts +0 -14
  840. package/dist/mentions/mention-suggestion-popup.d.ts +0 -15
  841. package/dist/mentions/mention-suggestions-extension.d.ts +0 -11
  842. package/dist/mentions/mention-types.d.ts +0 -21
  843. package/dist/mentions/mention-utils.d.ts +0 -23
  844. package/dist/mentions/use-mention-suggestions.d.ts +0 -29
  845. package/dist/use-rest-conversation-history-Bs5qn5G3.js +0 -37322
  846. package/dist/use-rest-conversation-history-Bs5qn5G3.js.map +0 -1
  847. package/dist/use-rest-conversation-history-Dm0rdQgT.cjs +0 -37358
  848. package/dist/use-rest-conversation-history-Dm0rdQgT.cjs.map +0 -1
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function hasStatewireThreadExtras(extras) {
4
+ if (!extras || typeof extras !== "object") return false;
5
+ const candidate = extras;
6
+ return typeof candidate.sendCommand === "function" && Array.isArray(candidate.inputRequests) && typeof candidate.runs === "object" && candidate.runs !== null;
7
+ }
8
+ function isFailedSendEntry(value) {
9
+ var _a;
10
+ if (!value || typeof value !== "object") return false;
11
+ const entry = value;
12
+ return typeof entry.id === "string" && typeof ((_a = entry.sendFailure) == null ? void 0 : _a.fate) === "string";
13
+ }
14
+ function readStatewireFailedSendLane(extras) {
15
+ var _a;
16
+ if (!extras || typeof extras !== "object") return null;
17
+ const candidate = extras;
18
+ const failed = (_a = candidate.runs) == null ? void 0 : _a.failed;
19
+ if (!Array.isArray(failed) || typeof candidate.retryFailed !== "function") return null;
20
+ return {
21
+ failed: failed.filter(isFailedSendEntry),
22
+ retryFailed: candidate.retryFailed
23
+ };
24
+ }
25
+ function requireStatewireFailedActions(extras) {
26
+ if (!extras || typeof extras !== "object") {
27
+ throw new Error("Failed-send actions require a Statewire thread");
28
+ }
29
+ const candidate = extras;
30
+ if (typeof candidate.retryFailed !== "function" || typeof candidate.discardFailed !== "function") {
31
+ throw new Error("Failed-send actions require a Statewire thread");
32
+ }
33
+ return candidate;
34
+ }
35
+ exports.hasStatewireThreadExtras = hasStatewireThreadExtras;
36
+ exports.readStatewireFailedSendLane = readStatewireFailedSendLane;
37
+ exports.requireStatewireFailedActions = requireStatewireFailedActions;
38
+ //# sourceMappingURL=thread-extras.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-extras.cjs","sources":["../../../../../agent-runtime/src/thread-extras.ts"],"sourcesContent":["/**\n * The statewire hooks read the NEAREST aui thread's extras and throw when those\n * aren't statewire extras — which is the case inside nested read-only runtimes\n * (e.g. a transcript drawer) and on legacy (non-statewire) threads. Duck-type\n * the pieces the statewire components actually consume; a wider shape check\n * would silently hide live affordances if the library ever drops an unrelated\n * field.\n */\nexport function hasStatewireThreadExtras(extras: unknown): boolean {\n if (!extras || typeof extras !== 'object') return false;\n const candidate = extras as Record<string, unknown>;\n return (\n typeof candidate.sendCommand === 'function' &&\n Array.isArray(candidate.inputRequests) &&\n typeof candidate.runs === 'object' &&\n candidate.runs !== null\n );\n}\n\nexport interface StatewireFailedActions {\n retryFailed: (messageId: string) => void;\n discardFailed: (messageId: string) => void;\n}\n\n/** One projected failed run send: the message id plus the failure that\n * retained it (`runs.failed` entry, structurally). */\nexport interface StatewireFailedSendEntry {\n id: string;\n sendFailure: {\n fate: string;\n /**\n * Set on an `aborted` send that was never attempted because an earlier\n * send in the same detach batch WAS attempted and settled `lost`: the\n * library cannot know whether that predecessor ran, so the successor\n * must not be re-dispatched ahead of it (`StatewireClient.SendFailure`).\n */\n predecessorLost?: boolean;\n };\n}\n\n/** The failed-send lane surface the send-recovery controller consumes. */\nexport interface StatewireFailedSendLane {\n failed: readonly StatewireFailedSendEntry[];\n /** Re-dispatches the entry against the current thread — same message id,\n * re-anchored — and removes it from the lane. Throws for unknown ids. */\n retryFailed: (messageId: string) => void;\n}\n\nfunction isFailedSendEntry(value: unknown): value is StatewireFailedSendEntry {\n if (!value || typeof value !== 'object') return false;\n const entry = value as { id?: unknown; sendFailure?: { fate?: unknown } };\n return typeof entry.id === 'string' && typeof entry.sendFailure?.fate === 'string';\n}\n\n/**\n * The failed-send lane off a statewire thread's extras, or `null` when the\n * extras are not a statewire thread's (nested read-only runtimes, legacy\n * threads) — same duck-typing posture as {@link hasStatewireThreadExtras}.\n */\nexport function readStatewireFailedSendLane(extras: unknown): StatewireFailedSendLane | null {\n if (!extras || typeof extras !== 'object') return null;\n const candidate = extras as {\n runs?: { failed?: unknown };\n retryFailed?: unknown;\n };\n const failed = candidate.runs?.failed;\n if (!Array.isArray(failed) || typeof candidate.retryFailed !== 'function') return null;\n return {\n failed: failed.filter(isFailedSendEntry),\n retryFailed: candidate.retryFailed as StatewireFailedSendLane['retryFailed'],\n };\n}\n\n/** The failed-send lane actions off a statewire thread's extras, or throw. */\nexport function requireStatewireFailedActions(extras: unknown): StatewireFailedActions {\n if (!extras || typeof extras !== 'object') {\n throw new Error('Failed-send actions require a Statewire thread');\n }\n const candidate = extras as Record<string, unknown>;\n if (\n typeof candidate.retryFailed !== 'function' ||\n typeof candidate.discardFailed !== 'function'\n ) {\n throw new Error('Failed-send actions require a Statewire thread');\n }\n return candidate as unknown as StatewireFailedActions;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,yBAAyB,QAA0B;AACjE,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAClD,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,gBAAgB,cACjC,MAAM,QAAQ,UAAU,aAAa,KACrC,OAAO,UAAU,SAAS,YAC1B,UAAU,SAAS;AAEvB;AA+BA,SAAS,kBAAkB,OAAmD;;AAC5E,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAM,QAAQ;AACd,SAAO,OAAO,MAAM,OAAO,YAAY,SAAO,WAAM,gBAAN,mBAAmB,UAAS;AAC5E;AAOO,SAAS,4BAA4B,QAAiD;;AAC3F,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAClD,QAAM,YAAY;AAIlB,QAAM,UAAS,eAAU,SAAV,mBAAgB;AAC/B,MAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,UAAU,gBAAgB,WAAY,QAAO;AAClF,SAAO;AAAA,IACL,QAAQ,OAAO,OAAO,iBAAiB;AAAA,IACvC,aAAa,UAAU;AAAA,EAAA;AAE3B;AAGO,SAAS,8BAA8B,QAAyC;AACrF,MAAI,CAAC,UAAU,OAAO,WAAW,UAAU;AACzC,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,QAAM,YAAY;AAClB,MACE,OAAO,UAAU,gBAAgB,cACjC,OAAO,UAAU,kBAAkB,YACnC;AACA,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO;AACT;;;;"}
@@ -0,0 +1,38 @@
1
+ function hasStatewireThreadExtras(extras) {
2
+ if (!extras || typeof extras !== "object") return false;
3
+ const candidate = extras;
4
+ return typeof candidate.sendCommand === "function" && Array.isArray(candidate.inputRequests) && typeof candidate.runs === "object" && candidate.runs !== null;
5
+ }
6
+ function isFailedSendEntry(value) {
7
+ var _a;
8
+ if (!value || typeof value !== "object") return false;
9
+ const entry = value;
10
+ return typeof entry.id === "string" && typeof ((_a = entry.sendFailure) == null ? void 0 : _a.fate) === "string";
11
+ }
12
+ function readStatewireFailedSendLane(extras) {
13
+ var _a;
14
+ if (!extras || typeof extras !== "object") return null;
15
+ const candidate = extras;
16
+ const failed = (_a = candidate.runs) == null ? void 0 : _a.failed;
17
+ if (!Array.isArray(failed) || typeof candidate.retryFailed !== "function") return null;
18
+ return {
19
+ failed: failed.filter(isFailedSendEntry),
20
+ retryFailed: candidate.retryFailed
21
+ };
22
+ }
23
+ function requireStatewireFailedActions(extras) {
24
+ if (!extras || typeof extras !== "object") {
25
+ throw new Error("Failed-send actions require a Statewire thread");
26
+ }
27
+ const candidate = extras;
28
+ if (typeof candidate.retryFailed !== "function" || typeof candidate.discardFailed !== "function") {
29
+ throw new Error("Failed-send actions require a Statewire thread");
30
+ }
31
+ return candidate;
32
+ }
33
+ export {
34
+ hasStatewireThreadExtras,
35
+ readStatewireFailedSendLane,
36
+ requireStatewireFailedActions
37
+ };
38
+ //# sourceMappingURL=thread-extras.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-extras.js","sources":["../../../../../agent-runtime/src/thread-extras.ts"],"sourcesContent":["/**\n * The statewire hooks read the NEAREST aui thread's extras and throw when those\n * aren't statewire extras — which is the case inside nested read-only runtimes\n * (e.g. a transcript drawer) and on legacy (non-statewire) threads. Duck-type\n * the pieces the statewire components actually consume; a wider shape check\n * would silently hide live affordances if the library ever drops an unrelated\n * field.\n */\nexport function hasStatewireThreadExtras(extras: unknown): boolean {\n if (!extras || typeof extras !== 'object') return false;\n const candidate = extras as Record<string, unknown>;\n return (\n typeof candidate.sendCommand === 'function' &&\n Array.isArray(candidate.inputRequests) &&\n typeof candidate.runs === 'object' &&\n candidate.runs !== null\n );\n}\n\nexport interface StatewireFailedActions {\n retryFailed: (messageId: string) => void;\n discardFailed: (messageId: string) => void;\n}\n\n/** One projected failed run send: the message id plus the failure that\n * retained it (`runs.failed` entry, structurally). */\nexport interface StatewireFailedSendEntry {\n id: string;\n sendFailure: {\n fate: string;\n /**\n * Set on an `aborted` send that was never attempted because an earlier\n * send in the same detach batch WAS attempted and settled `lost`: the\n * library cannot know whether that predecessor ran, so the successor\n * must not be re-dispatched ahead of it (`StatewireClient.SendFailure`).\n */\n predecessorLost?: boolean;\n };\n}\n\n/** The failed-send lane surface the send-recovery controller consumes. */\nexport interface StatewireFailedSendLane {\n failed: readonly StatewireFailedSendEntry[];\n /** Re-dispatches the entry against the current thread — same message id,\n * re-anchored — and removes it from the lane. Throws for unknown ids. */\n retryFailed: (messageId: string) => void;\n}\n\nfunction isFailedSendEntry(value: unknown): value is StatewireFailedSendEntry {\n if (!value || typeof value !== 'object') return false;\n const entry = value as { id?: unknown; sendFailure?: { fate?: unknown } };\n return typeof entry.id === 'string' && typeof entry.sendFailure?.fate === 'string';\n}\n\n/**\n * The failed-send lane off a statewire thread's extras, or `null` when the\n * extras are not a statewire thread's (nested read-only runtimes, legacy\n * threads) — same duck-typing posture as {@link hasStatewireThreadExtras}.\n */\nexport function readStatewireFailedSendLane(extras: unknown): StatewireFailedSendLane | null {\n if (!extras || typeof extras !== 'object') return null;\n const candidate = extras as {\n runs?: { failed?: unknown };\n retryFailed?: unknown;\n };\n const failed = candidate.runs?.failed;\n if (!Array.isArray(failed) || typeof candidate.retryFailed !== 'function') return null;\n return {\n failed: failed.filter(isFailedSendEntry),\n retryFailed: candidate.retryFailed as StatewireFailedSendLane['retryFailed'],\n };\n}\n\n/** The failed-send lane actions off a statewire thread's extras, or throw. */\nexport function requireStatewireFailedActions(extras: unknown): StatewireFailedActions {\n if (!extras || typeof extras !== 'object') {\n throw new Error('Failed-send actions require a Statewire thread');\n }\n const candidate = extras as Record<string, unknown>;\n if (\n typeof candidate.retryFailed !== 'function' ||\n typeof candidate.discardFailed !== 'function'\n ) {\n throw new Error('Failed-send actions require a Statewire thread');\n }\n return candidate as unknown as StatewireFailedActions;\n}\n"],"names":[],"mappings":"AAQO,SAAS,yBAAyB,QAA0B;AACjE,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAClD,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,gBAAgB,cACjC,MAAM,QAAQ,UAAU,aAAa,KACrC,OAAO,UAAU,SAAS,YAC1B,UAAU,SAAS;AAEvB;AA+BA,SAAS,kBAAkB,OAAmD;AAxCvE;AAyCL,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAM,QAAQ;AACd,SAAO,OAAO,MAAM,OAAO,YAAY,SAAO,WAAM,gBAAN,mBAAmB,UAAS;AAC5E;AAOO,SAAS,4BAA4B,QAAiD;AAnDtF;AAoDL,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAClD,QAAM,YAAY;AAIlB,QAAM,UAAS,eAAU,SAAV,mBAAgB;AAC/B,MAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,UAAU,gBAAgB,WAAY,QAAO;AAClF,SAAO;AAAA,IACL,QAAQ,OAAO,OAAO,iBAAiB;AAAA,IACvC,aAAa,UAAU;AAAA,EAAA;AAE3B;AAGO,SAAS,8BAA8B,QAAyC;AACrF,MAAI,CAAC,UAAU,OAAO,WAAW,UAAU;AACzC,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,QAAM,YAAY;AAClB,MACE,OAAO,UAAU,gBAAgB,cACjC,OAAO,UAAU,kBAAkB,YACnC;AACA,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO;AACT;"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const DEFAULT_MAX_THREADS = 30;
4
+ const DEFAULT_MAX_AGE_MS = 60 * 60 * 1e3;
5
+ function createDeepAgentThreadSnapshotCache(options = {}) {
6
+ const maxThreads = options.maxThreads ?? DEFAULT_MAX_THREADS;
7
+ const maxAgeMs = options.maxAgeMs ?? DEFAULT_MAX_AGE_MS;
8
+ const now = options.now ?? (() => Date.now());
9
+ const notify = (change) => {
10
+ var _a;
11
+ try {
12
+ (_a = options.onChange) == null ? void 0 : _a.call(options, change);
13
+ } catch {
14
+ }
15
+ };
16
+ const entries = /* @__PURE__ */ new Map();
17
+ const evict = () => {
18
+ while (entries.size > maxThreads) {
19
+ const oldest = entries.keys().next().value;
20
+ if (oldest === void 0) break;
21
+ entries.delete(oldest);
22
+ }
23
+ };
24
+ const fresh = (threadId) => {
25
+ const entry = entries.get(threadId);
26
+ if (!entry) return void 0;
27
+ if (now() - entry.at > maxAgeMs) {
28
+ entries.delete(threadId);
29
+ return void 0;
30
+ }
31
+ return entry;
32
+ };
33
+ return {
34
+ remember(threadId, state) {
35
+ const at = now();
36
+ entries.delete(threadId);
37
+ entries.set(threadId, { state, at });
38
+ evict();
39
+ notify({ type: "remember", threadId, state, at });
40
+ },
41
+ take(threadId) {
42
+ var _a;
43
+ return (_a = fresh(threadId)) == null ? void 0 : _a.state;
44
+ },
45
+ peek(threadId) {
46
+ return fresh(threadId) !== void 0;
47
+ },
48
+ restore(threadId, state, at) {
49
+ if (now() - at > maxAgeMs) return;
50
+ const existing = entries.get(threadId);
51
+ if (existing && existing.at >= at) return;
52
+ entries.delete(threadId);
53
+ entries.set(threadId, { state, at });
54
+ evict();
55
+ },
56
+ forget(threadId) {
57
+ entries.delete(threadId);
58
+ notify({ type: "forget", threadId });
59
+ },
60
+ clear() {
61
+ entries.clear();
62
+ notify({ type: "clear" });
63
+ }
64
+ };
65
+ }
66
+ function toThreadSnapshotSeed(state) {
67
+ const {
68
+ __interrupt__: _interrupt,
69
+ ptc_subagents: _ptcSubagents,
70
+ legacyRunActive: _legacyRunActive,
71
+ ...rest
72
+ } = state;
73
+ return { ...rest, runs: seedRunsLane(state.runs) };
74
+ }
75
+ function seedRunsLane(runs) {
76
+ const live = runs == null ? void 0 : runs[0];
77
+ if (live === void 0 || live.status !== "running") return [];
78
+ return [
79
+ {
80
+ runId: live.runId,
81
+ status: "running",
82
+ queue: live.queue,
83
+ steerQueue: live.steerQueue,
84
+ ...live.epoch !== void 0 && { epoch: live.epoch }
85
+ }
86
+ ];
87
+ }
88
+ exports.createDeepAgentThreadSnapshotCache = createDeepAgentThreadSnapshotCache;
89
+ exports.toThreadSnapshotSeed = toThreadSnapshotSeed;
90
+ //# sourceMappingURL=thread-snapshot-cache.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-snapshot-cache.cjs","sources":["../../../../../agent-runtime/src/thread-snapshot-cache.ts"],"sourcesContent":["import type { DeepAgentStreamValues } from './types';\n\n/**\n * Per-tab LRU of the last wire state seen per thread, so a switch back to a\n * recently-visited thread can mount with that snapshot instead of an empty\n * \"loading\" state (see `UseDeepAgentThreadOptions.snapshotCache`). Entries are\n * references into states the wire already produced — remembering is O(1) and\n * copies nothing; the bound is `maxThreads` retained states.\n */\nexport interface DeepAgentThreadSnapshotCache {\n /** Record the latest hydrated wire state for a thread. */\n remember(threadId: string, state: DeepAgentStreamValues): void;\n /** The freshest remembered state for a thread, or `undefined` when none is\n * held or the entry aged out. */\n take(threadId: string): DeepAgentStreamValues | undefined;\n /**\n * Drop a single thread's entry. Called when the server refuses\n * authorization for the thread — a refused thread must not warm-paint on\n * its next mount.\n */\n forget(threadId: string): void;\n /**\n * Drop every entry. Called when the acting identity changes — a snapshot\n * captured under one account must never seed a mount under another.\n */\n clear(): void;\n /**\n * Whether a fresh entry is held for the thread, without consuming or\n * touching it. Hosts read it at selection time to decide whether the switch\n * can paint from a seed (no loading treatment) or must cover the attach\n * wait. Optional so hand-rolled caches keep type-checking; the built-in\n * cache implements it.\n */\n peek?(threadId: string): boolean;\n}\n\n/** A write observed on the cache — the durable-mirror seam (see `onChange`). */\nexport type DeepAgentThreadSnapshotCacheChange =\n | { type: 'remember'; threadId: string; state: DeepAgentStreamValues; at: number }\n | { type: 'forget'; threadId: string }\n | { type: 'clear' };\n\nexport interface DeepAgentThreadSnapshotCacheOptions {\n /** Threads retained; the least-recently written entry evicts beyond this. */\n maxThreads?: number;\n /**\n * Entries older than this are dropped at read time. The seed's value is\n * \"the thread you just left\" — a snapshot from long ago is more likely to\n * flash content the server has since rewritten than to save a paint.\n */\n maxAgeMs?: number;\n /**\n * Observer of every write (`remember`, `forget`, `clear`). Hosts mirror\n * entries into durable storage from here so a reload can seed too; the\n * observer is never invoked for `restore`, which re-admits mirrored entries.\n * Exceptions are swallowed — a mirror fault must not break the wire path.\n */\n onChange?: (change: DeepAgentThreadSnapshotCacheChange) => void;\n /** Injectable clock (tests). */\n now?: () => number;\n}\n\n/** The built-in cache: the host contract plus the durable-mirror re-admission. */\nexport interface CreatedDeepAgentThreadSnapshotCache extends DeepAgentThreadSnapshotCache {\n peek(threadId: string): boolean;\n /**\n * Re-admit an entry captured earlier — a mirrored snapshot after a reload —\n * under its ORIGINAL capture time, so the age bound still applies. Never\n * displaces a fresher in-memory entry and never notifies `onChange`.\n */\n restore(threadId: string, state: DeepAgentStreamValues, at: number): void;\n}\n\nconst DEFAULT_MAX_THREADS = 30;\nconst DEFAULT_MAX_AGE_MS = 60 * 60 * 1000;\n\nexport function createDeepAgentThreadSnapshotCache(\n options: DeepAgentThreadSnapshotCacheOptions = {}\n): CreatedDeepAgentThreadSnapshotCache {\n const maxThreads = options.maxThreads ?? DEFAULT_MAX_THREADS;\n const maxAgeMs = options.maxAgeMs ?? DEFAULT_MAX_AGE_MS;\n const now = options.now ?? (() => Date.now());\n const notify = (change: DeepAgentThreadSnapshotCacheChange): void => {\n try {\n options.onChange?.(change);\n } catch {\n // The mirror is best-effort; the in-memory cache stays authoritative.\n }\n };\n // Map iteration order is insertion order; delete-then-set on every write\n // keeps the first key the least-recently written.\n const entries = new Map<string, { state: DeepAgentStreamValues; at: number }>();\n const evict = (): void => {\n while (entries.size > maxThreads) {\n const oldest = entries.keys().next().value;\n if (oldest === undefined) break;\n entries.delete(oldest);\n }\n };\n const fresh = (threadId: string): { state: DeepAgentStreamValues; at: number } | undefined => {\n const entry = entries.get(threadId);\n if (!entry) return undefined;\n if (now() - entry.at > maxAgeMs) {\n entries.delete(threadId);\n return undefined;\n }\n return entry;\n };\n return {\n remember(threadId, state) {\n const at = now();\n entries.delete(threadId);\n entries.set(threadId, { state, at });\n evict();\n notify({ type: 'remember', threadId, state, at });\n },\n take(threadId) {\n return fresh(threadId)?.state;\n },\n peek(threadId) {\n return fresh(threadId) !== undefined;\n },\n restore(threadId, state, at) {\n if (now() - at > maxAgeMs) return;\n const existing = entries.get(threadId);\n if (existing && existing.at >= at) return;\n entries.delete(threadId);\n entries.set(threadId, { state, at });\n evict();\n },\n forget(threadId) {\n entries.delete(threadId);\n notify({ type: 'forget', threadId });\n },\n clear() {\n entries.clear();\n notify({ type: 'clear' });\n },\n };\n}\n\n/**\n * Shape a remembered wire state for use as a mount's `initialState`.\n *\n * Messages/todos and the other app-owned keys seed as captured. The run lane\n * seeds by what the user left: a thread whose run was `running` when the\n * snapshot was taken seeds a running entry (see {@link seedRunsLane}) so the\n * switch back reads Running with a Stop control on its first frame — the same\n * frame `runs: []` would render as \"ready\" with a Send button over a thread the\n * server is still mid-run on. Every other live-lifecycle lane normalizes to\n * resting: a seeded input request could collect a decision the server may have\n * already resolved, so an `input-required` entry seeds as no run at all.\n * `__interrupt__` is dropped for the same reason, and so are `ptc_subagents`\n * (the live in-eval dispatch lane — a seeded \"running\" dispatch card under a\n * resting thread would render active with no eval behind it) and\n * `legacyRunActive` (the host's out-of-band-run-in-progress flag — seeding a\n * finished run's `true` would hide the composer until the attach corrected\n * it). Durable thread properties (`runConfig`, `sessionPersisted`, …) seed as\n * captured; the attach snapshot then replaces the whole seed.\n */\nexport function toThreadSnapshotSeed(state: DeepAgentStreamValues): DeepAgentStreamValues {\n const {\n __interrupt__: _interrupt,\n ptc_subagents: _ptcSubagents,\n legacyRunActive: _legacyRunActive,\n ...rest\n } = state;\n return { ...rest, runs: seedRunsLane(state.runs) };\n}\n\n/**\n * The run entries a seed carries.\n *\n * Only a `running` entry survives, and only its replicated identity and its\n * durable lanes: `runId` (the target of a Stop sent during the attach\n * round-trip — the live run's id if it is still running, and a refused stop\n * if it finished meanwhile), `epoch` (rides that Stop so a replayed stop cannot\n * end a later leg) and the `queue`/`steerQueue` entries (server lanes the tray\n * renders). The in-flight records rest until the snapshot: `dispatching` and\n * `nextDispatch` are batches the materializer would re-apply onto messages\n * that already contain them, `stopping` is a rewind the host may have\n * finished, `inputRequests` is a parked decision, and `error` is a failure the\n * next user run clears. An entry in any other status — `stopped`, `error`,\n * `input-required` — seeds as no run.\n */\nfunction seedRunsLane(\n runs: DeepAgentStreamValues['runs']\n): NonNullable<DeepAgentStreamValues['runs']> {\n const live = runs?.[0];\n if (live === undefined || live.status !== 'running') return [];\n return [\n {\n runId: live.runId,\n status: 'running',\n queue: live.queue,\n steerQueue: live.steerQueue,\n ...(live.epoch !== undefined && { epoch: live.epoch }),\n },\n ];\n}\n"],"names":[],"mappings":";;AAyEA,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB,KAAK,KAAK;AAE9B,SAAS,mCACd,UAA+C,IACV;AACrC,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,MAAM,QAAQ,QAAQ,MAAM,KAAK,IAAA;AACvC,QAAM,SAAS,CAAC,WAAqD;;AACnE,QAAI;AACF,oBAAQ,aAAR,iCAAmB;AAAA,IACrB,QAAQ;AAAA,IAER;AAAA,EACF;AAGA,QAAM,8BAAc,IAAA;AACpB,QAAM,QAAQ,MAAY;AACxB,WAAO,QAAQ,OAAO,YAAY;AAChC,YAAM,SAAS,QAAQ,KAAA,EAAO,OAAO;AACrC,UAAI,WAAW,OAAW;AAC1B,cAAQ,OAAO,MAAM;AAAA,IACvB;AAAA,EACF;AACA,QAAM,QAAQ,CAAC,aAA+E;AAC5F,UAAM,QAAQ,QAAQ,IAAI,QAAQ;AAClC,QAAI,CAAC,MAAO,QAAO;AACnB,QAAI,IAAA,IAAQ,MAAM,KAAK,UAAU;AAC/B,cAAQ,OAAO,QAAQ;AACvB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,SAAS,UAAU,OAAO;AACxB,YAAM,KAAK,IAAA;AACX,cAAQ,OAAO,QAAQ;AACvB,cAAQ,IAAI,UAAU,EAAE,OAAO,IAAI;AACnC,YAAA;AACA,aAAO,EAAE,MAAM,YAAY,UAAU,OAAO,IAAI;AAAA,IAClD;AAAA,IACA,KAAK,UAAU;;AACb,cAAO,WAAM,QAAQ,MAAd,mBAAiB;AAAA,IAC1B;AAAA,IACA,KAAK,UAAU;AACb,aAAO,MAAM,QAAQ,MAAM;AAAA,IAC7B;AAAA,IACA,QAAQ,UAAU,OAAO,IAAI;AAC3B,UAAI,IAAA,IAAQ,KAAK,SAAU;AAC3B,YAAM,WAAW,QAAQ,IAAI,QAAQ;AACrC,UAAI,YAAY,SAAS,MAAM,GAAI;AACnC,cAAQ,OAAO,QAAQ;AACvB,cAAQ,IAAI,UAAU,EAAE,OAAO,IAAI;AACnC,YAAA;AAAA,IACF;AAAA,IACA,OAAO,UAAU;AACf,cAAQ,OAAO,QAAQ;AACvB,aAAO,EAAE,MAAM,UAAU,SAAA,CAAU;AAAA,IACrC;AAAA,IACA,QAAQ;AACN,cAAQ,MAAA;AACR,aAAO,EAAE,MAAM,SAAS;AAAA,IAC1B;AAAA,EAAA;AAEJ;AAqBO,SAAS,qBAAqB,OAAqD;AACxF,QAAM;AAAA,IACJ,eAAe;AAAA,IACf,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,GAAG;AAAA,EAAA,IACD;AACJ,SAAO,EAAE,GAAG,MAAM,MAAM,aAAa,MAAM,IAAI,EAAA;AACjD;AAiBA,SAAS,aACP,MAC4C;AAC5C,QAAM,OAAO,6BAAO;AACpB,MAAI,SAAS,UAAa,KAAK,WAAW,kBAAkB,CAAA;AAC5D,SAAO;AAAA,IACL;AAAA,MACE,OAAO,KAAK;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,MACjB,GAAI,KAAK,UAAU,UAAa,EAAE,OAAO,KAAK,MAAA;AAAA,IAAM;AAAA,EACtD;AAEJ;;;"}
@@ -0,0 +1,90 @@
1
+ const DEFAULT_MAX_THREADS = 30;
2
+ const DEFAULT_MAX_AGE_MS = 60 * 60 * 1e3;
3
+ function createDeepAgentThreadSnapshotCache(options = {}) {
4
+ const maxThreads = options.maxThreads ?? DEFAULT_MAX_THREADS;
5
+ const maxAgeMs = options.maxAgeMs ?? DEFAULT_MAX_AGE_MS;
6
+ const now = options.now ?? (() => Date.now());
7
+ const notify = (change) => {
8
+ var _a;
9
+ try {
10
+ (_a = options.onChange) == null ? void 0 : _a.call(options, change);
11
+ } catch {
12
+ }
13
+ };
14
+ const entries = /* @__PURE__ */ new Map();
15
+ const evict = () => {
16
+ while (entries.size > maxThreads) {
17
+ const oldest = entries.keys().next().value;
18
+ if (oldest === void 0) break;
19
+ entries.delete(oldest);
20
+ }
21
+ };
22
+ const fresh = (threadId) => {
23
+ const entry = entries.get(threadId);
24
+ if (!entry) return void 0;
25
+ if (now() - entry.at > maxAgeMs) {
26
+ entries.delete(threadId);
27
+ return void 0;
28
+ }
29
+ return entry;
30
+ };
31
+ return {
32
+ remember(threadId, state) {
33
+ const at = now();
34
+ entries.delete(threadId);
35
+ entries.set(threadId, { state, at });
36
+ evict();
37
+ notify({ type: "remember", threadId, state, at });
38
+ },
39
+ take(threadId) {
40
+ var _a;
41
+ return (_a = fresh(threadId)) == null ? void 0 : _a.state;
42
+ },
43
+ peek(threadId) {
44
+ return fresh(threadId) !== void 0;
45
+ },
46
+ restore(threadId, state, at) {
47
+ if (now() - at > maxAgeMs) return;
48
+ const existing = entries.get(threadId);
49
+ if (existing && existing.at >= at) return;
50
+ entries.delete(threadId);
51
+ entries.set(threadId, { state, at });
52
+ evict();
53
+ },
54
+ forget(threadId) {
55
+ entries.delete(threadId);
56
+ notify({ type: "forget", threadId });
57
+ },
58
+ clear() {
59
+ entries.clear();
60
+ notify({ type: "clear" });
61
+ }
62
+ };
63
+ }
64
+ function toThreadSnapshotSeed(state) {
65
+ const {
66
+ __interrupt__: _interrupt,
67
+ ptc_subagents: _ptcSubagents,
68
+ legacyRunActive: _legacyRunActive,
69
+ ...rest
70
+ } = state;
71
+ return { ...rest, runs: seedRunsLane(state.runs) };
72
+ }
73
+ function seedRunsLane(runs) {
74
+ const live = runs == null ? void 0 : runs[0];
75
+ if (live === void 0 || live.status !== "running") return [];
76
+ return [
77
+ {
78
+ runId: live.runId,
79
+ status: "running",
80
+ queue: live.queue,
81
+ steerQueue: live.steerQueue,
82
+ ...live.epoch !== void 0 && { epoch: live.epoch }
83
+ }
84
+ ];
85
+ }
86
+ export {
87
+ createDeepAgentThreadSnapshotCache,
88
+ toThreadSnapshotSeed
89
+ };
90
+ //# sourceMappingURL=thread-snapshot-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-snapshot-cache.js","sources":["../../../../../agent-runtime/src/thread-snapshot-cache.ts"],"sourcesContent":["import type { DeepAgentStreamValues } from './types';\n\n/**\n * Per-tab LRU of the last wire state seen per thread, so a switch back to a\n * recently-visited thread can mount with that snapshot instead of an empty\n * \"loading\" state (see `UseDeepAgentThreadOptions.snapshotCache`). Entries are\n * references into states the wire already produced — remembering is O(1) and\n * copies nothing; the bound is `maxThreads` retained states.\n */\nexport interface DeepAgentThreadSnapshotCache {\n /** Record the latest hydrated wire state for a thread. */\n remember(threadId: string, state: DeepAgentStreamValues): void;\n /** The freshest remembered state for a thread, or `undefined` when none is\n * held or the entry aged out. */\n take(threadId: string): DeepAgentStreamValues | undefined;\n /**\n * Drop a single thread's entry. Called when the server refuses\n * authorization for the thread — a refused thread must not warm-paint on\n * its next mount.\n */\n forget(threadId: string): void;\n /**\n * Drop every entry. Called when the acting identity changes — a snapshot\n * captured under one account must never seed a mount under another.\n */\n clear(): void;\n /**\n * Whether a fresh entry is held for the thread, without consuming or\n * touching it. Hosts read it at selection time to decide whether the switch\n * can paint from a seed (no loading treatment) or must cover the attach\n * wait. Optional so hand-rolled caches keep type-checking; the built-in\n * cache implements it.\n */\n peek?(threadId: string): boolean;\n}\n\n/** A write observed on the cache — the durable-mirror seam (see `onChange`). */\nexport type DeepAgentThreadSnapshotCacheChange =\n | { type: 'remember'; threadId: string; state: DeepAgentStreamValues; at: number }\n | { type: 'forget'; threadId: string }\n | { type: 'clear' };\n\nexport interface DeepAgentThreadSnapshotCacheOptions {\n /** Threads retained; the least-recently written entry evicts beyond this. */\n maxThreads?: number;\n /**\n * Entries older than this are dropped at read time. The seed's value is\n * \"the thread you just left\" — a snapshot from long ago is more likely to\n * flash content the server has since rewritten than to save a paint.\n */\n maxAgeMs?: number;\n /**\n * Observer of every write (`remember`, `forget`, `clear`). Hosts mirror\n * entries into durable storage from here so a reload can seed too; the\n * observer is never invoked for `restore`, which re-admits mirrored entries.\n * Exceptions are swallowed — a mirror fault must not break the wire path.\n */\n onChange?: (change: DeepAgentThreadSnapshotCacheChange) => void;\n /** Injectable clock (tests). */\n now?: () => number;\n}\n\n/** The built-in cache: the host contract plus the durable-mirror re-admission. */\nexport interface CreatedDeepAgentThreadSnapshotCache extends DeepAgentThreadSnapshotCache {\n peek(threadId: string): boolean;\n /**\n * Re-admit an entry captured earlier — a mirrored snapshot after a reload —\n * under its ORIGINAL capture time, so the age bound still applies. Never\n * displaces a fresher in-memory entry and never notifies `onChange`.\n */\n restore(threadId: string, state: DeepAgentStreamValues, at: number): void;\n}\n\nconst DEFAULT_MAX_THREADS = 30;\nconst DEFAULT_MAX_AGE_MS = 60 * 60 * 1000;\n\nexport function createDeepAgentThreadSnapshotCache(\n options: DeepAgentThreadSnapshotCacheOptions = {}\n): CreatedDeepAgentThreadSnapshotCache {\n const maxThreads = options.maxThreads ?? DEFAULT_MAX_THREADS;\n const maxAgeMs = options.maxAgeMs ?? DEFAULT_MAX_AGE_MS;\n const now = options.now ?? (() => Date.now());\n const notify = (change: DeepAgentThreadSnapshotCacheChange): void => {\n try {\n options.onChange?.(change);\n } catch {\n // The mirror is best-effort; the in-memory cache stays authoritative.\n }\n };\n // Map iteration order is insertion order; delete-then-set on every write\n // keeps the first key the least-recently written.\n const entries = new Map<string, { state: DeepAgentStreamValues; at: number }>();\n const evict = (): void => {\n while (entries.size > maxThreads) {\n const oldest = entries.keys().next().value;\n if (oldest === undefined) break;\n entries.delete(oldest);\n }\n };\n const fresh = (threadId: string): { state: DeepAgentStreamValues; at: number } | undefined => {\n const entry = entries.get(threadId);\n if (!entry) return undefined;\n if (now() - entry.at > maxAgeMs) {\n entries.delete(threadId);\n return undefined;\n }\n return entry;\n };\n return {\n remember(threadId, state) {\n const at = now();\n entries.delete(threadId);\n entries.set(threadId, { state, at });\n evict();\n notify({ type: 'remember', threadId, state, at });\n },\n take(threadId) {\n return fresh(threadId)?.state;\n },\n peek(threadId) {\n return fresh(threadId) !== undefined;\n },\n restore(threadId, state, at) {\n if (now() - at > maxAgeMs) return;\n const existing = entries.get(threadId);\n if (existing && existing.at >= at) return;\n entries.delete(threadId);\n entries.set(threadId, { state, at });\n evict();\n },\n forget(threadId) {\n entries.delete(threadId);\n notify({ type: 'forget', threadId });\n },\n clear() {\n entries.clear();\n notify({ type: 'clear' });\n },\n };\n}\n\n/**\n * Shape a remembered wire state for use as a mount's `initialState`.\n *\n * Messages/todos and the other app-owned keys seed as captured. The run lane\n * seeds by what the user left: a thread whose run was `running` when the\n * snapshot was taken seeds a running entry (see {@link seedRunsLane}) so the\n * switch back reads Running with a Stop control on its first frame — the same\n * frame `runs: []` would render as \"ready\" with a Send button over a thread the\n * server is still mid-run on. Every other live-lifecycle lane normalizes to\n * resting: a seeded input request could collect a decision the server may have\n * already resolved, so an `input-required` entry seeds as no run at all.\n * `__interrupt__` is dropped for the same reason, and so are `ptc_subagents`\n * (the live in-eval dispatch lane — a seeded \"running\" dispatch card under a\n * resting thread would render active with no eval behind it) and\n * `legacyRunActive` (the host's out-of-band-run-in-progress flag — seeding a\n * finished run's `true` would hide the composer until the attach corrected\n * it). Durable thread properties (`runConfig`, `sessionPersisted`, …) seed as\n * captured; the attach snapshot then replaces the whole seed.\n */\nexport function toThreadSnapshotSeed(state: DeepAgentStreamValues): DeepAgentStreamValues {\n const {\n __interrupt__: _interrupt,\n ptc_subagents: _ptcSubagents,\n legacyRunActive: _legacyRunActive,\n ...rest\n } = state;\n return { ...rest, runs: seedRunsLane(state.runs) };\n}\n\n/**\n * The run entries a seed carries.\n *\n * Only a `running` entry survives, and only its replicated identity and its\n * durable lanes: `runId` (the target of a Stop sent during the attach\n * round-trip — the live run's id if it is still running, and a refused stop\n * if it finished meanwhile), `epoch` (rides that Stop so a replayed stop cannot\n * end a later leg) and the `queue`/`steerQueue` entries (server lanes the tray\n * renders). The in-flight records rest until the snapshot: `dispatching` and\n * `nextDispatch` are batches the materializer would re-apply onto messages\n * that already contain them, `stopping` is a rewind the host may have\n * finished, `inputRequests` is a parked decision, and `error` is a failure the\n * next user run clears. An entry in any other status — `stopped`, `error`,\n * `input-required` — seeds as no run.\n */\nfunction seedRunsLane(\n runs: DeepAgentStreamValues['runs']\n): NonNullable<DeepAgentStreamValues['runs']> {\n const live = runs?.[0];\n if (live === undefined || live.status !== 'running') return [];\n return [\n {\n runId: live.runId,\n status: 'running',\n queue: live.queue,\n steerQueue: live.steerQueue,\n ...(live.epoch !== undefined && { epoch: live.epoch }),\n },\n ];\n}\n"],"names":[],"mappings":"AAyEA,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB,KAAK,KAAK;AAE9B,SAAS,mCACd,UAA+C,IACV;AACrC,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,MAAM,QAAQ,QAAQ,MAAM,KAAK,IAAA;AACvC,QAAM,SAAS,CAAC,WAAqD;AATvE;AAUI,QAAI;AACF,oBAAQ,aAAR,iCAAmB;AAAA,IACrB,QAAQ;AAAA,IAER;AAAA,EACF;AAGA,QAAM,8BAAc,IAAA;AACpB,QAAM,QAAQ,MAAY;AACxB,WAAO,QAAQ,OAAO,YAAY;AAChC,YAAM,SAAS,QAAQ,KAAA,EAAO,OAAO;AACrC,UAAI,WAAW,OAAW;AAC1B,cAAQ,OAAO,MAAM;AAAA,IACvB;AAAA,EACF;AACA,QAAM,QAAQ,CAAC,aAA+E;AAC5F,UAAM,QAAQ,QAAQ,IAAI,QAAQ;AAClC,QAAI,CAAC,MAAO,QAAO;AACnB,QAAI,IAAA,IAAQ,MAAM,KAAK,UAAU;AAC/B,cAAQ,OAAO,QAAQ;AACvB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,SAAS,UAAU,OAAO;AACxB,YAAM,KAAK,IAAA;AACX,cAAQ,OAAO,QAAQ;AACvB,cAAQ,IAAI,UAAU,EAAE,OAAO,IAAI;AACnC,YAAA;AACA,aAAO,EAAE,MAAM,YAAY,UAAU,OAAO,IAAI;AAAA,IAClD;AAAA,IACA,KAAK,UAAU;AA3CnB;AA4CM,cAAO,WAAM,QAAQ,MAAd,mBAAiB;AAAA,IAC1B;AAAA,IACA,KAAK,UAAU;AACb,aAAO,MAAM,QAAQ,MAAM;AAAA,IAC7B;AAAA,IACA,QAAQ,UAAU,OAAO,IAAI;AAC3B,UAAI,IAAA,IAAQ,KAAK,SAAU;AAC3B,YAAM,WAAW,QAAQ,IAAI,QAAQ;AACrC,UAAI,YAAY,SAAS,MAAM,GAAI;AACnC,cAAQ,OAAO,QAAQ;AACvB,cAAQ,IAAI,UAAU,EAAE,OAAO,IAAI;AACnC,YAAA;AAAA,IACF;AAAA,IACA,OAAO,UAAU;AACf,cAAQ,OAAO,QAAQ;AACvB,aAAO,EAAE,MAAM,UAAU,SAAA,CAAU;AAAA,IACrC;AAAA,IACA,QAAQ;AACN,cAAQ,MAAA;AACR,aAAO,EAAE,MAAM,SAAS;AAAA,IAC1B;AAAA,EAAA;AAEJ;AAqBO,SAAS,qBAAqB,OAAqD;AACxF,QAAM;AAAA,IACJ,eAAe;AAAA,IACf,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,GAAG;AAAA,EAAA,IACD;AACJ,SAAO,EAAE,GAAG,MAAM,MAAM,aAAa,MAAM,IAAI,EAAA;AACjD;AAiBA,SAAS,aACP,MAC4C;AAC5C,QAAM,OAAO,6BAAO;AACpB,MAAI,SAAS,UAAa,KAAK,WAAW,kBAAkB,CAAA;AAC5D,SAAO;AAAA,IACL;AAAA,MACE,OAAO,KAAK;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,MACjB,GAAI,KAAK,UAAU,UAAa,EAAE,OAAO,KAAK,MAAA;AAAA,IAAM;AAAA,EACtD;AAEJ;"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const store = require("@assistant-ui/store");
4
+ const react = require("react");
5
+ function useDeepAgentThreadStatus() {
6
+ return store.useAuiState((s) => {
7
+ var _a;
8
+ const status = (_a = s.thread.extras) == null ? void 0 : _a.status;
9
+ if (status === void 0) {
10
+ throw new Error("useDeepAgentThreadStatus requires a statewire thread");
11
+ }
12
+ return status;
13
+ });
14
+ }
15
+ function resolveStaleRunReason({
16
+ status,
17
+ connection
18
+ }) {
19
+ if (status === "evicted") return "evicted";
20
+ if (status !== "disconnected") return null;
21
+ if ((connection == null ? void 0 : connection.status) === "connecting") {
22
+ return null;
23
+ }
24
+ return "disconnected";
25
+ }
26
+ function resolveRunLive({
27
+ status,
28
+ connection
29
+ }) {
30
+ if (status === "running") return true;
31
+ if (status !== "disconnected") return false;
32
+ return resolveStaleRunReason({ status, connection }) === null;
33
+ }
34
+ function readRunLive(thread, connection) {
35
+ var _a;
36
+ const status = (_a = thread.extras) == null ? void 0 : _a.status;
37
+ return status === void 0 ? thread.isRunning : resolveRunLive({ status, connection });
38
+ }
39
+ const DeepAgentConnectionContext = react.createContext(null);
40
+ function useDeepAgentConnection() {
41
+ return react.useContext(DeepAgentConnectionContext);
42
+ }
43
+ exports.DeepAgentConnectionContext = DeepAgentConnectionContext;
44
+ exports.readRunLive = readRunLive;
45
+ exports.resolveRunLive = resolveRunLive;
46
+ exports.resolveStaleRunReason = resolveStaleRunReason;
47
+ exports.useDeepAgentConnection = useDeepAgentConnection;
48
+ exports.useDeepAgentThreadStatus = useDeepAgentThreadStatus;
49
+ //# sourceMappingURL=thread-status.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-status.cjs","sources":["../../../../../agent-runtime/src/thread-status.ts"],"sourcesContent":["import type { StatewireThread } from '@assistant-ui/react-statewire';\nimport { useAuiState } from '@assistant-ui/store';\nimport { createContext, useContext } from 'react';\nimport type { DeepAgentConnectionState } from './types';\n\nexport type DeepAgentThreadStatus = StatewireThread.ThreadStatus;\n\n/**\n * Runtime-scoped thread status, as the library presents it: `\"loading\"` /\n * `\"ready\"` / the run's status replicated by the host, with a mid-run\n * connection loss presented as `\"evicted\"` (server-update pod drain) or\n * `\"disconnected\"` instead of `\"running\"`. Throws outside a statewire aui\n * provider, matching react-statewire 0.13's removed `useStatewireThreadStatus`.\n */\nexport function useDeepAgentThreadStatus(): DeepAgentThreadStatus {\n return useAuiState((s) => {\n const status = (s.thread.extras as Partial<StatewireThread.Extras> | undefined)?.status;\n if (status === undefined) {\n throw new Error('useDeepAgentThreadStatus requires a statewire thread');\n }\n return status;\n });\n}\n\n/** The two presented statuses that hide a live run behind a channel problem. */\nexport type DeepAgentStaleRunReason = Extract<DeepAgentThreadStatus, 'disconnected' | 'evicted'>;\n\n/** A first connection attempt can present an optimistic run without a stale warning. */\nexport function resolveStaleRunReason({\n status,\n connection,\n}: {\n status: DeepAgentThreadStatus;\n connection?: DeepAgentConnectionState | null;\n}): DeepAgentStaleRunReason | null {\n if (status === 'evicted') return 'evicted';\n if (status !== 'disconnected') return null;\n if (connection?.status === 'connecting') {\n return null;\n }\n return 'disconnected';\n}\n\n/**\n * Whether the thread has a live run to present — the composer's Running bar\n * and its Stop/Queue slot.\n *\n * The library derives `thread.isRunning` from the PRESENTED status, so a run\n * that is live on the host but sits behind a channel that has not connected\n * yet reads as not running. Behind a first dial that is exactly the run the\n * client just seeded — switching back to a thread that was running when you\n * left, or a brand-new chat's optimistic first send — and nothing is stale:\n * the channel is still attaching. Hiding the run for that round-trip flashes\n * Ready and a Send button before Running comes back. A run behind a reconnect\n * or an eviction is presented by the stale treatment (`resolveStaleRunReason`),\n * never as live.\n */\nexport function resolveRunLive({\n status,\n connection,\n}: {\n status: DeepAgentThreadStatus;\n connection?: DeepAgentConnectionState | null;\n}): boolean {\n if (status === 'running') return true;\n if (status !== 'disconnected') return false;\n return resolveStaleRunReason({ status, connection }) === null;\n}\n\n/**\n * `thread.isRunning` for a `useAuiState` selector, folded through\n * `resolveRunLive` when the thread is a statewire thread. A thread without a\n * statewire status (another runtime, a test stub) keeps the library's answer.\n */\nexport function readRunLive(\n thread: { isRunning: boolean; extras?: unknown },\n connection: DeepAgentConnectionState | null,\n): boolean {\n const status = (thread.extras as Partial<StatewireThread.Extras> | undefined)?.status;\n return status === undefined ? thread.isRunning : resolveRunLive({ status, connection });\n}\n\n/**\n * The active thread's channel, for `readRunLive`'s first-dial verdict. Each\n * host provides it from its own lifecycle state (`AthenaProvider`, the\n * Chrome extension's lifecycle provider); `null` means \"no channel known\",\n * which folds a `disconnected` status as stale.\n */\nexport const DeepAgentConnectionContext = createContext<DeepAgentConnectionState | null>(null);\n\nexport function useDeepAgentConnection(): DeepAgentConnectionState | null {\n return useContext(DeepAgentConnectionContext);\n}\n"],"names":["useAuiState","createContext","useContext"],"mappings":";;;;AAcO,SAAS,2BAAkD;AAChE,SAAOA,MAAAA,YAAY,CAAC,MAAM;;AACxB,UAAM,UAAU,OAAE,OAAO,WAAT,mBAAiE;AACjF,QAAI,WAAW,QAAW;AACxB,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAMO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AACF,GAGmC;AACjC,MAAI,WAAW,UAAW,QAAO;AACjC,MAAI,WAAW,eAAgB,QAAO;AACtC,OAAI,yCAAY,YAAW,cAAc;AACvC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAgBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AACF,GAGY;AACV,MAAI,WAAW,UAAW,QAAO;AACjC,MAAI,WAAW,eAAgB,QAAO;AACtC,SAAO,sBAAsB,EAAE,QAAQ,WAAA,CAAY,MAAM;AAC3D;AAOO,SAAS,YACd,QACA,YACS;;AACT,QAAM,UAAU,YAAO,WAAP,mBAA+D;AAC/E,SAAO,WAAW,SAAY,OAAO,YAAY,eAAe,EAAE,QAAQ,YAAY;AACxF;AAQO,MAAM,6BAA6BC,MAAAA,cAA+C,IAAI;AAEtF,SAAS,yBAA0D;AACxE,SAAOC,MAAAA,WAAW,0BAA0B;AAC9C;;;;;;;"}
@@ -0,0 +1,49 @@
1
+ import { useAuiState } from "@assistant-ui/store";
2
+ import { createContext, useContext } from "react";
3
+ function useDeepAgentThreadStatus() {
4
+ return useAuiState((s) => {
5
+ var _a;
6
+ const status = (_a = s.thread.extras) == null ? void 0 : _a.status;
7
+ if (status === void 0) {
8
+ throw new Error("useDeepAgentThreadStatus requires a statewire thread");
9
+ }
10
+ return status;
11
+ });
12
+ }
13
+ function resolveStaleRunReason({
14
+ status,
15
+ connection
16
+ }) {
17
+ if (status === "evicted") return "evicted";
18
+ if (status !== "disconnected") return null;
19
+ if ((connection == null ? void 0 : connection.status) === "connecting") {
20
+ return null;
21
+ }
22
+ return "disconnected";
23
+ }
24
+ function resolveRunLive({
25
+ status,
26
+ connection
27
+ }) {
28
+ if (status === "running") return true;
29
+ if (status !== "disconnected") return false;
30
+ return resolveStaleRunReason({ status, connection }) === null;
31
+ }
32
+ function readRunLive(thread, connection) {
33
+ var _a;
34
+ const status = (_a = thread.extras) == null ? void 0 : _a.status;
35
+ return status === void 0 ? thread.isRunning : resolveRunLive({ status, connection });
36
+ }
37
+ const DeepAgentConnectionContext = createContext(null);
38
+ function useDeepAgentConnection() {
39
+ return useContext(DeepAgentConnectionContext);
40
+ }
41
+ export {
42
+ DeepAgentConnectionContext,
43
+ readRunLive,
44
+ resolveRunLive,
45
+ resolveStaleRunReason,
46
+ useDeepAgentConnection,
47
+ useDeepAgentThreadStatus
48
+ };
49
+ //# sourceMappingURL=thread-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-status.js","sources":["../../../../../agent-runtime/src/thread-status.ts"],"sourcesContent":["import type { StatewireThread } from '@assistant-ui/react-statewire';\nimport { useAuiState } from '@assistant-ui/store';\nimport { createContext, useContext } from 'react';\nimport type { DeepAgentConnectionState } from './types';\n\nexport type DeepAgentThreadStatus = StatewireThread.ThreadStatus;\n\n/**\n * Runtime-scoped thread status, as the library presents it: `\"loading\"` /\n * `\"ready\"` / the run's status replicated by the host, with a mid-run\n * connection loss presented as `\"evicted\"` (server-update pod drain) or\n * `\"disconnected\"` instead of `\"running\"`. Throws outside a statewire aui\n * provider, matching react-statewire 0.13's removed `useStatewireThreadStatus`.\n */\nexport function useDeepAgentThreadStatus(): DeepAgentThreadStatus {\n return useAuiState((s) => {\n const status = (s.thread.extras as Partial<StatewireThread.Extras> | undefined)?.status;\n if (status === undefined) {\n throw new Error('useDeepAgentThreadStatus requires a statewire thread');\n }\n return status;\n });\n}\n\n/** The two presented statuses that hide a live run behind a channel problem. */\nexport type DeepAgentStaleRunReason = Extract<DeepAgentThreadStatus, 'disconnected' | 'evicted'>;\n\n/** A first connection attempt can present an optimistic run without a stale warning. */\nexport function resolveStaleRunReason({\n status,\n connection,\n}: {\n status: DeepAgentThreadStatus;\n connection?: DeepAgentConnectionState | null;\n}): DeepAgentStaleRunReason | null {\n if (status === 'evicted') return 'evicted';\n if (status !== 'disconnected') return null;\n if (connection?.status === 'connecting') {\n return null;\n }\n return 'disconnected';\n}\n\n/**\n * Whether the thread has a live run to present — the composer's Running bar\n * and its Stop/Queue slot.\n *\n * The library derives `thread.isRunning` from the PRESENTED status, so a run\n * that is live on the host but sits behind a channel that has not connected\n * yet reads as not running. Behind a first dial that is exactly the run the\n * client just seeded — switching back to a thread that was running when you\n * left, or a brand-new chat's optimistic first send — and nothing is stale:\n * the channel is still attaching. Hiding the run for that round-trip flashes\n * Ready and a Send button before Running comes back. A run behind a reconnect\n * or an eviction is presented by the stale treatment (`resolveStaleRunReason`),\n * never as live.\n */\nexport function resolveRunLive({\n status,\n connection,\n}: {\n status: DeepAgentThreadStatus;\n connection?: DeepAgentConnectionState | null;\n}): boolean {\n if (status === 'running') return true;\n if (status !== 'disconnected') return false;\n return resolveStaleRunReason({ status, connection }) === null;\n}\n\n/**\n * `thread.isRunning` for a `useAuiState` selector, folded through\n * `resolveRunLive` when the thread is a statewire thread. A thread without a\n * statewire status (another runtime, a test stub) keeps the library's answer.\n */\nexport function readRunLive(\n thread: { isRunning: boolean; extras?: unknown },\n connection: DeepAgentConnectionState | null,\n): boolean {\n const status = (thread.extras as Partial<StatewireThread.Extras> | undefined)?.status;\n return status === undefined ? thread.isRunning : resolveRunLive({ status, connection });\n}\n\n/**\n * The active thread's channel, for `readRunLive`'s first-dial verdict. Each\n * host provides it from its own lifecycle state (`AthenaProvider`, the\n * Chrome extension's lifecycle provider); `null` means \"no channel known\",\n * which folds a `disconnected` status as stale.\n */\nexport const DeepAgentConnectionContext = createContext<DeepAgentConnectionState | null>(null);\n\nexport function useDeepAgentConnection(): DeepAgentConnectionState | null {\n return useContext(DeepAgentConnectionContext);\n}\n"],"names":[],"mappings":";;AAcO,SAAS,2BAAkD;AAChE,SAAO,YAAY,CAAC,MAAM;;AACxB,UAAM,UAAU,OAAE,OAAO,WAAT,mBAAiE;AACjF,QAAI,WAAW,QAAW;AACxB,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAMO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AACF,GAGmC;AACjC,MAAI,WAAW,UAAW,QAAO;AACjC,MAAI,WAAW,eAAgB,QAAO;AACtC,OAAI,yCAAY,YAAW,cAAc;AACvC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAgBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AACF,GAGY;AACV,MAAI,WAAW,UAAW,QAAO;AACjC,MAAI,WAAW,eAAgB,QAAO;AACtC,SAAO,sBAAsB,EAAE,QAAQ,WAAA,CAAY,MAAM;AAC3D;AAOO,SAAS,YACd,QACA,YACS;;AACT,QAAM,UAAU,YAAO,WAAP,mBAA+D;AAC/E,SAAO,WAAW,SAAY,OAAO,YAAY,eAAe,EAAE,QAAQ,YAAY;AACxF;AAQO,MAAM,6BAA6B,cAA+C,IAAI;AAEtF,SAAS,yBAA0D;AACxE,SAAO,WAAW,0BAA0B;AAC9C;"}