@athenaintel/react 0.57.2 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (799) hide show
  1. package/README.md +759 -9
  2. package/dist/agent-runtime/src/addressed-agents.cjs +16 -0
  3. package/dist/agent-runtime/src/addressed-agents.cjs.map +1 -0
  4. package/dist/agent-runtime/src/addressed-agents.d.ts +30 -0
  5. package/dist/agent-runtime/src/addressed-agents.js +16 -0
  6. package/dist/agent-runtime/src/addressed-agents.js.map +1 -0
  7. package/dist/agent-runtime/src/answer-label.cjs +4 -3
  8. package/dist/agent-runtime/src/answer-label.cjs.map +1 -1
  9. package/dist/agent-runtime/src/answer-label.d.ts +13 -6
  10. package/dist/agent-runtime/src/answer-label.js +4 -3
  11. package/dist/agent-runtime/src/answer-label.js.map +1 -1
  12. package/dist/agent-runtime/src/chat-outbox-attachments.cjs.map +1 -1
  13. package/dist/agent-runtime/src/chat-outbox-attachments.d.ts +1 -1
  14. package/dist/agent-runtime/src/chat-outbox-attachments.js.map +1 -1
  15. package/dist/agent-runtime/src/chat-outbox-entry.cjs +101 -0
  16. package/dist/agent-runtime/src/chat-outbox-entry.cjs.map +1 -0
  17. package/dist/agent-runtime/src/chat-outbox-entry.d.ts +99 -0
  18. package/dist/agent-runtime/src/chat-outbox-entry.js +101 -0
  19. package/dist/agent-runtime/src/chat-outbox-entry.js.map +1 -0
  20. package/dist/agent-runtime/src/chat-outbox-legacy.cjs +252 -0
  21. package/dist/agent-runtime/src/chat-outbox-legacy.cjs.map +1 -0
  22. package/dist/agent-runtime/src/chat-outbox-legacy.d.ts +96 -0
  23. package/dist/agent-runtime/src/chat-outbox-legacy.js +252 -0
  24. package/dist/agent-runtime/src/chat-outbox-legacy.js.map +1 -0
  25. package/dist/agent-runtime/src/chat-outbox-policy.cjs +30 -0
  26. package/dist/agent-runtime/src/chat-outbox-policy.cjs.map +1 -0
  27. package/dist/agent-runtime/src/chat-outbox-policy.d.ts +42 -0
  28. package/dist/agent-runtime/src/chat-outbox-policy.js +30 -0
  29. package/dist/agent-runtime/src/chat-outbox-policy.js.map +1 -0
  30. package/dist/agent-runtime/src/chat-outbox-storage.cjs +306 -0
  31. package/dist/agent-runtime/src/chat-outbox-storage.cjs.map +1 -0
  32. package/dist/agent-runtime/src/chat-outbox-storage.d.ts +194 -0
  33. package/dist/agent-runtime/src/chat-outbox-storage.js +306 -0
  34. package/dist/agent-runtime/src/chat-outbox-storage.js.map +1 -0
  35. package/dist/agent-runtime/src/chat-outbox-thread.cjs +21 -94
  36. package/dist/agent-runtime/src/chat-outbox-thread.cjs.map +1 -1
  37. package/dist/agent-runtime/src/chat-outbox-thread.d.ts +22 -18
  38. package/dist/agent-runtime/src/chat-outbox-thread.js +21 -94
  39. package/dist/agent-runtime/src/chat-outbox-thread.js.map +1 -1
  40. package/dist/agent-runtime/src/chat-outbox.cjs +492 -547
  41. package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
  42. package/dist/agent-runtime/src/chat-outbox.d.ts +110 -142
  43. package/dist/agent-runtime/src/chat-outbox.js +492 -547
  44. package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
  45. package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
  46. package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
  47. package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
  48. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
  49. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
  50. package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
  51. package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
  52. package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
  53. package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
  54. package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
  55. package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
  56. package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
  57. package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
  58. package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
  59. package/dist/agent-runtime/src/edit-command.d.ts +1 -1
  60. package/dist/agent-runtime/src/edit-command.js.map +1 -1
  61. package/dist/agent-runtime/src/errors.cjs +1 -0
  62. package/dist/agent-runtime/src/errors.cjs.map +1 -1
  63. package/dist/agent-runtime/src/errors.js +1 -0
  64. package/dist/agent-runtime/src/errors.js.map +1 -1
  65. package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
  66. package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
  67. package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
  68. package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
  69. package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
  70. package/dist/agent-runtime/src/index.d.ts +14 -8
  71. package/dist/agent-runtime/src/lane-follow.cjs +289 -0
  72. package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
  73. package/dist/agent-runtime/src/lane-follow.js +289 -0
  74. package/dist/agent-runtime/src/lane-follow.js.map +1 -0
  75. package/dist/agent-runtime/src/lane-images.cjs +387 -0
  76. package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
  77. package/dist/agent-runtime/src/lane-images.js +387 -0
  78. package/dist/agent-runtime/src/lane-images.js.map +1 -0
  79. package/dist/agent-runtime/src/message-window.js +1 -1
  80. package/dist/agent-runtime/src/messages.cjs +19 -1
  81. package/dist/agent-runtime/src/messages.cjs.map +1 -1
  82. package/dist/agent-runtime/src/messages.d.ts +8 -0
  83. package/dist/agent-runtime/src/messages.js +21 -3
  84. package/dist/agent-runtime/src/messages.js.map +1 -1
  85. package/dist/agent-runtime/src/named-agents.cjs +301 -0
  86. package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
  87. package/dist/agent-runtime/src/named-agents.d.ts +246 -0
  88. package/dist/agent-runtime/src/named-agents.js +301 -0
  89. package/dist/agent-runtime/src/named-agents.js.map +1 -0
  90. package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
  91. package/dist/agent-runtime/src/offline-status.d.ts +66 -2
  92. package/dist/agent-runtime/src/offline-status.js.map +1 -1
  93. package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
  94. package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
  95. package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
  96. package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
  97. package/dist/agent-runtime/src/queue.cjs +2 -2
  98. package/dist/agent-runtime/src/queue.cjs.map +1 -1
  99. package/dist/agent-runtime/src/queue.d.ts +20 -25
  100. package/dist/agent-runtime/src/queue.js +2 -2
  101. package/dist/agent-runtime/src/queue.js.map +1 -1
  102. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
  103. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
  104. package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
  105. package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
  106. package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
  107. package/dist/agent-runtime/src/run-send.cjs +54 -0
  108. package/dist/agent-runtime/src/run-send.cjs.map +1 -0
  109. package/dist/agent-runtime/src/run-send.d.ts +51 -0
  110. package/dist/agent-runtime/src/run-send.js +54 -0
  111. package/dist/agent-runtime/src/run-send.js.map +1 -0
  112. package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
  113. package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
  114. package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
  115. package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
  116. package/dist/agent-runtime/src/runtime.d.ts +9 -5
  117. package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
  118. package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
  119. package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
  120. package/dist/agent-runtime/src/sealed-idb.js +64 -0
  121. package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
  122. package/dist/agent-runtime/src/send-recovery.cjs +90 -118
  123. package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
  124. package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
  125. package/dist/agent-runtime/src/send-recovery.js +90 -118
  126. package/dist/agent-runtime/src/send-recovery.js.map +1 -1
  127. package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
  128. package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
  129. package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
  130. package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
  131. package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
  132. package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
  133. package/dist/agent-runtime/src/statewire-state.cjs +4 -0
  134. package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
  135. package/dist/agent-runtime/src/statewire-state.js +4 -0
  136. package/dist/agent-runtime/src/statewire-state.js.map +1 -1
  137. package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
  138. package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
  139. package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
  140. package/dist/agent-runtime/src/statewire-transport.js +8 -2
  141. package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
  142. package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
  143. package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
  144. package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
  145. package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
  146. package/dist/agent-runtime/src/subagents.cjs +22 -29
  147. package/dist/agent-runtime/src/subagents.cjs.map +1 -1
  148. package/dist/agent-runtime/src/subagents.js +23 -30
  149. package/dist/agent-runtime/src/subagents.js.map +1 -1
  150. package/dist/agent-runtime/src/thread-extras.cjs +27 -19
  151. package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
  152. package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
  153. package/dist/agent-runtime/src/thread-extras.js +27 -19
  154. package/dist/agent-runtime/src/thread-extras.js.map +1 -1
  155. package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
  156. package/dist/agent-runtime/src/tool-metadata.cjs +12 -0
  157. package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
  158. package/dist/agent-runtime/src/tool-metadata.js +12 -0
  159. package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
  160. package/dist/agent-runtime/src/tool-names.cjs +21 -0
  161. package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
  162. package/dist/agent-runtime/src/tool-names.d.ts +8 -0
  163. package/dist/agent-runtime/src/tool-names.js +21 -0
  164. package/dist/agent-runtime/src/tool-names.js.map +1 -1
  165. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
  166. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
  167. package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
  168. package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
  169. package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
  170. package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
  171. package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
  172. package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
  173. package/dist/agent-runtime/src/typed-interrupts.js +48 -0
  174. package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
  175. package/dist/agent-runtime/src/types.d.ts +1 -1
  176. package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
  177. package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
  178. package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
  179. package/dist/agent-runtime/src/use-conversation-list.js +1 -0
  180. package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
  181. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
  182. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
  183. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
  184. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
  185. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
  186. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
  187. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
  188. package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
  189. package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
  190. package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
  191. package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
  192. package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
  193. package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
  194. package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
  195. package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
  196. package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
  197. package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
  198. package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
  199. package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
  200. package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
  201. package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
  202. package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
  203. package/dist/agent-runtime/src/work-in.d.ts +127 -0
  204. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
  205. package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
  206. package/dist/assets/AthenaAssetEmbed.js.map +1 -1
  207. package/dist/assets/asset-panel-store.cjs +13 -5
  208. package/dist/assets/asset-panel-store.cjs.map +1 -1
  209. package/dist/assets/asset-panel-store.d.ts +33 -2
  210. package/dist/assets/asset-panel-store.js +13 -5
  211. package/dist/assets/asset-panel-store.js.map +1 -1
  212. package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
  213. package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
  214. package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
  215. package/dist/auth/AthenaCredentialSourceContext.js +11 -0
  216. package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
  217. package/dist/auth/account-identity.cjs +13 -2
  218. package/dist/auth/account-identity.cjs.map +1 -1
  219. package/dist/auth/account-identity.d.ts +9 -0
  220. package/dist/auth/account-identity.js +13 -2
  221. package/dist/auth/account-identity.js.map +1 -1
  222. package/dist/auth/credential-source.cjs +20 -4
  223. package/dist/auth/credential-source.cjs.map +1 -1
  224. package/dist/auth/credential-source.d.ts +9 -0
  225. package/dist/auth/credential-source.js +20 -4
  226. package/dist/auth/credential-source.js.map +1 -1
  227. package/dist/catalog/chat-pickers.cjs +31 -0
  228. package/dist/catalog/chat-pickers.cjs.map +1 -1
  229. package/dist/catalog/chat-pickers.d.ts +17 -0
  230. package/dist/catalog/chat-pickers.js +33 -2
  231. package/dist/catalog/chat-pickers.js.map +1 -1
  232. package/dist/catalog/runtime-catalog.cjs +63 -3
  233. package/dist/catalog/runtime-catalog.cjs.map +1 -1
  234. package/dist/catalog/runtime-catalog.d.ts +63 -3
  235. package/dist/catalog/runtime-catalog.js +64 -4
  236. package/dist/catalog/runtime-catalog.js.map +1 -1
  237. package/dist/chat/AthenaChat.cjs +290 -97
  238. package/dist/chat/AthenaChat.cjs.map +1 -1
  239. package/dist/chat/AthenaChat.d.ts +80 -4
  240. package/dist/chat/AthenaChat.js +290 -97
  241. package/dist/chat/AthenaChat.js.map +1 -1
  242. package/dist/chat/StatewireApprovalCard.cjs +35 -5
  243. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  244. package/dist/chat/StatewireApprovalCard.d.ts +55 -2
  245. package/dist/chat/StatewireApprovalCard.js +37 -7
  246. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  247. package/dist/chat/StatewireQueuedMessages.cjs +17 -2
  248. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  249. package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
  250. package/dist/chat/StatewireQueuedMessages.js +18 -3
  251. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  252. package/dist/chat/chat-agent-mentions.cjs +70 -0
  253. package/dist/chat/chat-agent-mentions.cjs.map +1 -0
  254. package/dist/chat/chat-agent-mentions.d.ts +13 -0
  255. package/dist/chat/chat-agent-mentions.js +70 -0
  256. package/dist/chat/chat-agent-mentions.js.map +1 -0
  257. package/dist/chat/composer-actions.cjs +12 -0
  258. package/dist/chat/composer-actions.cjs.map +1 -0
  259. package/dist/chat/composer-actions.d.ts +22 -0
  260. package/dist/chat/composer-actions.js +12 -0
  261. package/dist/chat/composer-actions.js.map +1 -0
  262. package/dist/chat/follow-up-suggestions.cjs +185 -0
  263. package/dist/chat/follow-up-suggestions.cjs.map +1 -0
  264. package/dist/chat/follow-up-suggestions.d.ts +64 -0
  265. package/dist/chat/follow-up-suggestions.js +185 -0
  266. package/dist/chat/follow-up-suggestions.js.map +1 -0
  267. package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
  268. package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
  269. package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
  270. package/dist/chat/super-grouping/ToolTimeline.js +4 -3
  271. package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
  272. package/dist/chat/turn-changes.cjs +284 -0
  273. package/dist/chat/turn-changes.cjs.map +1 -0
  274. package/dist/chat/turn-changes.d.ts +130 -0
  275. package/dist/chat/turn-changes.js +284 -0
  276. package/dist/chat/turn-changes.js.map +1 -0
  277. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
  278. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
  279. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
  280. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
  281. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
  282. package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
  283. package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
  284. package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
  285. package/dist/chat/typed-interrupts/approval-cards.js +250 -0
  286. package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
  287. package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
  288. package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
  289. package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
  290. package/dist/chat/typed-interrupts/form-cards.js +289 -0
  291. package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
  292. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
  293. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
  294. package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
  295. package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
  296. package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
  297. package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
  298. package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
  299. package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
  300. package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
  301. package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
  302. package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
  303. package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
  304. package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
  305. package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
  306. package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
  307. package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
  308. package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
  309. package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
  310. package/dist/chat/typed-interrupts/request-file-card.js +159 -0
  311. package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
  312. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
  313. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
  314. package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
  315. package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
  316. package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
  317. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
  318. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
  319. package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
  320. package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
  321. package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
  322. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
  323. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
  324. package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
  325. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
  326. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
  327. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
  328. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
  329. package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
  330. package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
  331. package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
  332. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
  333. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
  334. package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
  335. package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
  336. package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
  337. package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
  338. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
  339. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
  340. package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
  341. package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
  342. package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
  343. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
  344. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
  345. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
  346. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
  347. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
  348. package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
  349. package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
  350. package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
  351. package/dist/chat-ui/composer/composer-named-agents.js +13 -0
  352. package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
  353. package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
  354. package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
  355. package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
  356. package/dist/chat-ui/composer/slash-command-menu.js +143 -0
  357. package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
  358. package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
  359. package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
  360. package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
  361. package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
  362. package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
  363. package/dist/chat-ui/composer/slash-commands.cjs +74 -0
  364. package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
  365. package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
  366. package/dist/chat-ui/composer/slash-commands.js +74 -0
  367. package/dist/chat-ui/composer/slash-commands.js.map +1 -0
  368. package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
  369. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  370. package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
  371. package/dist/chat-ui/composer/tiptap-composer.js +135 -9
  372. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  373. package/dist/chat-ui/index.cjs +3 -0
  374. package/dist/chat-ui/index.cjs.map +1 -1
  375. package/dist/chat-ui/index.d.ts +3 -2
  376. package/dist/chat-ui/index.js +3 -0
  377. package/dist/chat-ui/index.js.map +1 -1
  378. package/dist/chat-ui/mentions/mention-chip.cjs +1 -1
  379. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  380. package/dist/chat-ui/mentions/mention-chip.js +2 -2
  381. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  382. package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
  383. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
  384. package/dist/chat-ui/mentions/mention-extension.js +8 -1
  385. package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
  386. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
  387. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
  388. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
  389. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
  390. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +2 -0
  391. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
  392. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +3 -1
  393. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
  394. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
  395. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
  396. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
  397. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
  398. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +36 -0
  399. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
  400. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +42 -0
  401. package/dist/chat-ui/mentions/suggestions/data/api-client.js +36 -0
  402. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
  403. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +235 -19
  404. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
  405. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
  406. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +236 -20
  407. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
  408. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
  409. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
  410. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
  411. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
  412. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
  413. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
  414. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
  415. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
  416. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
  417. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
  418. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
  419. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
  420. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
  421. package/dist/chat-ui/statewire.d.ts +1 -1
  422. package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
  423. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
  424. package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
  425. package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
  426. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
  427. package/dist/collab/client.cjs +17 -5
  428. package/dist/collab/client.cjs.map +1 -1
  429. package/dist/collab/client.d.ts +22 -7
  430. package/dist/collab/client.js +17 -5
  431. package/dist/collab/client.js.map +1 -1
  432. package/dist/composer/ComposerAttachedReferences.cjs +119 -0
  433. package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
  434. package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
  435. package/dist/composer/ComposerAttachedReferences.js +119 -0
  436. package/dist/composer/ComposerAttachedReferences.js.map +1 -0
  437. package/dist/composer/ComposerNamedAgents.cjs +63 -0
  438. package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
  439. package/dist/composer/ComposerNamedAgents.d.ts +16 -0
  440. package/dist/composer/ComposerNamedAgents.js +63 -0
  441. package/dist/composer/ComposerNamedAgents.js.map +1 -0
  442. package/dist/composer/attached-references.cjs +159 -0
  443. package/dist/composer/attached-references.cjs.map +1 -0
  444. package/dist/composer/attached-references.d.ts +86 -0
  445. package/dist/composer/attached-references.js +159 -0
  446. package/dist/composer/attached-references.js.map +1 -0
  447. package/dist/composer/build-composed-message.cjs +14 -7
  448. package/dist/composer/build-composed-message.cjs.map +1 -1
  449. package/dist/composer/build-composed-message.d.ts +6 -1
  450. package/dist/composer/build-composed-message.js +14 -7
  451. package/dist/composer/build-composed-message.js.map +1 -1
  452. package/dist/composer/composer-handoff.cjs +6 -2
  453. package/dist/composer/composer-handoff.cjs.map +1 -1
  454. package/dist/composer/composer-handoff.d.ts +7 -1
  455. package/dist/composer/composer-handoff.js +6 -2
  456. package/dist/composer/composer-handoff.js.map +1 -1
  457. package/dist/composer/folder-upload.cjs +149 -0
  458. package/dist/composer/folder-upload.cjs.map +1 -0
  459. package/dist/composer/folder-upload.d.ts +79 -0
  460. package/dist/composer/folder-upload.js +149 -0
  461. package/dist/composer/folder-upload.js.map +1 -0
  462. package/dist/composer/index.d.ts +1 -1
  463. package/dist/composer/useAttachToChat.cjs +35 -0
  464. package/dist/composer/useAttachToChat.cjs.map +1 -0
  465. package/dist/composer/useAttachToChat.d.ts +54 -0
  466. package/dist/composer/useAttachToChat.js +35 -0
  467. package/dist/composer/useAttachToChat.js.map +1 -0
  468. package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
  469. package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
  470. package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
  471. package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
  472. package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
  473. package/dist/composer/useFileUpload.cjs +95 -7
  474. package/dist/composer/useFileUpload.cjs.map +1 -1
  475. package/dist/composer/useFileUpload.d.ts +21 -2
  476. package/dist/composer/useFileUpload.js +95 -7
  477. package/dist/composer/useFileUpload.js.map +1 -1
  478. package/dist/data/athena-api-error.cjs +125 -0
  479. package/dist/data/athena-api-error.cjs.map +1 -0
  480. package/dist/data/athena-api-error.d.ts +96 -0
  481. package/dist/data/athena-api-error.js +125 -0
  482. package/dist/data/athena-api-error.js.map +1 -0
  483. package/dist/data/athena-data-client.cjs +106 -0
  484. package/dist/data/athena-data-client.cjs.map +1 -0
  485. package/dist/data/athena-data-client.d.ts +74 -0
  486. package/dist/data/athena-data-client.js +106 -0
  487. package/dist/data/athena-data-client.js.map +1 -0
  488. package/dist/data/athena-member.cjs +93 -0
  489. package/dist/data/athena-member.cjs.map +1 -0
  490. package/dist/data/athena-member.d.ts +125 -0
  491. package/dist/data/athena-member.js +93 -0
  492. package/dist/data/athena-member.js.map +1 -0
  493. package/dist/data/athena-request.cjs +458 -0
  494. package/dist/data/athena-request.cjs.map +1 -0
  495. package/dist/data/athena-request.d.ts +120 -0
  496. package/dist/data/athena-request.js +458 -0
  497. package/dist/data/athena-request.js.map +1 -0
  498. package/dist/data/use-athena-fetch.cjs +14 -0
  499. package/dist/data/use-athena-fetch.cjs.map +1 -0
  500. package/dist/data/use-athena-fetch.d.ts +19 -0
  501. package/dist/data/use-athena-fetch.js +14 -0
  502. package/dist/data/use-athena-fetch.js.map +1 -0
  503. package/dist/data/use-athena-graphql.cjs +66 -0
  504. package/dist/data/use-athena-graphql.cjs.map +1 -0
  505. package/dist/data/use-athena-graphql.d.ts +56 -0
  506. package/dist/data/use-athena-graphql.js +66 -0
  507. package/dist/data/use-athena-graphql.js.map +1 -0
  508. package/dist/data/use-athena-rest.cjs +33 -0
  509. package/dist/data/use-athena-rest.cjs.map +1 -0
  510. package/dist/data/use-athena-rest.d.ts +21 -0
  511. package/dist/data/use-athena-rest.js +33 -0
  512. package/dist/data/use-athena-rest.js.map +1 -0
  513. package/dist/data/use-semantic-query.cjs +44 -0
  514. package/dist/data/use-semantic-query.cjs.map +1 -0
  515. package/dist/data/use-semantic-query.d.ts +92 -0
  516. package/dist/data/use-semantic-query.js +44 -0
  517. package/dist/data/use-semantic-query.js.map +1 -0
  518. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
  519. package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
  520. package/dist/diagnostics/athena-diagnostics.js.map +1 -1
  521. package/dist/diagnostics/errors.cjs +7 -0
  522. package/dist/diagnostics/errors.cjs.map +1 -1
  523. package/dist/diagnostics/errors.d.ts +7 -0
  524. package/dist/diagnostics/errors.js +7 -0
  525. package/dist/diagnostics/errors.js.map +1 -1
  526. package/dist/index.cjs +155 -11
  527. package/dist/index.cjs.map +1 -1
  528. package/dist/index.d.ts +72 -13
  529. package/dist/index.js +148 -4
  530. package/dist/index.js.map +1 -1
  531. package/dist/keryx-http/src/initial-sync.cjs +64 -16
  532. package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
  533. package/dist/keryx-http/src/initial-sync.d.ts +31 -1
  534. package/dist/keryx-http/src/initial-sync.js +64 -16
  535. package/dist/keryx-http/src/initial-sync.js.map +1 -1
  536. package/dist/keryx-http/src/own-awareness.cjs +20 -0
  537. package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
  538. package/dist/keryx-http/src/own-awareness.d.ts +50 -0
  539. package/dist/keryx-http/src/own-awareness.js +20 -0
  540. package/dist/keryx-http/src/own-awareness.js.map +1 -0
  541. package/dist/keryx-http/src/update-attributions.cjs +26 -1
  542. package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
  543. package/dist/keryx-http/src/update-attributions.d.ts +10 -1
  544. package/dist/keryx-http/src/update-attributions.js +26 -1
  545. package/dist/keryx-http/src/update-attributions.js.map +1 -1
  546. package/dist/offline/chat-outbox.cjs +262 -26
  547. package/dist/offline/chat-outbox.cjs.map +1 -1
  548. package/dist/offline/chat-outbox.d.ts +90 -12
  549. package/dist/offline/chat-outbox.js +263 -27
  550. package/dist/offline/chat-outbox.js.map +1 -1
  551. package/dist/provider/AthenaProvider.cjs +56 -19
  552. package/dist/provider/AthenaProvider.cjs.map +1 -1
  553. package/dist/provider/AthenaProvider.d.ts +24 -8
  554. package/dist/provider/AthenaProvider.js +57 -20
  555. package/dist/provider/AthenaProvider.js.map +1 -1
  556. package/dist/react/package.json.cjs +1 -1
  557. package/dist/react/package.json.js +1 -1
  558. package/dist/references/src/anchors/types.cjs +5 -0
  559. package/dist/references/src/anchors/types.cjs.map +1 -1
  560. package/dist/references/src/anchors/types.js +5 -0
  561. package/dist/references/src/anchors/types.js.map +1 -1
  562. package/dist/references/src/attachable.cjs +149 -0
  563. package/dist/references/src/attachable.cjs.map +1 -0
  564. package/dist/references/src/attachable.d.ts +87 -0
  565. package/dist/references/src/attachable.js +149 -0
  566. package/dist/references/src/attachable.js.map +1 -0
  567. package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
  568. package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
  569. package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
  570. package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
  571. package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
  572. package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
  573. package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
  574. package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
  575. package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
  576. package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
  577. package/dist/runtime/statewire-plan-mode.cjs +71 -0
  578. package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
  579. package/dist/runtime/statewire-plan-mode.d.ts +88 -0
  580. package/dist/runtime/statewire-plan-mode.js +71 -0
  581. package/dist/runtime/statewire-plan-mode.js.map +1 -0
  582. package/dist/runtime/statewire-run-config.cjs +3 -1
  583. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  584. package/dist/runtime/statewire-run-config.d.ts +7 -0
  585. package/dist/runtime/statewire-run-config.js +3 -1
  586. package/dist/runtime/statewire-run-config.js.map +1 -1
  587. package/dist/runtime/statewire-session-key.cjs +11 -5
  588. package/dist/runtime/statewire-session-key.cjs.map +1 -1
  589. package/dist/runtime/statewire-session-key.d.ts +22 -10
  590. package/dist/runtime/statewire-session-key.js +11 -5
  591. package/dist/runtime/statewire-session-key.js.map +1 -1
  592. package/dist/runtime/useAthenaStatewireRuntime.cjs +65 -8
  593. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  594. package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
  595. package/dist/runtime/useAthenaStatewireRuntime.js +67 -10
  596. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  597. package/dist/search/useAthenaAssets.cjs +394 -0
  598. package/dist/search/useAthenaAssets.cjs.map +1 -0
  599. package/dist/search/useAthenaAssets.d.ts +186 -0
  600. package/dist/search/useAthenaAssets.js +394 -0
  601. package/dist/search/useAthenaAssets.js.map +1 -0
  602. package/dist/sheet-range/index.cjs +4 -0
  603. package/dist/sheet-range/index.cjs.map +1 -1
  604. package/dist/sheet-range/index.d.ts +4 -2
  605. package/dist/sheet-range/index.js +4 -0
  606. package/dist/sheet-range/index.js.map +1 -1
  607. package/dist/sheet-range/query-range.cjs +102 -0
  608. package/dist/sheet-range/query-range.cjs.map +1 -0
  609. package/dist/sheet-range/query-range.d.ts +46 -0
  610. package/dist/sheet-range/query-range.js +102 -0
  611. package/dist/sheet-range/query-range.js.map +1 -0
  612. package/dist/styles.css +1 -1
  613. package/dist/subagents/index.cjs +49 -0
  614. package/dist/subagents/index.cjs.map +1 -0
  615. package/dist/subagents/index.d.ts +16 -0
  616. package/dist/subagents/index.js +49 -0
  617. package/dist/subagents/index.js.map +1 -0
  618. package/dist/subagents/lane-follow.cjs +19 -0
  619. package/dist/subagents/lane-follow.cjs.map +1 -0
  620. package/dist/subagents/lane-follow.d.ts +9 -0
  621. package/dist/subagents/lane-follow.js +19 -0
  622. package/dist/subagents/lane-follow.js.map +1 -0
  623. package/dist/subagents/lane-model.cjs +178 -0
  624. package/dist/subagents/lane-model.cjs.map +1 -0
  625. package/dist/subagents/lane-model.d.ts +140 -0
  626. package/dist/subagents/lane-model.js +178 -0
  627. package/dist/subagents/lane-model.js.map +1 -0
  628. package/dist/subagents/lane-parts.cjs +517 -0
  629. package/dist/subagents/lane-parts.cjs.map +1 -0
  630. package/dist/subagents/lane-parts.d.ts +130 -0
  631. package/dist/subagents/lane-parts.js +517 -0
  632. package/dist/subagents/lane-parts.js.map +1 -0
  633. package/dist/subagents/subagent-lane-group.cjs +215 -0
  634. package/dist/subagents/subagent-lane-group.cjs.map +1 -0
  635. package/dist/subagents/subagent-lane-group.d.ts +67 -0
  636. package/dist/subagents/subagent-lane-group.js +215 -0
  637. package/dist/subagents/subagent-lane-group.js.map +1 -0
  638. package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
  639. package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
  640. package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
  641. package/dist/subagents/subagent-transcript-drawer.js +431 -0
  642. package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
  643. package/dist/subagents/task-subagent-group.cjs +115 -0
  644. package/dist/subagents/task-subagent-group.cjs.map +1 -0
  645. package/dist/subagents/task-subagent-group.d.ts +36 -0
  646. package/dist/subagents/task-subagent-group.js +115 -0
  647. package/dist/subagents/task-subagent-group.js.map +1 -0
  648. package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
  649. package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
  650. package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
  651. package/dist/subagents/use-omitted-images-in-view.js +68 -0
  652. package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
  653. package/dist/threads/Inbox.cjs +2 -2
  654. package/dist/threads/Inbox.cjs.map +1 -1
  655. package/dist/threads/SessionList.cjs +6 -6
  656. package/dist/threads/SessionList.cjs.map +1 -1
  657. package/dist/threads/SessionsPage.cjs +13 -7
  658. package/dist/threads/SessionsPage.cjs.map +1 -1
  659. package/dist/threads/SessionsPage.d.ts +10 -1
  660. package/dist/threads/SessionsPage.js +9 -3
  661. package/dist/threads/SessionsPage.js.map +1 -1
  662. package/dist/threads/session-list-model.cjs.map +1 -1
  663. package/dist/threads/session-list-model.d.ts +2 -1
  664. package/dist/threads/session-list-model.js.map +1 -1
  665. package/dist/threads/session-row-parts.cjs +3 -3
  666. package/dist/threads/session-row-parts.cjs.map +1 -1
  667. package/dist/threads/sessions-page-model.cjs +13 -5
  668. package/dist/threads/sessions-page-model.cjs.map +1 -1
  669. package/dist/threads/sessions-page-model.d.ts +7 -0
  670. package/dist/threads/sessions-page-model.js +11 -3
  671. package/dist/threads/sessions-page-model.js.map +1 -1
  672. package/dist/threads/sessions-page-storage.cjs +8 -8
  673. package/dist/threads/sessions-page-storage.cjs.map +1 -1
  674. package/dist/threads/sessions-page-storage.d.ts +5 -1
  675. package/dist/threads/sessions-page-storage.js +8 -8
  676. package/dist/threads/sessions-page-storage.js.map +1 -1
  677. package/dist/threads/use-athena-sessions.cjs +1 -0
  678. package/dist/threads/use-athena-sessions.cjs.map +1 -1
  679. package/dist/threads/use-athena-sessions.d.ts +7 -0
  680. package/dist/threads/use-athena-sessions.js +1 -0
  681. package/dist/threads/use-athena-sessions.js.map +1 -1
  682. package/dist/threads/use-athena-thread-agent.cjs +31 -0
  683. package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
  684. package/dist/threads/use-athena-thread-agent.d.ts +38 -0
  685. package/dist/threads/use-athena-thread-agent.js +31 -0
  686. package/dist/threads/use-athena-thread-agent.js.map +1 -0
  687. package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
  688. package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
  689. package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
  690. package/dist/threads/use-athena-thread-plan-mode.js +18 -0
  691. package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
  692. package/dist/threads/use-rest-conversation-history.d.ts +1 -0
  693. package/dist/tools/agent-creations.cjs +97 -0
  694. package/dist/tools/agent-creations.cjs.map +1 -0
  695. package/dist/tools/agent-creations.d.ts +38 -0
  696. package/dist/tools/agent-creations.js +97 -0
  697. package/dist/tools/agent-creations.js.map +1 -0
  698. package/dist/tools/agent-highlights.cjs +100 -0
  699. package/dist/tools/agent-highlights.cjs.map +1 -0
  700. package/dist/tools/agent-highlights.d.ts +57 -0
  701. package/dist/tools/agent-highlights.js +100 -0
  702. package/dist/tools/agent-highlights.js.map +1 -0
  703. package/dist/tools/append-document-tool-ui.cjs +1 -0
  704. package/dist/tools/append-document-tool-ui.cjs.map +1 -1
  705. package/dist/tools/append-document-tool-ui.d.ts +7 -0
  706. package/dist/tools/append-document-tool-ui.js +2 -1
  707. package/dist/tools/append-document-tool-ui.js.map +1 -1
  708. package/dist/tools/auto-open-tools.cjs +144 -71
  709. package/dist/tools/auto-open-tools.cjs.map +1 -1
  710. package/dist/tools/auto-open-tools.d.ts +131 -1
  711. package/dist/tools/auto-open-tools.js +145 -72
  712. package/dist/tools/auto-open-tools.js.map +1 -1
  713. package/dist/tools/browser-tool-uis.cjs +594 -0
  714. package/dist/tools/browser-tool-uis.cjs.map +1 -0
  715. package/dist/tools/browser-tool-uis.d.ts +8 -0
  716. package/dist/tools/browser-tool-uis.js +594 -0
  717. package/dist/tools/browser-tool-uis.js.map +1 -0
  718. package/dist/tools/computer-asset-tool-uis.cjs +313 -0
  719. package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
  720. package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
  721. package/dist/tools/computer-asset-tool-uis.js +313 -0
  722. package/dist/tools/computer-asset-tool-uis.js.map +1 -0
  723. package/dist/tools/document-edit-tool-uis.cjs +218 -0
  724. package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
  725. package/dist/tools/document-edit-tool-uis.d.ts +40 -0
  726. package/dist/tools/document-edit-tool-uis.js +218 -0
  727. package/dist/tools/document-edit-tool-uis.js.map +1 -0
  728. package/dist/tools/drive-tool-uis.cjs +425 -0
  729. package/dist/tools/drive-tool-uis.cjs.map +1 -0
  730. package/dist/tools/drive-tool-uis.d.ts +120 -0
  731. package/dist/tools/drive-tool-uis.js +425 -0
  732. package/dist/tools/drive-tool-uis.js.map +1 -0
  733. package/dist/tools/email-calendar-tool-uis.cjs +789 -0
  734. package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
  735. package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
  736. package/dist/tools/email-calendar-tool-uis.js +789 -0
  737. package/dist/tools/email-calendar-tool-uis.js.map +1 -0
  738. package/dist/tools/ontology-tool-uis.cjs +83 -0
  739. package/dist/tools/ontology-tool-uis.cjs.map +1 -0
  740. package/dist/tools/ontology-tool-uis.d.ts +9 -0
  741. package/dist/tools/ontology-tool-uis.js +83 -0
  742. package/dist/tools/ontology-tool-uis.js.map +1 -0
  743. package/dist/tools/orchestration-tool-uis.cjs +586 -0
  744. package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
  745. package/dist/tools/orchestration-tool-uis.d.ts +141 -0
  746. package/dist/tools/orchestration-tool-uis.js +586 -0
  747. package/dist/tools/orchestration-tool-uis.js.map +1 -0
  748. package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
  749. package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
  750. package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
  751. package/dist/tools/presentation-edit-tool-uis.js +516 -0
  752. package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
  753. package/dist/tools/project-tool-uis.cjs +213 -0
  754. package/dist/tools/project-tool-uis.cjs.map +1 -0
  755. package/dist/tools/project-tool-uis.d.ts +14 -0
  756. package/dist/tools/project-tool-uis.js +213 -0
  757. package/dist/tools/project-tool-uis.js.map +1 -0
  758. package/dist/tools/sandbox-tool-uis.cjs +491 -0
  759. package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
  760. package/dist/tools/sandbox-tool-uis.d.ts +116 -0
  761. package/dist/tools/sandbox-tool-uis.js +491 -0
  762. package/dist/tools/sandbox-tool-uis.js.map +1 -0
  763. package/dist/tools/sheet-query-tool-ui.cjs +138 -0
  764. package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
  765. package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
  766. package/dist/tools/sheet-query-tool-ui.js +138 -0
  767. package/dist/tools/sheet-query-tool-ui.js.map +1 -0
  768. package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
  769. package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
  770. package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
  771. package/dist/tools/studio-screenshot-tool-uis.js +262 -0
  772. package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
  773. package/dist/tools/subagent-task-tool-ui.cjs +24 -475
  774. package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
  775. package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
  776. package/dist/tools/subagent-task-tool-ui.js +28 -479
  777. package/dist/tools/subagent-task-tool-ui.js.map +1 -1
  778. package/dist/tools/tool-summary.cjs +36 -0
  779. package/dist/tools/tool-summary.cjs.map +1 -1
  780. package/dist/tools/tool-summary.js +36 -0
  781. package/dist/tools/tool-summary.js.map +1 -1
  782. package/dist/tools/tool-uis.cjs +181 -53
  783. package/dist/tools/tool-uis.cjs.map +1 -1
  784. package/dist/tools/tool-uis.d.ts +40 -0
  785. package/dist/tools/tool-uis.js +183 -55
  786. package/dist/tools/tool-uis.js.map +1 -1
  787. package/dist/typed-interrupts/index.cjs +15 -0
  788. package/dist/typed-interrupts/index.cjs.map +1 -0
  789. package/dist/typed-interrupts/index.d.ts +20 -0
  790. package/dist/typed-interrupts/index.js +15 -0
  791. package/dist/typed-interrupts/index.js.map +1 -0
  792. package/dist/workbench/session-workbench-panes.cjs +6 -6
  793. package/dist/workbench/session-workbench-panes.cjs.map +1 -1
  794. package/package.json +28 -6
  795. package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
  796. package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
  797. package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
  798. package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
  799. package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
@@ -0,0 +1,213 @@
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 driveToolUis = require("./drive-tool-uis.cjs");
7
+ const primitives = require("./primitives.cjs");
8
+ const toolFallback = require("./tool-fallback.cjs");
9
+ const toolResult = require("../agent-runtime/src/tool-result.cjs");
10
+ function ProjectChipLine({ projectAssetId }) {
11
+ return /* @__PURE__ */ jsxRuntime.jsxs(driveToolUis.AssetChipLine, { children: [
12
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "for" }),
13
+ /* @__PURE__ */ jsxRuntime.jsx(driveToolUis.AssetChip, { assetId: projectAssetId, fallbackLabel: "Project", assetType: "project" })
14
+ ] });
15
+ }
16
+ const PM_DOCUMENT_LABELS = {
17
+ goals: "GOALS.md",
18
+ plan: "PLAN.md",
19
+ activity_log: "ACTIVITY_LOG.md",
20
+ summary: "PM_SUMMARY.md",
21
+ memory: "MEMORY.md"
22
+ };
23
+ const PM_OPERATION_RUNNING = {
24
+ read: "Reading",
25
+ patch: "Patching",
26
+ rewrite: "Rewriting",
27
+ append: "Appending to"
28
+ };
29
+ const PM_OPERATION_DONE = {
30
+ patch: "Patched",
31
+ rewrite: "Rewrote content in",
32
+ append: "Appended content in"
33
+ };
34
+ function pmPatches(value) {
35
+ if (!Array.isArray(value)) return [];
36
+ return value.flatMap(
37
+ (patch) => toolResult.isRecord(patch) ? [
38
+ {
39
+ old: typeof patch.old === "string" ? patch.old : "",
40
+ new: typeof patch.new === "string" ? patch.new : ""
41
+ }
42
+ ] : []
43
+ );
44
+ }
45
+ function pmDocumentsPreview({
46
+ args,
47
+ data
48
+ }) {
49
+ const parts = [];
50
+ const warning = toolResult.stringField(data, ["warning"]);
51
+ if (warning) parts.push({ kind: "text", text: `⚠️ ${warning}` });
52
+ const content = toolResult.stringField(data, ["content"]);
53
+ const patches = pmPatches(args.patches);
54
+ const newContent = toolResult.stringField(args, ["new_content", "content"]);
55
+ if (toolResult.stringField(data, ["operation"]) === "read" && content) {
56
+ const startLine = driveToolUis.numberField(data, "start_line") ?? 0;
57
+ const before = driveToolUis.numberField(data, "lines_before");
58
+ const after = driveToolUis.numberField(data, "lines_after");
59
+ if (before !== void 0 && after !== void 0 && (before > 0 || after > 0)) {
60
+ const lastLine = startLine + (driveToolUis.numberField(data, "lines_returned") ?? 0);
61
+ const total = driveToolUis.numberField(data, "total_lines") ?? "?";
62
+ parts.push({
63
+ kind: "text",
64
+ text: `Lines ${startLine + 1}–${lastLine} of ${total} (${before} before, ${after} after)`
65
+ });
66
+ }
67
+ parts.push({ kind: "text", text: content });
68
+ } else if (patches.length > 0) {
69
+ parts.push({ kind: "patches", patches });
70
+ } else if (newContent) {
71
+ parts.push({ kind: "text", text: newContent });
72
+ }
73
+ const logEntry = toolResult.stringField(args, ["activity_log_entry"]);
74
+ if (logEntry) parts.push({ kind: "text", text: `Activity log: ${logEntry}` });
75
+ if ((data == null ? void 0 : data.activity_log_recorded) === true) {
76
+ parts.push({ kind: "text", text: "✓ Activity log entry recorded" });
77
+ }
78
+ return parts;
79
+ }
80
+ function PmPatchList({ patches }) {
81
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-1.5 text-xs", children: patches.map((patch, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [
82
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium text-muted-foreground", children: [
83
+ index + 1,
84
+ "."
85
+ ] }),
86
+ patch.old ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "break-all rounded bg-destructive/10 px-1.5 py-0.5 text-destructive line-through", children: patch.old }) : null,
87
+ patch.new ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "break-all rounded bg-emerald-500/10 px-1.5 py-0.5 text-emerald-600", children: patch.new }) : null
88
+ ] }, index)) });
89
+ }
90
+ function PmDocumentsPreview({ parts }) {
91
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-3", children: parts.map(
92
+ (part, index) => part.kind === "patches" ? /* @__PURE__ */ jsxRuntime.jsx(PmPatchList, { patches: part.patches }, index) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "whitespace-pre-wrap break-words text-xs text-muted-foreground", children: part.text }, index)
93
+ ) });
94
+ }
95
+ function pmDocumentsDoneTitle({
96
+ data,
97
+ operation,
98
+ label,
99
+ projectAssetId
100
+ }) {
101
+ const message = toolResult.stringField(data, ["message"]);
102
+ if (toolResult.stringField(data, ["operation"]) === "read") {
103
+ const startLine = driveToolUis.numberField(data, "start_line") ?? 0;
104
+ const linesReturned = driveToolUis.numberField(data, "lines_returned");
105
+ const totalLines = driveToolUis.numberField(data, "total_lines");
106
+ const lineInfo = totalLines !== void 0 && linesReturned !== void 0 && linesReturned > 0 ? linesReturned < totalLines ? ` (lines ${startLine + 1}–${startLine + linesReturned} of ${totalLines})` : ` (${totalLines} lines)` : "";
107
+ return projectAssetId ? `Read ${label}${lineInfo}` : message ?? `Read ${label}`;
108
+ }
109
+ const verb = PM_OPERATION_DONE[operation] ?? "Updated";
110
+ if (!projectAssetId) return message ?? "PM document updated";
111
+ return `${(data == null ? void 0 : data.success) === true ? `Successfully ${verb.toLowerCase()}` : verb} ${label}`;
112
+ }
113
+ const PmDocumentsToolUIImpl = (props) => {
114
+ const { toolName, args, result, status, isError } = props;
115
+ const classification = toolResult.classifyToolResult({ status, result, isError });
116
+ if (classification.state === "rejected" || classification.state === "paused") {
117
+ return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.ClipboardListIcon });
118
+ }
119
+ const typedArgs = driveToolUis.argsRecord(args);
120
+ const data = primitives.normalizeResult(result);
121
+ const projectAssetId = toolResult.stringField(data, ["project_asset_id"]) ?? toolResult.stringField(typedArgs, ["project_asset_id"]);
122
+ const documentKey = toolResult.stringField(data, ["document"]) ?? toolResult.stringField(typedArgs, ["document"]) ?? "";
123
+ const label = PM_DOCUMENT_LABELS[documentKey] ?? documentKey;
124
+ const argOperation = toolResult.stringField(typedArgs, ["operation"]) ?? "";
125
+ const operation = toolResult.stringField(data, ["operation"]) ?? argOperation;
126
+ const patchCount = driveToolUis.numberField(data, "patch_count") ?? (Array.isArray(typedArgs.patches) ? typedArgs.patches.length : void 0);
127
+ const patchSuffix = operation === "patch" && patchCount ? ` (${patchCount} patch${patchCount !== 1 ? "es" : ""})` : "";
128
+ const startLineArg = driveToolUis.numberField(typedArgs, "start_line");
129
+ const readFromSuffix = argOperation === "read" && startLineArg !== void 0 && startLineArg > 0 ? ` (from line ${startLineArg + 1})` : "";
130
+ const running = `${PM_OPERATION_RUNNING[argOperation] ?? "Updating"} ${label}${patchSuffix}${readFromSuffix}...`;
131
+ const card = driveToolUis.toolCardOutcome({
132
+ status,
133
+ classification,
134
+ resultFailure: (data == null ? void 0 : data.success) === false ? toolResult.stringField(data, ["message"]) ?? "Failed to access PM document" : null
135
+ });
136
+ const title = card.status === "running" ? running : card.status === "complete" ? pmDocumentsDoneTitle({ data, operation, label, projectAssetId }) : driveToolUis.withoutEllipsis(running);
137
+ const preview = pmDocumentsPreview({ args: typedArgs, data });
138
+ return /* @__PURE__ */ jsxRuntime.jsxs(
139
+ primitives.ToolCard,
140
+ {
141
+ icon: lucideReact.ClipboardListIcon,
142
+ status: card.status,
143
+ title,
144
+ toolName,
145
+ args: typedArgs,
146
+ result,
147
+ error: card.failure,
148
+ children: [
149
+ card.status === "complete" && projectAssetId ? /* @__PURE__ */ jsxRuntime.jsx(ProjectChipLine, { projectAssetId }) : null,
150
+ preview.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show details", children: /* @__PURE__ */ jsxRuntime.jsx(PmDocumentsPreview, { parts: preview }) }) : null
151
+ ]
152
+ }
153
+ );
154
+ };
155
+ const PmDocumentsToolUI = require$$0.memo(
156
+ PmDocumentsToolUIImpl
157
+ );
158
+ PmDocumentsToolUI.displayName = "PmDocumentsToolUI";
159
+ function roadmapTitle(data) {
160
+ if (!data) return "Roadmap retrieved";
161
+ const goals = driveToolUis.numberField(data, "goals_count");
162
+ const phases = driveToolUis.numberField(data, "phases_count");
163
+ if (goals === 0 && phases === 0) {
164
+ return toolResult.stringField(data, ["message"]) ?? "No roadmap data found";
165
+ }
166
+ const parts = [];
167
+ if (goals !== void 0) parts.push(`${goals} goal(s)`);
168
+ if (phases !== void 0) parts.push(`${phases} phase(s)`);
169
+ const currentPhase = toolResult.stringField(data, ["current_phase"]);
170
+ if (currentPhase) parts.push(`Current: ${currentPhase}`);
171
+ return parts.length > 0 ? `Roadmap: ${parts.join(" · ")}` : "Roadmap retrieved";
172
+ }
173
+ const GetPmRoadmapToolUIImpl = (props) => {
174
+ const { toolName, args, result, status, isError } = props;
175
+ const classification = toolResult.classifyToolResult({ status, result, isError });
176
+ if (classification.state === "rejected" || classification.state === "paused") {
177
+ return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.ClipboardListIcon });
178
+ }
179
+ const typedArgs = driveToolUis.argsRecord(args);
180
+ const data = primitives.normalizeResult(result);
181
+ const projectAssetId = toolResult.stringField(data, ["project_asset_id"]) ?? toolResult.stringField(typedArgs, ["project_asset_id"]);
182
+ const card = driveToolUis.toolCardOutcome({
183
+ status,
184
+ classification,
185
+ resultFailure: (data == null ? void 0 : data.success) === false ? toolResult.stringField(data, ["message"]) ?? "Failed to read roadmap" : null
186
+ });
187
+ const running = "Reading PM roadmap...";
188
+ const title = card.status === "running" ? running : card.status === "complete" ? roadmapTitle(data) : driveToolUis.withoutEllipsis(running);
189
+ const roadmap = card.status === "complete" ? toolResult.stringField(data, ["roadmap"]) : null;
190
+ return /* @__PURE__ */ jsxRuntime.jsxs(
191
+ primitives.ToolCard,
192
+ {
193
+ icon: lucideReact.ClipboardListIcon,
194
+ status: card.status,
195
+ title,
196
+ toolName,
197
+ args: typedArgs,
198
+ result,
199
+ error: card.failure,
200
+ children: [
201
+ card.status === "complete" && projectAssetId ? /* @__PURE__ */ jsxRuntime.jsx(ProjectChipLine, { projectAssetId }) : null,
202
+ roadmap ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show roadmap", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "whitespace-pre-wrap break-words text-xs text-muted-foreground", children: roadmap }) }) : null
203
+ ]
204
+ }
205
+ );
206
+ };
207
+ const GetPmRoadmapToolUI = require$$0.memo(
208
+ GetPmRoadmapToolUIImpl
209
+ );
210
+ GetPmRoadmapToolUI.displayName = "GetPmRoadmapToolUI";
211
+ exports.GetPmRoadmapToolUI = GetPmRoadmapToolUI;
212
+ exports.PmDocumentsToolUI = PmDocumentsToolUI;
213
+ //# sourceMappingURL=project-tool-uis.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-tool-uis.cjs","sources":["../../src/tools/project-tool-uis.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The project manager's cards, as Athena on the web draws them:\n * `pm_documents` (which of the PM's documents the agent read or changed, the\n * lines it read and the change it made) and `get_pm_roadmap` (the roadmap's\n * goals, phases and current phase, and the roadmap itself), each finishing\n * with the project as a chip that opens it.\n *\n * Olympus names the project by its title, read from its asset cache; these\n * tools return only the project's id, so its chip says \"Project\". Olympus\n * renders the previews as Markdown; here they show as the text they are.\n */\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport { classifyToolResult, isRecord, stringField } from \"@athenaintel/agent-runtime\";\nimport { ClipboardListIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport {\n argsRecord,\n AssetChip,\n AssetChipLine,\n numberField,\n toolCardOutcome,\n withoutEllipsis,\n} from \"./drive-tool-uis\";\nimport { ExpandableSection, normalizeResult, ToolCard } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\n/** \"for [Project]\": the end of a project manager card's sentence. */\nfunction ProjectChipLine({ projectAssetId }: { projectAssetId: string }) {\n return (\n <AssetChipLine>\n <span>for</span>\n <AssetChip assetId={projectAssetId} fallbackLabel=\"Project\" assetType=\"project\" />\n </AssetChipLine>\n );\n}\n\n// ─── pm_documents ────────────────────────────────────────────────────\n\nconst PM_DOCUMENT_LABELS: Record<string, string> = {\n goals: \"GOALS.md\",\n plan: \"PLAN.md\",\n activity_log: \"ACTIVITY_LOG.md\",\n summary: \"PM_SUMMARY.md\",\n memory: \"MEMORY.md\",\n};\n\nconst PM_OPERATION_RUNNING: Record<string, string> = {\n read: \"Reading\",\n patch: \"Patching\",\n rewrite: \"Rewriting\",\n append: \"Appending to\",\n};\n\nconst PM_OPERATION_DONE: Record<string, string> = {\n patch: \"Patched\",\n rewrite: \"Rewrote content in\",\n append: \"Appended content in\",\n};\n\ninterface PmPatch {\n old: string;\n new: string;\n}\n\n/** The `{ old, new }` patches the call carries, as they stream (a half-written patch has one side, or neither). */\nfunction pmPatches(value: unknown): PmPatch[] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((patch) =>\n isRecord(patch)\n ? [\n {\n old: typeof patch.old === \"string\" ? patch.old : \"\",\n new: typeof patch.new === \"string\" ? patch.new : \"\",\n },\n ]\n : [],\n );\n}\n\ntype PmPreviewPart = { kind: \"text\"; text: string } | { kind: \"patches\"; patches: PmPatch[] };\n\n/**\n * What the details show, in Olympus's order: the result's warning, then the\n * lines read (with where they sit in the document), or the patches, or the\n * content written, then the activity log entry and whether it was recorded.\n */\nfunction pmDocumentsPreview({\n args,\n data,\n}: {\n args: Record<string, unknown>;\n data: Record<string, unknown> | null;\n}): PmPreviewPart[] {\n const parts: PmPreviewPart[] = [];\n const warning = stringField(data, [\"warning\"]);\n if (warning) parts.push({ kind: \"text\", text: `⚠️ ${warning}` });\n\n const content = stringField(data, [\"content\"]);\n const patches = pmPatches(args.patches);\n const newContent = stringField(args, [\"new_content\", \"content\"]);\n if (stringField(data, [\"operation\"]) === \"read\" && content) {\n const startLine = numberField(data, \"start_line\") ?? 0;\n const before = numberField(data, \"lines_before\");\n const after = numberField(data, \"lines_after\");\n if (before !== undefined && after !== undefined && (before > 0 || after > 0)) {\n const lastLine = startLine + (numberField(data, \"lines_returned\") ?? 0);\n const total = numberField(data, \"total_lines\") ?? \"?\";\n parts.push({\n kind: \"text\",\n text: `Lines ${startLine + 1}–${lastLine} of ${total} (${before} before, ${after} after)`,\n });\n }\n parts.push({ kind: \"text\", text: content });\n } else if (patches.length > 0) {\n parts.push({ kind: \"patches\", patches });\n } else if (newContent) {\n parts.push({ kind: \"text\", text: newContent });\n }\n\n const logEntry = stringField(args, [\"activity_log_entry\"]);\n if (logEntry) parts.push({ kind: \"text\", text: `Activity log: ${logEntry}` });\n if (data?.activity_log_recorded === true) {\n parts.push({ kind: \"text\", text: \"✓ Activity log entry recorded\" });\n }\n return parts;\n}\n\nfunction PmPatchList({ patches }: { patches: PmPatch[] }) {\n return (\n <div className=\"flex flex-col gap-1.5 text-xs\">\n {patches.map((patch, index) => (\n <div key={index} className=\"flex flex-col gap-0.5\">\n <span className=\"font-medium text-muted-foreground\">{index + 1}.</span>\n {patch.old ? (\n <span className=\"break-all rounded bg-destructive/10 px-1.5 py-0.5 text-destructive line-through\">\n {patch.old}\n </span>\n ) : null}\n {patch.new ? (\n <span className=\"break-all rounded bg-emerald-500/10 px-1.5 py-0.5 text-emerald-600\">\n {patch.new}\n </span>\n ) : null}\n </div>\n ))}\n </div>\n );\n}\n\nfunction PmDocumentsPreview({ parts }: { parts: PmPreviewPart[] }) {\n return (\n <div className=\"flex flex-col gap-3\">\n {parts.map((part, index) =>\n part.kind === \"patches\" ? (\n <PmPatchList key={index} patches={part.patches} />\n ) : (\n <p key={index} className=\"whitespace-pre-wrap break-words text-xs text-muted-foreground\">\n {part.text}\n </p>\n ),\n )}\n </div>\n );\n}\n\n/** What a settled call did, in Olympus's words (\"Read GOALS.md (lines 1–100 of 240)\", \"Successfully patched PLAN.md\"). */\nfunction pmDocumentsDoneTitle({\n data,\n operation,\n label,\n projectAssetId,\n}: {\n data: Record<string, unknown> | null;\n operation: string;\n label: string;\n projectAssetId: string | null;\n}): string {\n const message = stringField(data, [\"message\"]);\n if (stringField(data, [\"operation\"]) === \"read\") {\n const startLine = numberField(data, \"start_line\") ?? 0;\n const linesReturned = numberField(data, \"lines_returned\");\n const totalLines = numberField(data, \"total_lines\");\n const lineInfo =\n totalLines !== undefined && linesReturned !== undefined && linesReturned > 0\n ? linesReturned < totalLines\n ? ` (lines ${startLine + 1}–${startLine + linesReturned} of ${totalLines})`\n : ` (${totalLines} lines)`\n : \"\";\n return projectAssetId ? `Read ${label}${lineInfo}` : (message ?? `Read ${label}`);\n }\n const verb = PM_OPERATION_DONE[operation] ?? \"Updated\";\n if (!projectAssetId) return message ?? \"PM document updated\";\n return `${data?.success === true ? `Successfully ${verb.toLowerCase()}` : verb} ${label}`;\n}\n\nconst PmDocumentsToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n // A write refused at the approval gate or parked by the runtime is the\n // generic card's to draw: it is neither a result nor a failure.\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={ClipboardListIcon} />;\n }\n const typedArgs = argsRecord(args);\n const data = normalizeResult(result);\n const projectAssetId =\n stringField(data, [\"project_asset_id\"]) ?? stringField(typedArgs, [\"project_asset_id\"]);\n const documentKey = stringField(data, [\"document\"]) ?? stringField(typedArgs, [\"document\"]) ?? \"\";\n const label = PM_DOCUMENT_LABELS[documentKey] ?? documentKey;\n const argOperation = stringField(typedArgs, [\"operation\"]) ?? \"\";\n const operation = stringField(data, [\"operation\"]) ?? argOperation;\n\n const patchCount =\n numberField(data, \"patch_count\") ??\n (Array.isArray(typedArgs.patches) ? typedArgs.patches.length : undefined);\n const patchSuffix =\n operation === \"patch\" && patchCount\n ? ` (${patchCount} patch${patchCount !== 1 ? \"es\" : \"\"})`\n : \"\";\n const startLineArg = numberField(typedArgs, \"start_line\");\n const readFromSuffix =\n argOperation === \"read\" && startLineArg !== undefined && startLineArg > 0\n ? ` (from line ${startLineArg + 1})`\n : \"\";\n const running = `${PM_OPERATION_RUNNING[argOperation] ?? \"Updating\"} ${label}${patchSuffix}${readFromSuffix}...`;\n\n // pm_documents answers every refusal as `{ success: false, message }`.\n const card = toolCardOutcome({\n status,\n classification,\n resultFailure:\n data?.success === false\n ? (stringField(data, [\"message\"]) ?? \"Failed to access PM document\")\n : null,\n });\n const title =\n card.status === \"running\"\n ? running\n : card.status === \"complete\"\n ? pmDocumentsDoneTitle({ data, operation, label, projectAssetId })\n : withoutEllipsis(running);\n const preview = pmDocumentsPreview({ args: typedArgs, data });\n\n return (\n <ToolCard\n icon={ClipboardListIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && projectAssetId ? (\n <ProjectChipLine projectAssetId={projectAssetId} />\n ) : null}\n {preview.length > 0 ? (\n <ExpandableSection label=\"Show details\">\n <PmDocumentsPreview parts={preview} />\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const PmDocumentsToolUI = memo(\n PmDocumentsToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nPmDocumentsToolUI.displayName = \"PmDocumentsToolUI\";\n\n// ─── get_pm_roadmap ──────────────────────────────────────────────────\n\n/** The roadmap's counts in Olympus's words (\"Roadmap: 3 goal(s) · 4 phase(s) · Current: Phase 2: Build\"). */\nfunction roadmapTitle(data: Record<string, unknown> | null): string {\n if (!data) return \"Roadmap retrieved\";\n const goals = numberField(data, \"goals_count\");\n const phases = numberField(data, \"phases_count\");\n if (goals === 0 && phases === 0) {\n return stringField(data, [\"message\"]) ?? \"No roadmap data found\";\n }\n const parts: string[] = [];\n if (goals !== undefined) parts.push(`${goals} goal(s)`);\n if (phases !== undefined) parts.push(`${phases} phase(s)`);\n const currentPhase = stringField(data, [\"current_phase\"]);\n if (currentPhase) parts.push(`Current: ${currentPhase}`);\n return parts.length > 0 ? `Roadmap: ${parts.join(\" · \")}` : \"Roadmap retrieved\";\n}\n\nconst GetPmRoadmapToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={ClipboardListIcon} />;\n }\n const typedArgs = argsRecord(args);\n const data = normalizeResult(result);\n const projectAssetId =\n stringField(data, [\"project_asset_id\"]) ?? stringField(typedArgs, [\"project_asset_id\"]);\n const card = toolCardOutcome({\n status,\n classification,\n resultFailure:\n data?.success === false ? (stringField(data, [\"message\"]) ?? \"Failed to read roadmap\") : null,\n });\n const running = \"Reading PM roadmap...\";\n const title =\n card.status === \"running\"\n ? running\n : card.status === \"complete\"\n ? roadmapTitle(data)\n : withoutEllipsis(running);\n const roadmap = card.status === \"complete\" ? stringField(data, [\"roadmap\"]) : null;\n\n return (\n <ToolCard\n icon={ClipboardListIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && projectAssetId ? (\n <ProjectChipLine projectAssetId={projectAssetId} />\n ) : null}\n {roadmap ? (\n <ExpandableSection label=\"Show roadmap\">\n <p className=\"whitespace-pre-wrap break-words text-xs text-muted-foreground\">{roadmap}</p>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const GetPmRoadmapToolUI = memo(\n GetPmRoadmapToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nGetPmRoadmapToolUI.displayName = \"GetPmRoadmapToolUI\";\n"],"names":["AssetChipLine","jsx","AssetChip","isRecord","stringField","numberField","jsxs","classifyToolResult","ToolFallback","ClipboardListIcon","argsRecord","normalizeResult","toolCardOutcome","withoutEllipsis","ToolCard","ExpandableSection","memo"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The project manager's cards, as Athena on the web draws them:
3
+ * `pm_documents` (which of the PM's documents the agent read or changed, the
4
+ * lines it read and the change it made) and `get_pm_roadmap` (the roadmap's
5
+ * goals, phases and current phase, and the roadmap itself), each finishing
6
+ * with the project as a chip that opens it.
7
+ *
8
+ * Olympus names the project by its title, read from its asset cache; these
9
+ * tools return only the project's id, so its chip says "Project". Olympus
10
+ * renders the previews as Markdown; here they show as the text they are.
11
+ */
12
+ import type { ToolCallMessagePartComponent } from "@assistant-ui/react";
13
+ export declare const PmDocumentsToolUI: ToolCallMessagePartComponent;
14
+ export declare const GetPmRoadmapToolUI: ToolCallMessagePartComponent;
@@ -0,0 +1,213 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { ClipboardListIcon } from "lucide-react";
3
+ import { memo } from "react";
4
+ import { toolCardOutcome, withoutEllipsis, numberField, argsRecord, AssetChipLine, AssetChip } from "./drive-tool-uis.js";
5
+ import { normalizeResult, ToolCard, ExpandableSection } from "./primitives.js";
6
+ import { ToolFallback } from "./tool-fallback.js";
7
+ import { classifyToolResult, stringField, isRecord } from "../agent-runtime/src/tool-result.js";
8
+ function ProjectChipLine({ projectAssetId }) {
9
+ return /* @__PURE__ */ jsxs(AssetChipLine, { children: [
10
+ /* @__PURE__ */ jsx("span", { children: "for" }),
11
+ /* @__PURE__ */ jsx(AssetChip, { assetId: projectAssetId, fallbackLabel: "Project", assetType: "project" })
12
+ ] });
13
+ }
14
+ const PM_DOCUMENT_LABELS = {
15
+ goals: "GOALS.md",
16
+ plan: "PLAN.md",
17
+ activity_log: "ACTIVITY_LOG.md",
18
+ summary: "PM_SUMMARY.md",
19
+ memory: "MEMORY.md"
20
+ };
21
+ const PM_OPERATION_RUNNING = {
22
+ read: "Reading",
23
+ patch: "Patching",
24
+ rewrite: "Rewriting",
25
+ append: "Appending to"
26
+ };
27
+ const PM_OPERATION_DONE = {
28
+ patch: "Patched",
29
+ rewrite: "Rewrote content in",
30
+ append: "Appended content in"
31
+ };
32
+ function pmPatches(value) {
33
+ if (!Array.isArray(value)) return [];
34
+ return value.flatMap(
35
+ (patch) => isRecord(patch) ? [
36
+ {
37
+ old: typeof patch.old === "string" ? patch.old : "",
38
+ new: typeof patch.new === "string" ? patch.new : ""
39
+ }
40
+ ] : []
41
+ );
42
+ }
43
+ function pmDocumentsPreview({
44
+ args,
45
+ data
46
+ }) {
47
+ const parts = [];
48
+ const warning = stringField(data, ["warning"]);
49
+ if (warning) parts.push({ kind: "text", text: `⚠️ ${warning}` });
50
+ const content = stringField(data, ["content"]);
51
+ const patches = pmPatches(args.patches);
52
+ const newContent = stringField(args, ["new_content", "content"]);
53
+ if (stringField(data, ["operation"]) === "read" && content) {
54
+ const startLine = numberField(data, "start_line") ?? 0;
55
+ const before = numberField(data, "lines_before");
56
+ const after = numberField(data, "lines_after");
57
+ if (before !== void 0 && after !== void 0 && (before > 0 || after > 0)) {
58
+ const lastLine = startLine + (numberField(data, "lines_returned") ?? 0);
59
+ const total = numberField(data, "total_lines") ?? "?";
60
+ parts.push({
61
+ kind: "text",
62
+ text: `Lines ${startLine + 1}–${lastLine} of ${total} (${before} before, ${after} after)`
63
+ });
64
+ }
65
+ parts.push({ kind: "text", text: content });
66
+ } else if (patches.length > 0) {
67
+ parts.push({ kind: "patches", patches });
68
+ } else if (newContent) {
69
+ parts.push({ kind: "text", text: newContent });
70
+ }
71
+ const logEntry = stringField(args, ["activity_log_entry"]);
72
+ if (logEntry) parts.push({ kind: "text", text: `Activity log: ${logEntry}` });
73
+ if ((data == null ? void 0 : data.activity_log_recorded) === true) {
74
+ parts.push({ kind: "text", text: "✓ Activity log entry recorded" });
75
+ }
76
+ return parts;
77
+ }
78
+ function PmPatchList({ patches }) {
79
+ return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1.5 text-xs", children: patches.map((patch, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
80
+ /* @__PURE__ */ jsxs("span", { className: "font-medium text-muted-foreground", children: [
81
+ index + 1,
82
+ "."
83
+ ] }),
84
+ patch.old ? /* @__PURE__ */ jsx("span", { className: "break-all rounded bg-destructive/10 px-1.5 py-0.5 text-destructive line-through", children: patch.old }) : null,
85
+ patch.new ? /* @__PURE__ */ jsx("span", { className: "break-all rounded bg-emerald-500/10 px-1.5 py-0.5 text-emerald-600", children: patch.new }) : null
86
+ ] }, index)) });
87
+ }
88
+ function PmDocumentsPreview({ parts }) {
89
+ return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children: parts.map(
90
+ (part, index) => part.kind === "patches" ? /* @__PURE__ */ jsx(PmPatchList, { patches: part.patches }, index) : /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap break-words text-xs text-muted-foreground", children: part.text }, index)
91
+ ) });
92
+ }
93
+ function pmDocumentsDoneTitle({
94
+ data,
95
+ operation,
96
+ label,
97
+ projectAssetId
98
+ }) {
99
+ const message = stringField(data, ["message"]);
100
+ if (stringField(data, ["operation"]) === "read") {
101
+ const startLine = numberField(data, "start_line") ?? 0;
102
+ const linesReturned = numberField(data, "lines_returned");
103
+ const totalLines = numberField(data, "total_lines");
104
+ const lineInfo = totalLines !== void 0 && linesReturned !== void 0 && linesReturned > 0 ? linesReturned < totalLines ? ` (lines ${startLine + 1}–${startLine + linesReturned} of ${totalLines})` : ` (${totalLines} lines)` : "";
105
+ return projectAssetId ? `Read ${label}${lineInfo}` : message ?? `Read ${label}`;
106
+ }
107
+ const verb = PM_OPERATION_DONE[operation] ?? "Updated";
108
+ if (!projectAssetId) return message ?? "PM document updated";
109
+ return `${(data == null ? void 0 : data.success) === true ? `Successfully ${verb.toLowerCase()}` : verb} ${label}`;
110
+ }
111
+ const PmDocumentsToolUIImpl = (props) => {
112
+ const { toolName, args, result, status, isError } = props;
113
+ const classification = classifyToolResult({ status, result, isError });
114
+ if (classification.state === "rejected" || classification.state === "paused") {
115
+ return /* @__PURE__ */ jsx(ToolFallback, { ...props, icon: ClipboardListIcon });
116
+ }
117
+ const typedArgs = argsRecord(args);
118
+ const data = normalizeResult(result);
119
+ const projectAssetId = stringField(data, ["project_asset_id"]) ?? stringField(typedArgs, ["project_asset_id"]);
120
+ const documentKey = stringField(data, ["document"]) ?? stringField(typedArgs, ["document"]) ?? "";
121
+ const label = PM_DOCUMENT_LABELS[documentKey] ?? documentKey;
122
+ const argOperation = stringField(typedArgs, ["operation"]) ?? "";
123
+ const operation = stringField(data, ["operation"]) ?? argOperation;
124
+ const patchCount = numberField(data, "patch_count") ?? (Array.isArray(typedArgs.patches) ? typedArgs.patches.length : void 0);
125
+ const patchSuffix = operation === "patch" && patchCount ? ` (${patchCount} patch${patchCount !== 1 ? "es" : ""})` : "";
126
+ const startLineArg = numberField(typedArgs, "start_line");
127
+ const readFromSuffix = argOperation === "read" && startLineArg !== void 0 && startLineArg > 0 ? ` (from line ${startLineArg + 1})` : "";
128
+ const running = `${PM_OPERATION_RUNNING[argOperation] ?? "Updating"} ${label}${patchSuffix}${readFromSuffix}...`;
129
+ const card = toolCardOutcome({
130
+ status,
131
+ classification,
132
+ resultFailure: (data == null ? void 0 : data.success) === false ? stringField(data, ["message"]) ?? "Failed to access PM document" : null
133
+ });
134
+ const title = card.status === "running" ? running : card.status === "complete" ? pmDocumentsDoneTitle({ data, operation, label, projectAssetId }) : withoutEllipsis(running);
135
+ const preview = pmDocumentsPreview({ args: typedArgs, data });
136
+ return /* @__PURE__ */ jsxs(
137
+ ToolCard,
138
+ {
139
+ icon: ClipboardListIcon,
140
+ status: card.status,
141
+ title,
142
+ toolName,
143
+ args: typedArgs,
144
+ result,
145
+ error: card.failure,
146
+ children: [
147
+ card.status === "complete" && projectAssetId ? /* @__PURE__ */ jsx(ProjectChipLine, { projectAssetId }) : null,
148
+ preview.length > 0 ? /* @__PURE__ */ jsx(ExpandableSection, { label: "Show details", children: /* @__PURE__ */ jsx(PmDocumentsPreview, { parts: preview }) }) : null
149
+ ]
150
+ }
151
+ );
152
+ };
153
+ const PmDocumentsToolUI = memo(
154
+ PmDocumentsToolUIImpl
155
+ );
156
+ PmDocumentsToolUI.displayName = "PmDocumentsToolUI";
157
+ function roadmapTitle(data) {
158
+ if (!data) return "Roadmap retrieved";
159
+ const goals = numberField(data, "goals_count");
160
+ const phases = numberField(data, "phases_count");
161
+ if (goals === 0 && phases === 0) {
162
+ return stringField(data, ["message"]) ?? "No roadmap data found";
163
+ }
164
+ const parts = [];
165
+ if (goals !== void 0) parts.push(`${goals} goal(s)`);
166
+ if (phases !== void 0) parts.push(`${phases} phase(s)`);
167
+ const currentPhase = stringField(data, ["current_phase"]);
168
+ if (currentPhase) parts.push(`Current: ${currentPhase}`);
169
+ return parts.length > 0 ? `Roadmap: ${parts.join(" · ")}` : "Roadmap retrieved";
170
+ }
171
+ const GetPmRoadmapToolUIImpl = (props) => {
172
+ const { toolName, args, result, status, isError } = props;
173
+ const classification = classifyToolResult({ status, result, isError });
174
+ if (classification.state === "rejected" || classification.state === "paused") {
175
+ return /* @__PURE__ */ jsx(ToolFallback, { ...props, icon: ClipboardListIcon });
176
+ }
177
+ const typedArgs = argsRecord(args);
178
+ const data = normalizeResult(result);
179
+ const projectAssetId = stringField(data, ["project_asset_id"]) ?? stringField(typedArgs, ["project_asset_id"]);
180
+ const card = toolCardOutcome({
181
+ status,
182
+ classification,
183
+ resultFailure: (data == null ? void 0 : data.success) === false ? stringField(data, ["message"]) ?? "Failed to read roadmap" : null
184
+ });
185
+ const running = "Reading PM roadmap...";
186
+ const title = card.status === "running" ? running : card.status === "complete" ? roadmapTitle(data) : withoutEllipsis(running);
187
+ const roadmap = card.status === "complete" ? stringField(data, ["roadmap"]) : null;
188
+ return /* @__PURE__ */ jsxs(
189
+ ToolCard,
190
+ {
191
+ icon: ClipboardListIcon,
192
+ status: card.status,
193
+ title,
194
+ toolName,
195
+ args: typedArgs,
196
+ result,
197
+ error: card.failure,
198
+ children: [
199
+ card.status === "complete" && projectAssetId ? /* @__PURE__ */ jsx(ProjectChipLine, { projectAssetId }) : null,
200
+ roadmap ? /* @__PURE__ */ jsx(ExpandableSection, { label: "Show roadmap", children: /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap break-words text-xs text-muted-foreground", children: roadmap }) }) : null
201
+ ]
202
+ }
203
+ );
204
+ };
205
+ const GetPmRoadmapToolUI = memo(
206
+ GetPmRoadmapToolUIImpl
207
+ );
208
+ GetPmRoadmapToolUI.displayName = "GetPmRoadmapToolUI";
209
+ export {
210
+ GetPmRoadmapToolUI,
211
+ PmDocumentsToolUI
212
+ };
213
+ //# sourceMappingURL=project-tool-uis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-tool-uis.js","sources":["../../src/tools/project-tool-uis.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The project manager's cards, as Athena on the web draws them:\n * `pm_documents` (which of the PM's documents the agent read or changed, the\n * lines it read and the change it made) and `get_pm_roadmap` (the roadmap's\n * goals, phases and current phase, and the roadmap itself), each finishing\n * with the project as a chip that opens it.\n *\n * Olympus names the project by its title, read from its asset cache; these\n * tools return only the project's id, so its chip says \"Project\". Olympus\n * renders the previews as Markdown; here they show as the text they are.\n */\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport { classifyToolResult, isRecord, stringField } from \"@athenaintel/agent-runtime\";\nimport { ClipboardListIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport {\n argsRecord,\n AssetChip,\n AssetChipLine,\n numberField,\n toolCardOutcome,\n withoutEllipsis,\n} from \"./drive-tool-uis\";\nimport { ExpandableSection, normalizeResult, ToolCard } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\n/** \"for [Project]\": the end of a project manager card's sentence. */\nfunction ProjectChipLine({ projectAssetId }: { projectAssetId: string }) {\n return (\n <AssetChipLine>\n <span>for</span>\n <AssetChip assetId={projectAssetId} fallbackLabel=\"Project\" assetType=\"project\" />\n </AssetChipLine>\n );\n}\n\n// ─── pm_documents ────────────────────────────────────────────────────\n\nconst PM_DOCUMENT_LABELS: Record<string, string> = {\n goals: \"GOALS.md\",\n plan: \"PLAN.md\",\n activity_log: \"ACTIVITY_LOG.md\",\n summary: \"PM_SUMMARY.md\",\n memory: \"MEMORY.md\",\n};\n\nconst PM_OPERATION_RUNNING: Record<string, string> = {\n read: \"Reading\",\n patch: \"Patching\",\n rewrite: \"Rewriting\",\n append: \"Appending to\",\n};\n\nconst PM_OPERATION_DONE: Record<string, string> = {\n patch: \"Patched\",\n rewrite: \"Rewrote content in\",\n append: \"Appended content in\",\n};\n\ninterface PmPatch {\n old: string;\n new: string;\n}\n\n/** The `{ old, new }` patches the call carries, as they stream (a half-written patch has one side, or neither). */\nfunction pmPatches(value: unknown): PmPatch[] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((patch) =>\n isRecord(patch)\n ? [\n {\n old: typeof patch.old === \"string\" ? patch.old : \"\",\n new: typeof patch.new === \"string\" ? patch.new : \"\",\n },\n ]\n : [],\n );\n}\n\ntype PmPreviewPart = { kind: \"text\"; text: string } | { kind: \"patches\"; patches: PmPatch[] };\n\n/**\n * What the details show, in Olympus's order: the result's warning, then the\n * lines read (with where they sit in the document), or the patches, or the\n * content written, then the activity log entry and whether it was recorded.\n */\nfunction pmDocumentsPreview({\n args,\n data,\n}: {\n args: Record<string, unknown>;\n data: Record<string, unknown> | null;\n}): PmPreviewPart[] {\n const parts: PmPreviewPart[] = [];\n const warning = stringField(data, [\"warning\"]);\n if (warning) parts.push({ kind: \"text\", text: `⚠️ ${warning}` });\n\n const content = stringField(data, [\"content\"]);\n const patches = pmPatches(args.patches);\n const newContent = stringField(args, [\"new_content\", \"content\"]);\n if (stringField(data, [\"operation\"]) === \"read\" && content) {\n const startLine = numberField(data, \"start_line\") ?? 0;\n const before = numberField(data, \"lines_before\");\n const after = numberField(data, \"lines_after\");\n if (before !== undefined && after !== undefined && (before > 0 || after > 0)) {\n const lastLine = startLine + (numberField(data, \"lines_returned\") ?? 0);\n const total = numberField(data, \"total_lines\") ?? \"?\";\n parts.push({\n kind: \"text\",\n text: `Lines ${startLine + 1}–${lastLine} of ${total} (${before} before, ${after} after)`,\n });\n }\n parts.push({ kind: \"text\", text: content });\n } else if (patches.length > 0) {\n parts.push({ kind: \"patches\", patches });\n } else if (newContent) {\n parts.push({ kind: \"text\", text: newContent });\n }\n\n const logEntry = stringField(args, [\"activity_log_entry\"]);\n if (logEntry) parts.push({ kind: \"text\", text: `Activity log: ${logEntry}` });\n if (data?.activity_log_recorded === true) {\n parts.push({ kind: \"text\", text: \"✓ Activity log entry recorded\" });\n }\n return parts;\n}\n\nfunction PmPatchList({ patches }: { patches: PmPatch[] }) {\n return (\n <div className=\"flex flex-col gap-1.5 text-xs\">\n {patches.map((patch, index) => (\n <div key={index} className=\"flex flex-col gap-0.5\">\n <span className=\"font-medium text-muted-foreground\">{index + 1}.</span>\n {patch.old ? (\n <span className=\"break-all rounded bg-destructive/10 px-1.5 py-0.5 text-destructive line-through\">\n {patch.old}\n </span>\n ) : null}\n {patch.new ? (\n <span className=\"break-all rounded bg-emerald-500/10 px-1.5 py-0.5 text-emerald-600\">\n {patch.new}\n </span>\n ) : null}\n </div>\n ))}\n </div>\n );\n}\n\nfunction PmDocumentsPreview({ parts }: { parts: PmPreviewPart[] }) {\n return (\n <div className=\"flex flex-col gap-3\">\n {parts.map((part, index) =>\n part.kind === \"patches\" ? (\n <PmPatchList key={index} patches={part.patches} />\n ) : (\n <p key={index} className=\"whitespace-pre-wrap break-words text-xs text-muted-foreground\">\n {part.text}\n </p>\n ),\n )}\n </div>\n );\n}\n\n/** What a settled call did, in Olympus's words (\"Read GOALS.md (lines 1–100 of 240)\", \"Successfully patched PLAN.md\"). */\nfunction pmDocumentsDoneTitle({\n data,\n operation,\n label,\n projectAssetId,\n}: {\n data: Record<string, unknown> | null;\n operation: string;\n label: string;\n projectAssetId: string | null;\n}): string {\n const message = stringField(data, [\"message\"]);\n if (stringField(data, [\"operation\"]) === \"read\") {\n const startLine = numberField(data, \"start_line\") ?? 0;\n const linesReturned = numberField(data, \"lines_returned\");\n const totalLines = numberField(data, \"total_lines\");\n const lineInfo =\n totalLines !== undefined && linesReturned !== undefined && linesReturned > 0\n ? linesReturned < totalLines\n ? ` (lines ${startLine + 1}–${startLine + linesReturned} of ${totalLines})`\n : ` (${totalLines} lines)`\n : \"\";\n return projectAssetId ? `Read ${label}${lineInfo}` : (message ?? `Read ${label}`);\n }\n const verb = PM_OPERATION_DONE[operation] ?? \"Updated\";\n if (!projectAssetId) return message ?? \"PM document updated\";\n return `${data?.success === true ? `Successfully ${verb.toLowerCase()}` : verb} ${label}`;\n}\n\nconst PmDocumentsToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n // A write refused at the approval gate or parked by the runtime is the\n // generic card's to draw: it is neither a result nor a failure.\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={ClipboardListIcon} />;\n }\n const typedArgs = argsRecord(args);\n const data = normalizeResult(result);\n const projectAssetId =\n stringField(data, [\"project_asset_id\"]) ?? stringField(typedArgs, [\"project_asset_id\"]);\n const documentKey = stringField(data, [\"document\"]) ?? stringField(typedArgs, [\"document\"]) ?? \"\";\n const label = PM_DOCUMENT_LABELS[documentKey] ?? documentKey;\n const argOperation = stringField(typedArgs, [\"operation\"]) ?? \"\";\n const operation = stringField(data, [\"operation\"]) ?? argOperation;\n\n const patchCount =\n numberField(data, \"patch_count\") ??\n (Array.isArray(typedArgs.patches) ? typedArgs.patches.length : undefined);\n const patchSuffix =\n operation === \"patch\" && patchCount\n ? ` (${patchCount} patch${patchCount !== 1 ? \"es\" : \"\"})`\n : \"\";\n const startLineArg = numberField(typedArgs, \"start_line\");\n const readFromSuffix =\n argOperation === \"read\" && startLineArg !== undefined && startLineArg > 0\n ? ` (from line ${startLineArg + 1})`\n : \"\";\n const running = `${PM_OPERATION_RUNNING[argOperation] ?? \"Updating\"} ${label}${patchSuffix}${readFromSuffix}...`;\n\n // pm_documents answers every refusal as `{ success: false, message }`.\n const card = toolCardOutcome({\n status,\n classification,\n resultFailure:\n data?.success === false\n ? (stringField(data, [\"message\"]) ?? \"Failed to access PM document\")\n : null,\n });\n const title =\n card.status === \"running\"\n ? running\n : card.status === \"complete\"\n ? pmDocumentsDoneTitle({ data, operation, label, projectAssetId })\n : withoutEllipsis(running);\n const preview = pmDocumentsPreview({ args: typedArgs, data });\n\n return (\n <ToolCard\n icon={ClipboardListIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && projectAssetId ? (\n <ProjectChipLine projectAssetId={projectAssetId} />\n ) : null}\n {preview.length > 0 ? (\n <ExpandableSection label=\"Show details\">\n <PmDocumentsPreview parts={preview} />\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const PmDocumentsToolUI = memo(\n PmDocumentsToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nPmDocumentsToolUI.displayName = \"PmDocumentsToolUI\";\n\n// ─── get_pm_roadmap ──────────────────────────────────────────────────\n\n/** The roadmap's counts in Olympus's words (\"Roadmap: 3 goal(s) · 4 phase(s) · Current: Phase 2: Build\"). */\nfunction roadmapTitle(data: Record<string, unknown> | null): string {\n if (!data) return \"Roadmap retrieved\";\n const goals = numberField(data, \"goals_count\");\n const phases = numberField(data, \"phases_count\");\n if (goals === 0 && phases === 0) {\n return stringField(data, [\"message\"]) ?? \"No roadmap data found\";\n }\n const parts: string[] = [];\n if (goals !== undefined) parts.push(`${goals} goal(s)`);\n if (phases !== undefined) parts.push(`${phases} phase(s)`);\n const currentPhase = stringField(data, [\"current_phase\"]);\n if (currentPhase) parts.push(`Current: ${currentPhase}`);\n return parts.length > 0 ? `Roadmap: ${parts.join(\" · \")}` : \"Roadmap retrieved\";\n}\n\nconst GetPmRoadmapToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={ClipboardListIcon} />;\n }\n const typedArgs = argsRecord(args);\n const data = normalizeResult(result);\n const projectAssetId =\n stringField(data, [\"project_asset_id\"]) ?? stringField(typedArgs, [\"project_asset_id\"]);\n const card = toolCardOutcome({\n status,\n classification,\n resultFailure:\n data?.success === false ? (stringField(data, [\"message\"]) ?? \"Failed to read roadmap\") : null,\n });\n const running = \"Reading PM roadmap...\";\n const title =\n card.status === \"running\"\n ? running\n : card.status === \"complete\"\n ? roadmapTitle(data)\n : withoutEllipsis(running);\n const roadmap = card.status === \"complete\" ? stringField(data, [\"roadmap\"]) : null;\n\n return (\n <ToolCard\n icon={ClipboardListIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && projectAssetId ? (\n <ProjectChipLine projectAssetId={projectAssetId} />\n ) : null}\n {roadmap ? (\n <ExpandableSection label=\"Show roadmap\">\n <p className=\"whitespace-pre-wrap break-words text-xs text-muted-foreground\">{roadmap}</p>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const GetPmRoadmapToolUI = memo(\n GetPmRoadmapToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nGetPmRoadmapToolUI.displayName = \"GetPmRoadmapToolUI\";\n"],"names":[],"mappings":"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"}