@buoy-gg/ask-buoy 7.0.34 → 7.0.36

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 (352) hide show
  1. package/README.md +35 -8
  2. package/lib/commonjs/blocks/AskBlocks.js +338 -1
  3. package/lib/commonjs/blocks/AskBlocks.js.map +1 -0
  4. package/lib/commonjs/blocks/BlockRenderer.js +262 -1
  5. package/lib/commonjs/blocks/BlockRenderer.js.map +1 -0
  6. package/lib/commonjs/blocks/ChromePrototypes.js +514 -1
  7. package/lib/commonjs/blocks/ChromePrototypes.js.map +1 -0
  8. package/lib/commonjs/blocks/DataBlocks.js +781 -1
  9. package/lib/commonjs/blocks/DataBlocks.js.map +1 -0
  10. package/lib/commonjs/blocks/ExtraBlocks.js +1860 -1
  11. package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -0
  12. package/lib/commonjs/blocks/MediaBlocks.js +156 -1
  13. package/lib/commonjs/blocks/MediaBlocks.js.map +1 -0
  14. package/lib/commonjs/blocks/ReceiptBlocks.js +586 -1
  15. package/lib/commonjs/blocks/ReceiptBlocks.js.map +1 -0
  16. package/lib/commonjs/blocks/blockText.js +60 -0
  17. package/lib/commonjs/blocks/blockText.js.map +1 -0
  18. package/lib/commonjs/blocks/blockText.test.js +53 -0
  19. package/lib/commonjs/blocks/blockText.test.js.map +1 -0
  20. package/lib/commonjs/blocks/context.js +42 -1
  21. package/lib/commonjs/blocks/context.js.map +1 -0
  22. package/lib/commonjs/blocks/icons.js +96 -1
  23. package/lib/commonjs/blocks/icons.js.map +1 -0
  24. package/lib/commonjs/blocks/index.js +95 -1
  25. package/lib/commonjs/blocks/index.js.map +1 -0
  26. package/lib/commonjs/blocks/listRow.test.js +55 -0
  27. package/lib/commonjs/blocks/listRow.test.js.map +1 -0
  28. package/lib/commonjs/blocks/pageState.js +34 -0
  29. package/lib/commonjs/blocks/pageState.js.map +1 -0
  30. package/lib/commonjs/blocks/pageState.test.js +57 -0
  31. package/lib/commonjs/blocks/pageState.test.js.map +1 -0
  32. package/lib/commonjs/blocks/primitives.js +457 -1
  33. package/lib/commonjs/blocks/primitives.js.map +1 -0
  34. package/lib/commonjs/blocks/primitivesIndex.js +62 -1
  35. package/lib/commonjs/blocks/primitivesIndex.js.map +1 -0
  36. package/lib/commonjs/components/ApprovalCard.js +244 -1
  37. package/lib/commonjs/components/ApprovalCard.js.map +1 -0
  38. package/lib/commonjs/components/AskBuoyHeader.js +196 -1
  39. package/lib/commonjs/components/AskBuoyHeader.js.map +1 -0
  40. package/lib/commonjs/components/AskBuoyIcon.js +19 -1
  41. package/lib/commonjs/components/AskBuoyIcon.js.map +1 -0
  42. package/lib/commonjs/components/AskBuoyModal.js +479 -1
  43. package/lib/commonjs/components/AskBuoyModal.js.map +1 -0
  44. package/lib/commonjs/components/AskBuoySettings.js +119 -0
  45. package/lib/commonjs/components/AskBuoySettings.js.map +1 -0
  46. package/lib/commonjs/components/ChangesBar.js +211 -1
  47. package/lib/commonjs/components/ChangesBar.js.map +1 -0
  48. package/lib/commonjs/components/Composer.js +255 -1
  49. package/lib/commonjs/components/Composer.js.map +1 -0
  50. package/lib/commonjs/components/EmptyState.js +161 -1
  51. package/lib/commonjs/components/EmptyState.js.map +1 -0
  52. package/lib/commonjs/components/KeyboardPad.js +80 -0
  53. package/lib/commonjs/components/KeyboardPad.js.map +1 -0
  54. package/lib/commonjs/components/Markdown.js +310 -1
  55. package/lib/commonjs/components/Markdown.js.map +1 -0
  56. package/lib/commonjs/components/MessageList.js +930 -1
  57. package/lib/commonjs/components/MessageList.js.map +1 -0
  58. package/lib/commonjs/components/QueuedMessages.js +145 -0
  59. package/lib/commonjs/components/QueuedMessages.js.map +1 -0
  60. package/lib/commonjs/components/ThinkingStrip.js +223 -0
  61. package/lib/commonjs/components/ThinkingStrip.js.map +1 -0
  62. package/lib/commonjs/components/TypingDots.js +63 -1
  63. package/lib/commonjs/components/TypingDots.js.map +1 -0
  64. package/lib/commonjs/components/markdownParse.js +131 -0
  65. package/lib/commonjs/components/markdownParse.js.map +1 -0
  66. package/lib/commonjs/components/markdownParse.test.js +99 -0
  67. package/lib/commonjs/components/markdownParse.test.js.map +1 -0
  68. package/lib/commonjs/components/useCopyAction.js +50 -0
  69. package/lib/commonjs/components/useCopyAction.js.map +1 -0
  70. package/lib/commonjs/index.js +252 -1
  71. package/lib/commonjs/index.js.map +1 -0
  72. package/lib/commonjs/preset.js +90 -1
  73. package/lib/commonjs/preset.js.map +1 -0
  74. package/lib/commonjs/store/activityGroups.js +110 -0
  75. package/lib/commonjs/store/activityGroups.js.map +1 -0
  76. package/lib/commonjs/store/activityGroups.test.js +78 -0
  77. package/lib/commonjs/store/activityGroups.test.js.map +1 -0
  78. package/lib/commonjs/store/askBuoySettings.js +72 -0
  79. package/lib/commonjs/store/askBuoySettings.js.map +1 -0
  80. package/lib/commonjs/store/askBuoyStore.js +547 -1
  81. package/lib/commonjs/store/askBuoyStore.js.map +1 -0
  82. package/lib/commonjs/store/blockPlacement.js +64 -0
  83. package/lib/commonjs/store/blockPlacement.js.map +1 -0
  84. package/lib/commonjs/store/blockPlacement.test.js +123 -0
  85. package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
  86. package/lib/commonjs/store/queue.test.js +150 -0
  87. package/lib/commonjs/store/queue.test.js.map +1 -0
  88. package/lib/commonjs/store/resetConversation.js +77 -0
  89. package/lib/commonjs/store/resetConversation.js.map +1 -0
  90. package/lib/commonjs/store/restorePending.test.js +63 -0
  91. package/lib/commonjs/store/restorePending.test.js.map +1 -0
  92. package/lib/commonjs/store/restoredIds.test.js +47 -0
  93. package/lib/commonjs/store/restoredIds.test.js.map +1 -0
  94. package/lib/commonjs/store/suggestions.js +54 -0
  95. package/lib/commonjs/store/suggestions.js.map +1 -0
  96. package/lib/commonjs/store/suggestions.test.js +58 -0
  97. package/lib/commonjs/store/suggestions.test.js.map +1 -0
  98. package/lib/commonjs/store/systemLine.test.js +77 -0
  99. package/lib/commonjs/store/systemLine.test.js.map +1 -0
  100. package/lib/commonjs/store/ticketPrompt.js +17 -0
  101. package/lib/commonjs/store/ticketPrompt.js.map +1 -0
  102. package/lib/commonjs/store/traceText.js +81 -0
  103. package/lib/commonjs/store/traceText.js.map +1 -0
  104. package/lib/commonjs/store/traceText.test.js +112 -0
  105. package/lib/commonjs/store/traceText.test.js.map +1 -0
  106. package/lib/commonjs/store/transcriptPersistence.js +297 -0
  107. package/lib/commonjs/store/transcriptPersistence.js.map +1 -0
  108. package/lib/commonjs/store/transcriptPersistence.test.js +333 -0
  109. package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -0
  110. package/lib/commonjs/store/turnRendering.test.js +151 -0
  111. package/lib/commonjs/store/turnRendering.test.js.map +1 -0
  112. package/lib/commonjs/store/useAskBuoy.js +622 -1
  113. package/lib/commonjs/store/useAskBuoy.js.map +1 -0
  114. package/lib/commonjs/store/useAskBuoySettings.js +14 -0
  115. package/lib/commonjs/store/useAskBuoySettings.js.map +1 -0
  116. package/lib/commonjs/sync/askBuoySyncAdapter.js +140 -1
  117. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -0
  118. package/lib/commonjs/sync/askBuoySyncAdapter.test.js +141 -1
  119. package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +1 -0
  120. package/lib/commonjs/sync/wire.js +58 -1
  121. package/lib/commonjs/sync/wire.js.map +1 -0
  122. package/lib/commonjs/types.js +6 -1
  123. package/lib/commonjs/types.js.map +1 -0
  124. package/lib/module/blocks/AskBlocks.js +331 -1
  125. package/lib/module/blocks/AskBlocks.js.map +1 -0
  126. package/lib/module/blocks/BlockRenderer.js +257 -1
  127. package/lib/module/blocks/BlockRenderer.js.map +1 -0
  128. package/lib/module/blocks/ChromePrototypes.js +503 -1
  129. package/lib/module/blocks/ChromePrototypes.js.map +1 -0
  130. package/lib/module/blocks/DataBlocks.js +767 -1
  131. package/lib/module/blocks/DataBlocks.js.map +1 -0
  132. package/lib/module/blocks/ExtraBlocks.js +1833 -1
  133. package/lib/module/blocks/ExtraBlocks.js.map +1 -0
  134. package/lib/module/blocks/MediaBlocks.js +151 -1
  135. package/lib/module/blocks/MediaBlocks.js.map +1 -0
  136. package/lib/module/blocks/ReceiptBlocks.js +574 -1
  137. package/lib/module/blocks/ReceiptBlocks.js.map +1 -0
  138. package/lib/module/blocks/blockText.js +55 -0
  139. package/lib/module/blocks/blockText.js.map +1 -0
  140. package/lib/module/blocks/blockText.test.js +53 -0
  141. package/lib/module/blocks/blockText.test.js.map +1 -0
  142. package/lib/module/blocks/context.js +35 -1
  143. package/lib/module/blocks/context.js.map +1 -0
  144. package/lib/module/blocks/icons.js +91 -1
  145. package/lib/module/blocks/icons.js.map +1 -0
  146. package/lib/module/blocks/index.js +8 -1
  147. package/lib/module/blocks/index.js.map +1 -0
  148. package/lib/module/blocks/listRow.test.js +56 -0
  149. package/lib/module/blocks/listRow.test.js.map +1 -0
  150. package/lib/module/blocks/pageState.js +30 -0
  151. package/lib/module/blocks/pageState.js.map +1 -0
  152. package/lib/module/blocks/pageState.test.js +56 -0
  153. package/lib/module/blocks/pageState.test.js.map +1 -0
  154. package/lib/module/blocks/primitives.js +445 -1
  155. package/lib/module/blocks/primitives.js.map +1 -0
  156. package/lib/module/blocks/primitivesIndex.js +5 -1
  157. package/lib/module/blocks/primitivesIndex.js.map +1 -0
  158. package/lib/module/components/ApprovalCard.js +239 -1
  159. package/lib/module/components/ApprovalCard.js.map +1 -0
  160. package/lib/module/components/AskBuoyHeader.js +193 -1
  161. package/lib/module/components/AskBuoyHeader.js.map +1 -0
  162. package/lib/module/components/AskBuoyIcon.js +8 -1
  163. package/lib/module/components/AskBuoyIcon.js.map +1 -0
  164. package/lib/module/components/AskBuoyModal.js +474 -1
  165. package/lib/module/components/AskBuoyModal.js.map +1 -0
  166. package/lib/module/components/AskBuoySettings.js +114 -0
  167. package/lib/module/components/AskBuoySettings.js.map +1 -0
  168. package/lib/module/components/ChangesBar.js +206 -1
  169. package/lib/module/components/ChangesBar.js.map +1 -0
  170. package/lib/module/components/Composer.js +250 -1
  171. package/lib/module/components/Composer.js.map +1 -0
  172. package/lib/module/components/EmptyState.js +156 -1
  173. package/lib/module/components/EmptyState.js.map +1 -0
  174. package/lib/module/components/KeyboardPad.js +75 -0
  175. package/lib/module/components/KeyboardPad.js.map +1 -0
  176. package/lib/module/components/Markdown.js +305 -1
  177. package/lib/module/components/Markdown.js.map +1 -0
  178. package/lib/module/components/MessageList.js +924 -1
  179. package/lib/module/components/MessageList.js.map +1 -0
  180. package/lib/module/components/QueuedMessages.js +140 -0
  181. package/lib/module/components/QueuedMessages.js.map +1 -0
  182. package/lib/module/components/ThinkingStrip.js +218 -0
  183. package/lib/module/components/ThinkingStrip.js.map +1 -0
  184. package/lib/module/components/TypingDots.js +58 -1
  185. package/lib/module/components/TypingDots.js.map +1 -0
  186. package/lib/module/components/markdownParse.js +125 -0
  187. package/lib/module/components/markdownParse.js.map +1 -0
  188. package/lib/module/components/markdownParse.test.js +98 -0
  189. package/lib/module/components/markdownParse.test.js.map +1 -0
  190. package/lib/module/components/useCopyAction.js +46 -0
  191. package/lib/module/components/useCopyAction.js.map +1 -0
  192. package/lib/module/index.js +34 -1
  193. package/lib/module/index.js.map +1 -0
  194. package/lib/module/preset.js +73 -1
  195. package/lib/module/preset.js.map +1 -0
  196. package/lib/module/store/activityGroups.js +103 -0
  197. package/lib/module/store/activityGroups.js.map +1 -0
  198. package/lib/module/store/activityGroups.test.js +77 -0
  199. package/lib/module/store/activityGroups.test.js.map +1 -0
  200. package/lib/module/store/askBuoySettings.js +67 -0
  201. package/lib/module/store/askBuoySettings.js.map +1 -0
  202. package/lib/module/store/askBuoyStore.js +541 -1
  203. package/lib/module/store/askBuoyStore.js.map +1 -0
  204. package/lib/module/store/blockPlacement.js +59 -0
  205. package/lib/module/store/blockPlacement.js.map +1 -0
  206. package/lib/module/store/blockPlacement.test.js +122 -0
  207. package/lib/module/store/blockPlacement.test.js.map +1 -0
  208. package/lib/module/store/queue.test.js +149 -0
  209. package/lib/module/store/queue.test.js.map +1 -0
  210. package/lib/module/store/resetConversation.js +72 -0
  211. package/lib/module/store/resetConversation.js.map +1 -0
  212. package/lib/module/store/restorePending.test.js +62 -0
  213. package/lib/module/store/restorePending.test.js.map +1 -0
  214. package/lib/module/store/restoredIds.test.js +46 -0
  215. package/lib/module/store/restoredIds.test.js.map +1 -0
  216. package/lib/module/store/suggestions.js +49 -0
  217. package/lib/module/store/suggestions.js.map +1 -0
  218. package/lib/module/store/suggestions.test.js +57 -0
  219. package/lib/module/store/suggestions.test.js.map +1 -0
  220. package/lib/module/store/systemLine.test.js +76 -0
  221. package/lib/module/store/systemLine.test.js.map +1 -0
  222. package/lib/module/store/ticketPrompt.js +13 -0
  223. package/lib/module/store/ticketPrompt.js.map +1 -0
  224. package/lib/module/store/traceText.js +75 -0
  225. package/lib/module/store/traceText.js.map +1 -0
  226. package/lib/module/store/traceText.test.js +111 -0
  227. package/lib/module/store/traceText.test.js.map +1 -0
  228. package/lib/module/store/transcriptPersistence.js +287 -0
  229. package/lib/module/store/transcriptPersistence.js.map +1 -0
  230. package/lib/module/store/transcriptPersistence.test.js +332 -0
  231. package/lib/module/store/transcriptPersistence.test.js.map +1 -0
  232. package/lib/module/store/turnRendering.test.js +150 -0
  233. package/lib/module/store/turnRendering.test.js.map +1 -0
  234. package/lib/module/store/useAskBuoy.js +616 -1
  235. package/lib/module/store/useAskBuoy.js.map +1 -0
  236. package/lib/module/store/useAskBuoySettings.js +9 -0
  237. package/lib/module/store/useAskBuoySettings.js.map +1 -0
  238. package/lib/module/sync/askBuoySyncAdapter.js +135 -1
  239. package/lib/module/sync/askBuoySyncAdapter.js.map +1 -0
  240. package/lib/module/sync/askBuoySyncAdapter.test.js +140 -1
  241. package/lib/module/sync/askBuoySyncAdapter.test.js.map +1 -0
  242. package/lib/module/sync/wire.js +47 -1
  243. package/lib/module/sync/wire.js.map +1 -0
  244. package/lib/module/types.js +4 -1
  245. package/lib/module/types.js.map +1 -0
  246. package/lib/typescript/blocks/AskBlocks.d.ts.map +1 -0
  247. package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -0
  248. package/lib/typescript/blocks/ChromePrototypes.d.ts.map +1 -0
  249. package/lib/typescript/blocks/DataBlocks.d.ts +42 -0
  250. package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -0
  251. package/lib/typescript/blocks/ExtraBlocks.d.ts +29 -2
  252. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -0
  253. package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -0
  254. package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +1 -0
  255. package/lib/typescript/blocks/blockText.d.ts +14 -0
  256. package/lib/typescript/blocks/blockText.d.ts.map +1 -0
  257. package/lib/typescript/blocks/blockText.test.d.ts +2 -0
  258. package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
  259. package/lib/typescript/blocks/context.d.ts.map +1 -0
  260. package/lib/typescript/blocks/icons.d.ts.map +1 -0
  261. package/lib/typescript/blocks/index.d.ts.map +1 -0
  262. package/lib/typescript/blocks/listRow.test.d.ts +2 -0
  263. package/lib/typescript/blocks/listRow.test.d.ts.map +1 -0
  264. package/lib/typescript/blocks/pageState.d.ts +23 -0
  265. package/lib/typescript/blocks/pageState.d.ts.map +1 -0
  266. package/lib/typescript/blocks/pageState.test.d.ts +2 -0
  267. package/lib/typescript/blocks/pageState.test.d.ts.map +1 -0
  268. package/lib/typescript/blocks/primitives.d.ts +55 -10
  269. package/lib/typescript/blocks/primitives.d.ts.map +1 -0
  270. package/lib/typescript/blocks/primitivesIndex.d.ts +2 -1
  271. package/lib/typescript/blocks/primitivesIndex.d.ts.map +1 -0
  272. package/lib/typescript/components/ApprovalCard.d.ts.map +1 -0
  273. package/lib/typescript/components/AskBuoyHeader.d.ts +41 -1
  274. package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -0
  275. package/lib/typescript/components/AskBuoyIcon.d.ts.map +1 -0
  276. package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -0
  277. package/lib/typescript/components/AskBuoySettings.d.ts +2 -0
  278. package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -0
  279. package/lib/typescript/components/ChangesBar.d.ts.map +1 -0
  280. package/lib/typescript/components/Composer.d.ts +16 -1
  281. package/lib/typescript/components/Composer.d.ts.map +1 -0
  282. package/lib/typescript/components/EmptyState.d.ts +5 -1
  283. package/lib/typescript/components/EmptyState.d.ts.map +1 -0
  284. package/lib/typescript/components/KeyboardPad.d.ts +33 -0
  285. package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
  286. package/lib/typescript/components/Markdown.d.ts +0 -10
  287. package/lib/typescript/components/Markdown.d.ts.map +1 -0
  288. package/lib/typescript/components/MessageList.d.ts +19 -7
  289. package/lib/typescript/components/MessageList.d.ts.map +1 -0
  290. package/lib/typescript/components/QueuedMessages.d.ts +10 -0
  291. package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
  292. package/lib/typescript/components/ThinkingStrip.d.ts +5 -0
  293. package/lib/typescript/components/ThinkingStrip.d.ts.map +1 -0
  294. package/lib/typescript/components/TypingDots.d.ts.map +1 -0
  295. package/lib/typescript/components/markdownParse.d.ts +49 -0
  296. package/lib/typescript/components/markdownParse.d.ts.map +1 -0
  297. package/lib/typescript/components/markdownParse.test.d.ts +2 -0
  298. package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
  299. package/lib/typescript/components/useCopyAction.d.ts +5 -0
  300. package/lib/typescript/components/useCopyAction.d.ts.map +1 -0
  301. package/lib/typescript/index.d.ts +5 -0
  302. package/lib/typescript/index.d.ts.map +1 -0
  303. package/lib/typescript/preset.d.ts.map +1 -0
  304. package/lib/typescript/store/activityGroups.d.ts +29 -0
  305. package/lib/typescript/store/activityGroups.d.ts.map +1 -0
  306. package/lib/typescript/store/activityGroups.test.d.ts +2 -0
  307. package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
  308. package/lib/typescript/store/askBuoySettings.d.ts +44 -0
  309. package/lib/typescript/store/askBuoySettings.d.ts.map +1 -0
  310. package/lib/typescript/store/askBuoyStore.d.ts +216 -18
  311. package/lib/typescript/store/askBuoyStore.d.ts.map +1 -0
  312. package/lib/typescript/store/blockPlacement.d.ts +30 -0
  313. package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
  314. package/lib/typescript/store/blockPlacement.test.d.ts +2 -0
  315. package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
  316. package/lib/typescript/store/queue.test.d.ts +2 -0
  317. package/lib/typescript/store/queue.test.d.ts.map +1 -0
  318. package/lib/typescript/store/resetConversation.d.ts +38 -0
  319. package/lib/typescript/store/resetConversation.d.ts.map +1 -0
  320. package/lib/typescript/store/restorePending.test.d.ts +2 -0
  321. package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
  322. package/lib/typescript/store/restoredIds.test.d.ts +2 -0
  323. package/lib/typescript/store/restoredIds.test.d.ts.map +1 -0
  324. package/lib/typescript/store/suggestions.d.ts +32 -0
  325. package/lib/typescript/store/suggestions.d.ts.map +1 -0
  326. package/lib/typescript/store/suggestions.test.d.ts +2 -0
  327. package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
  328. package/lib/typescript/store/systemLine.test.d.ts +2 -0
  329. package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
  330. package/lib/typescript/store/ticketPrompt.d.ts +11 -0
  331. package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
  332. package/lib/typescript/store/traceText.d.ts +33 -0
  333. package/lib/typescript/store/traceText.d.ts.map +1 -0
  334. package/lib/typescript/store/traceText.test.d.ts +2 -0
  335. package/lib/typescript/store/traceText.test.d.ts.map +1 -0
  336. package/lib/typescript/store/transcriptPersistence.d.ts +79 -0
  337. package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -0
  338. package/lib/typescript/store/transcriptPersistence.test.d.ts +2 -0
  339. package/lib/typescript/store/transcriptPersistence.test.d.ts.map +1 -0
  340. package/lib/typescript/store/turnRendering.test.d.ts +2 -0
  341. package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
  342. package/lib/typescript/store/useAskBuoy.d.ts +23 -1
  343. package/lib/typescript/store/useAskBuoy.d.ts.map +1 -0
  344. package/lib/typescript/store/useAskBuoySettings.d.ts +3 -0
  345. package/lib/typescript/store/useAskBuoySettings.d.ts.map +1 -0
  346. package/lib/typescript/sync/askBuoySyncAdapter.d.ts +26 -6
  347. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -0
  348. package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +1 -0
  349. package/lib/typescript/sync/wire.d.ts.map +1 -0
  350. package/lib/typescript/types.d.ts +24 -1
  351. package/lib/typescript/types.d.ts.map +1 -0
  352. package/package.json +9 -9
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatElapsed = formatElapsed;
7
+ exports.groupCalls = groupCalls;
8
+ exports.turnFooter = turnFooter;
9
+ var _agentCore = require("@buoy-gg/agent-core");
10
+ /**
11
+ * How tool rows fold in the activity card.
12
+ *
13
+ * Consecutive SUCCESSFUL READS fold into one row — "Looked at Network, Storage
14
+ * · 3 reads" — and nothing else ever folds. The previous rule folded by count:
15
+ * past four steps the card became "Did 7 things · 1 failed" with every row but
16
+ * the failures hidden, including the one successful write, which is the row
17
+ * the user most needs to see. Codex's exec cell does the same thing for file
18
+ * reads ("Explored — Read a, b, c") and keeps every run visible.
19
+ *
20
+ * A group never crosses a write: a read after a mutation is a different
21
+ * observation from a read before it, and merging them would misreport order.
22
+ * Uses the engine's `effect` classification, never the action's name.
23
+ */
24
+
25
+ const foldable = c => c.effect === "read" && c.status === "ok";
26
+ function groupCalls(calls) {
27
+ const out = [];
28
+ let run = [];
29
+ const flush = () => {
30
+ if (run.length === 0) return;
31
+ if (run.length === 1) {
32
+ out.push({
33
+ kind: "call",
34
+ call: run[0]
35
+ });
36
+ } else {
37
+ const titles = [...new Set(run.map(c => (0, _agentCore.toolTitle)(c.toolId)))];
38
+ out.push({
39
+ kind: "reads",
40
+ id: run.map(c => c.id).join("+"),
41
+ calls: run,
42
+ label: `Looked at ${joinNatural(titles)}`,
43
+ count: run.length
44
+ });
45
+ }
46
+ run = [];
47
+ };
48
+ for (const call of calls) {
49
+ if (foldable(call)) {
50
+ run.push(call);
51
+ continue;
52
+ }
53
+ flush();
54
+ out.push({
55
+ kind: "call",
56
+ call
57
+ });
58
+ }
59
+ flush();
60
+ return out;
61
+ }
62
+
63
+ /** "Network", "Network and Storage", "Network, Storage and Screen". */
64
+ function joinNatural(items) {
65
+ if (items.length <= 1) return items[0] ?? "";
66
+ if (items.length === 2) return `${items[0]} and ${items[1]}`;
67
+ return `${items.slice(0, -1).join(", ")} and ${items[items.length - 1]}`;
68
+ }
69
+
70
+ /**
71
+ * "48s · 6 actions · 1 declined" — the line under a finished answer.
72
+ *
73
+ * "Actions" is tool calls, not provider rounds: rounds are an implementation
74
+ * detail nobody outside the engine can count. Failed, refused, declined and
75
+ * stopped are listed separately because they are different outcomes — a
76
+ * failed exploratory read the agent recovered from is not a failed task. No
77
+ * duration is invented when the message has no start time (a restored note).
78
+ */
79
+ function turnFooter(message) {
80
+ const parts = [];
81
+ if (message.startedAt !== undefined && message.endedAt !== undefined && message.endedAt >= message.startedAt) {
82
+ parts.push(formatElapsed(message.endedAt - message.startedAt));
83
+ }
84
+ const n = message.toolCalls.length;
85
+ if (n > 0) {
86
+ parts.push(`${n} action${n === 1 ? "" : "s"}`);
87
+ const count = s => message.toolCalls.filter(c => c.status === s).length;
88
+ const failed = count("failed");
89
+ const refused = count("refused");
90
+ const declined = count("declined");
91
+ const stopped = count("stopped");
92
+ if (failed) parts.push(`${failed} failed`);
93
+ if (refused) parts.push(`${refused} refused`);
94
+ if (declined) parts.push(`${declined} declined`);
95
+ if (stopped) parts.push(`${stopped} not run`);
96
+ }
97
+ return parts.length ? parts.join(" · ") : null;
98
+ }
99
+
100
+ /** "4s", "1m 04s", "1h 02m". Compact, for a subtitle or a footer. */
101
+ function formatElapsed(ms) {
102
+ const total = Math.max(0, Math.floor(ms / 1000));
103
+ if (total < 60) return `${total}s`;
104
+ const m = Math.floor(total / 60);
105
+ const s = total % 60;
106
+ if (m < 60) return `${m}m ${String(s).padStart(2, "0")}s`;
107
+ const h = Math.floor(m / 60);
108
+ return `${h}h ${String(m % 60).padStart(2, "0")}m`;
109
+ }
110
+ //# sourceMappingURL=activityGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_agentCore","require","foldable","c","effect","status","groupCalls","calls","out","run","flush","length","push","kind","call","titles","Set","map","toolTitle","toolId","id","join","label","joinNatural","count","items","slice","turnFooter","message","parts","startedAt","undefined","endedAt","formatElapsed","n","toolCalls","s","filter","failed","refused","declined","stopped","ms","total","Math","max","floor","m","String","padStart","h"],"sourceRoot":"../../../src","sources":["store/activityGroups.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ var _activityGroups = require("./activityGroups");
5
+ /**
6
+ * The fold rule: consecutive successful reads fold, nothing else ever does,
7
+ * and a group never crosses a write.
8
+ */
9
+
10
+ const call = (id, toolId, effect, status = "ok") => ({
11
+ id,
12
+ toolId,
13
+ action: "x",
14
+ label: `${toolId} ${id}`,
15
+ status,
16
+ effect
17
+ });
18
+ (0, _vitest.describe)("groupCalls", () => {
19
+ (0, _vitest.it)("leaves a single read as an ordinary row", () => {
20
+ const items = (0, _activityGroups.groupCalls)([call("a", "console", "read")]);
21
+ (0, _vitest.expect)(items).toEqual([{
22
+ kind: "call",
23
+ call: _vitest.expect.objectContaining({
24
+ id: "a"
25
+ })
26
+ }]);
27
+ });
28
+ (0, _vitest.it)("folds consecutive successful reads and names the tools once each", () => {
29
+ const items = (0, _activityGroups.groupCalls)([call("a", "network", "read"), call("b", "storage", "read"), call("c", "storage", "read")]);
30
+ (0, _vitest.expect)(items).toHaveLength(1);
31
+ const g = items[0];
32
+ (0, _vitest.expect)(g.kind).toBe("reads");
33
+ (0, _vitest.expect)(g.kind === "reads" && g.count).toBe(3);
34
+ (0, _vitest.expect)(g.kind === "reads" && g.label).toBe("Looked at Network and Storage");
35
+ });
36
+ (0, _vitest.it)("never folds a write, and never folds reads across one", () => {
37
+ const items = (0, _activityGroups.groupCalls)([call("a", "network", "read"), call("b", "storage", "read"), call("w", "zustand", "write"), call("c", "storage", "read"), call("d", "console", "read")]);
38
+ (0, _vitest.expect)(items.map(i => i.kind === "reads" ? `reads:${i.count}` : `call:${i.call.id}`)).toEqual(["reads:2", "call:w", "reads:2"]);
39
+ });
40
+ (0, _vitest.it)("keeps failed, refused, declined, stopped and running reads as their own rows", () => {
41
+ const items = (0, _activityGroups.groupCalls)([call("a", "network", "read"), call("f", "storage", "read", "failed"), call("b", "storage", "read"), call("r", "storage", "read", "running")]);
42
+ (0, _vitest.expect)(items.map(i => i.kind)).toEqual(["call", "call", "call", "call"]);
43
+ });
44
+ });
45
+ (0, _vitest.describe)("turnFooter", () => {
46
+ (0, _vitest.it)("reports duration and action count", () => {
47
+ (0, _vitest.expect)((0, _activityGroups.turnFooter)({
48
+ startedAt: 1_000,
49
+ endedAt: 13_000,
50
+ toolCalls: [call("a", "network", "read"), call("b", "zustand", "write")]
51
+ })).toBe("12s · 2 actions");
52
+ });
53
+ (0, _vitest.it)("separates the outcomes that were not plain successes", () => {
54
+ (0, _vitest.expect)((0, _activityGroups.turnFooter)({
55
+ startedAt: 0,
56
+ endedAt: 48_000,
57
+ toolCalls: [call("a", "network", "read"), call("b", "storage", "write", "failed"), call("c", "storage", "destructive", "declined"), call("d", "storage", "write", "stopped")]
58
+ })).toBe("48s · 4 actions · 1 failed · 1 declined · 1 not run");
59
+ });
60
+ (0, _vitest.it)("invents no duration for a note with no start time", () => {
61
+ (0, _vitest.expect)((0, _activityGroups.turnFooter)({
62
+ endedAt: 5_000,
63
+ toolCalls: []
64
+ })).toBeNull();
65
+ (0, _vitest.expect)((0, _activityGroups.turnFooter)({
66
+ endedAt: 5_000,
67
+ toolCalls: [call("a", "network", "read")]
68
+ })).toBe("1 action");
69
+ });
70
+ });
71
+ (0, _vitest.describe)("formatElapsed", () => {
72
+ (0, _vitest.it)("is compact", () => {
73
+ (0, _vitest.expect)((0, _activityGroups.formatElapsed)(4_200)).toBe("4s");
74
+ (0, _vitest.expect)((0, _activityGroups.formatElapsed)(64_000)).toBe("1m 04s");
75
+ (0, _vitest.expect)((0, _activityGroups.formatElapsed)(3_720_000)).toBe("1h 02m");
76
+ });
77
+ });
78
+ //# sourceMappingURL=activityGroups.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_vitest","require","_activityGroups","call","id","toolId","effect","status","action","label","describe","it","items","groupCalls","expect","toEqual","kind","objectContaining","toHaveLength","g","toBe","count","map","i","turnFooter","startedAt","endedAt","toolCalls","toBeNull","formatElapsed"],"sourceRoot":"../../../src","sources":["store/activityGroups.test.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.askBuoySettings = exports.DEFAULT_SETTINGS = void 0;
7
+ var _sharedUi = require("@buoy-gg/shared-ui");
8
+ /**
9
+ * Ask Buoy's own preferences — the things a tester sets on the sheet, not the
10
+ * things a developer sets in `askBuoy={{ … }}`.
11
+ *
12
+ * Module-level and subscribable for the same reason the transcript is: the
13
+ * sheet unmounts whenever the tool is closed or minimised, and a preference
14
+ * that reset on every close would not be a preference.
15
+ */
16
+
17
+ const DEFAULT_SETTINGS = exports.DEFAULT_SETTINGS = {
18
+ showThinking: false,
19
+ bypassApprovals: false,
20
+ readOnly: false
21
+ };
22
+ const store = (0, _sharedUi.definePersistedSetting)(`${_sharedUi.devToolsStorageKeys.base}_ask_buoy_settings`, DEFAULT_SETTINGS, {
23
+ sanitize: merged => ({
24
+ showThinking: merged.showThinking === true,
25
+ // Fails closed: anything but a literal `true` on disk means "ask me".
26
+ bypassApprovals: merged.bypassApprovals === true,
27
+ readOnly: merged.readOnly === true
28
+ })
29
+ });
30
+ let current = DEFAULT_SETTINGS;
31
+ let loaded = false;
32
+ const listeners = new Set();
33
+ function emit() {
34
+ for (const fn of listeners) {
35
+ try {
36
+ fn();
37
+ } catch {
38
+ // A throwing subscriber must not take the sheet down.
39
+ }
40
+ }
41
+ }
42
+ const askBuoySettings = exports.askBuoySettings = {
43
+ get: () => current,
44
+ subscribe(fn) {
45
+ listeners.add(fn);
46
+ // First subscriber pays for the read; everyone after gets the cached value.
47
+ if (!loaded) {
48
+ loaded = true;
49
+ void store.load().then(value => {
50
+ current = value;
51
+ emit();
52
+ });
53
+ }
54
+ return () => listeners.delete(fn);
55
+ },
56
+ set(key, value) {
57
+ if (current[key] === value) return;
58
+ current = {
59
+ ...current,
60
+ [key]: value
61
+ };
62
+ emit();
63
+ void store.save(current);
64
+ },
65
+ /** Tests only — the module cache would otherwise leak between them. */
66
+ reset() {
67
+ current = DEFAULT_SETTINGS;
68
+ loaded = false;
69
+ void store.clear();
70
+ }
71
+ };
72
+ //# sourceMappingURL=askBuoySettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_sharedUi","require","DEFAULT_SETTINGS","exports","showThinking","bypassApprovals","readOnly","store","definePersistedSetting","devToolsStorageKeys","base","sanitize","merged","current","loaded","listeners","Set","emit","fn","askBuoySettings","get","subscribe","add","load","then","value","delete","set","key","save","reset","clear"],"sourceRoot":"../../../src","sources":["store/askBuoySettings.ts"],"mappings":";;;;;;AAQA,IAAAA,SAAA,GAAAC,OAAA;AARA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCO,MAAMC,gBAAiC,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC/CE,YAAY,EAAE,KAAK;EACnBC,eAAe,EAAE,KAAK;EACtBC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,KAAK,GAAG,IAAAC,gCAAsB,EAClC,GAAGC,6BAAmB,CAACC,IAAI,oBAAoB,EAC/CR,gBAAgB,EAChB;EACES,QAAQ,EAAGC,MAAM,KAAM;IACrBR,YAAY,EAAEQ,MAAM,CAACR,YAAY,KAAK,IAAI;IAC1C;IACAC,eAAe,EAAEO,MAAM,CAACP,eAAe,KAAK,IAAI;IAChDC,QAAQ,EAAEM,MAAM,CAACN,QAAQ,KAAK;EAChC,CAAC;AACH,CACF,CAAC;AAED,IAAIO,OAAwB,GAAGX,gBAAgB;AAC/C,IAAIY,MAAM,GAAG,KAAK;AAClB,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,SAASC,IAAIA,CAAA,EAAS;EACpB,KAAK,MAAMC,EAAE,IAAIH,SAAS,EAAE;IAC1B,IAAI;MACFG,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF;AAEO,MAAMC,eAAe,GAAAhB,OAAA,CAAAgB,eAAA,GAAG;EAC7BC,GAAG,EAAEA,CAAA,KAAuBP,OAAO;EAEnCQ,SAASA,CAACH,EAAc,EAAc;IACpCH,SAAS,CAACO,GAAG,CAACJ,EAAE,CAAC;IACjB;IACA,IAAI,CAACJ,MAAM,EAAE;MACXA,MAAM,GAAG,IAAI;MACb,KAAKP,KAAK,CAACgB,IAAI,CAAC,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAK;QAChCZ,OAAO,GAAGY,KAAK;QACfR,IAAI,CAAC,CAAC;MACR,CAAC,CAAC;IACJ;IACA,OAAO,MAAMF,SAAS,CAACW,MAAM,CAACR,EAAE,CAAC;EACnC,CAAC;EAEDS,GAAGA,CAAkCC,GAAM,EAAEH,KAAyB,EAAQ;IAC5E,IAAIZ,OAAO,CAACe,GAAG,CAAC,KAAKH,KAAK,EAAE;IAC5BZ,OAAO,GAAG;MAAE,GAAGA,OAAO;MAAE,CAACe,GAAG,GAAGH;IAAM,CAAC;IACtCR,IAAI,CAAC,CAAC;IACN,KAAKV,KAAK,CAACsB,IAAI,CAAChB,OAAO,CAAC;EAC1B,CAAC;EAED;EACAiB,KAAKA,CAAA,EAAS;IACZjB,OAAO,GAAGX,gBAAgB;IAC1BY,MAAM,GAAG,KAAK;IACd,KAAKP,KAAK,CAACwB,KAAK,CAAC,CAAC;EACpB;AACF,CAAC","ignoreList":[]}