@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 @@
1
+ {"version":3,"file":"browser-tool-uis.js","sources":["../../src/tools/browser-tool-uis.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * Cards for the hosted-browser tools: the `computer` action, `browser_batch`,\n * `go_to_url`, `get_page_text`, `get_current_url`, and the browse session's\n * `create_new_browse_session` / `stop_browser_session`. The wording, sections\n * and previews are Olympus's (`ComputerToolUi.tsx`, `BrowserToolUis.tsx`,\n * `BrowseSessionToolkitUis.tsx`), laid out in the card anatomy: Olympus's\n * fixed words are the title, the value they name (a URL, typed text, a\n * session title) is the subtitle.\n *\n * A card reads only its own call: `args`, `result`, `status` and `artifact`.\n * Olympus's side effects stay in Olympus: bringing the browse session to the\n * front of Spaces after each call, refreshing its metadata after a `computer`\n * action, opening a session it just created, and jumping its recording to the\n * moment of a call. A created session opens only when the person clicks Open.\n *\n * Success and failure follow the shared result rules (`classifyToolResult`):\n * the browser toolkit answers a failure with an `Error: …` string inside a\n * completed call, which must not read as \"Visited\".\n */\nimport {\n CheckCircle2Icon,\n CircleStopIcon,\n CircleUserRoundIcon,\n ExternalLinkIcon,\n FileTextIcon,\n GlobeIcon,\n LinkIcon,\n ListChecksIcon,\n LoaderIcon,\n MousePointerClickIcon,\n XCircleIcon,\n} from \"lucide-react\";\nimport { type ComponentType, type ElementType, memo, useState } from \"react\";\nimport type {\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n ToolCallMessagePartStatus,\n} from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n getToolDisplayMeta,\n isRecord,\n type PtcSubcall,\n ptcSubcallsFromArtifact,\n resultRecord,\n} from \"@athenaintel/agent-runtime\";\nimport { useAssetPanelStore } from \"../assets/asset-panel-store\";\nimport { cn } from \"../lib/utils\";\nimport { ExpandableSection, ToolCard, type ToolStatus } from \"./primitives\";\nimport { ScreenshotQueryScope, useScreenshotUrl } from \"./studio-screenshot-tool-uis\";\nimport { ToolFallback } from \"./tool-fallback\";\n\n// ─── Call state ──────────────────────────────────────────────────────\n\n/** What a card reads from its call: a live tool-call part, or a step a batch recorded. */\ninterface BrowserCall {\n toolName: string;\n args: Record<string, unknown>;\n result: unknown;\n status: ToolCallMessagePartStatus | undefined;\n isError: boolean | undefined;\n}\n\ntype CallState =\n | { kind: \"running\" }\n | { kind: \"awaiting\" }\n | { kind: \"complete\" }\n | { kind: \"failed\"; error: string };\n\nconst TOOL_STATUS: Record<CallState[\"kind\"], ToolStatus> = {\n running: \"running\",\n awaiting: \"requires-action\",\n complete: \"complete\",\n failed: \"incomplete\",\n};\n\n/**\n * The call's state under the shared result rules, or `null` for a call the\n * generic card owns: one the person refused at the approval gate (neither\n * done nor failed), or one the runtime parked.\n */\nfunction callState(call: BrowserCall): CallState | null {\n const classification = classifyToolResult({\n status: call.status,\n result: call.result,\n isError: call.isError,\n });\n switch (classification.state) {\n case \"running\":\n return { kind: \"running\" };\n case \"requires-action\":\n return { kind: \"awaiting\" };\n case \"complete\":\n return { kind: \"complete\" };\n case \"error\":\n return { kind: \"failed\", error: classification.failure.message };\n case \"rejected\":\n case \"paused\":\n return null;\n }\n}\n\nfunction browserCall(props: ToolCallMessagePartProps): BrowserCall {\n return {\n toolName: props.toolName,\n args: isRecord(props.args) ? props.args : {},\n result: props.result,\n status: props.status,\n isError: props.isError,\n };\n}\n\ninterface CardLine {\n title: string;\n subtitle?: string;\n}\n\n/** A card's running and done lines, in Olympus's words. */\ninterface CardWords {\n running: CardLine;\n done: CardLine;\n}\n\nfunction withoutEllipsis(text: string): string {\n return text.replace(/(\\.{3}|…)\\s*$/u, \"\");\n}\n\n/**\n * The line for `state`. An approval wait names the tool as Olympus does; a\n * failed call keeps the running line (the attempt) without its ellipsis, and\n * the failure itself shows in the card's error notice.\n */\nfunction cardLine(state: CallState, words: CardWords, toolName: string): CardLine {\n switch (state.kind) {\n case \"running\":\n return words.running;\n case \"complete\":\n return words.done;\n case \"awaiting\":\n return {\n title: `Waiting for confirmation of ${getToolDisplayMeta(toolName).displayName}`,\n subtitle: words.running.subtitle,\n };\n case \"failed\":\n return { title: withoutEllipsis(words.running.title), subtitle: words.running.subtitle };\n }\n}\n\nfunction failureText(state: CallState): string | undefined {\n return state.kind === \"failed\" ? state.error : undefined;\n}\n\ninterface BrowserCardProps {\n call: BrowserCall;\n state: CallState;\n}\n\n/** The registered card: the generic card owns a refused or parked call, `Card` the rest. */\nfunction browserToolUI(\n Card: ComponentType<BrowserCardProps>,\n icon: ElementType,\n displayName: string,\n): ToolCallMessagePartComponent {\n const Impl: ToolCallMessagePartComponent = (props) => {\n const call = browserCall(props);\n const state = callState(call);\n if (!state) return <ToolFallback {...props} icon={icon} />;\n return <Card call={call} state={state} />;\n };\n const ToolUI = memo(Impl) as unknown as ToolCallMessagePartComponent;\n ToolUI.displayName = displayName;\n return ToolUI;\n}\n\n// ─── Arguments and results ───────────────────────────────────────────\n\nfunction stringArg(value: unknown): string | undefined {\n return typeof value === \"string\" ? value : undefined;\n}\n\n/** A string or number argument as text (models send numbers as either). */\nfunction scalarArg(value: unknown): string | undefined {\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" && Number.isFinite(value)) return String(value);\n return undefined;\n}\n\nfunction httpUrl(value: unknown): string | undefined {\n return typeof value === \"string\" && /^https?:\\/\\//i.test(value) ? value : undefined;\n}\n\nfunction assetIdOf(value: unknown): string | undefined {\n return typeof value === \"string\" && value.startsWith(\"asset_\") ? value : undefined;\n}\n\n/**\n * A result as content items: a JSON value, or the newline-delimited blocks\n * the browser toolkit joins a content list into (`{…}\\n{…}`), which a single\n * `JSON.parse` rejects.\n */\nfunction resultItems(result: unknown): unknown[] {\n if (Array.isArray(result)) return result;\n if (typeof result !== \"string\") return result == null ? [] : [result];\n try {\n const parsed: unknown = JSON.parse(result);\n if (typeof parsed === \"string\") return [];\n return Array.isArray(parsed) ? parsed : [parsed];\n } catch {\n // Newline-delimited blocks, below.\n }\n const items: unknown[] = [];\n for (const line of result.split(\"\\n\")) {\n const trimmed = line.trim();\n if (!trimmed) continue;\n try {\n const parsed: unknown = JSON.parse(trimmed);\n if (typeof parsed !== \"string\") items.push(parsed);\n } catch {\n // A plain-text line carries no image.\n }\n }\n return items;\n}\n\nconst IMAGE_MEDIA_TYPE = /^image\\/[\\w.+-]+$/i;\n\n/**\n * The screenshot a result carries: its URL (a presigned one, or base64 data\n * as a `data:` URL), `null` when it carries only the durable storage key (the\n * SDK does not mint a fresh URL for one), or `undefined` when it has none.\n */\n/**\n * Where a screenshot the call returned can be drawn from: the URL it carries\n * (an inline capture as a data URL) and its storage key, which outlives the\n * URL. `undefined` when the result carries no screenshot.\n */\ninterface ScreenshotSource {\n url: string | null;\n s3Key: string | null;\n}\n\nfunction screenshotSource(result: unknown): ScreenshotSource | undefined {\n for (const item of resultItems(result)) {\n if (Array.isArray(item)) {\n const nested = screenshotSource(item);\n if (nested !== undefined) return nested;\n continue;\n }\n if (!isRecord(item)) continue;\n if (item.type === \"image\" && isRecord(item.source)) {\n const source = item.source;\n const s3Key = source.type === \"s3_key\" && typeof source.data === \"string\" && source.data ? source.data : null;\n const url = httpUrl(source.presigned_url) ?? httpUrl(source.url);\n if (url) return { url, s3Key };\n if (source.type === \"base64\" && typeof source.data === \"string\" && source.data) {\n const mediaType =\n typeof source.media_type === \"string\" && IMAGE_MEDIA_TYPE.test(source.media_type)\n ? source.media_type\n : \"image/png\";\n return { url: `data:${mediaType};base64,${source.data}`, s3Key: null };\n }\n if (s3Key) return { url: null, s3Key };\n }\n const url = httpUrl(item.presigned_url);\n if (url) return { url, s3Key: null };\n }\n return undefined;\n}\n\n/** A zoom capture, shown from a URL agora signs afresh for its storage key, else the one it carries. */\nfunction ZoomScreenshot({ source, region }: { source: ScreenshotSource; region: unknown }) {\n const src = useScreenshotUrl({ s3Key: source.s3Key, fallbackUrl: source.url });\n return (\n <ScreenshotPreview\n src={src}\n alt=\"Zoomed region screenshot\"\n aspectRatio={zoomRegionAspectRatio(region)}\n className=\"max-w-full rounded border border-border\"\n />\n );\n}\n\n/** Width over height of a `zoom` capture's `[x0, y0, x1, y1]` region; `undefined` when degenerate. */\nfunction zoomRegionAspectRatio(region: unknown): number | undefined {\n if (!Array.isArray(region) || region.length !== 4) return undefined;\n const [x0, y0, x1, y1] = region;\n if (\n typeof x0 !== \"number\" ||\n typeof y0 !== \"number\" ||\n typeof x1 !== \"number\" ||\n typeof y1 !== \"number\" ||\n ![x0, y0, x1, y1].every(Number.isFinite)\n ) {\n return undefined;\n }\n const width = Math.abs(x1 - x0);\n const height = Math.abs(y1 - y0);\n return width > 0 && height > 0 ? width / height : undefined;\n}\n\n// ─── Screenshot ──────────────────────────────────────────────────────\n\n/**\n * A screenshot the call returned. With a known aspect ratio the box is\n * reserved before the pixels arrive, so a transcript hydrating from history\n * does not grow as each image loads. A URL that no longer loads (a presigned\n * URL lives two hours) and a capture with no URL show a placeholder instead\n * of a broken image.\n */\nfunction ScreenshotPreview({\n src,\n alt,\n aspectRatio,\n className,\n}: {\n src: string | null;\n alt: string;\n aspectRatio: number | undefined;\n className?: string;\n}) {\n const [failedSrc, setFailedSrc] = useState<string | null>(null);\n const framed = aspectRatio !== undefined;\n const content =\n src === null || failedSrc === src ? (\n <div\n className={cn(\n \"flex items-center justify-center rounded border border-dashed border-border bg-muted px-4 py-6 text-center text-sm text-muted-foreground\",\n framed ? \"h-full w-full\" : className,\n )}\n >\n Screenshot preview is no longer available.\n </div>\n ) : (\n // biome-ignore lint/a11y/noNoninteractiveElementInteractions: a failed load, not an interaction; the placeholder replaces the image\n <img\n src={src}\n alt={alt}\n className={framed ? \"h-full w-full object-contain\" : className}\n onError={() => setFailedSrc(src)}\n />\n );\n if (!framed) return content;\n return (\n <div\n data-testid=\"screenshot-frame\"\n className={cn(\"flex w-full items-center justify-center overflow-hidden\", className)}\n style={{ aspectRatio }}\n >\n {content}\n </div>\n );\n}\n\n// ─── computer ────────────────────────────────────────────────────────\n\nconst FIXED_COMPUTER_WORDS = new Map<string, [running: string, done: string]>([\n [\"left_click\", [\"Left-Clicking...\", \"Did Left-Click\"]],\n [\"right_click\", [\"Right-Clicking...\", \"Did Right-Click\"]],\n [\"middle_click\", [\"Middle-Clicking...\", \"Did Middle-Click\"]],\n [\"double_click\", [\"Double-Clicking...\", \"Did Double-Click\"]],\n [\"triple_click\", [\"Triple-Clicking...\", \"Did Triple-Click\"]],\n [\"screenshot\", [\"Taking Screenshot...\", \"Took Screenshot\"]],\n [\"cursor_position\", [\"Getting Cursor Position...\", \"Got Cursor Position\"]],\n [\"move\", [\"Moving Mouse...\", \"Moved Mouse\"]],\n [\"drag\", [\"Dragging...\", \"Dragged\"]],\n [\"mouse_move\", [\"Moving Mouse...\", \"Moved Mouse\"]],\n [\"left_click_drag\", [\"Dragging...\", \"Dragged\"]],\n [\"left_mouse_down\", [\"Pressing Mouse Button...\", \"Pressed Mouse Button\"]],\n [\"left_mouse_up\", [\"Releasing Mouse Button...\", \"Released Mouse Button\"]],\n [\"zoom\", [\"Zooming...\", \"Zoomed\"]],\n]);\n\nfunction computerWords(args: Record<string, unknown>): CardWords {\n const action = stringArg(args.action);\n if (!action) return { running: { title: \"Using Computer...\" }, done: { title: \"Used Computer\" } };\n const fixed = FIXED_COMPUTER_WORDS.get(action);\n if (fixed) return { running: { title: fixed[0] }, done: { title: fixed[1] } };\n const text = scalarArg(args.text);\n switch (action) {\n case \"type\": {\n const typed = `\"${text ?? \"\"}\"`;\n return {\n running: { title: \"Typing...\", subtitle: typed },\n done: { title: \"Typed\", subtitle: typed },\n };\n }\n case \"key\":\n return {\n running: { title: `Pressing ${text || \"key\"}...` },\n done: { title: `Pressed ${text || \"key\"}` },\n };\n case \"hold_key\":\n return {\n running: { title: `Holding ${text || \"key\"}...` },\n done: { title: `Held ${text || \"key\"}` },\n };\n case \"scroll\": {\n const direction = scalarArg(args.scroll_direction);\n return direction\n ? {\n running: { title: `Scrolling ${direction}...` },\n done: { title: `Scrolled ${direction}` },\n }\n : { running: { title: \"Scrolling...\" }, done: { title: \"Scrolled\" } };\n }\n case \"wait\": {\n const seconds = scalarArg(args.duration) || \"0\";\n return {\n running: { title: `Waiting ${seconds}s...` },\n done: { title: `Waited ${seconds}s` },\n };\n }\n default:\n return {\n running: { title: `Performing ${action}...` },\n done: { title: `Performed ${action}` },\n };\n }\n}\n\n/**\n * One `computer` action, in Olympus's words per action. A `zoom` shows the\n * cropped capture its result carries; Olympus draws no other action's capture.\n */\nfunction ComputerCard({ call, state }: BrowserCardProps) {\n const line = cardLine(state, computerWords(call.args), call.toolName);\n const screenshot =\n call.args.action === \"zoom\" && state.kind === \"complete\"\n ? screenshotSource(call.result)\n : undefined;\n return (\n <ToolCard\n icon={MousePointerClickIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n >\n {screenshot !== undefined ? (\n <ExpandableSection defaultOpen>\n <ScreenshotQueryScope>\n <ZoomScreenshot source={screenshot} region={call.args.region} />\n </ScreenshotQueryScope>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n}\n\nexport const ComputerToolUI = browserToolUI(ComputerCard, MousePointerClickIcon, \"ComputerToolUI\");\n\n// ─── go_to_url ───────────────────────────────────────────────────────\n\nfunction GoToUrlCard({ call, state }: BrowserCardProps) {\n const url = stringArg(call.args.url);\n // Olympus draws nothing until the model has written the URL.\n if (!url && state.kind === \"running\") return null;\n const line = cardLine(\n state,\n { running: { title: \"Visiting\", subtitle: url }, done: { title: \"Visited\", subtitle: url } },\n call.toolName,\n );\n return (\n <ToolCard\n icon={GlobeIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n />\n );\n}\n\nexport const GoToUrlToolUI = browserToolUI(GoToUrlCard, GlobeIcon, \"GoToUrlToolUI\");\n\n// ─── get_current_url ─────────────────────────────────────────────────\n\n/** The URL a `get_current_url` result names (\"The current URL is https://…\"), else \"Unknown\". */\nfunction currentUrlOf(result: unknown): string {\n const record = resultRecord(result);\n if (record) return stringArg(record.url) || stringArg(record.current_url) || \"Unknown\";\n if (typeof result === \"string\") return /https?:\\/\\/[^\\s\"']+/i.exec(result)?.[0] ?? \"Unknown\";\n return \"Unknown\";\n}\n\nfunction GetCurrentUrlCard({ call, state }: BrowserCardProps) {\n const line = cardLine(\n state,\n {\n running: { title: \"Getting current URL...\" },\n done: { title: \"Current URL\", subtitle: currentUrlOf(call.result) },\n },\n call.toolName,\n );\n return (\n <ToolCard\n icon={LinkIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n />\n );\n}\n\nexport const GetCurrentUrlToolUI = browserToolUI(\n GetCurrentUrlCard,\n LinkIcon,\n \"GetCurrentUrlToolUI\",\n);\n\n// ─── get_page_text ───────────────────────────────────────────────────\n\nfunction GetPageTextCard({ call, state }: BrowserCardProps) {\n const line = cardLine(\n state,\n { running: { title: \"Reading page content...\" }, done: { title: \"Read page content\" } },\n call.toolName,\n );\n return (\n <ToolCard\n icon={FileTextIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n />\n );\n}\n\nexport const GetPageTextToolUI = browserToolUI(GetPageTextCard, FileTextIcon, \"GetPageTextToolUI\");\n\n// ─── stop_browser_session ────────────────────────────────────────────\n\n/** \"after 5m — changes persisted to the browse profile\": the run summary Olympus appends. */\nfunction stopSummary(result: unknown): string | undefined {\n const record = resultRecord(result);\n const seconds = record?.duration_seconds;\n const parts = [\n typeof seconds === \"number\"\n ? seconds >= 60\n ? `after ${Math.round(seconds / 60)}m`\n : `after ${seconds}s`\n : null,\n record?.persisted_changes_to_profile === true\n ? \"changes persisted to the browse profile\"\n : null,\n ].filter((part): part is string => part !== null);\n return parts.length > 0 ? parts.join(\" — \") : undefined;\n}\n\nfunction StopBrowserSessionCard({ call, state }: BrowserCardProps) {\n const line =\n state.kind === \"failed\"\n ? { title: \"Could not stop browser session\" }\n : cardLine(\n state,\n {\n running: { title: \"Stopping browser session...\" },\n done: { title: \"Stopped browser session\", subtitle: stopSummary(call.result) },\n },\n call.toolName,\n );\n return (\n <ToolCard\n icon={CircleStopIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n />\n );\n}\n\nexport const StopBrowserSessionToolUI = browserToolUI(\n StopBrowserSessionCard,\n CircleStopIcon,\n \"StopBrowserSessionToolUI\",\n);\n\n// ─── create_new_browse_session ───────────────────────────────────────\n\ninterface BrowseProfileLine {\n assetId: string;\n title: string;\n}\n\n/**\n * The profiles the session was asked to load, each with the title the result\n * reports for it. A profile the result does not name stays out, as Olympus\n * lists only the profiles whose title it knows.\n */\nfunction browseProfilesOf(\n args: Record<string, unknown>,\n record: Record<string, unknown> | null,\n): BrowseProfileLine[] {\n const requested = Array.isArray(args.browse_profile_asset_ids)\n ? args.browse_profile_asset_ids.filter((id): id is string => typeof id === \"string\")\n : [];\n const single = stringArg(args.browse_profile_asset_id);\n const ids = requested.length > 0 ? requested : single ? [single] : [];\n const loaded = Array.isArray(record?.browse_profiles) ? record.browse_profiles : [];\n const lines: BrowseProfileLine[] = [];\n for (const assetId of ids) {\n const profile = loaded.find((entry) => isRecord(entry) && entry.asset_id === assetId);\n const title = isRecord(profile) ? stringArg(profile.title) : undefined;\n if (title) lines.push({ assetId, title });\n }\n return lines;\n}\n\nfunction CreateNewBrowseSessionCard({ call, state }: BrowserCardProps) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const record = resultRecord(call.result);\n const assetId = assetIdOf(record?.asset_id);\n const argTitle = stringArg(call.args.title);\n const title = stringArg(record?.title) ?? argTitle;\n const profiles = state.kind === \"complete\" ? browseProfilesOf(call.args, record) : [];\n const line = cardLine(\n state,\n {\n running: { title: \"Creating browse session...\", subtitle: argTitle },\n done: { title: \"Browse session created\", subtitle: title },\n },\n call.toolName,\n );\n return (\n <ToolCard\n icon={GlobeIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n >\n {profiles.length > 0 ? (\n <ExpandableSection>\n {profiles.map((profile) => (\n <button\n key={profile.assetId}\n type=\"button\"\n onClick={() => openAsset(profile.assetId, { name: profile.title, type: \"unknown\" })}\n className=\"mt-2 flex w-full items-center gap-2 rounded border border-border bg-muted p-2 text-left transition-colors first:mt-0 hover:bg-muted/70\"\n >\n <CircleUserRoundIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"text-sm text-foreground\">\n using profile: <span className=\"font-medium\">{profile.title}</span>\n </span>\n </button>\n ))}\n </ExpandableSection>\n ) : null}\n {state.kind === \"complete\" && assetId ? (\n <div className=\"flex items-center gap-2 border-t border-border/40 px-4 py-2\">\n <button\n type=\"button\"\n onClick={() => openAsset(assetId, { name: title, type: \"unknown\" })}\n className=\"flex items-center gap-1.5 rounded-md border border-border/60 px-3 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground\"\n >\n <ExternalLinkIcon className=\"size-3\" />\n Open session\n </button>\n </div>\n ) : null}\n </ToolCard>\n );\n}\n\nexport const CreateNewBrowseSessionToolUI = browserToolUI(\n CreateNewBrowseSessionCard,\n GlobeIcon,\n \"CreateNewBrowseSessionToolUI\",\n);\n\n// ─── browser_batch ───────────────────────────────────────────────────\n\ninterface BrowserBatchSummary {\n okCount: number;\n totalSteps: number;\n stoppedAtStep: number | null;\n stoppedAtLabel: string | null;\n}\n\n/**\n * The header of the batch's report: `\"<tool>: <ok>/<total> ok\"`, optionally\n * `\" — STOPPED at step <n> (<label>)\"` (agora `render_batch_report`).\n */\nconst BATCH_HEADER = /^[a-z_]+:\\s+(\\d+)\\/(\\d+)\\s+ok(?:\\s+—\\s+STOPPED at step (\\d+)\\s+\\(([^)]*)\\))?/;\n\nfunction parseBrowserBatchSummary(result: unknown): BrowserBatchSummary | null {\n if (typeof result !== \"string\") return null;\n const match = BATCH_HEADER.exec(result.trimStart());\n if (!match) return null;\n return {\n okCount: Number(match[1]),\n totalSteps: Number(match[2]),\n stoppedAtStep: match[3] ? Number(match[3]) : null,\n stoppedAtLabel: match[4] ?? null,\n };\n}\n\n/** How many steps the call asked for; models send `steps` as a list or as its JSON. */\nfunction countBrowserBatchSteps(steps: unknown): number {\n if (Array.isArray(steps)) return steps.length;\n if (typeof steps !== \"string\") return 0;\n try {\n const parsed: unknown = JSON.parse(steps);\n return Array.isArray(parsed) ? parsed.length : 0;\n } catch {\n return 0;\n }\n}\n\nfunction describeBrowserBatchSteps(count: number): string {\n return `${count} browser ${count === 1 ? \"step\" : \"steps\"}`;\n}\n\nfunction formatBrowserBatchSummary(summary: BrowserBatchSummary): string {\n const steps = describeBrowserBatchSteps(summary.totalSteps);\n if (summary.stoppedAtStep !== null) {\n const label = summary.stoppedAtLabel ? ` (${summary.stoppedAtLabel})` : \"\";\n return `Stopped at step ${summary.stoppedAtStep}${label} — ${summary.okCount}/${summary.totalSteps} steps ok`;\n }\n if (summary.okCount < summary.totalSteps) {\n return `Ran ${steps}, ${summary.totalSteps - summary.okCount} failed`;\n }\n return `Ran ${steps}`;\n}\n\n/** The step cards a batch step renders through, as the standalone call would. */\nconst BATCH_STEP_CARDS = new Map<string, ComponentType<BrowserCardProps>>([\n [\"computer\", ComputerCard],\n [\"go_to_url\", GoToUrlCard],\n [\"get_current_url\", GetCurrentUrlCard],\n [\"get_page_text\", GetPageTextCard],\n]);\n\nfunction batchStepCall(step: PtcSubcall): BrowserCall {\n return {\n toolName: step.name,\n args: step.args,\n result: step.result,\n status: step.status === \"in_flight\" ? { type: \"running\" } : { type: \"complete\" },\n isError: step.status === \"error\",\n };\n}\n\n/** A short hint for a step with no card of its own: its asset id or first string argument. */\nfunction batchStepDetail(step: PtcSubcall): string {\n const assetId = step.args.assetId;\n if (typeof assetId === \"string\" && assetId) return assetId;\n const first = Object.values(step.args).find(\n (value): value is string => typeof value === \"string\" && value.length > 0,\n );\n const detail = first ? first.replace(/\\s+/g, \" \").trim() : \"\";\n return detail.length > 60 ? `${detail.slice(0, 59)}…` : detail;\n}\n\nfunction BatchStepRow({ step }: { step: PtcSubcall }) {\n return (\n <div className=\"flex min-w-0 items-center gap-2 py-0.5\">\n {step.status === \"error\" ? (\n <XCircleIcon className=\"size-3.5 shrink-0 text-destructive\" />\n ) : step.status === \"completed\" ? (\n <CheckCircle2Icon className=\"size-3.5 shrink-0 text-emerald-600\" />\n ) : (\n <LoaderIcon className=\"size-3.5 shrink-0 animate-spin text-muted-foreground\" />\n )}\n <code className=\"shrink-0 font-mono text-xs text-foreground\">{step.name}</code>\n <span className=\"truncate text-[11px] text-muted-foreground\">{batchStepDetail(step)}</span>\n </div>\n );\n}\n\n/** One recorded step: its tool's card when this module has one, else a status row. */\nfunction BatchStep({ step }: { step: PtcSubcall }) {\n const call = batchStepCall(step);\n const state = callState(call);\n const Card = BATCH_STEP_CARDS.get(step.name);\n if (Card && state) return <Card call={call} state={state} />;\n return <BatchStepRow step={step} />;\n}\n\n/**\n * The batch's headline, and the steps it recorded on its artifact\n * (`artifact.subgraph_state.messages`), each drawn as its own call's card.\n * The steps come off the artifact because the conversation fills a tool\n * call's nested messages only for `task`; when a part does carry nested\n * messages, those render under the card instead, so they are not drawn twice.\n * With no recorded steps the card shows the batch's text report.\n */\nconst BrowserBatchToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const call = browserCall(props);\n const state = callState(call);\n if (!state) return <ToolFallback {...props} icon={ListChecksIcon} />;\n\n const requested = countBrowserBatchSteps(call.args.steps);\n const summary = parseBrowserBatchSummary(call.result);\n const running: CardLine = {\n title:\n requested > 0\n ? `Running ${describeBrowserBatchSteps(requested)}...`\n : \"Running browser steps...\",\n };\n const done: CardLine = {\n title: summary\n ? formatBrowserBatchSummary(summary)\n : requested > 0\n ? `Ran ${describeBrowserBatchSteps(requested)}`\n : \"Ran browser steps\",\n };\n // A batch that stopped at a step failed with its report in hand: the\n // summary still says where it stopped.\n const line =\n state.kind === \"failed\" && summary ? done : cardLine(state, { running, done }, call.toolName);\n\n const hasNestedMessages = (props.messages?.length ?? 0) > 0;\n const steps = hasNestedMessages ? [] : ptcSubcallsFromArtifact(props.artifact);\n // The report of a settled batch only: a running call's result is its\n // placeholder, and a bare `Error: …` is already the card's error notice.\n const showsReport =\n steps.length === 0 &&\n !hasNestedMessages &&\n (state.kind === \"complete\" || (state.kind === \"failed\" && summary !== null));\n const report = showsReport && typeof call.result === \"string\" ? call.result.trim() : \"\";\n\n return (\n <ToolCard\n icon={ListChecksIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={failureText(state)}\n args={call.args}\n result={call.result}\n >\n {steps.length > 0 ? (\n <ExpandableSection defaultOpen={state.kind === \"running\"}>\n <div className=\"space-y-1\">\n {steps.map((step) => (\n <BatchStep key={step.id} step={step} />\n ))}\n </div>\n </ExpandableSection>\n ) : report ? (\n <ExpandableSection>\n <div className=\"whitespace-pre-wrap text-sm text-foreground\">{report}</div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const BrowserBatchToolUI = memo(\n BrowserBatchToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nBrowserBatchToolUI.displayName = \"BrowserBatchToolUI\";\n"],"names":["url"],"mappings":";;;;;;;;;;;AAuEA,MAAM,cAAqD;AAAA,EACzD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACV;AAOA,SAAS,UAAU,MAAqC;AACtD,QAAM,iBAAiB,mBAAmB;AAAA,IACxC,QAAQ,KAAK;AAAA,IACb,QAAQ,KAAK;AAAA,IACb,SAAS,KAAK;AAAA,EAAA,CACf;AACD,UAAQ,eAAe,OAAA;AAAA,IACrB,KAAK;AACH,aAAO,EAAE,MAAM,UAAA;AAAA,IACjB,KAAK;AACH,aAAO,EAAE,MAAM,WAAA;AAAA,IACjB,KAAK;AACH,aAAO,EAAE,MAAM,WAAA;AAAA,IACjB,KAAK;AACH,aAAO,EAAE,MAAM,UAAU,OAAO,eAAe,QAAQ,QAAA;AAAA,IACzD,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,EAAA;AAEb;AAEA,SAAS,YAAY,OAA8C;AACjE,SAAO;AAAA,IACL,UAAU,MAAM;AAAA,IAChB,MAAM,SAAS,MAAM,IAAI,IAAI,MAAM,OAAO,CAAA;AAAA,IAC1C,QAAQ,MAAM;AAAA,IACd,QAAQ,MAAM;AAAA,IACd,SAAS,MAAM;AAAA,EAAA;AAEnB;AAaA,SAAS,gBAAgB,MAAsB;AAC7C,SAAO,KAAK,QAAQ,kBAAkB,EAAE;AAC1C;AAOA,SAAS,SAAS,OAAkB,OAAkB,UAA4B;AAChF,UAAQ,MAAM,MAAA;AAAA,IACZ,KAAK;AACH,aAAO,MAAM;AAAA,IACf,KAAK;AACH,aAAO,MAAM;AAAA,IACf,KAAK;AACH,aAAO;AAAA,QACL,OAAO,+BAA+B,mBAAmB,QAAQ,EAAE,WAAW;AAAA,QAC9E,UAAU,MAAM,QAAQ;AAAA,MAAA;AAAA,IAE5B,KAAK;AACH,aAAO,EAAE,OAAO,gBAAgB,MAAM,QAAQ,KAAK,GAAG,UAAU,MAAM,QAAQ,SAAA;AAAA,EAAS;AAE7F;AAEA,SAAS,YAAY,OAAsC;AACzD,SAAO,MAAM,SAAS,WAAW,MAAM,QAAQ;AACjD;AAQA,SAAS,cACP,MACA,MACA,aAC8B;AAC9B,QAAM,OAAqC,CAAC,UAAU;AACpD,UAAM,OAAO,YAAY,KAAK;AAC9B,UAAM,QAAQ,UAAU,IAAI;AAC5B,QAAI,CAAC,MAAO,4BAAQ,cAAA,EAAc,GAAG,OAAO,MAAY;AACxD,WAAO,oBAAC,MAAA,EAAK,MAAY,MAAA,CAAc;AAAA,EACzC;AACA,QAAM,SAAS,KAAK,IAAI;AACxB,SAAO,cAAc;AACrB,SAAO;AACT;AAIA,SAAS,UAAU,OAAoC;AACrD,SAAO,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAGA,SAAS,UAAU,OAAoC;AACrD,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,EAAG,QAAO,OAAO,KAAK;AAC5E,SAAO;AACT;AAEA,SAAS,QAAQ,OAAoC;AACnD,SAAO,OAAO,UAAU,YAAY,gBAAgB,KAAK,KAAK,IAAI,QAAQ;AAC5E;AAEA,SAAS,UAAU,OAAoC;AACrD,SAAO,OAAO,UAAU,YAAY,MAAM,WAAW,QAAQ,IAAI,QAAQ;AAC3E;AAOA,SAAS,YAAY,QAA4B;AAC/C,MAAI,MAAM,QAAQ,MAAM,EAAG,QAAO;AAClC,MAAI,OAAO,WAAW,SAAU,QAAO,UAAU,OAAO,CAAA,IAAK,CAAC,MAAM;AACpE,MAAI;AACF,UAAM,SAAkB,KAAK,MAAM,MAAM;AACzC,QAAI,OAAO,WAAW,SAAU,QAAO,CAAA;AACvC,WAAO,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AAAA,EACjD,QAAQ;AAAA,EAER;AACA,QAAM,QAAmB,CAAA;AACzB,aAAW,QAAQ,OAAO,MAAM,IAAI,GAAG;AACrC,UAAM,UAAU,KAAK,KAAA;AACrB,QAAI,CAAC,QAAS;AACd,QAAI;AACF,YAAM,SAAkB,KAAK,MAAM,OAAO;AAC1C,UAAI,OAAO,WAAW,SAAU,OAAM,KAAK,MAAM;AAAA,IACnD,QAAQ;AAAA,IAER;AAAA,EACF;AACA,SAAO;AACT;AAEA,MAAM,mBAAmB;AAiBzB,SAAS,iBAAiB,QAA+C;AACvE,aAAW,QAAQ,YAAY,MAAM,GAAG;AACtC,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,YAAM,SAAS,iBAAiB,IAAI;AACpC,UAAI,WAAW,OAAW,QAAO;AACjC;AAAA,IACF;AACA,QAAI,CAAC,SAAS,IAAI,EAAG;AACrB,QAAI,KAAK,SAAS,WAAW,SAAS,KAAK,MAAM,GAAG;AAClD,YAAM,SAAS,KAAK;AACpB,YAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,OAAO,SAAS,YAAY,OAAO,OAAO,OAAO,OAAO;AACzG,YAAMA,OAAM,QAAQ,OAAO,aAAa,KAAK,QAAQ,OAAO,GAAG;AAC/D,UAAIA,KAAK,QAAO,EAAE,KAAAA,MAAK,MAAA;AACvB,UAAI,OAAO,SAAS,YAAY,OAAO,OAAO,SAAS,YAAY,OAAO,MAAM;AAC9E,cAAM,YACJ,OAAO,OAAO,eAAe,YAAY,iBAAiB,KAAK,OAAO,UAAU,IAC5E,OAAO,aACP;AACN,eAAO,EAAE,KAAK,QAAQ,SAAS,WAAW,OAAO,IAAI,IAAI,OAAO,KAAA;AAAA,MAClE;AACA,UAAI,MAAO,QAAO,EAAE,KAAK,MAAM,MAAA;AAAA,IACjC;AACA,UAAM,MAAM,QAAQ,KAAK,aAAa;AACtC,QAAI,IAAK,QAAO,EAAE,KAAK,OAAO,KAAA;AAAA,EAChC;AACA,SAAO;AACT;AAGA,SAAS,eAAe,EAAE,QAAQ,UAAyD;AACzF,QAAM,MAAM,iBAAiB,EAAE,OAAO,OAAO,OAAO,aAAa,OAAO,KAAK;AAC7E,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,KAAI;AAAA,MACJ,aAAa,sBAAsB,MAAM;AAAA,MACzC,WAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;AAGA,SAAS,sBAAsB,QAAqC;AAClE,MAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,EAAG,QAAO;AAC1D,QAAM,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI;AACzB,MACE,OAAO,OAAO,YACd,OAAO,OAAO,YACd,OAAO,OAAO,YACd,OAAO,OAAO,YACd,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,MAAM,OAAO,QAAQ,GACvC;AACA,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,KAAK,IAAI,KAAK,EAAE;AAC9B,QAAM,SAAS,KAAK,IAAI,KAAK,EAAE;AAC/B,SAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,SAAS;AACpD;AAWA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAwB,IAAI;AAC9D,QAAM,SAAS,gBAAgB;AAC/B,QAAM,UACJ,QAAQ,QAAQ,cAAc,MAC5B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,SAAS,kBAAkB;AAAA,MAAA;AAAA,MAE9B,UAAA;AAAA,IAAA;AAAA,EAAA;AAAA;AAAA,IAKD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW,SAAS,iCAAiC;AAAA,QACrD,SAAS,MAAM,aAAa,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA;AAGrC,MAAI,CAAC,OAAQ,QAAO;AACpB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,WAAW,GAAG,2DAA2D,SAAS;AAAA,MAClF,OAAO,EAAE,YAAA;AAAA,MAER,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAIA,MAAM,2CAA2B,IAA6C;AAAA,EAC5E,CAAC,cAAc,CAAC,oBAAoB,gBAAgB,CAAC;AAAA,EACrD,CAAC,eAAe,CAAC,qBAAqB,iBAAiB,CAAC;AAAA,EACxD,CAAC,gBAAgB,CAAC,sBAAsB,kBAAkB,CAAC;AAAA,EAC3D,CAAC,gBAAgB,CAAC,sBAAsB,kBAAkB,CAAC;AAAA,EAC3D,CAAC,gBAAgB,CAAC,sBAAsB,kBAAkB,CAAC;AAAA,EAC3D,CAAC,cAAc,CAAC,wBAAwB,iBAAiB,CAAC;AAAA,EAC1D,CAAC,mBAAmB,CAAC,8BAA8B,qBAAqB,CAAC;AAAA,EACzE,CAAC,QAAQ,CAAC,mBAAmB,aAAa,CAAC;AAAA,EAC3C,CAAC,QAAQ,CAAC,eAAe,SAAS,CAAC;AAAA,EACnC,CAAC,cAAc,CAAC,mBAAmB,aAAa,CAAC;AAAA,EACjD,CAAC,mBAAmB,CAAC,eAAe,SAAS,CAAC;AAAA,EAC9C,CAAC,mBAAmB,CAAC,4BAA4B,sBAAsB,CAAC;AAAA,EACxE,CAAC,iBAAiB,CAAC,6BAA6B,uBAAuB,CAAC;AAAA,EACxE,CAAC,QAAQ,CAAC,cAAc,QAAQ,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,MAA0C;AAC/D,QAAM,SAAS,UAAU,KAAK,MAAM;AACpC,MAAI,CAAC,OAAQ,QAAO,EAAE,SAAS,EAAE,OAAO,oBAAA,GAAuB,MAAM,EAAE,OAAO,kBAAgB;AAC9F,QAAM,QAAQ,qBAAqB,IAAI,MAAM;AAC7C,MAAI,MAAO,QAAO,EAAE,SAAS,EAAE,OAAO,MAAM,CAAC,EAAA,GAAK,MAAM,EAAE,OAAO,MAAM,CAAC,IAAE;AAC1E,QAAM,OAAO,UAAU,KAAK,IAAI;AAChC,UAAQ,QAAA;AAAA,IACN,KAAK,QAAQ;AACX,YAAM,QAAQ,IAAI,QAAQ,EAAE;AAC5B,aAAO;AAAA,QACL,SAAS,EAAE,OAAO,aAAa,UAAU,MAAA;AAAA,QACzC,MAAM,EAAE,OAAO,SAAS,UAAU,MAAA;AAAA,MAAM;AAAA,IAE5C;AAAA,IACA,KAAK;AACH,aAAO;AAAA,QACL,SAAS,EAAE,OAAO,YAAY,QAAQ,KAAK,MAAA;AAAA,QAC3C,MAAM,EAAE,OAAO,WAAW,QAAQ,KAAK,GAAA;AAAA,MAAG;AAAA,IAE9C,KAAK;AACH,aAAO;AAAA,QACL,SAAS,EAAE,OAAO,WAAW,QAAQ,KAAK,MAAA;AAAA,QAC1C,MAAM,EAAE,OAAO,QAAQ,QAAQ,KAAK,GAAA;AAAA,MAAG;AAAA,IAE3C,KAAK,UAAU;AACb,YAAM,YAAY,UAAU,KAAK,gBAAgB;AACjD,aAAO,YACH;AAAA,QACE,SAAS,EAAE,OAAO,aAAa,SAAS,MAAA;AAAA,QACxC,MAAM,EAAE,OAAO,YAAY,SAAS,GAAA;AAAA,MAAG,IAEzC,EAAE,SAAS,EAAE,OAAO,eAAA,GAAkB,MAAM,EAAE,OAAO,aAAW;AAAA,IACtE;AAAA,IACA,KAAK,QAAQ;AACX,YAAM,UAAU,UAAU,KAAK,QAAQ,KAAK;AAC5C,aAAO;AAAA,QACL,SAAS,EAAE,OAAO,WAAW,OAAO,OAAA;AAAA,QACpC,MAAM,EAAE,OAAO,UAAU,OAAO,IAAA;AAAA,MAAI;AAAA,IAExC;AAAA,IACA;AACE,aAAO;AAAA,QACL,SAAS,EAAE,OAAO,cAAc,MAAM,MAAA;AAAA,QACtC,MAAM,EAAE,OAAO,aAAa,MAAM,GAAA;AAAA,MAAG;AAAA,EACvC;AAEN;AAMA,SAAS,aAAa,EAAE,MAAM,SAA2B;AACvD,QAAM,OAAO,SAAS,OAAO,cAAc,KAAK,IAAI,GAAG,KAAK,QAAQ;AACpE,QAAM,aACJ,KAAK,KAAK,WAAW,UAAU,MAAM,SAAS,aAC1C,iBAAiB,KAAK,MAAM,IAC5B;AACN,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MAEZ,yBAAe,SACd,oBAAC,qBAAkB,aAAW,MAC5B,8BAAC,sBAAA,EACC,UAAA,oBAAC,gBAAA,EAAe,QAAQ,YAAY,QAAQ,KAAK,KAAK,OAAA,CAAQ,EAAA,CAChE,GACF,IACE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEO,MAAM,iBAAiB,cAAc,cAAc,uBAAuB,gBAAgB;AAIjG,SAAS,YAAY,EAAE,MAAM,SAA2B;AACtD,QAAM,MAAM,UAAU,KAAK,KAAK,GAAG;AAEnC,MAAI,CAAC,OAAO,MAAM,SAAS,UAAW,QAAO;AAC7C,QAAM,OAAO;AAAA,IACX;AAAA,IACA,EAAE,SAAS,EAAE,OAAO,YAAY,UAAU,IAAA,GAAO,MAAM,EAAE,OAAO,WAAW,UAAU,MAAI;AAAA,IACzF,KAAK;AAAA,EAAA;AAEP,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,IAAA;AAAA,EAAA;AAGnB;AAEO,MAAM,gBAAgB,cAAc,aAAa,WAAW,eAAe;AAKlF,SAAS,aAAa,QAAyB;;AAC7C,QAAM,SAAS,aAAa,MAAM;AAClC,MAAI,eAAe,UAAU,OAAO,GAAG,KAAK,UAAU,OAAO,WAAW,KAAK;AAC7E,MAAI,OAAO,WAAW,SAAU,UAAO,4BAAuB,KAAK,MAAM,MAAlC,mBAAsC,OAAM;AACnF,SAAO;AACT;AAEA,SAAS,kBAAkB,EAAE,MAAM,SAA2B;AAC5D,QAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,MACE,SAAS,EAAE,OAAO,yBAAA;AAAA,MAClB,MAAM,EAAE,OAAO,eAAe,UAAU,aAAa,KAAK,MAAM,EAAA;AAAA,IAAE;AAAA,IAEpE,KAAK;AAAA,EAAA;AAEP,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,IAAA;AAAA,EAAA;AAGnB;AAEO,MAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF;AAIA,SAAS,gBAAgB,EAAE,MAAM,SAA2B;AAC1D,QAAM,OAAO;AAAA,IACX;AAAA,IACA,EAAE,SAAS,EAAE,OAAO,0BAAA,GAA6B,MAAM,EAAE,OAAO,sBAAoB;AAAA,IACpF,KAAK;AAAA,EAAA;AAEP,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,IAAA;AAAA,EAAA;AAGnB;AAEO,MAAM,oBAAoB,cAAc,iBAAiB,cAAc,mBAAmB;AAKjG,SAAS,YAAY,QAAqC;AACxD,QAAM,SAAS,aAAa,MAAM;AAClC,QAAM,UAAU,iCAAQ;AACxB,QAAM,QAAQ;AAAA,IACZ,OAAO,YAAY,WACf,WAAW,KACT,SAAS,KAAK,MAAM,UAAU,EAAE,CAAC,MACjC,SAAS,OAAO,MAClB;AAAA,KACJ,iCAAQ,kCAAiC,OACrC,4CACA;AAAA,EAAA,EACJ,OAAO,CAAC,SAAyB,SAAS,IAAI;AAChD,SAAO,MAAM,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI;AAChD;AAEA,SAAS,uBAAuB,EAAE,MAAM,SAA2B;AACjE,QAAM,OACJ,MAAM,SAAS,WACX,EAAE,OAAO,qCACT;AAAA,IACE;AAAA,IACA;AAAA,MACE,SAAS,EAAE,OAAO,8BAAA;AAAA,MAClB,MAAM,EAAE,OAAO,2BAA2B,UAAU,YAAY,KAAK,MAAM,EAAA;AAAA,IAAE;AAAA,IAE/E,KAAK;AAAA,EAAA;AAEb,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,IAAA;AAAA,EAAA;AAGnB;AAEO,MAAM,2BAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AACF;AAcA,SAAS,iBACP,MACA,QACqB;AACrB,QAAM,YAAY,MAAM,QAAQ,KAAK,wBAAwB,IACzD,KAAK,yBAAyB,OAAO,CAAC,OAAqB,OAAO,OAAO,QAAQ,IACjF,CAAA;AACJ,QAAM,SAAS,UAAU,KAAK,uBAAuB;AACrD,QAAM,MAAM,UAAU,SAAS,IAAI,YAAY,SAAS,CAAC,MAAM,IAAI,CAAA;AACnE,QAAM,SAAS,MAAM,QAAQ,iCAAQ,eAAe,IAAI,OAAO,kBAAkB,CAAA;AACjF,QAAM,QAA6B,CAAA;AACnC,aAAW,WAAW,KAAK;AACzB,UAAM,UAAU,OAAO,KAAK,CAAC,UAAU,SAAS,KAAK,KAAK,MAAM,aAAa,OAAO;AACpF,UAAM,QAAQ,SAAS,OAAO,IAAI,UAAU,QAAQ,KAAK,IAAI;AAC7D,QAAI,MAAO,OAAM,KAAK,EAAE,SAAS,OAAO;AAAA,EAC1C;AACA,SAAO;AACT;AAEA,SAAS,2BAA2B,EAAE,MAAM,SAA2B;AACrE,QAAM,YAAY,mBAAmB,CAAC,MAAM,EAAE,SAAS;AACvD,QAAM,SAAS,aAAa,KAAK,MAAM;AACvC,QAAM,UAAU,UAAU,iCAAQ,QAAQ;AAC1C,QAAM,WAAW,UAAU,KAAK,KAAK,KAAK;AAC1C,QAAM,QAAQ,UAAU,iCAAQ,KAAK,KAAK;AAC1C,QAAM,WAAW,MAAM,SAAS,aAAa,iBAAiB,KAAK,MAAM,MAAM,IAAI,CAAA;AACnF,QAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,MACE,SAAS,EAAE,OAAO,8BAA8B,UAAU,SAAA;AAAA,MAC1D,MAAM,EAAE,OAAO,0BAA0B,UAAU,MAAA;AAAA,IAAM;AAAA,IAE3D,KAAK;AAAA,EAAA;AAEP,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MAEZ,UAAA;AAAA,QAAA,SAAS,SAAS,IACjB,oBAAC,qBACE,UAAA,SAAS,IAAI,CAAC,YACb;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,SAAS,MAAM,UAAU,QAAQ,SAAS,EAAE,MAAM,QAAQ,OAAO,MAAM,WAAW;AAAA,YAClF,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,oBAAC,qBAAA,EAAoB,WAAU,wCAAA,CAAwC;AAAA,cACvE,qBAAC,QAAA,EAAK,WAAU,2BAA0B,UAAA;AAAA,gBAAA;AAAA,gBACzB,oBAAC,QAAA,EAAK,WAAU,eAAe,kBAAQ,MAAA,CAAM;AAAA,cAAA,EAAA,CAC9D;AAAA,YAAA;AAAA,UAAA;AAAA,UARK,QAAQ;AAAA,QAAA,CAUhB,GACH,IACE;AAAA,QACH,MAAM,SAAS,cAAc,UAC5B,oBAAC,OAAA,EAAI,WAAU,+DACb,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAM,UAAU,SAAS,EAAE,MAAM,OAAO,MAAM,WAAW;AAAA,YAClE,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,oBAAC,kBAAA,EAAiB,WAAU,SAAA,CAAS;AAAA,cAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAG3C,IACE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;AAEO,MAAM,+BAA+B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AACF;AAeA,MAAM,eAAe;AAErB,SAAS,yBAAyB,QAA6C;AAC7E,MAAI,OAAO,WAAW,SAAU,QAAO;AACvC,QAAM,QAAQ,aAAa,KAAK,OAAO,WAAW;AAClD,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO;AAAA,IACL,SAAS,OAAO,MAAM,CAAC,CAAC;AAAA,IACxB,YAAY,OAAO,MAAM,CAAC,CAAC;AAAA,IAC3B,eAAe,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,IAAI;AAAA,IAC7C,gBAAgB,MAAM,CAAC,KAAK;AAAA,EAAA;AAEhC;AAGA,SAAS,uBAAuB,OAAwB;AACtD,MAAI,MAAM,QAAQ,KAAK,UAAU,MAAM;AACvC,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI;AACF,UAAM,SAAkB,KAAK,MAAM,KAAK;AACxC,WAAO,MAAM,QAAQ,MAAM,IAAI,OAAO,SAAS;AAAA,EACjD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,0BAA0B,OAAuB;AACxD,SAAO,GAAG,KAAK,YAAY,UAAU,IAAI,SAAS,OAAO;AAC3D;AAEA,SAAS,0BAA0B,SAAsC;AACvE,QAAM,QAAQ,0BAA0B,QAAQ,UAAU;AAC1D,MAAI,QAAQ,kBAAkB,MAAM;AAClC,UAAM,QAAQ,QAAQ,iBAAiB,KAAK,QAAQ,cAAc,MAAM;AACxE,WAAO,mBAAmB,QAAQ,aAAa,GAAG,KAAK,MAAM,QAAQ,OAAO,IAAI,QAAQ,UAAU;AAAA,EACpG;AACA,MAAI,QAAQ,UAAU,QAAQ,YAAY;AACxC,WAAO,OAAO,KAAK,KAAK,QAAQ,aAAa,QAAQ,OAAO;AAAA,EAC9D;AACA,SAAO,OAAO,KAAK;AACrB;AAGA,MAAM,uCAAuB,IAA6C;AAAA,EACxE,CAAC,YAAY,YAAY;AAAA,EACzB,CAAC,aAAa,WAAW;AAAA,EACzB,CAAC,mBAAmB,iBAAiB;AAAA,EACrC,CAAC,iBAAiB,eAAe;AACnC,CAAC;AAED,SAAS,cAAc,MAA+B;AACpD,SAAO;AAAA,IACL,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,QAAQ,KAAK,WAAW,cAAc,EAAE,MAAM,UAAA,IAAc,EAAE,MAAM,WAAA;AAAA,IACpE,SAAS,KAAK,WAAW;AAAA,EAAA;AAE7B;AAGA,SAAS,gBAAgB,MAA0B;AACjD,QAAM,UAAU,KAAK,KAAK;AAC1B,MAAI,OAAO,YAAY,YAAY,QAAS,QAAO;AACnD,QAAM,QAAQ,OAAO,OAAO,KAAK,IAAI,EAAE;AAAA,IACrC,CAAC,UAA2B,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,EAAA;AAE1E,QAAM,SAAS,QAAQ,MAAM,QAAQ,QAAQ,GAAG,EAAE,SAAS;AAC3D,SAAO,OAAO,SAAS,KAAK,GAAG,OAAO,MAAM,GAAG,EAAE,CAAC,MAAM;AAC1D;AAEA,SAAS,aAAa,EAAE,QAA8B;AACpD,SACE,qBAAC,OAAA,EAAI,WAAU,0CACZ,UAAA;AAAA,IAAA,KAAK,WAAW,UACf,oBAAC,eAAY,WAAU,qCAAA,CAAqC,IAC1D,KAAK,WAAW,cAClB,oBAAC,oBAAiB,WAAU,qCAAA,CAAqC,IAEjE,oBAAC,YAAA,EAAW,WAAU,wDAAuD;AAAA,IAE/E,oBAAC,QAAA,EAAK,WAAU,8CAA8C,eAAK,MAAK;AAAA,wBACvE,QAAA,EAAK,WAAU,8CAA8C,UAAA,gBAAgB,IAAI,EAAA,CAAE;AAAA,EAAA,GACtF;AAEJ;AAGA,SAAS,UAAU,EAAE,QAA8B;AACjD,QAAM,OAAO,cAAc,IAAI;AAC/B,QAAM,QAAQ,UAAU,IAAI;AAC5B,QAAM,OAAO,iBAAiB,IAAI,KAAK,IAAI;AAC3C,MAAI,QAAQ,MAAO,QAAO,oBAAC,MAAA,EAAK,MAAY,OAAc;AAC1D,SAAO,oBAAC,gBAAa,MAAY;AACnC;AAUA,MAAM,yBAAuD,CAAC,UAAU;;AACtE,QAAM,OAAO,YAAY,KAAK;AAC9B,QAAM,QAAQ,UAAU,IAAI;AAC5B,MAAI,CAAC,MAAO,QAAO,oBAAC,gBAAc,GAAG,OAAO,MAAM,gBAAgB;AAElE,QAAM,YAAY,uBAAuB,KAAK,KAAK,KAAK;AACxD,QAAM,UAAU,yBAAyB,KAAK,MAAM;AACpD,QAAM,UAAoB;AAAA,IACxB,OACE,YAAY,IACR,WAAW,0BAA0B,SAAS,CAAC,QAC/C;AAAA,EAAA;AAER,QAAM,OAAiB;AAAA,IACrB,OAAO,UACH,0BAA0B,OAAO,IACjC,YAAY,IACV,OAAO,0BAA0B,SAAS,CAAC,KAC3C;AAAA,EAAA;AAIR,QAAM,OACJ,MAAM,SAAS,YAAY,UAAU,OAAO,SAAS,OAAO,EAAE,SAAS,KAAA,GAAQ,KAAK,QAAQ;AAE9F,QAAM,uBAAqB,WAAM,aAAN,mBAAgB,WAAU,KAAK;AAC1D,QAAM,QAAQ,oBAAoB,CAAA,IAAK,wBAAwB,MAAM,QAAQ;AAG7E,QAAM,cACJ,MAAM,WAAW,KACjB,CAAC,sBACA,MAAM,SAAS,cAAe,MAAM,SAAS,YAAY,YAAY;AACxE,QAAM,SAAS,eAAe,OAAO,KAAK,WAAW,WAAW,KAAK,OAAO,KAAA,IAAS;AAErF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,YAAY,MAAM,IAAI;AAAA,MAC9B,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO,YAAY,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MAEZ,UAAA,MAAM,SAAS,IACd,oBAAC,qBAAkB,aAAa,MAAM,SAAS,WAC7C,8BAAC,OAAA,EAAI,WAAU,aACZ,UAAA,MAAM,IAAI,CAAC,SACV,oBAAC,WAAA,EAAwB,QAAT,KAAK,EAAgB,CACtC,EAAA,CACH,GACF,IACE,SACF,oBAAC,mBAAA,EACC,8BAAC,OAAA,EAAI,WAAU,+CAA+C,UAAA,QAAO,GACvE,IACE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEO,MAAM,qBAAqB;AAAA,EAChC;AACF;AACA,mBAAmB,cAAc;"}
@@ -0,0 +1,313 @@
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 primitives = require("./primitives.cjs");
7
+ const toolFallback = require("./tool-fallback.cjs");
8
+ const toolResult = require("../agent-runtime/src/tool-result.cjs");
9
+ const toolMetadata = require("../agent-runtime/src/tool-metadata.cjs");
10
+ const cnfast = require("cnfast");
11
+ const TOOL_STATUS = {
12
+ running: "running",
13
+ awaiting: "requires-action",
14
+ complete: "complete",
15
+ failed: "incomplete"
16
+ };
17
+ function callState(call) {
18
+ const classification = toolResult.classifyToolResult({
19
+ status: call.status,
20
+ result: call.result,
21
+ isError: call.isError
22
+ });
23
+ switch (classification.state) {
24
+ case "running":
25
+ return { kind: "running" };
26
+ case "requires-action":
27
+ return { kind: "awaiting" };
28
+ case "complete":
29
+ return { kind: "complete" };
30
+ case "error":
31
+ return { kind: "failed", error: classification.failure.message };
32
+ case "rejected":
33
+ case "paused":
34
+ return null;
35
+ }
36
+ }
37
+ function cardLine(state, words, toolName) {
38
+ switch (state.kind) {
39
+ case "running":
40
+ return words.running;
41
+ case "complete":
42
+ return words.done;
43
+ case "awaiting":
44
+ return {
45
+ title: `Waiting for confirmation of ${toolMetadata.getToolDisplayMeta(toolName).displayName}`,
46
+ subtitle: words.running.subtitle
47
+ };
48
+ case "failed":
49
+ return {
50
+ title: words.running.title.replace(/(\.{3}|…)\s*$/u, ""),
51
+ subtitle: words.running.subtitle
52
+ };
53
+ }
54
+ }
55
+ function computerAssetToolUI(Card, displayName) {
56
+ const Impl = (props) => {
57
+ const call = {
58
+ toolName: props.toolName,
59
+ args: toolResult.isRecord(props.args) ? props.args : {},
60
+ result: props.result,
61
+ status: props.status,
62
+ isError: props.isError
63
+ };
64
+ const state = callState(call);
65
+ if (!state) return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.MonitorIcon });
66
+ return /* @__PURE__ */ jsxRuntime.jsx(Card, { call, state });
67
+ };
68
+ const ToolUI = require$$0.memo(Impl);
69
+ ToolUI.displayName = displayName;
70
+ return ToolUI;
71
+ }
72
+ function stringField(value) {
73
+ return typeof value === "string" ? value : void 0;
74
+ }
75
+ function scalarField(value) {
76
+ if (typeof value === "string") return value;
77
+ if (typeof value === "number" && Number.isFinite(value)) return String(value);
78
+ return void 0;
79
+ }
80
+ function stateLabel(state) {
81
+ if (!state) return "unknown";
82
+ if (state === "started") return "Running";
83
+ if (state === "stopped") return "Stopped";
84
+ if (state === "error") return "Error";
85
+ return state.charAt(0).toUpperCase() + state.slice(1);
86
+ }
87
+ function secretCountText(count) {
88
+ return `with ${count} startup Secret${count === 1 ? "" : "s"}`;
89
+ }
90
+ const COMPUTER_ASSET_ID = /^asset_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
91
+ function isComputerAssetId(value) {
92
+ return typeof value === "string" && COMPUTER_ASSET_ID.test(value);
93
+ }
94
+ function retainedCreation(value) {
95
+ if (value.code !== "COMPUTER_CREATION_RETAINED") return null;
96
+ if (!isComputerAssetId(value.computer_asset_id)) return null;
97
+ if (value.asset_id !== void 0 && value.asset_id !== value.computer_asset_id) return null;
98
+ if (value.recoverable !== false) return null;
99
+ const status = value.error_status_code;
100
+ if (typeof status !== "number" || !Number.isInteger(status) || status < 400 || status > 599) {
101
+ return null;
102
+ }
103
+ if (value.creation_confirmed === true && value.created === true) return { confirmed: true };
104
+ if (value.creation_confirmed === false && value.created === null) return { confirmed: false };
105
+ return null;
106
+ }
107
+ function isWellFormedCreation(value) {
108
+ const optional = (key, accepts) => value[key] === void 0 || accepts(value[key]);
109
+ const typed = optional("computer_asset_id", isComputerAssetId) && optional("asset_id", isComputerAssetId) && optional("code", (field) => typeof field === "string") && optional("created", (field) => field === null || typeof field === "boolean") && optional("creation_confirmed", (field) => typeof field === "boolean") && optional("recoverable", (field) => typeof field === "boolean") && optional("error_status_code", (field) => typeof field === "number") && (value.error == null || typeof value.error === "string") && (value.state == null || typeof value.state === "string") && optional(
110
+ "startup_secret_count",
111
+ (field) => typeof field === "number" && Number.isInteger(field) && field >= 0
112
+ );
113
+ if (!typed) return false;
114
+ const retained = retainedCreation(value) !== null;
115
+ if (value.code !== void 0 && !retained) return false;
116
+ if (!retained && !(value.created !== null && value.created !== false && value.creation_confirmed !== false && (!value.error || value.created === true || !value.computer_asset_id && !value.asset_id))) {
117
+ return false;
118
+ }
119
+ return !value.asset_id || !value.computer_asset_id || value.asset_id === value.computer_asset_id;
120
+ }
121
+ function computerCreationDisplay(value) {
122
+ const retained = value ? retainedCreation(value) : null;
123
+ if (retained) {
124
+ return {
125
+ isFailure: true,
126
+ message: retained.confirmed ? "Computer created, but initialization could not be confirmed. Inspect this computer before creating another." : "Computer creation could not be confirmed. Inspect this computer before creating another."
127
+ };
128
+ }
129
+ if (!value || !isWellFormedCreation(value) || value.code !== void 0 || value.created === null || value.created === false || value.creation_confirmed === false) {
130
+ return { isFailure: true, message: "Computer creation could not be confirmed." };
131
+ }
132
+ const assetId = stringField(value.computer_asset_id) ?? stringField(value.asset_id);
133
+ if (value.error) {
134
+ return {
135
+ isFailure: true,
136
+ message: value.created === true && assetId ? "Computer created, but follow-up setup could not be confirmed. Inspect this computer before creating another." : "Computer creation failed."
137
+ };
138
+ }
139
+ if (!assetId) return { isFailure: true, message: "Computer creation could not be confirmed." };
140
+ const secretCount = typeof value.startup_secret_count === "number" ? value.startup_secret_count : 0;
141
+ const state = stringField(value.state);
142
+ const stateWord = state ? state === "started" || state === "running" ? "Running" : state.charAt(0).toUpperCase() + state.slice(1) : void 0;
143
+ const secrets = secretCount > 0 ? secretCountText(secretCount) : void 0;
144
+ const subtitle = [secrets, stateWord].filter((part) => !!part).join(" — ");
145
+ return { isFailure: false, line: { title: "Computer created", subtitle: subtitle || void 0 } };
146
+ }
147
+ function CreateComputerCard({ call, state }) {
148
+ const provider = stringField(call.args.provider) ?? "computer";
149
+ const template = stringField(call.args.template);
150
+ const secretCount = Array.isArray(call.args.startup_secret_ids) ? call.args.startup_secret_ids.length : 0;
151
+ const running = template ? {
152
+ title: `Creating ${provider} runtime...`,
153
+ subtitle: `from template "${primitives.truncate(template, 40)}"${secretCount > 0 ? ` ${secretCountText(secretCount)}` : ""}`
154
+ } : { title: `Creating ${provider} runtime...` };
155
+ const record = toolResult.resultRecord(call.result);
156
+ const display = computerCreationDisplay(record);
157
+ const shown = display.isFailure && (state.kind === "complete" || state.kind === "failed" && record) ? { kind: "failed", error: display.message } : state;
158
+ const line = cardLine(
159
+ shown,
160
+ { running, done: display.isFailure ? { title: display.message } : display.line },
161
+ call.toolName
162
+ );
163
+ return /* @__PURE__ */ jsxRuntime.jsx(
164
+ primitives.ToolCard,
165
+ {
166
+ icon: lucideReact.MonitorIcon,
167
+ status: TOOL_STATUS[shown.kind],
168
+ title: line.title,
169
+ subtitle: line.subtitle,
170
+ toolName: call.toolName,
171
+ error: shown.kind === "failed" ? shown.error : void 0,
172
+ args: call.args,
173
+ result: call.result
174
+ }
175
+ );
176
+ }
177
+ const ComputerAssetCreateToolUI = computerAssetToolUI(
178
+ CreateComputerCard,
179
+ "ComputerAssetCreateToolUI"
180
+ );
181
+ function EnsureSandboxCard({ call, state }) {
182
+ const record = toolResult.resultRecord(call.result);
183
+ const sandboxState = stringField(record == null ? void 0 : record.state);
184
+ const detail = sandboxState === "started" ? void 0 : stringField(record == null ? void 0 : record.detail);
185
+ const done = !record ? { title: "Sandbox check complete" } : sandboxState === "started" ? { title: "Sandbox is running" } : {
186
+ title: `Sandbox state: ${stateLabel(sandboxState)}${!detail && record.recoverable === true ? " (recoverable)" : ""}`
187
+ };
188
+ const line = cardLine(
189
+ state,
190
+ { running: { title: "Ensuring computer sandbox is ready..." }, done },
191
+ call.toolName
192
+ );
193
+ return /* @__PURE__ */ jsxRuntime.jsx(
194
+ primitives.ToolCard,
195
+ {
196
+ icon: lucideReact.MonitorIcon,
197
+ status: TOOL_STATUS[state.kind],
198
+ title: line.title,
199
+ subtitle: line.subtitle,
200
+ toolName: call.toolName,
201
+ error: state.kind === "failed" ? state.error : void 0,
202
+ args: call.args,
203
+ result: call.result,
204
+ children: state.kind === "complete" && detail ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { defaultOpen: true, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] leading-relaxed text-muted-foreground", children: detail }) }) : null
205
+ }
206
+ );
207
+ }
208
+ const ComputerAssetEnsureSandboxToolUI = computerAssetToolUI(
209
+ EnsureSandboxCard,
210
+ "ComputerAssetEnsureSandboxToolUI"
211
+ );
212
+ function GetStatusCard({ call, state }) {
213
+ const record = toolResult.resultRecord(call.result);
214
+ const computerState = stringField(record == null ? void 0 : record.state);
215
+ const line = cardLine(
216
+ state,
217
+ {
218
+ running: { title: "Checking computer status..." },
219
+ done: { title: record ? `Computer is ${stateLabel(computerState)}` : "Status check complete" }
220
+ },
221
+ call.toolName
222
+ );
223
+ return /* @__PURE__ */ jsxRuntime.jsx(
224
+ primitives.ToolCard,
225
+ {
226
+ icon: lucideReact.MonitorIcon,
227
+ status: TOOL_STATUS[state.kind],
228
+ title: line.title,
229
+ subtitle: line.subtitle,
230
+ toolName: call.toolName,
231
+ error: state.kind === "failed" ? state.error : void 0,
232
+ args: call.args,
233
+ result: call.result,
234
+ children: state.kind === "complete" && record ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 text-xs text-muted-foreground", children: [
235
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
236
+ /* @__PURE__ */ jsxRuntime.jsx(
237
+ lucideReact.CircleIcon,
238
+ {
239
+ className: cnfast.cn(
240
+ "size-2.5",
241
+ computerState === "started" && "fill-emerald-600 text-emerald-600",
242
+ computerState === "stopped" && "fill-muted-foreground text-muted-foreground",
243
+ computerState === "error" && "fill-destructive text-destructive"
244
+ )
245
+ }
246
+ ),
247
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: stateLabel(computerState) })
248
+ ] }),
249
+ record.recoverable === true ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-amber-500/10 px-1.5 py-0.5 text-[10px] font-medium text-amber-600", children: "Recoverable" }) : null
250
+ ] }) }) : null
251
+ }
252
+ );
253
+ }
254
+ const ComputerAssetGetStatusToolUI = computerAssetToolUI(
255
+ GetStatusCard,
256
+ "ComputerAssetGetStatusToolUI"
257
+ );
258
+ function DeployCard({ call, state }) {
259
+ const record = toolResult.resultRecord(call.result);
260
+ const url = typeof (record == null ? void 0 : record.url) === "string" && /^https?:\/\//i.test(record.url) ? record.url : void 0;
261
+ const deployedPorts = Array.isArray(record == null ? void 0 : record.deployed_ports) ? record.deployed_ports.map(scalarField).filter((port) => port !== void 0) : [];
262
+ const line = state.kind === "failed" ? { title: "Deployment failed" } : cardLine(
263
+ state,
264
+ {
265
+ running: { title: `Deploying on port ${scalarField(call.args.port) ?? "3000"}...` },
266
+ done: {
267
+ title: record ? `Deployed on port ${scalarField(record.port) ?? "3000"}` : "Deployment finished"
268
+ }
269
+ },
270
+ call.toolName
271
+ );
272
+ return /* @__PURE__ */ jsxRuntime.jsx(
273
+ primitives.ToolCard,
274
+ {
275
+ icon: lucideReact.MonitorIcon,
276
+ status: TOOL_STATUS[state.kind],
277
+ title: line.title,
278
+ subtitle: line.subtitle,
279
+ toolName: call.toolName,
280
+ error: state.kind === "failed" ? state.error : void 0,
281
+ args: call.args,
282
+ result: call.result,
283
+ children: state.kind === "complete" && url ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { defaultOpen: true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
284
+ /* @__PURE__ */ jsxRuntime.jsxs(
285
+ "a",
286
+ {
287
+ href: url,
288
+ target: "_blank",
289
+ rel: "noopener noreferrer",
290
+ className: "inline-flex items-center gap-1.5 break-all text-xs text-blue-600 transition-colors hover:underline",
291
+ children: [
292
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLinkIcon, { className: "size-3 shrink-0" }),
293
+ url
294
+ ]
295
+ }
296
+ ),
297
+ deployedPorts.length > 1 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-muted-foreground", children: [
298
+ "All deployed ports: ",
299
+ deployedPorts.join(", ")
300
+ ] }) : null
301
+ ] }) }) : null
302
+ }
303
+ );
304
+ }
305
+ const ComputerAssetDeployToolUI = computerAssetToolUI(
306
+ DeployCard,
307
+ "ComputerAssetDeployToolUI"
308
+ );
309
+ exports.ComputerAssetCreateToolUI = ComputerAssetCreateToolUI;
310
+ exports.ComputerAssetDeployToolUI = ComputerAssetDeployToolUI;
311
+ exports.ComputerAssetEnsureSandboxToolUI = ComputerAssetEnsureSandboxToolUI;
312
+ exports.ComputerAssetGetStatusToolUI = ComputerAssetGetStatusToolUI;
313
+ //# sourceMappingURL=computer-asset-tool-uis.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-asset-tool-uis.cjs","sources":["../../src/tools/computer-asset-tool-uis.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * Cards for the Computer Asset toolkit: `computer_asset_create`,\n * `computer_asset_ensure_sandbox`, `computer_asset_get_status` and\n * `computer_asset_deploy`, in the wording of Olympus's\n * `ComputerAssetToolkitUis.tsx`. Olympus's fixed words are the title; a value\n * they name (a template, a secret count, a state) is the subtitle, and a long\n * explanation the result carries is the card's body.\n *\n * A card reads only its own call. Olympus's computer thumbnail (an asset\n * lookup) and its opening of a computer it just created stay in Olympus.\n * Success and failure follow the shared result rules (`classifyToolResult`):\n * these tools answer a refusal with `{ error }` inside a completed call.\n */\nimport { CircleIcon, ExternalLinkIcon, MonitorIcon } from \"lucide-react\";\nimport { type ComponentType, memo } from \"react\";\nimport type {\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n ToolCallMessagePartStatus,\n} from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n getToolDisplayMeta,\n isRecord,\n resultRecord,\n} from \"@athenaintel/agent-runtime\";\nimport { cn } from \"../lib/utils\";\nimport { ExpandableSection, ToolCard, type ToolStatus, truncate } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\n// ─── Call state ──────────────────────────────────────────────────────\n\ninterface ComputerAssetCall {\n toolName: string;\n args: Record<string, unknown>;\n result: unknown;\n status: ToolCallMessagePartStatus | undefined;\n isError: boolean | undefined;\n}\n\ntype CallState =\n | { kind: \"running\" }\n | { kind: \"awaiting\" }\n | { kind: \"complete\" }\n | { kind: \"failed\"; error: string };\n\nconst TOOL_STATUS: Record<CallState[\"kind\"], ToolStatus> = {\n running: \"running\",\n awaiting: \"requires-action\",\n complete: \"complete\",\n failed: \"incomplete\",\n};\n\n/**\n * The call's state under the shared result rules, or `null` for a call the\n * generic card owns: one the person refused at the approval gate, or one the\n * runtime parked.\n */\nfunction callState(call: ComputerAssetCall): CallState | null {\n const classification = classifyToolResult({\n status: call.status,\n result: call.result,\n isError: call.isError,\n });\n switch (classification.state) {\n case \"running\":\n return { kind: \"running\" };\n case \"requires-action\":\n return { kind: \"awaiting\" };\n case \"complete\":\n return { kind: \"complete\" };\n case \"error\":\n return { kind: \"failed\", error: classification.failure.message };\n case \"rejected\":\n case \"paused\":\n return null;\n }\n}\n\ninterface CardLine {\n title: string;\n subtitle?: string;\n}\n\n/**\n * The line for `state`: the running or done words, an approval wait naming\n * the tool, or for a failed call the attempt (the running words without their\n * ellipsis), with the failure in the card's error notice.\n */\nfunction cardLine(\n state: CallState,\n words: { running: CardLine; done: CardLine },\n toolName: string,\n): CardLine {\n switch (state.kind) {\n case \"running\":\n return words.running;\n case \"complete\":\n return words.done;\n case \"awaiting\":\n return {\n title: `Waiting for confirmation of ${getToolDisplayMeta(toolName).displayName}`,\n subtitle: words.running.subtitle,\n };\n case \"failed\":\n return {\n title: words.running.title.replace(/(\\.{3}|…)\\s*$/u, \"\"),\n subtitle: words.running.subtitle,\n };\n }\n}\n\ninterface ComputerAssetCardProps {\n call: ComputerAssetCall;\n state: CallState;\n}\n\n/** The registered card: the generic card owns a refused or parked call, `Card` the rest. */\nfunction computerAssetToolUI(\n Card: ComponentType<ComputerAssetCardProps>,\n displayName: string,\n): ToolCallMessagePartComponent {\n const Impl: ToolCallMessagePartComponent = (props: ToolCallMessagePartProps) => {\n const call: ComputerAssetCall = {\n toolName: props.toolName,\n args: isRecord(props.args) ? props.args : {},\n result: props.result,\n status: props.status,\n isError: props.isError,\n };\n const state = callState(call);\n if (!state) return <ToolFallback {...props} icon={MonitorIcon} />;\n return <Card call={call} state={state} />;\n };\n const ToolUI = memo(Impl) as unknown as ToolCallMessagePartComponent;\n ToolUI.displayName = displayName;\n return ToolUI;\n}\n\nfunction stringField(value: unknown): string | undefined {\n return typeof value === \"string\" ? value : undefined;\n}\n\n/** A string or number as text (a port arrives as either). */\nfunction scalarField(value: unknown): string | undefined {\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" && Number.isFinite(value)) return String(value);\n return undefined;\n}\n\n/** Olympus's name for a runtime state: `started` is \"Running\"; a missing state is \"unknown\". */\nfunction stateLabel(state: string | undefined): string {\n if (!state) return \"unknown\";\n if (state === \"started\") return \"Running\";\n if (state === \"stopped\") return \"Stopped\";\n if (state === \"error\") return \"Error\";\n return state.charAt(0).toUpperCase() + state.slice(1);\n}\n\nfunction secretCountText(count: number): string {\n return `with ${count} startup Secret${count === 1 ? \"\" : \"s\"}`;\n}\n\n// ─── computer_asset_create ───────────────────────────────────────────\n\nconst COMPUTER_ASSET_ID = /^asset_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\n\nfunction isComputerAssetId(value: unknown): value is string {\n return typeof value === \"string\" && COMPUTER_ASSET_ID.test(value);\n}\n\n/**\n * A creation the backend retained after its setup failed: the computer\n * exists (or may), so the person must inspect it before creating another.\n * Only the structured disposition (`COMPUTER_CREATION_RETAINED`) counts.\n */\nfunction retainedCreation(value: Record<string, unknown>): { confirmed: boolean } | null {\n if (value.code !== \"COMPUTER_CREATION_RETAINED\") return null;\n if (!isComputerAssetId(value.computer_asset_id)) return null;\n if (value.asset_id !== undefined && value.asset_id !== value.computer_asset_id) return null;\n if (value.recoverable !== false) return null;\n const status = value.error_status_code;\n if (typeof status !== \"number\" || !Number.isInteger(status) || status < 400 || status > 599) {\n return null;\n }\n if (value.creation_confirmed === true && value.created === true) return { confirmed: true };\n if (value.creation_confirmed === false && value.created === null) return { confirmed: false };\n return null;\n}\n\n/**\n * Whether a create result has the shape a confirmed outcome needs: typed\n * fields, a `code` only on a retained creation, no explicit uncertainty\n * (`created` null or false, `creation_confirmed` false), an error beside an\n * id only when the computer was created, and one id when both are named.\n */\nfunction isWellFormedCreation(value: Record<string, unknown>): boolean {\n const optional = (key: string, accepts: (field: unknown) => boolean): boolean =>\n value[key] === undefined || accepts(value[key]);\n const typed =\n optional(\"computer_asset_id\", isComputerAssetId) &&\n optional(\"asset_id\", isComputerAssetId) &&\n optional(\"code\", (field) => typeof field === \"string\") &&\n optional(\"created\", (field) => field === null || typeof field === \"boolean\") &&\n optional(\"creation_confirmed\", (field) => typeof field === \"boolean\") &&\n optional(\"recoverable\", (field) => typeof field === \"boolean\") &&\n optional(\"error_status_code\", (field) => typeof field === \"number\") &&\n (value.error == null || typeof value.error === \"string\") &&\n (value.state == null || typeof value.state === \"string\") &&\n optional(\n \"startup_secret_count\",\n (field) => typeof field === \"number\" && Number.isInteger(field) && field >= 0,\n );\n if (!typed) return false;\n const retained = retainedCreation(value) !== null;\n if (value.code !== undefined && !retained) return false;\n if (\n !retained &&\n !(\n value.created !== null &&\n value.created !== false &&\n value.creation_confirmed !== false &&\n (!value.error || value.created === true || (!value.computer_asset_id && !value.asset_id))\n )\n ) {\n return false;\n }\n return !value.asset_id || !value.computer_asset_id || value.asset_id === value.computer_asset_id;\n}\n\ntype CreationDisplay = { isFailure: true; message: string } | { isFailure: false; line: CardLine };\n\n/**\n * What a `computer_asset_create` result says, in Olympus's words. A finished\n * call is not a success by itself: a retained, unconfirmed or malformed\n * result is a failure, and so is an error.\n */\nfunction computerCreationDisplay(value: Record<string, unknown> | null): CreationDisplay {\n const retained = value ? retainedCreation(value) : null;\n if (retained) {\n return {\n isFailure: true,\n message: retained.confirmed\n ? \"Computer created, but initialization could not be confirmed. Inspect this computer before creating another.\"\n : \"Computer creation could not be confirmed. Inspect this computer before creating another.\",\n };\n }\n if (\n !value ||\n !isWellFormedCreation(value) ||\n value.code !== undefined ||\n value.created === null ||\n value.created === false ||\n value.creation_confirmed === false\n ) {\n return { isFailure: true, message: \"Computer creation could not be confirmed.\" };\n }\n const assetId = stringField(value.computer_asset_id) ?? stringField(value.asset_id);\n if (value.error) {\n return {\n isFailure: true,\n message:\n value.created === true && assetId\n ? \"Computer created, but follow-up setup could not be confirmed. Inspect this computer before creating another.\"\n : \"Computer creation failed.\",\n };\n }\n if (!assetId) return { isFailure: true, message: \"Computer creation could not be confirmed.\" };\n const secretCount =\n typeof value.startup_secret_count === \"number\" ? value.startup_secret_count : 0;\n const state = stringField(value.state);\n const stateWord = state\n ? state === \"started\" || state === \"running\"\n ? \"Running\"\n : state.charAt(0).toUpperCase() + state.slice(1)\n : undefined;\n // Olympus's \"Computer created with 2 startup Secrets — Running\", split at\n // the value it names.\n const secrets = secretCount > 0 ? secretCountText(secretCount) : undefined;\n const subtitle = [secrets, stateWord].filter((part): part is string => !!part).join(\" — \");\n return { isFailure: false, line: { title: \"Computer created\", subtitle: subtitle || undefined } };\n}\n\nfunction CreateComputerCard({ call, state }: ComputerAssetCardProps) {\n const provider = stringField(call.args.provider) ?? \"computer\";\n const template = stringField(call.args.template);\n const secretCount = Array.isArray(call.args.startup_secret_ids)\n ? call.args.startup_secret_ids.length\n : 0;\n const running: CardLine = template\n ? {\n title: `Creating ${provider} runtime...`,\n subtitle: `from template \"${truncate(template, 40)}\"${secretCount > 0 ? ` ${secretCountText(secretCount)}` : \"\"}`,\n }\n : { title: `Creating ${provider} runtime...` };\n const record = resultRecord(call.result);\n const display = computerCreationDisplay(record);\n // A result that reports a failure is shown in Olympus's words, whatever the\n // call's own status says; a call that never returned one keeps its error.\n const shown: CallState =\n display.isFailure && (state.kind === \"complete\" || (state.kind === \"failed\" && record))\n ? { kind: \"failed\", error: display.message }\n : state;\n const line = cardLine(\n shown,\n { running, done: display.isFailure ? { title: display.message } : display.line },\n call.toolName,\n );\n return (\n <ToolCard\n icon={MonitorIcon}\n status={TOOL_STATUS[shown.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={shown.kind === \"failed\" ? shown.error : undefined}\n args={call.args}\n result={call.result}\n />\n );\n}\n\nexport const ComputerAssetCreateToolUI = computerAssetToolUI(\n CreateComputerCard,\n \"ComputerAssetCreateToolUI\",\n);\n\n// ─── computer_asset_ensure_sandbox ───────────────────────────────────\n\nfunction EnsureSandboxCard({ call, state }: ComputerAssetCardProps) {\n const record = resultRecord(call.result);\n const sandboxState = stringField(record?.state);\n const detail = sandboxState === \"started\" ? undefined : stringField(record?.detail);\n const done: CardLine = !record\n ? { title: \"Sandbox check complete\" }\n : sandboxState === \"started\"\n ? { title: \"Sandbox is running\" }\n : {\n title: `Sandbox state: ${stateLabel(sandboxState)}${!detail && record.recoverable === true ? \" (recoverable)\" : \"\"}`,\n };\n const line = cardLine(\n state,\n { running: { title: \"Ensuring computer sandbox is ready...\" }, done },\n call.toolName,\n );\n return (\n <ToolCard\n icon={MonitorIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={state.kind === \"failed\" ? state.error : undefined}\n args={call.args}\n result={call.result}\n >\n {state.kind === \"complete\" && detail ? (\n <ExpandableSection defaultOpen>\n <p className=\"text-[12px] leading-relaxed text-muted-foreground\">{detail}</p>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n}\n\nexport const ComputerAssetEnsureSandboxToolUI = computerAssetToolUI(\n EnsureSandboxCard,\n \"ComputerAssetEnsureSandboxToolUI\",\n);\n\n// ─── computer_asset_get_status ───────────────────────────────────────\n\nfunction GetStatusCard({ call, state }: ComputerAssetCardProps) {\n const record = resultRecord(call.result);\n const computerState = stringField(record?.state);\n const line = cardLine(\n state,\n {\n running: { title: \"Checking computer status...\" },\n done: { title: record ? `Computer is ${stateLabel(computerState)}` : \"Status check complete\" },\n },\n call.toolName,\n );\n return (\n <ToolCard\n icon={MonitorIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={state.kind === \"failed\" ? state.error : undefined}\n args={call.args}\n result={call.result}\n >\n {state.kind === \"complete\" && record ? (\n <ExpandableSection>\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground\">\n <div className=\"flex items-center gap-1.5\">\n <CircleIcon\n className={cn(\n \"size-2.5\",\n computerState === \"started\" && \"fill-emerald-600 text-emerald-600\",\n computerState === \"stopped\" && \"fill-muted-foreground text-muted-foreground\",\n computerState === \"error\" && \"fill-destructive text-destructive\",\n )}\n />\n <span className=\"font-medium\">{stateLabel(computerState)}</span>\n </div>\n {record.recoverable === true ? (\n <span className=\"rounded bg-amber-500/10 px-1.5 py-0.5 text-[10px] font-medium text-amber-600\">\n Recoverable\n </span>\n ) : null}\n </div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n}\n\nexport const ComputerAssetGetStatusToolUI = computerAssetToolUI(\n GetStatusCard,\n \"ComputerAssetGetStatusToolUI\",\n);\n\n// ─── computer_asset_deploy ───────────────────────────────────────────\n\nfunction DeployCard({ call, state }: ComputerAssetCardProps) {\n const record = resultRecord(call.result);\n const url =\n typeof record?.url === \"string\" && /^https?:\\/\\//i.test(record.url) ? record.url : undefined;\n const deployedPorts = Array.isArray(record?.deployed_ports)\n ? record.deployed_ports\n .map(scalarField)\n .filter((port): port is string => port !== undefined)\n : [];\n const line =\n state.kind === \"failed\"\n ? { title: \"Deployment failed\" }\n : cardLine(\n state,\n {\n running: { title: `Deploying on port ${scalarField(call.args.port) ?? \"3000\"}...` },\n done: {\n title: record\n ? `Deployed on port ${scalarField(record.port) ?? \"3000\"}`\n : \"Deployment finished\",\n },\n },\n call.toolName,\n );\n return (\n <ToolCard\n icon={MonitorIcon}\n status={TOOL_STATUS[state.kind]}\n title={line.title}\n subtitle={line.subtitle}\n toolName={call.toolName}\n error={state.kind === \"failed\" ? state.error : undefined}\n args={call.args}\n result={call.result}\n >\n {state.kind === \"complete\" && url ? (\n <ExpandableSection defaultOpen>\n <div className=\"flex flex-col gap-1.5\">\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 break-all text-xs text-blue-600 transition-colors hover:underline\"\n >\n <ExternalLinkIcon className=\"size-3 shrink-0\" />\n {url}\n </a>\n {deployedPorts.length > 1 ? (\n <span className=\"text-[11px] text-muted-foreground\">\n All deployed ports: {deployedPorts.join(\", \")}\n </span>\n ) : null}\n </div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n}\n\nexport const ComputerAssetDeployToolUI = computerAssetToolUI(\n DeployCard,\n \"ComputerAssetDeployToolUI\",\n);\n"],"names":["classifyToolResult","getToolDisplayMeta","isRecord","jsx","ToolFallback","MonitorIcon","memo","truncate","resultRecord","ToolCard","ExpandableSection","jsxs","CircleIcon","cn","ExternalLinkIcon"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ToolCallMessagePartComponent } from "@assistant-ui/react";
2
+ export declare const ComputerAssetCreateToolUI: ToolCallMessagePartComponent;
3
+ export declare const ComputerAssetEnsureSandboxToolUI: ToolCallMessagePartComponent;
4
+ export declare const ComputerAssetGetStatusToolUI: ToolCallMessagePartComponent;
5
+ export declare const ComputerAssetDeployToolUI: ToolCallMessagePartComponent;