@athenaintel/react 0.57.2 → 0.60.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 (852) hide show
  1. package/README.md +795 -12
  2. package/dist/agent-runtime/src/addressed-agents.cjs +16 -0
  3. package/dist/agent-runtime/src/addressed-agents.cjs.map +1 -0
  4. package/dist/agent-runtime/src/addressed-agents.d.ts +30 -0
  5. package/dist/agent-runtime/src/addressed-agents.js +16 -0
  6. package/dist/agent-runtime/src/addressed-agents.js.map +1 -0
  7. package/dist/agent-runtime/src/answer-label.cjs +4 -3
  8. package/dist/agent-runtime/src/answer-label.cjs.map +1 -1
  9. package/dist/agent-runtime/src/answer-label.d.ts +13 -6
  10. package/dist/agent-runtime/src/answer-label.js +4 -3
  11. package/dist/agent-runtime/src/answer-label.js.map +1 -1
  12. package/dist/agent-runtime/src/chat-outbox-attachments.cjs.map +1 -1
  13. package/dist/agent-runtime/src/chat-outbox-attachments.d.ts +1 -1
  14. package/dist/agent-runtime/src/chat-outbox-attachments.js.map +1 -1
  15. package/dist/agent-runtime/src/chat-outbox-entry.cjs +101 -0
  16. package/dist/agent-runtime/src/chat-outbox-entry.cjs.map +1 -0
  17. package/dist/agent-runtime/src/chat-outbox-entry.d.ts +99 -0
  18. package/dist/agent-runtime/src/chat-outbox-entry.js +101 -0
  19. package/dist/agent-runtime/src/chat-outbox-entry.js.map +1 -0
  20. package/dist/agent-runtime/src/chat-outbox-legacy.cjs +252 -0
  21. package/dist/agent-runtime/src/chat-outbox-legacy.cjs.map +1 -0
  22. package/dist/agent-runtime/src/chat-outbox-legacy.d.ts +96 -0
  23. package/dist/agent-runtime/src/chat-outbox-legacy.js +252 -0
  24. package/dist/agent-runtime/src/chat-outbox-legacy.js.map +1 -0
  25. package/dist/agent-runtime/src/chat-outbox-policy.cjs +30 -0
  26. package/dist/agent-runtime/src/chat-outbox-policy.cjs.map +1 -0
  27. package/dist/agent-runtime/src/chat-outbox-policy.d.ts +42 -0
  28. package/dist/agent-runtime/src/chat-outbox-policy.js +30 -0
  29. package/dist/agent-runtime/src/chat-outbox-policy.js.map +1 -0
  30. package/dist/agent-runtime/src/chat-outbox-storage.cjs +306 -0
  31. package/dist/agent-runtime/src/chat-outbox-storage.cjs.map +1 -0
  32. package/dist/agent-runtime/src/chat-outbox-storage.d.ts +194 -0
  33. package/dist/agent-runtime/src/chat-outbox-storage.js +306 -0
  34. package/dist/agent-runtime/src/chat-outbox-storage.js.map +1 -0
  35. package/dist/agent-runtime/src/chat-outbox-thread.cjs +21 -94
  36. package/dist/agent-runtime/src/chat-outbox-thread.cjs.map +1 -1
  37. package/dist/agent-runtime/src/chat-outbox-thread.d.ts +22 -18
  38. package/dist/agent-runtime/src/chat-outbox-thread.js +21 -94
  39. package/dist/agent-runtime/src/chat-outbox-thread.js.map +1 -1
  40. package/dist/agent-runtime/src/chat-outbox.cjs +492 -547
  41. package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
  42. package/dist/agent-runtime/src/chat-outbox.d.ts +110 -142
  43. package/dist/agent-runtime/src/chat-outbox.js +492 -547
  44. package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
  45. package/dist/agent-runtime/src/composer-markdown.cjs +0 -16
  46. package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
  47. package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
  48. package/dist/agent-runtime/src/composer-markdown.js +1 -17
  49. package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
  50. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
  51. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
  52. package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
  53. package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
  54. package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
  55. package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
  56. package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
  57. package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
  58. package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
  59. package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
  60. package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
  61. package/dist/agent-runtime/src/edit-command.d.ts +1 -1
  62. package/dist/agent-runtime/src/edit-command.js.map +1 -1
  63. package/dist/agent-runtime/src/errors.cjs +1 -0
  64. package/dist/agent-runtime/src/errors.cjs.map +1 -1
  65. package/dist/agent-runtime/src/errors.js +1 -0
  66. package/dist/agent-runtime/src/errors.js.map +1 -1
  67. package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
  68. package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
  69. package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
  70. package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
  71. package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
  72. package/dist/agent-runtime/src/index.d.ts +14 -8
  73. package/dist/agent-runtime/src/lane-follow.cjs +289 -0
  74. package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
  75. package/dist/agent-runtime/src/lane-follow.js +289 -0
  76. package/dist/agent-runtime/src/lane-follow.js.map +1 -0
  77. package/dist/agent-runtime/src/lane-images.cjs +387 -0
  78. package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
  79. package/dist/agent-runtime/src/lane-images.js +387 -0
  80. package/dist/agent-runtime/src/lane-images.js.map +1 -0
  81. package/dist/agent-runtime/src/message-window.js +1 -1
  82. package/dist/agent-runtime/src/messages.cjs +19 -1
  83. package/dist/agent-runtime/src/messages.cjs.map +1 -1
  84. package/dist/agent-runtime/src/messages.d.ts +8 -0
  85. package/dist/agent-runtime/src/messages.js +21 -3
  86. package/dist/agent-runtime/src/messages.js.map +1 -1
  87. package/dist/agent-runtime/src/named-agents.cjs +301 -0
  88. package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
  89. package/dist/agent-runtime/src/named-agents.d.ts +246 -0
  90. package/dist/agent-runtime/src/named-agents.js +301 -0
  91. package/dist/agent-runtime/src/named-agents.js.map +1 -0
  92. package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
  93. package/dist/agent-runtime/src/offline-status.d.ts +93 -2
  94. package/dist/agent-runtime/src/offline-status.js.map +1 -1
  95. package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
  96. package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
  97. package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
  98. package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
  99. package/dist/agent-runtime/src/queue.cjs +2 -2
  100. package/dist/agent-runtime/src/queue.cjs.map +1 -1
  101. package/dist/agent-runtime/src/queue.d.ts +20 -25
  102. package/dist/agent-runtime/src/queue.js +2 -2
  103. package/dist/agent-runtime/src/queue.js.map +1 -1
  104. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
  105. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
  106. package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
  107. package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
  108. package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
  109. package/dist/agent-runtime/src/run-send.cjs +54 -0
  110. package/dist/agent-runtime/src/run-send.cjs.map +1 -0
  111. package/dist/agent-runtime/src/run-send.d.ts +51 -0
  112. package/dist/agent-runtime/src/run-send.js +54 -0
  113. package/dist/agent-runtime/src/run-send.js.map +1 -0
  114. package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
  115. package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
  116. package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
  117. package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
  118. package/dist/agent-runtime/src/runtime.d.ts +9 -5
  119. package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
  120. package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
  121. package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
  122. package/dist/agent-runtime/src/sealed-idb.js +64 -0
  123. package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
  124. package/dist/agent-runtime/src/send-recovery.cjs +90 -118
  125. package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
  126. package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
  127. package/dist/agent-runtime/src/send-recovery.js +90 -118
  128. package/dist/agent-runtime/src/send-recovery.js.map +1 -1
  129. package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
  130. package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
  131. package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
  132. package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
  133. package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
  134. package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
  135. package/dist/agent-runtime/src/statewire-state.cjs +4 -0
  136. package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
  137. package/dist/agent-runtime/src/statewire-state.js +4 -0
  138. package/dist/agent-runtime/src/statewire-state.js.map +1 -1
  139. package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
  140. package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
  141. package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
  142. package/dist/agent-runtime/src/statewire-transport.js +8 -2
  143. package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
  144. package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
  145. package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
  146. package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
  147. package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
  148. package/dist/agent-runtime/src/subagents.cjs +22 -29
  149. package/dist/agent-runtime/src/subagents.cjs.map +1 -1
  150. package/dist/agent-runtime/src/subagents.js +23 -30
  151. package/dist/agent-runtime/src/subagents.js.map +1 -1
  152. package/dist/agent-runtime/src/thread-extras.cjs +27 -19
  153. package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
  154. package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
  155. package/dist/agent-runtime/src/thread-extras.js +27 -19
  156. package/dist/agent-runtime/src/thread-extras.js.map +1 -1
  157. package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
  158. package/dist/agent-runtime/src/tool-metadata.cjs +19 -0
  159. package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
  160. package/dist/agent-runtime/src/tool-metadata.js +19 -0
  161. package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
  162. package/dist/agent-runtime/src/tool-names.cjs +21 -0
  163. package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
  164. package/dist/agent-runtime/src/tool-names.d.ts +8 -0
  165. package/dist/agent-runtime/src/tool-names.js +21 -0
  166. package/dist/agent-runtime/src/tool-names.js.map +1 -1
  167. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
  168. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
  169. package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
  170. package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
  171. package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
  172. package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
  173. package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
  174. package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
  175. package/dist/agent-runtime/src/typed-interrupts.js +48 -0
  176. package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
  177. package/dist/agent-runtime/src/types.d.ts +1 -1
  178. package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
  179. package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
  180. package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
  181. package/dist/agent-runtime/src/use-conversation-list.js +1 -0
  182. package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
  183. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
  184. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
  185. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
  186. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
  187. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
  188. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
  189. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
  190. package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
  191. package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
  192. package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
  193. package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
  194. package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
  195. package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
  196. package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
  197. package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
  198. package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
  199. package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
  200. package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
  201. package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
  202. package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
  203. package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
  204. package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
  205. package/dist/agent-runtime/src/work-in.d.ts +127 -0
  206. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
  207. package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
  208. package/dist/assets/AthenaAssetEmbed.js.map +1 -1
  209. package/dist/assets/asset-panel-store.cjs +13 -5
  210. package/dist/assets/asset-panel-store.cjs.map +1 -1
  211. package/dist/assets/asset-panel-store.d.ts +33 -2
  212. package/dist/assets/asset-panel-store.js +13 -5
  213. package/dist/assets/asset-panel-store.js.map +1 -1
  214. package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
  215. package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
  216. package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
  217. package/dist/auth/AthenaCredentialSourceContext.js +11 -0
  218. package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
  219. package/dist/auth/account-identity.cjs +13 -2
  220. package/dist/auth/account-identity.cjs.map +1 -1
  221. package/dist/auth/account-identity.d.ts +9 -0
  222. package/dist/auth/account-identity.js +13 -2
  223. package/dist/auth/account-identity.js.map +1 -1
  224. package/dist/auth/credential-source.cjs +20 -4
  225. package/dist/auth/credential-source.cjs.map +1 -1
  226. package/dist/auth/credential-source.d.ts +9 -0
  227. package/dist/auth/credential-source.js +20 -4
  228. package/dist/auth/credential-source.js.map +1 -1
  229. package/dist/catalog/chat-pickers.cjs +31 -0
  230. package/dist/catalog/chat-pickers.cjs.map +1 -1
  231. package/dist/catalog/chat-pickers.d.ts +17 -0
  232. package/dist/catalog/chat-pickers.js +33 -2
  233. package/dist/catalog/chat-pickers.js.map +1 -1
  234. package/dist/catalog/runtime-catalog.cjs +63 -3
  235. package/dist/catalog/runtime-catalog.cjs.map +1 -1
  236. package/dist/catalog/runtime-catalog.d.ts +63 -3
  237. package/dist/catalog/runtime-catalog.js +64 -4
  238. package/dist/catalog/runtime-catalog.js.map +1 -1
  239. package/dist/chat/AthenaChat.cjs +301 -98
  240. package/dist/chat/AthenaChat.cjs.map +1 -1
  241. package/dist/chat/AthenaChat.d.ts +80 -4
  242. package/dist/chat/AthenaChat.js +302 -99
  243. package/dist/chat/AthenaChat.js.map +1 -1
  244. package/dist/chat/StatewireApprovalCard.cjs +35 -5
  245. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  246. package/dist/chat/StatewireApprovalCard.d.ts +55 -2
  247. package/dist/chat/StatewireApprovalCard.js +37 -7
  248. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  249. package/dist/chat/StatewireQueuedMessages.cjs +17 -2
  250. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  251. package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
  252. package/dist/chat/StatewireQueuedMessages.js +18 -3
  253. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  254. package/dist/chat/chat-agent-mentions.cjs +70 -0
  255. package/dist/chat/chat-agent-mentions.cjs.map +1 -0
  256. package/dist/chat/chat-agent-mentions.d.ts +13 -0
  257. package/dist/chat/chat-agent-mentions.js +70 -0
  258. package/dist/chat/chat-agent-mentions.js.map +1 -0
  259. package/dist/chat/composer-actions.cjs +12 -0
  260. package/dist/chat/composer-actions.cjs.map +1 -0
  261. package/dist/chat/composer-actions.d.ts +22 -0
  262. package/dist/chat/composer-actions.js +12 -0
  263. package/dist/chat/composer-actions.js.map +1 -0
  264. package/dist/chat/follow-up-suggestions.cjs +185 -0
  265. package/dist/chat/follow-up-suggestions.cjs.map +1 -0
  266. package/dist/chat/follow-up-suggestions.d.ts +64 -0
  267. package/dist/chat/follow-up-suggestions.js +185 -0
  268. package/dist/chat/follow-up-suggestions.js.map +1 -0
  269. package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
  270. package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
  271. package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
  272. package/dist/chat/super-grouping/ToolTimeline.js +4 -3
  273. package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
  274. package/dist/chat/turn-changes.cjs +284 -0
  275. package/dist/chat/turn-changes.cjs.map +1 -0
  276. package/dist/chat/turn-changes.d.ts +130 -0
  277. package/dist/chat/turn-changes.js +284 -0
  278. package/dist/chat/turn-changes.js.map +1 -0
  279. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
  280. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
  281. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
  282. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
  283. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
  284. package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
  285. package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
  286. package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
  287. package/dist/chat/typed-interrupts/approval-cards.js +250 -0
  288. package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
  289. package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
  290. package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
  291. package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
  292. package/dist/chat/typed-interrupts/form-cards.js +289 -0
  293. package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
  294. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
  295. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
  296. package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
  297. package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
  298. package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
  299. package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
  300. package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
  301. package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
  302. package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
  303. package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
  304. package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
  305. package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
  306. package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
  307. package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
  308. package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
  309. package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
  310. package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
  311. package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
  312. package/dist/chat/typed-interrupts/request-file-card.js +159 -0
  313. package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
  314. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
  315. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
  316. package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
  317. package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
  318. package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
  319. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
  320. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
  321. package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
  322. package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
  323. package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
  324. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
  325. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
  326. package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
  327. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
  328. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
  329. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
  330. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
  331. package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
  332. package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
  333. package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
  334. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
  335. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
  336. package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
  337. package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
  338. package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
  339. package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
  340. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
  341. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
  342. package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
  343. package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
  344. package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
  345. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
  346. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
  347. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
  348. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
  349. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
  350. package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
  351. package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
  352. package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
  353. package/dist/chat-ui/composer/composer-named-agents.js +13 -0
  354. package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
  355. package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
  356. package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
  357. package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
  358. package/dist/chat-ui/composer/slash-command-menu.js +143 -0
  359. package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
  360. package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
  361. package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
  362. package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
  363. package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
  364. package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
  365. package/dist/chat-ui/composer/slash-commands.cjs +74 -0
  366. package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
  367. package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
  368. package/dist/chat-ui/composer/slash-commands.js +74 -0
  369. package/dist/chat-ui/composer/slash-commands.js.map +1 -0
  370. package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
  371. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  372. package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
  373. package/dist/chat-ui/composer/tiptap-composer.js +135 -9
  374. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  375. package/dist/chat-ui/index.cjs +5 -0
  376. package/dist/chat-ui/index.cjs.map +1 -1
  377. package/dist/chat-ui/index.d.ts +4 -2
  378. package/dist/chat-ui/index.js +5 -0
  379. package/dist/chat-ui/index.js.map +1 -1
  380. package/dist/chat-ui/mentions/mention-chip.cjs +10 -4
  381. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  382. package/dist/chat-ui/mentions/mention-chip.js +11 -5
  383. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  384. package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
  385. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
  386. package/dist/chat-ui/mentions/mention-extension.js +8 -1
  387. package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
  388. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
  389. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
  390. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
  391. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
  392. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +20 -2
  393. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
  394. package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +10 -1
  395. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +22 -4
  396. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
  397. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
  398. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
  399. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
  400. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
  401. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +45 -0
  402. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
  403. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +48 -0
  404. package/dist/chat-ui/mentions/suggestions/data/api-client.js +45 -0
  405. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
  406. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.cjs +89 -0
  407. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.cjs.map +1 -0
  408. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.d.ts +8 -0
  409. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.js +89 -0
  410. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.js.map +1 -0
  411. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +140 -116
  412. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -1
  413. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.d.ts +46 -12
  414. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +141 -117
  415. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -1
  416. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +272 -25
  417. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
  418. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
  419. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +274 -27
  420. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
  421. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
  422. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
  423. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
  424. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
  425. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
  426. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
  427. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
  428. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
  429. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
  430. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
  431. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
  432. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
  433. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
  434. package/dist/chat-ui/mentions/use-asset-icon-app-url.cjs +12 -0
  435. package/dist/chat-ui/mentions/use-asset-icon-app-url.cjs.map +1 -0
  436. package/dist/chat-ui/mentions/use-asset-icon-app-url.d.ts +8 -0
  437. package/dist/chat-ui/mentions/use-asset-icon-app-url.js +12 -0
  438. package/dist/chat-ui/mentions/use-asset-icon-app-url.js.map +1 -0
  439. package/dist/chat-ui/statewire.d.ts +1 -1
  440. package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
  441. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
  442. package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
  443. package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
  444. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
  445. package/dist/collab/client.cjs +41 -6
  446. package/dist/collab/client.cjs.map +1 -1
  447. package/dist/collab/client.d.ts +38 -7
  448. package/dist/collab/client.js +41 -6
  449. package/dist/collab/client.js.map +1 -1
  450. package/dist/composer/ComposerAttachedReferences.cjs +119 -0
  451. package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
  452. package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
  453. package/dist/composer/ComposerAttachedReferences.js +119 -0
  454. package/dist/composer/ComposerAttachedReferences.js.map +1 -0
  455. package/dist/composer/ComposerNamedAgents.cjs +63 -0
  456. package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
  457. package/dist/composer/ComposerNamedAgents.d.ts +16 -0
  458. package/dist/composer/ComposerNamedAgents.js +63 -0
  459. package/dist/composer/ComposerNamedAgents.js.map +1 -0
  460. package/dist/composer/attached-references.cjs +159 -0
  461. package/dist/composer/attached-references.cjs.map +1 -0
  462. package/dist/composer/attached-references.d.ts +86 -0
  463. package/dist/composer/attached-references.js +159 -0
  464. package/dist/composer/attached-references.js.map +1 -0
  465. package/dist/composer/build-composed-message.cjs +14 -7
  466. package/dist/composer/build-composed-message.cjs.map +1 -1
  467. package/dist/composer/build-composed-message.d.ts +6 -1
  468. package/dist/composer/build-composed-message.js +14 -7
  469. package/dist/composer/build-composed-message.js.map +1 -1
  470. package/dist/composer/composer-handoff.cjs +6 -2
  471. package/dist/composer/composer-handoff.cjs.map +1 -1
  472. package/dist/composer/composer-handoff.d.ts +7 -1
  473. package/dist/composer/composer-handoff.js +6 -2
  474. package/dist/composer/composer-handoff.js.map +1 -1
  475. package/dist/composer/folder-upload.cjs +149 -0
  476. package/dist/composer/folder-upload.cjs.map +1 -0
  477. package/dist/composer/folder-upload.d.ts +79 -0
  478. package/dist/composer/folder-upload.js +149 -0
  479. package/dist/composer/folder-upload.js.map +1 -0
  480. package/dist/composer/index.d.ts +1 -1
  481. package/dist/composer/staged-message-metadata.cjs +12 -0
  482. package/dist/composer/staged-message-metadata.cjs.map +1 -0
  483. package/dist/composer/staged-message-metadata.d.ts +15 -0
  484. package/dist/composer/staged-message-metadata.js +12 -0
  485. package/dist/composer/staged-message-metadata.js.map +1 -0
  486. package/dist/composer/useAttachToChat.cjs +35 -0
  487. package/dist/composer/useAttachToChat.cjs.map +1 -0
  488. package/dist/composer/useAttachToChat.d.ts +54 -0
  489. package/dist/composer/useAttachToChat.js +35 -0
  490. package/dist/composer/useAttachToChat.js.map +1 -0
  491. package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
  492. package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
  493. package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
  494. package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
  495. package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
  496. package/dist/composer/useFileUpload.cjs +95 -7
  497. package/dist/composer/useFileUpload.cjs.map +1 -1
  498. package/dist/composer/useFileUpload.d.ts +21 -2
  499. package/dist/composer/useFileUpload.js +95 -7
  500. package/dist/composer/useFileUpload.js.map +1 -1
  501. package/dist/data/athena-api-error.cjs +125 -0
  502. package/dist/data/athena-api-error.cjs.map +1 -0
  503. package/dist/data/athena-api-error.d.ts +96 -0
  504. package/dist/data/athena-api-error.js +125 -0
  505. package/dist/data/athena-api-error.js.map +1 -0
  506. package/dist/data/athena-data-client.cjs +106 -0
  507. package/dist/data/athena-data-client.cjs.map +1 -0
  508. package/dist/data/athena-data-client.d.ts +74 -0
  509. package/dist/data/athena-data-client.js +106 -0
  510. package/dist/data/athena-data-client.js.map +1 -0
  511. package/dist/data/athena-member.cjs +93 -0
  512. package/dist/data/athena-member.cjs.map +1 -0
  513. package/dist/data/athena-member.d.ts +125 -0
  514. package/dist/data/athena-member.js +93 -0
  515. package/dist/data/athena-member.js.map +1 -0
  516. package/dist/data/athena-request.cjs +460 -0
  517. package/dist/data/athena-request.cjs.map +1 -0
  518. package/dist/data/athena-request.d.ts +120 -0
  519. package/dist/data/athena-request.js +460 -0
  520. package/dist/data/athena-request.js.map +1 -0
  521. package/dist/data/use-athena-fetch.cjs +14 -0
  522. package/dist/data/use-athena-fetch.cjs.map +1 -0
  523. package/dist/data/use-athena-fetch.d.ts +19 -0
  524. package/dist/data/use-athena-fetch.js +14 -0
  525. package/dist/data/use-athena-fetch.js.map +1 -0
  526. package/dist/data/use-athena-graphql.cjs +66 -0
  527. package/dist/data/use-athena-graphql.cjs.map +1 -0
  528. package/dist/data/use-athena-graphql.d.ts +56 -0
  529. package/dist/data/use-athena-graphql.js +66 -0
  530. package/dist/data/use-athena-graphql.js.map +1 -0
  531. package/dist/data/use-athena-rest.cjs +33 -0
  532. package/dist/data/use-athena-rest.cjs.map +1 -0
  533. package/dist/data/use-athena-rest.d.ts +21 -0
  534. package/dist/data/use-athena-rest.js +33 -0
  535. package/dist/data/use-athena-rest.js.map +1 -0
  536. package/dist/data/use-semantic-query.cjs +44 -0
  537. package/dist/data/use-semantic-query.cjs.map +1 -0
  538. package/dist/data/use-semantic-query.d.ts +92 -0
  539. package/dist/data/use-semantic-query.js +44 -0
  540. package/dist/data/use-semantic-query.js.map +1 -0
  541. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
  542. package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
  543. package/dist/diagnostics/athena-diagnostics.js.map +1 -1
  544. package/dist/diagnostics/errors.cjs +7 -0
  545. package/dist/diagnostics/errors.cjs.map +1 -1
  546. package/dist/diagnostics/errors.d.ts +7 -0
  547. package/dist/diagnostics/errors.js +7 -0
  548. package/dist/diagnostics/errors.js.map +1 -1
  549. package/dist/index.cjs +155 -11
  550. package/dist/index.cjs.map +1 -1
  551. package/dist/index.d.ts +72 -13
  552. package/dist/index.js +148 -4
  553. package/dist/index.js.map +1 -1
  554. package/dist/keryx-http/src/initial-sync.cjs +64 -16
  555. package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
  556. package/dist/keryx-http/src/initial-sync.d.ts +31 -1
  557. package/dist/keryx-http/src/initial-sync.js +64 -16
  558. package/dist/keryx-http/src/initial-sync.js.map +1 -1
  559. package/dist/keryx-http/src/own-awareness.cjs +20 -0
  560. package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
  561. package/dist/keryx-http/src/own-awareness.d.ts +50 -0
  562. package/dist/keryx-http/src/own-awareness.js +20 -0
  563. package/dist/keryx-http/src/own-awareness.js.map +1 -0
  564. package/dist/keryx-http/src/update-attributions.cjs +26 -1
  565. package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
  566. package/dist/keryx-http/src/update-attributions.d.ts +10 -1
  567. package/dist/keryx-http/src/update-attributions.js +26 -1
  568. package/dist/keryx-http/src/update-attributions.js.map +1 -1
  569. package/dist/offline/chat-outbox.cjs +262 -26
  570. package/dist/offline/chat-outbox.cjs.map +1 -1
  571. package/dist/offline/chat-outbox.d.ts +90 -12
  572. package/dist/offline/chat-outbox.js +263 -27
  573. package/dist/offline/chat-outbox.js.map +1 -1
  574. package/dist/provider/AthenaProvider.cjs +60 -22
  575. package/dist/provider/AthenaProvider.cjs.map +1 -1
  576. package/dist/provider/AthenaProvider.d.ts +24 -8
  577. package/dist/provider/AthenaProvider.js +61 -23
  578. package/dist/provider/AthenaProvider.js.map +1 -1
  579. package/dist/react/package.json.cjs +1 -1
  580. package/dist/react/package.json.js +1 -1
  581. package/dist/references/src/anchors/parse.cjs +11 -1
  582. package/dist/references/src/anchors/parse.cjs.map +1 -1
  583. package/dist/references/src/anchors/parse.js +11 -1
  584. package/dist/references/src/anchors/parse.js.map +1 -1
  585. package/dist/references/src/anchors/schemas.d.ts +1 -0
  586. package/dist/references/src/anchors/serialize.cjs +1 -0
  587. package/dist/references/src/anchors/serialize.cjs.map +1 -1
  588. package/dist/references/src/anchors/serialize.js +1 -0
  589. package/dist/references/src/anchors/serialize.js.map +1 -1
  590. package/dist/references/src/anchors/types.cjs +5 -0
  591. package/dist/references/src/anchors/types.cjs.map +1 -1
  592. package/dist/references/src/anchors/types.d.ts +9 -0
  593. package/dist/references/src/anchors/types.js +5 -0
  594. package/dist/references/src/anchors/types.js.map +1 -1
  595. package/dist/references/src/attachable.cjs +149 -0
  596. package/dist/references/src/attachable.cjs.map +1 -0
  597. package/dist/references/src/attachable.d.ts +87 -0
  598. package/dist/references/src/attachable.js +149 -0
  599. package/dist/references/src/attachable.js.map +1 -0
  600. package/dist/references/src/schemas.d.ts +2 -0
  601. package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
  602. package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
  603. package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
  604. package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
  605. package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
  606. package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
  607. package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
  608. package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
  609. package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
  610. package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
  611. package/dist/runtime/statewire-plan-mode.cjs +71 -0
  612. package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
  613. package/dist/runtime/statewire-plan-mode.d.ts +88 -0
  614. package/dist/runtime/statewire-plan-mode.js +71 -0
  615. package/dist/runtime/statewire-plan-mode.js.map +1 -0
  616. package/dist/runtime/statewire-run-config.cjs +3 -1
  617. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  618. package/dist/runtime/statewire-run-config.d.ts +7 -0
  619. package/dist/runtime/statewire-run-config.js +3 -1
  620. package/dist/runtime/statewire-run-config.js.map +1 -1
  621. package/dist/runtime/statewire-session-key.cjs +11 -5
  622. package/dist/runtime/statewire-session-key.cjs.map +1 -1
  623. package/dist/runtime/statewire-session-key.d.ts +22 -10
  624. package/dist/runtime/statewire-session-key.js +11 -5
  625. package/dist/runtime/statewire-session-key.js.map +1 -1
  626. package/dist/runtime/useAthenaStatewireRuntime.cjs +64 -9
  627. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  628. package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
  629. package/dist/runtime/useAthenaStatewireRuntime.js +66 -11
  630. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  631. package/dist/search/useAthenaAssets.cjs +394 -0
  632. package/dist/search/useAthenaAssets.cjs.map +1 -0
  633. package/dist/search/useAthenaAssets.d.ts +186 -0
  634. package/dist/search/useAthenaAssets.js +394 -0
  635. package/dist/search/useAthenaAssets.js.map +1 -0
  636. package/dist/sheet-range/index.cjs +4 -0
  637. package/dist/sheet-range/index.cjs.map +1 -1
  638. package/dist/sheet-range/index.d.ts +4 -2
  639. package/dist/sheet-range/index.js +4 -0
  640. package/dist/sheet-range/index.js.map +1 -1
  641. package/dist/sheet-range/query-range.cjs +102 -0
  642. package/dist/sheet-range/query-range.cjs.map +1 -0
  643. package/dist/sheet-range/query-range.d.ts +46 -0
  644. package/dist/sheet-range/query-range.js +102 -0
  645. package/dist/sheet-range/query-range.js.map +1 -0
  646. package/dist/styles.css +1 -1
  647. package/dist/subagents/index.cjs +49 -0
  648. package/dist/subagents/index.cjs.map +1 -0
  649. package/dist/subagents/index.d.ts +16 -0
  650. package/dist/subagents/index.js +49 -0
  651. package/dist/subagents/index.js.map +1 -0
  652. package/dist/subagents/lane-follow.cjs +19 -0
  653. package/dist/subagents/lane-follow.cjs.map +1 -0
  654. package/dist/subagents/lane-follow.d.ts +9 -0
  655. package/dist/subagents/lane-follow.js +19 -0
  656. package/dist/subagents/lane-follow.js.map +1 -0
  657. package/dist/subagents/lane-model.cjs +178 -0
  658. package/dist/subagents/lane-model.cjs.map +1 -0
  659. package/dist/subagents/lane-model.d.ts +140 -0
  660. package/dist/subagents/lane-model.js +178 -0
  661. package/dist/subagents/lane-model.js.map +1 -0
  662. package/dist/subagents/lane-parts.cjs +517 -0
  663. package/dist/subagents/lane-parts.cjs.map +1 -0
  664. package/dist/subagents/lane-parts.d.ts +130 -0
  665. package/dist/subagents/lane-parts.js +517 -0
  666. package/dist/subagents/lane-parts.js.map +1 -0
  667. package/dist/subagents/subagent-lane-group.cjs +215 -0
  668. package/dist/subagents/subagent-lane-group.cjs.map +1 -0
  669. package/dist/subagents/subagent-lane-group.d.ts +67 -0
  670. package/dist/subagents/subagent-lane-group.js +215 -0
  671. package/dist/subagents/subagent-lane-group.js.map +1 -0
  672. package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
  673. package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
  674. package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
  675. package/dist/subagents/subagent-transcript-drawer.js +431 -0
  676. package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
  677. package/dist/subagents/task-subagent-group.cjs +115 -0
  678. package/dist/subagents/task-subagent-group.cjs.map +1 -0
  679. package/dist/subagents/task-subagent-group.d.ts +36 -0
  680. package/dist/subagents/task-subagent-group.js +115 -0
  681. package/dist/subagents/task-subagent-group.js.map +1 -0
  682. package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
  683. package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
  684. package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
  685. package/dist/subagents/use-omitted-images-in-view.js +68 -0
  686. package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
  687. package/dist/threads/Inbox.cjs +2 -2
  688. package/dist/threads/Inbox.cjs.map +1 -1
  689. package/dist/threads/SessionList.cjs +6 -6
  690. package/dist/threads/SessionList.cjs.map +1 -1
  691. package/dist/threads/SessionsPage.cjs +13 -7
  692. package/dist/threads/SessionsPage.cjs.map +1 -1
  693. package/dist/threads/SessionsPage.d.ts +10 -1
  694. package/dist/threads/SessionsPage.js +9 -3
  695. package/dist/threads/SessionsPage.js.map +1 -1
  696. package/dist/threads/session-list-model.cjs.map +1 -1
  697. package/dist/threads/session-list-model.d.ts +2 -1
  698. package/dist/threads/session-list-model.js.map +1 -1
  699. package/dist/threads/session-row-parts.cjs +3 -3
  700. package/dist/threads/session-row-parts.cjs.map +1 -1
  701. package/dist/threads/sessions-page-model.cjs +13 -5
  702. package/dist/threads/sessions-page-model.cjs.map +1 -1
  703. package/dist/threads/sessions-page-model.d.ts +7 -0
  704. package/dist/threads/sessions-page-model.js +11 -3
  705. package/dist/threads/sessions-page-model.js.map +1 -1
  706. package/dist/threads/sessions-page-storage.cjs +8 -8
  707. package/dist/threads/sessions-page-storage.cjs.map +1 -1
  708. package/dist/threads/sessions-page-storage.d.ts +5 -1
  709. package/dist/threads/sessions-page-storage.js +8 -8
  710. package/dist/threads/sessions-page-storage.js.map +1 -1
  711. package/dist/threads/statewire-thread-list.cjs +14 -2
  712. package/dist/threads/statewire-thread-list.cjs.map +1 -1
  713. package/dist/threads/statewire-thread-list.d.ts +11 -2
  714. package/dist/threads/statewire-thread-list.js +14 -2
  715. package/dist/threads/statewire-thread-list.js.map +1 -1
  716. package/dist/threads/use-athena-sessions.cjs +1 -0
  717. package/dist/threads/use-athena-sessions.cjs.map +1 -1
  718. package/dist/threads/use-athena-sessions.d.ts +7 -0
  719. package/dist/threads/use-athena-sessions.js +1 -0
  720. package/dist/threads/use-athena-sessions.js.map +1 -1
  721. package/dist/threads/use-athena-thread-agent.cjs +31 -0
  722. package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
  723. package/dist/threads/use-athena-thread-agent.d.ts +38 -0
  724. package/dist/threads/use-athena-thread-agent.js +31 -0
  725. package/dist/threads/use-athena-thread-agent.js.map +1 -0
  726. package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
  727. package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
  728. package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
  729. package/dist/threads/use-athena-thread-plan-mode.js +18 -0
  730. package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
  731. package/dist/threads/use-rest-conversation-history.d.ts +1 -0
  732. package/dist/tools/agent-creations.cjs +97 -0
  733. package/dist/tools/agent-creations.cjs.map +1 -0
  734. package/dist/tools/agent-creations.d.ts +38 -0
  735. package/dist/tools/agent-creations.js +97 -0
  736. package/dist/tools/agent-creations.js.map +1 -0
  737. package/dist/tools/agent-highlights.cjs +100 -0
  738. package/dist/tools/agent-highlights.cjs.map +1 -0
  739. package/dist/tools/agent-highlights.d.ts +57 -0
  740. package/dist/tools/agent-highlights.js +100 -0
  741. package/dist/tools/agent-highlights.js.map +1 -0
  742. package/dist/tools/append-document-tool-ui.cjs +1 -0
  743. package/dist/tools/append-document-tool-ui.cjs.map +1 -1
  744. package/dist/tools/append-document-tool-ui.d.ts +7 -0
  745. package/dist/tools/append-document-tool-ui.js +2 -1
  746. package/dist/tools/append-document-tool-ui.js.map +1 -1
  747. package/dist/tools/auto-open-tools.cjs +144 -71
  748. package/dist/tools/auto-open-tools.cjs.map +1 -1
  749. package/dist/tools/auto-open-tools.d.ts +131 -1
  750. package/dist/tools/auto-open-tools.js +145 -72
  751. package/dist/tools/auto-open-tools.js.map +1 -1
  752. package/dist/tools/browser-tool-uis.cjs +594 -0
  753. package/dist/tools/browser-tool-uis.cjs.map +1 -0
  754. package/dist/tools/browser-tool-uis.d.ts +8 -0
  755. package/dist/tools/browser-tool-uis.js +594 -0
  756. package/dist/tools/browser-tool-uis.js.map +1 -0
  757. package/dist/tools/computer-asset-tool-uis.cjs +313 -0
  758. package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
  759. package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
  760. package/dist/tools/computer-asset-tool-uis.js +313 -0
  761. package/dist/tools/computer-asset-tool-uis.js.map +1 -0
  762. package/dist/tools/document-edit-tool-uis.cjs +218 -0
  763. package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
  764. package/dist/tools/document-edit-tool-uis.d.ts +40 -0
  765. package/dist/tools/document-edit-tool-uis.js +218 -0
  766. package/dist/tools/document-edit-tool-uis.js.map +1 -0
  767. package/dist/tools/drive-tool-uis.cjs +429 -0
  768. package/dist/tools/drive-tool-uis.cjs.map +1 -0
  769. package/dist/tools/drive-tool-uis.d.ts +121 -0
  770. package/dist/tools/drive-tool-uis.js +429 -0
  771. package/dist/tools/drive-tool-uis.js.map +1 -0
  772. package/dist/tools/email-calendar-tool-uis.cjs +789 -0
  773. package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
  774. package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
  775. package/dist/tools/email-calendar-tool-uis.js +789 -0
  776. package/dist/tools/email-calendar-tool-uis.js.map +1 -0
  777. package/dist/tools/ontology-tool-uis.cjs +83 -0
  778. package/dist/tools/ontology-tool-uis.cjs.map +1 -0
  779. package/dist/tools/ontology-tool-uis.d.ts +9 -0
  780. package/dist/tools/ontology-tool-uis.js +83 -0
  781. package/dist/tools/ontology-tool-uis.js.map +1 -0
  782. package/dist/tools/orchestration-tool-uis.cjs +586 -0
  783. package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
  784. package/dist/tools/orchestration-tool-uis.d.ts +141 -0
  785. package/dist/tools/orchestration-tool-uis.js +586 -0
  786. package/dist/tools/orchestration-tool-uis.js.map +1 -0
  787. package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
  788. package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
  789. package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
  790. package/dist/tools/presentation-edit-tool-uis.js +516 -0
  791. package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
  792. package/dist/tools/project-tool-uis.cjs +213 -0
  793. package/dist/tools/project-tool-uis.cjs.map +1 -0
  794. package/dist/tools/project-tool-uis.d.ts +14 -0
  795. package/dist/tools/project-tool-uis.js +213 -0
  796. package/dist/tools/project-tool-uis.js.map +1 -0
  797. package/dist/tools/sandbox-tool-uis.cjs +491 -0
  798. package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
  799. package/dist/tools/sandbox-tool-uis.d.ts +116 -0
  800. package/dist/tools/sandbox-tool-uis.js +491 -0
  801. package/dist/tools/sandbox-tool-uis.js.map +1 -0
  802. package/dist/tools/sheet-query-tool-ui.cjs +138 -0
  803. package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
  804. package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
  805. package/dist/tools/sheet-query-tool-ui.js +138 -0
  806. package/dist/tools/sheet-query-tool-ui.js.map +1 -0
  807. package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
  808. package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
  809. package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
  810. package/dist/tools/studio-screenshot-tool-uis.js +262 -0
  811. package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
  812. package/dist/tools/subagent-task-tool-ui.cjs +24 -475
  813. package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
  814. package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
  815. package/dist/tools/subagent-task-tool-ui.js +28 -479
  816. package/dist/tools/subagent-task-tool-ui.js.map +1 -1
  817. package/dist/tools/tool-summary.cjs +36 -0
  818. package/dist/tools/tool-summary.cjs.map +1 -1
  819. package/dist/tools/tool-summary.js +36 -0
  820. package/dist/tools/tool-summary.js.map +1 -1
  821. package/dist/tools/tool-uis.cjs +181 -53
  822. package/dist/tools/tool-uis.cjs.map +1 -1
  823. package/dist/tools/tool-uis.d.ts +40 -0
  824. package/dist/tools/tool-uis.js +183 -55
  825. package/dist/tools/tool-uis.js.map +1 -1
  826. package/dist/typed-interrupts/index.cjs +15 -0
  827. package/dist/typed-interrupts/index.cjs.map +1 -0
  828. package/dist/typed-interrupts/index.d.ts +20 -0
  829. package/dist/typed-interrupts/index.js +15 -0
  830. package/dist/typed-interrupts/index.js.map +1 -0
  831. package/dist/version.cjs +4 -0
  832. package/dist/version.cjs.map +1 -1
  833. package/dist/version.d.ts +9 -0
  834. package/dist/version.js +4 -0
  835. package/dist/version.js.map +1 -1
  836. package/dist/workbench/live-desktop-api.cjs +2 -1
  837. package/dist/workbench/live-desktop-api.cjs.map +1 -1
  838. package/dist/workbench/live-desktop-api.js +2 -1
  839. package/dist/workbench/live-desktop-api.js.map +1 -1
  840. package/dist/workbench/session-workbench-panes.cjs +6 -6
  841. package/dist/workbench/session-workbench-panes.cjs.map +1 -1
  842. package/dist/workbench/session-workspace-api.cjs +7 -2
  843. package/dist/workbench/session-workspace-api.cjs.map +1 -1
  844. package/dist/workbench/session-workspace-api.d.ts +10 -0
  845. package/dist/workbench/session-workspace-api.js +7 -2
  846. package/dist/workbench/session-workspace-api.js.map +1 -1
  847. package/package.json +28 -6
  848. package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
  849. package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
  850. package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
  851. package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
  852. package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
@@ -0,0 +1,429 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const lucideReact = require("lucide-react");
5
+ const require$$0 = require("react");
6
+ const assetPanelStore = require("../assets/asset-panel-store.cjs");
7
+ const mentionChip = require("../chat-ui/mentions/mention-chip.cjs");
8
+ const mentionIcon = require("../chat-ui/mentions/suggestions/components/mention-icon.cjs");
9
+ const useAssetIconAppUrl = require("../chat-ui/mentions/use-asset-icon-app-url.cjs");
10
+ const assetTypeIcons = require("../chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs");
11
+ const primitives = require("./primitives.cjs");
12
+ const toolFallback = require("./tool-fallback.cjs");
13
+ const toolResult = require("../agent-runtime/src/tool-result.cjs");
14
+ const cnfast = require("cnfast");
15
+ function withoutEllipsis(title) {
16
+ return title.replace(/(?:\.{3}|…)\s*$/u, "");
17
+ }
18
+ function toolCardOutcome({
19
+ status,
20
+ classification,
21
+ resultFailure = null
22
+ }) {
23
+ if ((status == null ? void 0 : status.type) === "running") return { status: "running", failure: null };
24
+ const classified = classification.state === "error" ? classification.failure.message : null;
25
+ const failure = (status == null ? void 0 : status.type) === "incomplete" ? classified : resultFailure ?? classified;
26
+ if (failure) return { status: "incomplete", failure };
27
+ return { status: (status == null ? void 0 : status.type) ?? "complete", failure: null };
28
+ }
29
+ function panelAssetType(assetType) {
30
+ switch (assetType) {
31
+ case "presentation":
32
+ case "spreadsheet":
33
+ case "document":
34
+ case "notebook":
35
+ return assetType;
36
+ default:
37
+ return void 0;
38
+ }
39
+ }
40
+ const ASSET_ICON_TILE = {
41
+ md: { box: "size-8", icon: "size-4" },
42
+ sm: { box: "size-6", icon: "size-3.5" }
43
+ };
44
+ function AssetTypeIcon({
45
+ assetType,
46
+ size
47
+ }) {
48
+ const tile = ASSET_ICON_TILE[size];
49
+ const iconAppUrl = useAssetIconAppUrl.useAssetIconAppUrl();
50
+ const thumbnailUrl = assetTypeIcons.assetTypeToThumb(assetType, { appUrl: iconAppUrl });
51
+ const thumbnail = mentionIcon.useThumbnailLoadFailure(thumbnailUrl);
52
+ if (thumbnailUrl && !thumbnail.failed) {
53
+ return /* @__PURE__ */ jsxRuntime.jsx("img", { ref: thumbnail.imageRef, src: thumbnailUrl, alt: "", className: cnfast.cn("shrink-0", tile.box) });
54
+ }
55
+ return /* @__PURE__ */ jsxRuntime.jsx(
56
+ "span",
57
+ {
58
+ "aria-hidden": "true",
59
+ className: cnfast.cn(
60
+ "flex shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground",
61
+ tile.box
62
+ ),
63
+ children: /* @__PURE__ */ jsxRuntime.jsx(mentionIcon.MentionIcon, { fallbackIcon: assetTypeIcons.assetTypeToIcon(assetType), className: tile.icon })
64
+ }
65
+ );
66
+ }
67
+ function AssetChip({
68
+ assetId,
69
+ title,
70
+ fallbackLabel,
71
+ assetType
72
+ }) {
73
+ const openAsset = assetPanelStore.useAssetPanelStore((s) => s.openAsset);
74
+ const iconAppUrl = useAssetIconAppUrl.useAssetIconAppUrl();
75
+ const label = title ?? fallbackLabel;
76
+ return /* @__PURE__ */ jsxRuntime.jsxs(
77
+ "button",
78
+ {
79
+ type: "button",
80
+ "data-asset-id": assetId,
81
+ title: `Open ${label}`,
82
+ onClick: () => openAsset(assetId, { name: title, type: panelAssetType(assetType) }),
83
+ className: cnfast.cn(mentionChip.CHIP_PILL_CLASS, mentionChip.CHIP_LINK_CLASS, "max-w-[275px] text-xs"),
84
+ children: [
85
+ /* @__PURE__ */ jsxRuntime.jsx(
86
+ mentionIcon.MentionIcon,
87
+ {
88
+ thumbnailUrl: assetTypeIcons.assetTypeToThumb(assetType, { appUrl: iconAppUrl }),
89
+ fallbackIcon: assetTypeIcons.assetTypeToIcon(assetType),
90
+ className: mentionChip.CHIP_ICON_CLASS
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 max-w-[180px] overflow-hidden text-ellipsis", children: label })
94
+ ]
95
+ }
96
+ );
97
+ }
98
+ function AssetChipLine({ children }) {
99
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1.5 border-t border-border/40 px-4 py-2 text-xs text-muted-foreground", children });
100
+ }
101
+ function argsRecord(args) {
102
+ return toolResult.isRecord(args) ? args : {};
103
+ }
104
+ function numberField(record, key) {
105
+ const value = record == null ? void 0 : record[key];
106
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
107
+ }
108
+ function searchAssetCreator(asset) {
109
+ const user = toolResult.isRecord(asset.created_by_user) ? asset.created_by_user : null;
110
+ const fullName = [toolResult.stringField(user, ["first_name"]), toolResult.stringField(user, ["last_name"])].filter(Boolean).join(" ");
111
+ return toolResult.stringField(user, ["email"]) ?? (fullName || null) ?? toolResult.stringField(user, ["id"]) ?? "Unknown";
112
+ }
113
+ function readSearchAssetsResult(result) {
114
+ const data = primitives.normalizeResult(result);
115
+ if (!data || !Array.isArray(data.assets)) return null;
116
+ const rows = data.assets.flatMap((raw) => {
117
+ if (!toolResult.isRecord(raw)) return [];
118
+ const id = toolResult.stringField(raw, ["id"]);
119
+ if (!id) return [];
120
+ return [
121
+ {
122
+ id,
123
+ title: toolResult.stringField(raw, ["title"]) ?? "Untitled",
124
+ assetType: toolResult.stringField(raw, ["athena_converted_type", "athena_original_type", "asset_type"]) ?? void 0,
125
+ creator: searchAssetCreator(raw),
126
+ updatedAt: toolResult.stringField(raw, ["updated_at"]) ?? void 0,
127
+ workspaceAccess: toolResult.stringField(raw, ["workspace_access"]) ?? void 0
128
+ }
129
+ ];
130
+ });
131
+ return {
132
+ rows,
133
+ count: numberField(data, "returned_count") ?? rows.length,
134
+ errorMessage: toolResult.stringField(data, ["error_message"])
135
+ };
136
+ }
137
+ function updatedDate(updatedAt) {
138
+ if (!updatedAt) return null;
139
+ const date = new Date(updatedAt);
140
+ return Number.isNaN(date.getTime()) ? null : date.toLocaleDateString();
141
+ }
142
+ function SearchAssetResultRow({ row, divided }) {
143
+ const openAsset = assetPanelStore.useAssetPanelStore((s) => s.openAsset);
144
+ const updated = updatedDate(row.updatedAt);
145
+ return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
146
+ divided ? /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "ml-11 border-t border-border/60" }) : null,
147
+ /* @__PURE__ */ jsxRuntime.jsxs(
148
+ "button",
149
+ {
150
+ type: "button",
151
+ "data-asset-id": row.id,
152
+ onClick: () => openAsset(row.id, { name: row.title, type: panelAssetType(row.assetType) }),
153
+ className: "flex w-full items-start gap-2 rounded-md px-1 py-3 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
154
+ children: [
155
+ /* @__PURE__ */ jsxRuntime.jsx(AssetTypeIcon, { assetType: row.assetType, size: "md" }),
156
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col gap-0.5", children: [
157
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "break-words text-[13px] font-medium text-foreground", children: row.title }),
158
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-muted-foreground", children: [
159
+ "Created by ",
160
+ row.creator
161
+ ] }),
162
+ updated ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-muted-foreground", children: [
163
+ "Updated ",
164
+ updated
165
+ ] }) : null,
166
+ row.workspaceAccess ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-muted-foreground", children: row.workspaceAccess }) : null
167
+ ] })
168
+ ]
169
+ }
170
+ )
171
+ ] });
172
+ }
173
+ const SearchAssetsToolUIImpl = (props) => {
174
+ const { toolName, args, result, status, isError } = props;
175
+ const classification = toolResult.classifyToolResult({ status, result, isError });
176
+ if (classification.state === "rejected" || classification.state === "paused") {
177
+ return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.SearchIcon });
178
+ }
179
+ const typedArgs = argsRecord(args);
180
+ const keyword = toolResult.stringField(typedArgs, ["title_contains_keyword"]);
181
+ const data = readSearchAssetsResult(result);
182
+ const card = toolCardOutcome({
183
+ status,
184
+ classification,
185
+ resultFailure: (data == null ? void 0 : data.errorMessage) ? `Search failed: ${data.errorMessage}` : null
186
+ });
187
+ const running = keyword ? `Searching assets for "${keyword}"...` : "Searching assets...";
188
+ const found = data ? `Found ${data.count === 1 ? "1 asset" : `${data.count} assets`}${keyword ? ` for "${keyword}"` : ""}` : `Search complete${keyword ? ` for "${keyword}"` : ""}`;
189
+ const title = card.status === "running" ? running : card.status === "complete" ? found : withoutEllipsis(running);
190
+ return /* @__PURE__ */ jsxRuntime.jsx(
191
+ primitives.ToolCard,
192
+ {
193
+ icon: lucideReact.SearchIcon,
194
+ status: card.status,
195
+ title,
196
+ toolName,
197
+ args: typedArgs,
198
+ result,
199
+ error: card.failure,
200
+ children: card.status === "complete" && data && data.rows.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show assets", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col", children: data.rows.map((row, index) => /* @__PURE__ */ jsxRuntime.jsx(SearchAssetResultRow, { row, divided: index > 0 }, `${row.id}:${index}`)) }) }) : null
201
+ }
202
+ );
203
+ };
204
+ const SearchAssetsToolUI = require$$0.memo(
205
+ SearchAssetsToolUIImpl
206
+ );
207
+ SearchAssetsToolUI.displayName = "SearchAssetsToolUI";
208
+ const LISTED_NODE_ID = /(?:^|\s)id='([^']+)'/;
209
+ const LISTED_NODE_KIND = /(?:^|\s)type='([^']+)'/;
210
+ const LISTED_NODE_MEDIA_TYPE = /(?:^|\s)media_type='([^']+)'/;
211
+ function readListedNode(raw) {
212
+ var _a, _b, _c;
213
+ if (typeof raw === "string") {
214
+ return {
215
+ id: (_a = LISTED_NODE_ID.exec(raw)) == null ? void 0 : _a[1],
216
+ kind: (_b = LISTED_NODE_KIND.exec(raw)) == null ? void 0 : _b[1],
217
+ mediaType: (_c = LISTED_NODE_MEDIA_TYPE.exec(raw)) == null ? void 0 : _c[1]
218
+ };
219
+ }
220
+ if (!toolResult.isRecord(raw)) return {};
221
+ return {
222
+ id: toolResult.stringField(raw, ["id"]) ?? void 0,
223
+ kind: toolResult.stringField(raw, ["type"]) ?? void 0,
224
+ mediaType: toolResult.stringField(raw, ["media_type"]) ?? void 0
225
+ };
226
+ }
227
+ function listedAssetType({ kind, mediaType }) {
228
+ if (mediaType == null ? void 0 : mediaType.startsWith("athena/")) return mediaType.slice("athena/".length);
229
+ if (kind === "folder") return "folder";
230
+ if (mediaType === "application/pdf") return "pdf";
231
+ const family = mediaType == null ? void 0 : mediaType.split("/")[0];
232
+ return family === "image" || family === "video" || family === "audio" ? family : void 0;
233
+ }
234
+ function readListContentsResult(result) {
235
+ const data = primitives.normalizeResult(result);
236
+ if (!data) return null;
237
+ const treeData = toolResult.isRecord(data.tree_data) ? data.tree_data : null;
238
+ const pagination = toolResult.isRecord(data.pagination) ? data.pagination : null;
239
+ const currentPage = numberField(pagination, "current_page");
240
+ const totalPages = numberField(pagination, "total_pages");
241
+ return {
242
+ tree: toolResult.stringField(data, ["structure_tree_ascii"]),
243
+ entries: treeData ? Object.entries(treeData).map(([title, raw]) => {
244
+ const node = readListedNode(raw);
245
+ return { title, assetId: node.id, assetType: listedAssetType(node) };
246
+ }) : null,
247
+ pagination: currentPage !== void 0 && totalPages !== void 0 ? { currentPage, totalPages } : null
248
+ };
249
+ }
250
+ function ListedEntryRow({ entry, divided }) {
251
+ const openAsset = assetPanelStore.useAssetPanelStore((s) => s.openAsset);
252
+ const { assetId } = entry;
253
+ return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
254
+ divided ? /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "ml-10 border-t border-border/60" }) : null,
255
+ assetId ? /* @__PURE__ */ jsxRuntime.jsxs(
256
+ "button",
257
+ {
258
+ type: "button",
259
+ "data-asset-id": assetId,
260
+ onClick: () => openAsset(assetId, { name: entry.title, type: panelAssetType(entry.assetType) }),
261
+ className: "flex w-full items-center gap-4 rounded-md py-2 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
262
+ children: [
263
+ /* @__PURE__ */ jsxRuntime.jsx(AssetTypeIcon, { assetType: entry.assetType, size: "sm" }),
264
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-[13px] font-medium text-foreground", children: entry.title })
265
+ ]
266
+ }
267
+ ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-1 pl-10 text-[11px] text-muted-foreground", children: entry.title })
268
+ ] });
269
+ }
270
+ const ListContentsToolUIImpl = (props) => {
271
+ var _a, _b;
272
+ const { toolName, args, result, status, isError } = props;
273
+ const classification = toolResult.classifyToolResult({ status, result, isError });
274
+ if (classification.state === "rejected" || classification.state === "paused") {
275
+ return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.FolderIcon });
276
+ }
277
+ const typedArgs = argsRecord(args);
278
+ const target = toolResult.stringField(typedArgs, ["asset_id"]) ? "" : " for workspace";
279
+ const data = readListContentsResult(result);
280
+ const card = toolCardOutcome({ status, classification });
281
+ const running = "Listing contents...";
282
+ const listed = data ? `Contents listed - Page ${((_a = data.pagination) == null ? void 0 : _a.currentPage) ?? 1} of ${((_b = data.pagination) == null ? void 0 : _b.totalPages) ?? 1}${target}` : `Contents listed${target}`;
283
+ const title = card.status === "running" ? running : card.status === "complete" ? listed : withoutEllipsis(running);
284
+ const entries = (data == null ? void 0 : data.entries) ?? [];
285
+ const hasListing = Boolean(data && (data.tree || entries.length > 0 || data.pagination));
286
+ return /* @__PURE__ */ jsxRuntime.jsx(
287
+ primitives.ToolCard,
288
+ {
289
+ icon: lucideReact.FolderIcon,
290
+ status: card.status,
291
+ title,
292
+ toolName,
293
+ args: typedArgs,
294
+ result,
295
+ error: card.failure,
296
+ children: card.status === "complete" && data && hasListing ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show contents", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
297
+ data.tree ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap rounded bg-muted/50 p-2 text-[11px] leading-4 text-foreground", children: data.tree }) : null,
298
+ entries.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-60 overflow-y-auto pr-0.5", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col", children: entries.map((entry, index) => {
299
+ var _a2;
300
+ return /* @__PURE__ */ jsxRuntime.jsx(
301
+ ListedEntryRow,
302
+ {
303
+ entry,
304
+ divided: index > 0 && ((_a2 = entries[index - 1]) == null ? void 0 : _a2.assetId) !== void 0
305
+ },
306
+ `${entry.title}:${index}`
307
+ );
308
+ }) }) }) : null,
309
+ data.pagination ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-muted-foreground", children: [
310
+ "Page ",
311
+ data.pagination.currentPage,
312
+ " of ",
313
+ data.pagination.totalPages
314
+ ] }) : null
315
+ ] }) }) : null
316
+ }
317
+ );
318
+ };
319
+ const ListContentsToolUI = require$$0.memo(
320
+ ListContentsToolUIImpl
321
+ );
322
+ ListContentsToolUI.displayName = "ListContentsToolUI";
323
+ function normalizeProjectLinksAssetIds(value) {
324
+ if (Array.isArray(value)) {
325
+ return value.filter((id) => typeof id === "string" && id.length > 0);
326
+ }
327
+ if (typeof value === "string") {
328
+ return value.split(",").map((id) => id.trim()).filter((id) => id.length > 0);
329
+ }
330
+ return [];
331
+ }
332
+ function projectLinksRunningTitle({ operation, count }) {
333
+ const links = `${count} asset link${count !== 1 ? "s" : ""}`;
334
+ switch (operation) {
335
+ case "read":
336
+ return "Reading project links...";
337
+ case "add":
338
+ return `Adding ${links} to project...`;
339
+ case "remove":
340
+ return `Removing ${links} from project...`;
341
+ case "set":
342
+ return `Setting ${links} on project...`;
343
+ default:
344
+ return "Managing project links...";
345
+ }
346
+ }
347
+ const PROJECT_LINKS_DETAIL_LABEL = {
348
+ read: "Linked",
349
+ add: "Added",
350
+ remove: "Removed",
351
+ set: "Set to"
352
+ };
353
+ const ProjectLinksToolUIImpl = (props) => {
354
+ const { toolName, args, result, status, isError } = props;
355
+ const classification = toolResult.classifyToolResult({ status, result, isError });
356
+ if (classification.state === "rejected" || classification.state === "paused") {
357
+ return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.LinkIcon });
358
+ }
359
+ const typedArgs = argsRecord(args);
360
+ const operation = toolResult.stringField(typedArgs, ["type"]) ?? "read";
361
+ const projectId = toolResult.stringField(typedArgs, ["project_id"]);
362
+ const argAssetIds = normalizeProjectLinksAssetIds(typedArgs.asset_ids);
363
+ const data = primitives.normalizeResult(result);
364
+ const prose = typeof result === "string" && !data ? result.trim() : "";
365
+ const card = toolCardOutcome({ status, classification, resultFailure: prose || null });
366
+ const assetIds = operation === "read" && Array.isArray(data == null ? void 0 : data.asset_ids) ? normalizeProjectLinksAssetIds(data.asset_ids) : argAssetIds;
367
+ const singleAsset = assetIds.length === 1 ? assetIds[0] : void 0;
368
+ const changesOneAsset = singleAsset !== void 0 && operation !== "read";
369
+ const message = toolResult.stringField(data, ["message"]);
370
+ const projectTitle = toolResult.stringField(data, ["project_title"]) ?? void 0;
371
+ const running = projectLinksRunningTitle({ operation, count: argAssetIds.length });
372
+ const title = card.status === "running" ? running : card.status === "complete" ? message ?? withoutEllipsis(running) : withoutEllipsis(running);
373
+ const isDone = card.status === "complete";
374
+ const projectChip = projectId ? /* @__PURE__ */ jsxRuntime.jsx(
375
+ AssetChip,
376
+ {
377
+ assetId: projectId,
378
+ title: projectTitle,
379
+ fallbackLabel: "Project",
380
+ assetType: "project"
381
+ }
382
+ ) : null;
383
+ return /* @__PURE__ */ jsxRuntime.jsxs(
384
+ primitives.ToolCard,
385
+ {
386
+ icon: lucideReact.LinkIcon,
387
+ status: card.status,
388
+ title,
389
+ toolName,
390
+ args: typedArgs,
391
+ result,
392
+ error: card.failure,
393
+ children: [
394
+ isDone && changesOneAsset ? /* @__PURE__ */ jsxRuntime.jsxs(AssetChipLine, { children: [
395
+ /* @__PURE__ */ jsxRuntime.jsx(AssetChip, { assetId: singleAsset, fallbackLabel: singleAsset }),
396
+ projectChip ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
397
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, { "aria-hidden": "true", className: "size-3.5 shrink-0" }),
398
+ projectChip
399
+ ] }) : null
400
+ ] }) : isDone && message && projectChip ? /* @__PURE__ */ jsxRuntime.jsxs(AssetChipLine, { children: [
401
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "on" }),
402
+ projectChip
403
+ ] }) : null,
404
+ isDone && !changesOneAsset && assetIds.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show assets", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
405
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-1 text-[11px] font-semibold text-muted-foreground", children: PROJECT_LINKS_DETAIL_LABEL[operation] ?? operation }),
406
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col divide-y divide-border/60", children: assetIds.map((assetId, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "py-1", children: /* @__PURE__ */ jsxRuntime.jsx(AssetChip, { assetId, fallbackLabel: assetId }) }, `${assetId}:${index}`)) })
407
+ ] }) }) : null
408
+ ]
409
+ }
410
+ );
411
+ };
412
+ const ProjectLinksToolUI = require$$0.memo(
413
+ ProjectLinksToolUIImpl
414
+ );
415
+ ProjectLinksToolUI.displayName = "ProjectLinksToolUI";
416
+ exports.AssetChip = AssetChip;
417
+ exports.AssetChipLine = AssetChipLine;
418
+ exports.AssetTypeIcon = AssetTypeIcon;
419
+ exports.ListContentsToolUI = ListContentsToolUI;
420
+ exports.ProjectLinksToolUI = ProjectLinksToolUI;
421
+ exports.SearchAssetsToolUI = SearchAssetsToolUI;
422
+ exports.argsRecord = argsRecord;
423
+ exports.normalizeProjectLinksAssetIds = normalizeProjectLinksAssetIds;
424
+ exports.numberField = numberField;
425
+ exports.readListContentsResult = readListContentsResult;
426
+ exports.readSearchAssetsResult = readSearchAssetsResult;
427
+ exports.toolCardOutcome = toolCardOutcome;
428
+ exports.withoutEllipsis = withoutEllipsis;
429
+ //# sourceMappingURL=drive-tool-uis.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive-tool-uis.cjs","sources":["../../src/tools/drive-tool-uis.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The Athena Drive cards, as Athena on the web draws them: `search_assets`\n * (the matches, each opening its asset), `list_contents` (a folder's tree and\n * the assets in it) and `project_links` (a project's links as asset chips).\n *\n * Olympus reads each asset's title and thumbnail from its asset cache; these\n * cards draw only what the call's arguments and result carry. An asset shows\n * its type's icon when the result names its type, and an asset the result\n * names by id alone shows its id.\n */\nimport type {\n ToolCallMessagePartComponent,\n ToolCallMessagePartStatus,\n} from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n isRecord,\n stringField,\n type ToolResultClassification,\n} from \"@athenaintel/agent-runtime\";\nimport { ArrowRightIcon, FolderIcon, LinkIcon, SearchIcon } from \"lucide-react\";\nimport { memo, type ReactNode } from \"react\";\nimport { type AssetType, useAssetPanelStore } from \"../assets/asset-panel-store\";\nimport {\n CHIP_ICON_CLASS,\n CHIP_LINK_CLASS,\n CHIP_PILL_CLASS,\n} from \"../chat-ui/mentions/mention-chip\";\nimport {\n MentionIcon,\n useThumbnailLoadFailure,\n} from \"../chat-ui/mentions/suggestions/components/mention-icon\";\nimport { useAssetIconAppUrl } from \"../chat-ui/mentions/use-asset-icon-app-url\";\nimport {\n assetTypeToIcon,\n assetTypeToThumb,\n} from \"../chat-ui/mentions/suggestions/data/sources/asset-type-icons\";\nimport { cn } from \"../lib/utils\";\nimport { ExpandableSection, normalizeResult, ToolCard, type ToolStatus } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\n// ─── Shared by the Drive and project manager cards ───────────────────\n\n/** A running title without its trailing \"...\": what a stopped or waiting call was doing. */\nexport function withoutEllipsis(title: string): string {\n return title.replace(/(?:\\.{3}|…)\\s*$/u, \"\");\n}\n\n/** How a card shows its call: the status it renders with, and why the call failed when it did. */\nexport interface ToolCardOutcome {\n status: ToolStatus;\n failure: string | null;\n}\n\n/**\n * The card's status. A call the runtime stopped reads as failed with the\n * runtime's reason; a settled call reads as failed when its result reports a\n * failure in the tool's own words (`resultFailure`, as Olympus words it) or\n * the shared classifier reads one. A refusal at the approval gate never gets\n * here: the generic card draws it.\n */\nexport function toolCardOutcome({\n status,\n classification,\n resultFailure = null,\n}: {\n status: ToolCallMessagePartStatus | undefined;\n classification: ToolResultClassification;\n resultFailure?: string | null;\n}): ToolCardOutcome {\n if (status?.type === \"running\") return { status: \"running\", failure: null };\n const classified = classification.state === \"error\" ? classification.failure.message : null;\n const failure = status?.type === \"incomplete\" ? classified : (resultFailure ?? classified);\n if (failure) return { status: \"incomplete\", failure };\n return { status: status?.type ?? \"complete\", failure: null };\n}\n\n/** The asset panel's name for an asset type, when it has one; the panel opens any other as a plain asset. */\nfunction panelAssetType(assetType: string | undefined): AssetType | undefined {\n switch (assetType) {\n case \"presentation\":\n case \"spreadsheet\":\n case \"document\":\n case \"notebook\":\n return assetType;\n default:\n return undefined;\n }\n}\n\nconst ASSET_ICON_TILE = {\n md: { box: \"size-8\", icon: \"size-4\" },\n sm: { box: \"size-6\", icon: \"size-3.5\" },\n} as const;\n\n/**\n * An asset's type icon, as the `@` menu draws it: the asset-type SVG Olympus\n * draws (`assetTypeToThumb`: the host's copy, else the chat's Athena web app's), or\n * the type's Lucide icon on a muted tile when there is none or it cannot load.\n * Olympus draws the asset's own thumbnail, which needs the asset read; its\n * type is what a result carries.\n */\nexport function AssetTypeIcon({\n assetType,\n size,\n}: {\n assetType: string | undefined;\n size: keyof typeof ASSET_ICON_TILE;\n}) {\n const tile = ASSET_ICON_TILE[size];\n const iconAppUrl = useAssetIconAppUrl();\n const thumbnailUrl = assetTypeToThumb(assetType, { appUrl: iconAppUrl });\n const thumbnail = useThumbnailLoadFailure(thumbnailUrl);\n if (thumbnailUrl && !thumbnail.failed) {\n return (\n <img ref={thumbnail.imageRef} src={thumbnailUrl} alt=\"\" className={cn(\"shrink-0\", tile.box)} />\n );\n }\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n \"flex shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground\",\n tile.box,\n )}\n >\n <MentionIcon fallbackIcon={assetTypeToIcon(assetType)} className={tile.icon} />\n </span>\n );\n}\n\n/**\n * An asset as the chip a chat message draws, opening the asset on click.\n * `title` is the asset's title when the call carried one; without it the\n * chip shows `fallbackLabel` and the asset opens unnamed, for whatever opens\n * it to name.\n */\nexport function AssetChip({\n assetId,\n title,\n fallbackLabel,\n assetType,\n}: {\n assetId: string;\n title?: string;\n fallbackLabel: string;\n assetType?: string;\n}) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const iconAppUrl = useAssetIconAppUrl();\n const label = title ?? fallbackLabel;\n return (\n <button\n type=\"button\"\n data-asset-id={assetId}\n title={`Open ${label}`}\n onClick={() => openAsset(assetId, { name: title, type: panelAssetType(assetType) })}\n className={cn(CHIP_PILL_CLASS, CHIP_LINK_CLASS, \"max-w-[275px] text-xs\")}\n >\n <MentionIcon\n thumbnailUrl={assetTypeToThumb(assetType, { appUrl: iconAppUrl })}\n fallbackIcon={assetTypeToIcon(assetType)}\n className={CHIP_ICON_CLASS}\n />\n <span className=\"min-w-0 max-w-[180px] overflow-hidden text-ellipsis\">{label}</span>\n </button>\n );\n}\n\n/** The line under a card's title that finishes its sentence with chips (\"for [project]\"). */\nexport function AssetChipLine({ children }: { children: ReactNode }) {\n return (\n <div className=\"flex flex-wrap items-center gap-1.5 border-t border-border/40 px-4 py-2 text-xs text-muted-foreground\">\n {children}\n </div>\n );\n}\n\n/** The record a tool call's arguments are, or an empty one while they stream. */\nexport function argsRecord(args: unknown): Record<string, unknown> {\n return isRecord(args) ? args : {};\n}\n\n/** A number field of a result record, when it is one. */\nexport function numberField(\n record: Record<string, unknown> | null | undefined,\n key: string,\n): number | undefined {\n const value = record?.[key];\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\n// ─── search_assets ───────────────────────────────────────────────────\n\n/** One match, as the card lists it. */\nexport interface SearchAssetRow {\n id: string;\n title: string;\n /** The type its icon is drawn for (`athena_converted_type`, else `athena_original_type`). */\n assetType: string | undefined;\n creator: string;\n updatedAt: string | undefined;\n workspaceAccess: string | undefined;\n}\n\nexport interface SearchAssetsResult {\n rows: SearchAssetRow[];\n /** `returned_count`: this page's matches. */\n count: number;\n /** The reason a search failed (`error_message`). */\n errorMessage: string | null;\n}\n\nfunction searchAssetCreator(asset: Record<string, unknown>): string {\n const user = isRecord(asset.created_by_user) ? asset.created_by_user : null;\n const fullName = [stringField(user, [\"first_name\"]), stringField(user, [\"last_name\"])]\n .filter(Boolean)\n .join(\" \");\n return stringField(user, [\"email\"]) ?? (fullName || null) ?? stringField(user, [\"id\"]) ?? \"Unknown\";\n}\n\n/** The page of matches agora's `search_assets` returned, or `null` for a result that is not one. */\nexport function readSearchAssetsResult(result: unknown): SearchAssetsResult | null {\n const data = normalizeResult(result);\n if (!data || !Array.isArray(data.assets)) return null;\n const rows = data.assets.flatMap((raw): SearchAssetRow[] => {\n if (!isRecord(raw)) return [];\n const id = stringField(raw, [\"id\"]);\n if (!id) return [];\n return [\n {\n id,\n title: stringField(raw, [\"title\"]) ?? \"Untitled\",\n assetType:\n stringField(raw, [\"athena_converted_type\", \"athena_original_type\", \"asset_type\"]) ??\n undefined,\n creator: searchAssetCreator(raw),\n updatedAt: stringField(raw, [\"updated_at\"]) ?? undefined,\n workspaceAccess: stringField(raw, [\"workspace_access\"]) ?? undefined,\n },\n ];\n });\n return {\n rows,\n count: numberField(data, \"returned_count\") ?? rows.length,\n errorMessage: stringField(data, [\"error_message\"]),\n };\n}\n\nfunction updatedDate(updatedAt: string | undefined): string | null {\n if (!updatedAt) return null;\n const date = new Date(updatedAt);\n return Number.isNaN(date.getTime()) ? null : date.toLocaleDateString();\n}\n\nfunction SearchAssetResultRow({ row, divided }: { row: SearchAssetRow; divided: boolean }) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const updated = updatedDate(row.updatedAt);\n return (\n <li>\n {divided ? <div aria-hidden=\"true\" className=\"ml-11 border-t border-border/60\" /> : null}\n <button\n type=\"button\"\n data-asset-id={row.id}\n onClick={() => openAsset(row.id, { name: row.title, type: panelAssetType(row.assetType) })}\n className=\"flex w-full items-start gap-2 rounded-md px-1 py-3 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\"\n >\n <AssetTypeIcon assetType={row.assetType} size=\"md\" />\n <span className=\"flex min-w-0 flex-col gap-0.5\">\n <span className=\"break-words text-[13px] font-medium text-foreground\">{row.title}</span>\n <span className=\"text-[11px] text-muted-foreground\">Created by {row.creator}</span>\n {updated ? (\n <span className=\"text-[11px] text-muted-foreground\">Updated {updated}</span>\n ) : null}\n {row.workspaceAccess ? (\n <span className=\"text-[11px] text-muted-foreground\">{row.workspaceAccess}</span>\n ) : null}\n </span>\n </button>\n </li>\n );\n}\n\nconst SearchAssetsToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n // A search refused at the approval gate or parked by the runtime is the\n // generic card's to draw: it is neither a result nor a failure.\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={SearchIcon} />;\n }\n const typedArgs = argsRecord(args);\n const keyword = stringField(typedArgs, [\"title_contains_keyword\"]);\n const data = readSearchAssetsResult(result);\n const card = toolCardOutcome({\n status,\n classification,\n resultFailure: data?.errorMessage ? `Search failed: ${data.errorMessage}` : null,\n });\n\n const running = keyword ? `Searching assets for \"${keyword}\"...` : \"Searching assets...\";\n const found = data\n ? `Found ${data.count === 1 ? \"1 asset\" : `${data.count} assets`}${keyword ? ` for \"${keyword}\"` : \"\"}`\n : `Search complete${keyword ? ` for \"${keyword}\"` : \"\"}`;\n const title =\n card.status === \"running\" ? running : card.status === \"complete\" ? found : withoutEllipsis(running);\n\n return (\n <ToolCard\n icon={SearchIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && data && data.rows.length > 0 ? (\n <ExpandableSection label=\"Show assets\">\n <ul className=\"flex flex-col\">\n {data.rows.map((row, index) => (\n <SearchAssetResultRow key={`${row.id}:${index}`} row={row} divided={index > 0} />\n ))}\n </ul>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const SearchAssetsToolUI = memo(\n SearchAssetsToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nSearchAssetsToolUI.displayName = \"SearchAssetsToolUI\";\n\n// ─── list_contents ───────────────────────────────────────────────────\n\n/** One top-level entry of a listing: its title, and the asset it is when the listing names one. */\nexport interface ListedEntry {\n title: string;\n assetId: string | undefined;\n /** The type its icon is drawn for. */\n assetType: string | undefined;\n}\n\nexport interface ListContentsResult {\n /** `structure_tree_ascii`: the whole tree as text. */\n tree: string | null;\n /** `tree_data`'s top level (this page of it), or `null` when the result has none. */\n entries: ListedEntry[] | null;\n pagination: { currentPage: number; totalPages: number } | null;\n}\n\nconst LISTED_NODE_ID = /(?:^|\\s)id='([^']+)'/;\nconst LISTED_NODE_KIND = /(?:^|\\s)type='([^']+)'/;\nconst LISTED_NODE_MEDIA_TYPE = /(?:^|\\s)media_type='([^']+)'/;\n\n/**\n * One listed node's id, kind (`file` / `folder`) and media type. agora\n * serializes the listing with `default=str`, so a node usually arrives as its\n * pydantic text (`name='Q3' type='folder' id='asset_…' media_type='athena/folder'\n * children={…}`, its own fields ahead of its children's); a node can also\n * arrive as an object.\n */\nfunction readListedNode(raw: unknown): { id?: string; kind?: string; mediaType?: string } {\n if (typeof raw === \"string\") {\n return {\n id: LISTED_NODE_ID.exec(raw)?.[1],\n kind: LISTED_NODE_KIND.exec(raw)?.[1],\n mediaType: LISTED_NODE_MEDIA_TYPE.exec(raw)?.[1],\n };\n }\n if (!isRecord(raw)) return {};\n return {\n id: stringField(raw, [\"id\"]) ?? undefined,\n kind: stringField(raw, [\"type\"]) ?? undefined,\n mediaType: stringField(raw, [\"media_type\"]) ?? undefined,\n };\n}\n\n/** The asset type a listed node's icon is drawn for: an Athena asset's type, a folder, or an upload's kind of file. */\nfunction listedAssetType({ kind, mediaType }: { kind?: string; mediaType?: string }): string | undefined {\n if (mediaType?.startsWith(\"athena/\")) return mediaType.slice(\"athena/\".length);\n if (kind === \"folder\") return \"folder\";\n if (mediaType === \"application/pdf\") return \"pdf\";\n const family = mediaType?.split(\"/\")[0];\n return family === \"image\" || family === \"video\" || family === \"audio\" ? family : undefined;\n}\n\n/** The listing agora's `list_contents` returned, or `null` for a result that is not a record. */\nexport function readListContentsResult(result: unknown): ListContentsResult | null {\n const data = normalizeResult(result);\n if (!data) return null;\n const treeData = isRecord(data.tree_data) ? data.tree_data : null;\n const pagination = isRecord(data.pagination) ? data.pagination : null;\n const currentPage = numberField(pagination, \"current_page\");\n const totalPages = numberField(pagination, \"total_pages\");\n return {\n tree: stringField(data, [\"structure_tree_ascii\"]),\n entries: treeData\n ? Object.entries(treeData).map(([title, raw]) => {\n const node = readListedNode(raw);\n return { title, assetId: node.id, assetType: listedAssetType(node) };\n })\n : null,\n pagination:\n currentPage !== undefined && totalPages !== undefined ? { currentPage, totalPages } : null,\n };\n}\n\nfunction ListedEntryRow({ entry, divided }: { entry: ListedEntry; divided: boolean }) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const { assetId } = entry;\n return (\n <li>\n {divided ? <div aria-hidden=\"true\" className=\"ml-10 border-t border-border/60\" /> : null}\n {assetId ? (\n <button\n type=\"button\"\n data-asset-id={assetId}\n onClick={() =>\n openAsset(assetId, { name: entry.title, type: panelAssetType(entry.assetType) })\n }\n className=\"flex w-full items-center gap-4 rounded-md py-2 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\"\n >\n <AssetTypeIcon assetType={entry.assetType} size=\"sm\" />\n <span className=\"min-w-0 truncate text-[13px] font-medium text-foreground\">\n {entry.title}\n </span>\n </button>\n ) : (\n <p className=\"py-1 pl-10 text-[11px] text-muted-foreground\">{entry.title}</p>\n )}\n </li>\n );\n}\n\nconst ListContentsToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={FolderIcon} />;\n }\n const typedArgs = argsRecord(args);\n // Olympus names the listed asset by its title, read from its asset cache;\n // the call carries only its id, so the card names the workspace alone.\n const target = stringField(typedArgs, [\"asset_id\"]) ? \"\" : \" for workspace\";\n const data = readListContentsResult(result);\n const card = toolCardOutcome({ status, classification });\n\n const running = \"Listing contents...\";\n const listed = data\n ? `Contents listed - Page ${data.pagination?.currentPage ?? 1} of ${data.pagination?.totalPages ?? 1}${target}`\n : `Contents listed${target}`;\n const title =\n card.status === \"running\" ? running : card.status === \"complete\" ? listed : withoutEllipsis(running);\n const entries = data?.entries ?? [];\n const hasListing = Boolean(data && (data.tree || entries.length > 0 || data.pagination));\n\n return (\n <ToolCard\n icon={FolderIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && data && hasListing ? (\n <ExpandableSection label=\"Show contents\">\n <div className=\"flex flex-col gap-3\">\n {data.tree ? (\n <pre className=\"overflow-x-auto whitespace-pre-wrap rounded bg-muted/50 p-2 text-[11px] leading-4 text-foreground\">\n {data.tree}\n </pre>\n ) : null}\n {entries.length > 0 ? (\n <div className=\"max-h-60 overflow-y-auto pr-0.5\">\n <ul className=\"flex flex-col\">\n {entries.map((entry, index) => (\n <ListedEntryRow\n key={`${entry.title}:${index}`}\n entry={entry}\n divided={index > 0 && entries[index - 1]?.assetId !== undefined}\n />\n ))}\n </ul>\n </div>\n ) : null}\n {data.pagination ? (\n <span className=\"text-[10px] text-muted-foreground\">\n Page {data.pagination.currentPage} of {data.pagination.totalPages}\n </span>\n ) : null}\n </div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const ListContentsToolUI = memo(\n ListContentsToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nListContentsToolUI.displayName = \"ListContentsToolUI\";\n\n// ─── project_links ───────────────────────────────────────────────────\n\n/**\n * Streamed or model-written `asset_ids` are not always an array: a single id\n * or a comma-separated string arrives as a string.\n */\nexport function normalizeProjectLinksAssetIds(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.filter((id): id is string => typeof id === \"string\" && id.length > 0);\n }\n if (typeof value === \"string\") {\n return value\n .split(\",\")\n .map((id) => id.trim())\n .filter((id) => id.length > 0);\n }\n return [];\n}\n\nfunction projectLinksRunningTitle({ operation, count }: { operation: string; count: number }): string {\n const links = `${count} asset link${count !== 1 ? \"s\" : \"\"}`;\n switch (operation) {\n case \"read\":\n return \"Reading project links...\";\n case \"add\":\n return `Adding ${links} to project...`;\n case \"remove\":\n return `Removing ${links} from project...`;\n case \"set\":\n return `Setting ${links} on project...`;\n default:\n return \"Managing project links...\";\n }\n}\n\nconst PROJECT_LINKS_DETAIL_LABEL: Record<string, string> = {\n read: \"Linked\",\n add: \"Added\",\n remove: \"Removed\",\n set: \"Set to\",\n};\n\nconst ProjectLinksToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={LinkIcon} />;\n }\n const typedArgs = argsRecord(args);\n const operation = stringField(typedArgs, [\"type\"]) ?? \"read\";\n const projectId = stringField(typedArgs, [\"project_id\"]);\n const argAssetIds = normalizeProjectLinksAssetIds(typedArgs.asset_ids);\n const data = normalizeResult(result);\n // Every answer agora writes in prose (\"Project with ID … not found\",\n // \"Error: …\") is a refusal; a change or a read answers in JSON.\n const prose = typeof result === \"string\" && !data ? result.trim() : \"\";\n const card = toolCardOutcome({ status, classification, resultFailure: prose || null });\n\n const assetIds =\n operation === \"read\" && Array.isArray(data?.asset_ids)\n ? normalizeProjectLinksAssetIds(data.asset_ids)\n : argAssetIds;\n const singleAsset = assetIds.length === 1 ? assetIds[0] : undefined;\n const changesOneAsset = singleAsset !== undefined && operation !== \"read\";\n const message = stringField(data, [\"message\"]);\n const projectTitle = stringField(data, [\"project_title\"]) ?? undefined;\n\n const running = projectLinksRunningTitle({ operation, count: argAssetIds.length });\n const title =\n card.status === \"running\"\n ? running\n : card.status === \"complete\"\n ? (message ?? withoutEllipsis(running))\n : withoutEllipsis(running);\n const isDone = card.status === \"complete\";\n const projectChip = projectId ? (\n <AssetChip\n assetId={projectId}\n title={projectTitle}\n fallbackLabel=\"Project\"\n assetType=\"project\"\n />\n ) : null;\n\n return (\n <ToolCard\n icon={LinkIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {isDone && changesOneAsset ? (\n <AssetChipLine>\n <AssetChip assetId={singleAsset} fallbackLabel={singleAsset} />\n {projectChip ? (\n <>\n <ArrowRightIcon aria-hidden=\"true\" className=\"size-3.5 shrink-0\" />\n {projectChip}\n </>\n ) : null}\n </AssetChipLine>\n ) : isDone && message && projectChip ? (\n <AssetChipLine>\n <span>on</span>\n {projectChip}\n </AssetChipLine>\n ) : null}\n {isDone && !changesOneAsset && assetIds.length > 0 ? (\n <ExpandableSection label=\"Show assets\">\n <div className=\"flex flex-col\">\n <p className=\"py-1 text-[11px] font-semibold text-muted-foreground\">\n {PROJECT_LINKS_DETAIL_LABEL[operation] ?? operation}\n </p>\n <ul className=\"flex flex-col divide-y divide-border/60\">\n {assetIds.map((assetId, index) => (\n <li key={`${assetId}:${index}`} className=\"py-1\">\n <AssetChip assetId={assetId} fallbackLabel={assetId} />\n </li>\n ))}\n </ul>\n </div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const ProjectLinksToolUI = memo(\n ProjectLinksToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nProjectLinksToolUI.displayName = \"ProjectLinksToolUI\";\n"],"names":["useAssetIconAppUrl","assetTypeToThumb","useThumbnailLoadFailure","jsx","cn","MentionIcon","assetTypeToIcon","useAssetPanelStore","jsxs","CHIP_PILL_CLASS","CHIP_LINK_CLASS","CHIP_ICON_CLASS","isRecord","stringField","normalizeResult","classifyToolResult","ToolFallback","SearchIcon","ToolCard","ExpandableSection","memo","FolderIcon","_a","LinkIcon","Fragment","ArrowRightIcon"],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * The Athena Drive cards, as Athena on the web draws them: `search_assets`
3
+ * (the matches, each opening its asset), `list_contents` (a folder's tree and
4
+ * the assets in it) and `project_links` (a project's links as asset chips).
5
+ *
6
+ * Olympus reads each asset's title and thumbnail from its asset cache; these
7
+ * cards draw only what the call's arguments and result carry. An asset shows
8
+ * its type's icon when the result names its type, and an asset the result
9
+ * names by id alone shows its id.
10
+ */
11
+ import type { ToolCallMessagePartComponent, ToolCallMessagePartStatus } from "@assistant-ui/react";
12
+ import { type ToolResultClassification } from "../agent-runtime/src/index";
13
+ import { type ReactNode } from "react";
14
+ import { type ToolStatus } from "./primitives";
15
+ /** A running title without its trailing "...": what a stopped or waiting call was doing. */
16
+ export declare function withoutEllipsis(title: string): string;
17
+ /** How a card shows its call: the status it renders with, and why the call failed when it did. */
18
+ export interface ToolCardOutcome {
19
+ status: ToolStatus;
20
+ failure: string | null;
21
+ }
22
+ /**
23
+ * The card's status. A call the runtime stopped reads as failed with the
24
+ * runtime's reason; a settled call reads as failed when its result reports a
25
+ * failure in the tool's own words (`resultFailure`, as Olympus words it) or
26
+ * the shared classifier reads one. A refusal at the approval gate never gets
27
+ * here: the generic card draws it.
28
+ */
29
+ export declare function toolCardOutcome({ status, classification, resultFailure, }: {
30
+ status: ToolCallMessagePartStatus | undefined;
31
+ classification: ToolResultClassification;
32
+ resultFailure?: string | null;
33
+ }): ToolCardOutcome;
34
+ declare const ASSET_ICON_TILE: {
35
+ readonly md: {
36
+ readonly box: "size-8";
37
+ readonly icon: "size-4";
38
+ };
39
+ readonly sm: {
40
+ readonly box: "size-6";
41
+ readonly icon: "size-3.5";
42
+ };
43
+ };
44
+ /**
45
+ * An asset's type icon, as the `@` menu draws it: the asset-type SVG Olympus
46
+ * draws (`assetTypeToThumb`: the host's copy, else the chat's Athena web app's), or
47
+ * the type's Lucide icon on a muted tile when there is none or it cannot load.
48
+ * Olympus draws the asset's own thumbnail, which needs the asset read; its
49
+ * type is what a result carries.
50
+ */
51
+ export declare function AssetTypeIcon({ assetType, size, }: {
52
+ assetType: string | undefined;
53
+ size: keyof typeof ASSET_ICON_TILE;
54
+ }): import("react").JSX.Element;
55
+ /**
56
+ * An asset as the chip a chat message draws, opening the asset on click.
57
+ * `title` is the asset's title when the call carried one; without it the
58
+ * chip shows `fallbackLabel` and the asset opens unnamed, for whatever opens
59
+ * it to name.
60
+ */
61
+ export declare function AssetChip({ assetId, title, fallbackLabel, assetType, }: {
62
+ assetId: string;
63
+ title?: string;
64
+ fallbackLabel: string;
65
+ assetType?: string;
66
+ }): import("react").JSX.Element;
67
+ /** The line under a card's title that finishes its sentence with chips ("for [project]"). */
68
+ export declare function AssetChipLine({ children }: {
69
+ children: ReactNode;
70
+ }): import("react").JSX.Element;
71
+ /** The record a tool call's arguments are, or an empty one while they stream. */
72
+ export declare function argsRecord(args: unknown): Record<string, unknown>;
73
+ /** A number field of a result record, when it is one. */
74
+ export declare function numberField(record: Record<string, unknown> | null | undefined, key: string): number | undefined;
75
+ /** One match, as the card lists it. */
76
+ export interface SearchAssetRow {
77
+ id: string;
78
+ title: string;
79
+ /** The type its icon is drawn for (`athena_converted_type`, else `athena_original_type`). */
80
+ assetType: string | undefined;
81
+ creator: string;
82
+ updatedAt: string | undefined;
83
+ workspaceAccess: string | undefined;
84
+ }
85
+ export interface SearchAssetsResult {
86
+ rows: SearchAssetRow[];
87
+ /** `returned_count`: this page's matches. */
88
+ count: number;
89
+ /** The reason a search failed (`error_message`). */
90
+ errorMessage: string | null;
91
+ }
92
+ /** The page of matches agora's `search_assets` returned, or `null` for a result that is not one. */
93
+ export declare function readSearchAssetsResult(result: unknown): SearchAssetsResult | null;
94
+ export declare const SearchAssetsToolUI: ToolCallMessagePartComponent;
95
+ /** One top-level entry of a listing: its title, and the asset it is when the listing names one. */
96
+ export interface ListedEntry {
97
+ title: string;
98
+ assetId: string | undefined;
99
+ /** The type its icon is drawn for. */
100
+ assetType: string | undefined;
101
+ }
102
+ export interface ListContentsResult {
103
+ /** `structure_tree_ascii`: the whole tree as text. */
104
+ tree: string | null;
105
+ /** `tree_data`'s top level (this page of it), or `null` when the result has none. */
106
+ entries: ListedEntry[] | null;
107
+ pagination: {
108
+ currentPage: number;
109
+ totalPages: number;
110
+ } | null;
111
+ }
112
+ /** The listing agora's `list_contents` returned, or `null` for a result that is not a record. */
113
+ export declare function readListContentsResult(result: unknown): ListContentsResult | null;
114
+ export declare const ListContentsToolUI: ToolCallMessagePartComponent;
115
+ /**
116
+ * Streamed or model-written `asset_ids` are not always an array: a single id
117
+ * or a comma-separated string arrives as a string.
118
+ */
119
+ export declare function normalizeProjectLinksAssetIds(value: unknown): string[];
120
+ export declare const ProjectLinksToolUI: ToolCallMessagePartComponent;
121
+ export {};