@buoy-gg/ask-buoy 7.0.38 → 7.0.39

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 (306) hide show
  1. package/lib/commonjs/blocks/AskBlocks.js +338 -1
  2. package/lib/commonjs/blocks/AskBlocks.js.map +1 -0
  3. package/lib/commonjs/blocks/BlockRenderer.js +262 -1
  4. package/lib/commonjs/blocks/BlockRenderer.js.map +1 -0
  5. package/lib/commonjs/blocks/ChromePrototypes.js +514 -1
  6. package/lib/commonjs/blocks/ChromePrototypes.js.map +1 -0
  7. package/lib/commonjs/blocks/DataBlocks.js +781 -1
  8. package/lib/commonjs/blocks/DataBlocks.js.map +1 -0
  9. package/lib/commonjs/blocks/ExtraBlocks.js +1860 -1
  10. package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -0
  11. package/lib/commonjs/blocks/MediaBlocks.js +156 -1
  12. package/lib/commonjs/blocks/MediaBlocks.js.map +1 -0
  13. package/lib/commonjs/blocks/ReceiptBlocks.js +586 -1
  14. package/lib/commonjs/blocks/ReceiptBlocks.js.map +1 -0
  15. package/lib/commonjs/blocks/blockText.js +60 -1
  16. package/lib/commonjs/blocks/blockText.js.map +1 -0
  17. package/lib/commonjs/blocks/blockText.test.js +53 -1
  18. package/lib/commonjs/blocks/blockText.test.js.map +1 -0
  19. package/lib/commonjs/blocks/context.js +42 -1
  20. package/lib/commonjs/blocks/context.js.map +1 -0
  21. package/lib/commonjs/blocks/icons.js +96 -1
  22. package/lib/commonjs/blocks/icons.js.map +1 -0
  23. package/lib/commonjs/blocks/index.js +95 -1
  24. package/lib/commonjs/blocks/index.js.map +1 -0
  25. package/lib/commonjs/blocks/listRow.test.js +55 -1
  26. package/lib/commonjs/blocks/listRow.test.js.map +1 -0
  27. package/lib/commonjs/blocks/pageState.js +34 -1
  28. package/lib/commonjs/blocks/pageState.js.map +1 -0
  29. package/lib/commonjs/blocks/pageState.test.js +57 -1
  30. package/lib/commonjs/blocks/pageState.test.js.map +1 -0
  31. package/lib/commonjs/blocks/primitives.js +457 -1
  32. package/lib/commonjs/blocks/primitives.js.map +1 -0
  33. package/lib/commonjs/blocks/primitivesIndex.js +62 -1
  34. package/lib/commonjs/blocks/primitivesIndex.js.map +1 -0
  35. package/lib/commonjs/components/ApprovalCard.js +297 -1
  36. package/lib/commonjs/components/ApprovalCard.js.map +1 -0
  37. package/lib/commonjs/components/AskBuoyHeader.js +196 -1
  38. package/lib/commonjs/components/AskBuoyHeader.js.map +1 -0
  39. package/lib/commonjs/components/AskBuoyIcon.js +19 -1
  40. package/lib/commonjs/components/AskBuoyIcon.js.map +1 -0
  41. package/lib/commonjs/components/AskBuoyModal.js +479 -1
  42. package/lib/commonjs/components/AskBuoyModal.js.map +1 -0
  43. package/lib/commonjs/components/AskBuoySettings.js +181 -1
  44. package/lib/commonjs/components/AskBuoySettings.js.map +1 -0
  45. package/lib/commonjs/components/ChangesBar.js +211 -1
  46. package/lib/commonjs/components/ChangesBar.js.map +1 -0
  47. package/lib/commonjs/components/Composer.js +255 -1
  48. package/lib/commonjs/components/Composer.js.map +1 -0
  49. package/lib/commonjs/components/EmptyState.js +161 -1
  50. package/lib/commonjs/components/EmptyState.js.map +1 -0
  51. package/lib/commonjs/components/KeyboardPad.js +80 -1
  52. package/lib/commonjs/components/KeyboardPad.js.map +1 -0
  53. package/lib/commonjs/components/Markdown.js +310 -1
  54. package/lib/commonjs/components/Markdown.js.map +1 -0
  55. package/lib/commonjs/components/MessageList.js +970 -1
  56. package/lib/commonjs/components/MessageList.js.map +1 -0
  57. package/lib/commonjs/components/QueuedMessages.js +145 -1
  58. package/lib/commonjs/components/QueuedMessages.js.map +1 -0
  59. package/lib/commonjs/components/ThinkingStrip.js +223 -1
  60. package/lib/commonjs/components/ThinkingStrip.js.map +1 -0
  61. package/lib/commonjs/components/TypingDots.js +63 -1
  62. package/lib/commonjs/components/TypingDots.js.map +1 -0
  63. package/lib/commonjs/components/markdownParse.js +131 -1
  64. package/lib/commonjs/components/markdownParse.js.map +1 -0
  65. package/lib/commonjs/components/markdownParse.test.js +99 -1
  66. package/lib/commonjs/components/markdownParse.test.js.map +1 -0
  67. package/lib/commonjs/components/useCopyAction.js +50 -1
  68. package/lib/commonjs/components/useCopyAction.js.map +1 -0
  69. package/lib/commonjs/index.js +252 -1
  70. package/lib/commonjs/index.js.map +1 -0
  71. package/lib/commonjs/preset.js +91 -1
  72. package/lib/commonjs/preset.js.map +1 -0
  73. package/lib/commonjs/store/activityGroups.js +110 -1
  74. package/lib/commonjs/store/activityGroups.js.map +1 -0
  75. package/lib/commonjs/store/activityGroups.test.js +78 -1
  76. package/lib/commonjs/store/activityGroups.test.js.map +1 -0
  77. package/lib/commonjs/store/askBuoySettings.js +72 -1
  78. package/lib/commonjs/store/askBuoySettings.js.map +1 -0
  79. package/lib/commonjs/store/askBuoyStore.js +589 -1
  80. package/lib/commonjs/store/askBuoyStore.js.map +1 -0
  81. package/lib/commonjs/store/blockPlacement.js +64 -1
  82. package/lib/commonjs/store/blockPlacement.js.map +1 -0
  83. package/lib/commonjs/store/blockPlacement.test.js +123 -1
  84. package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
  85. package/lib/commonjs/store/queue.test.js +150 -1
  86. package/lib/commonjs/store/queue.test.js.map +1 -0
  87. package/lib/commonjs/store/resetConversation.js +77 -1
  88. package/lib/commonjs/store/resetConversation.js.map +1 -0
  89. package/lib/commonjs/store/restorePending.test.js +63 -1
  90. package/lib/commonjs/store/restorePending.test.js.map +1 -0
  91. package/lib/commonjs/store/restoredIds.test.js +47 -1
  92. package/lib/commonjs/store/restoredIds.test.js.map +1 -0
  93. package/lib/commonjs/store/suggestions.js +54 -1
  94. package/lib/commonjs/store/suggestions.js.map +1 -0
  95. package/lib/commonjs/store/suggestions.test.js +58 -1
  96. package/lib/commonjs/store/suggestions.test.js.map +1 -0
  97. package/lib/commonjs/store/systemLine.test.js +77 -1
  98. package/lib/commonjs/store/systemLine.test.js.map +1 -0
  99. package/lib/commonjs/store/ticketPrompt.js +17 -1
  100. package/lib/commonjs/store/ticketPrompt.js.map +1 -0
  101. package/lib/commonjs/store/traceText.js +81 -1
  102. package/lib/commonjs/store/traceText.js.map +1 -0
  103. package/lib/commonjs/store/traceText.test.js +112 -1
  104. package/lib/commonjs/store/traceText.test.js.map +1 -0
  105. package/lib/commonjs/store/transcriptPersistence.js +297 -1
  106. package/lib/commonjs/store/transcriptPersistence.js.map +1 -0
  107. package/lib/commonjs/store/transcriptPersistence.test.js +333 -1
  108. package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -0
  109. package/lib/commonjs/store/turnRendering.test.js +151 -1
  110. package/lib/commonjs/store/turnRendering.test.js.map +1 -0
  111. package/lib/commonjs/store/useAskBuoy.js +651 -1
  112. package/lib/commonjs/store/useAskBuoy.js.map +1 -0
  113. package/lib/commonjs/store/useAskBuoySettings.js +14 -1
  114. package/lib/commonjs/store/useAskBuoySettings.js.map +1 -0
  115. package/lib/commonjs/sync/askBuoySyncAdapter.js +153 -1
  116. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -0
  117. package/lib/commonjs/sync/askBuoySyncAdapter.test.js +141 -1
  118. package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +1 -0
  119. package/lib/commonjs/sync/wire.js +58 -1
  120. package/lib/commonjs/sync/wire.js.map +1 -0
  121. package/lib/commonjs/types.js +6 -1
  122. package/lib/commonjs/types.js.map +1 -0
  123. package/lib/module/blocks/AskBlocks.js +331 -1
  124. package/lib/module/blocks/AskBlocks.js.map +1 -0
  125. package/lib/module/blocks/BlockRenderer.js +257 -1
  126. package/lib/module/blocks/BlockRenderer.js.map +1 -0
  127. package/lib/module/blocks/ChromePrototypes.js +503 -1
  128. package/lib/module/blocks/ChromePrototypes.js.map +1 -0
  129. package/lib/module/blocks/DataBlocks.js +767 -1
  130. package/lib/module/blocks/DataBlocks.js.map +1 -0
  131. package/lib/module/blocks/ExtraBlocks.js +1833 -1
  132. package/lib/module/blocks/ExtraBlocks.js.map +1 -0
  133. package/lib/module/blocks/MediaBlocks.js +151 -1
  134. package/lib/module/blocks/MediaBlocks.js.map +1 -0
  135. package/lib/module/blocks/ReceiptBlocks.js +574 -1
  136. package/lib/module/blocks/ReceiptBlocks.js.map +1 -0
  137. package/lib/module/blocks/blockText.js +55 -1
  138. package/lib/module/blocks/blockText.js.map +1 -0
  139. package/lib/module/blocks/blockText.test.js +53 -1
  140. package/lib/module/blocks/blockText.test.js.map +1 -0
  141. package/lib/module/blocks/context.js +35 -1
  142. package/lib/module/blocks/context.js.map +1 -0
  143. package/lib/module/blocks/icons.js +91 -1
  144. package/lib/module/blocks/icons.js.map +1 -0
  145. package/lib/module/blocks/index.js +8 -1
  146. package/lib/module/blocks/index.js.map +1 -0
  147. package/lib/module/blocks/listRow.test.js +56 -1
  148. package/lib/module/blocks/listRow.test.js.map +1 -0
  149. package/lib/module/blocks/pageState.js +30 -1
  150. package/lib/module/blocks/pageState.js.map +1 -0
  151. package/lib/module/blocks/pageState.test.js +56 -1
  152. package/lib/module/blocks/pageState.test.js.map +1 -0
  153. package/lib/module/blocks/primitives.js +445 -1
  154. package/lib/module/blocks/primitives.js.map +1 -0
  155. package/lib/module/blocks/primitivesIndex.js +5 -1
  156. package/lib/module/blocks/primitivesIndex.js.map +1 -0
  157. package/lib/module/components/ApprovalCard.js +292 -1
  158. package/lib/module/components/ApprovalCard.js.map +1 -0
  159. package/lib/module/components/AskBuoyHeader.js +193 -1
  160. package/lib/module/components/AskBuoyHeader.js.map +1 -0
  161. package/lib/module/components/AskBuoyIcon.js +8 -1
  162. package/lib/module/components/AskBuoyIcon.js.map +1 -0
  163. package/lib/module/components/AskBuoyModal.js +474 -1
  164. package/lib/module/components/AskBuoyModal.js.map +1 -0
  165. package/lib/module/components/AskBuoySettings.js +176 -1
  166. package/lib/module/components/AskBuoySettings.js.map +1 -0
  167. package/lib/module/components/ChangesBar.js +206 -1
  168. package/lib/module/components/ChangesBar.js.map +1 -0
  169. package/lib/module/components/Composer.js +250 -1
  170. package/lib/module/components/Composer.js.map +1 -0
  171. package/lib/module/components/EmptyState.js +156 -1
  172. package/lib/module/components/EmptyState.js.map +1 -0
  173. package/lib/module/components/KeyboardPad.js +75 -1
  174. package/lib/module/components/KeyboardPad.js.map +1 -0
  175. package/lib/module/components/Markdown.js +305 -1
  176. package/lib/module/components/Markdown.js.map +1 -0
  177. package/lib/module/components/MessageList.js +964 -1
  178. package/lib/module/components/MessageList.js.map +1 -0
  179. package/lib/module/components/QueuedMessages.js +140 -1
  180. package/lib/module/components/QueuedMessages.js.map +1 -0
  181. package/lib/module/components/ThinkingStrip.js +218 -1
  182. package/lib/module/components/ThinkingStrip.js.map +1 -0
  183. package/lib/module/components/TypingDots.js +58 -1
  184. package/lib/module/components/TypingDots.js.map +1 -0
  185. package/lib/module/components/markdownParse.js +125 -1
  186. package/lib/module/components/markdownParse.js.map +1 -0
  187. package/lib/module/components/markdownParse.test.js +98 -1
  188. package/lib/module/components/markdownParse.test.js.map +1 -0
  189. package/lib/module/components/useCopyAction.js +46 -1
  190. package/lib/module/components/useCopyAction.js.map +1 -0
  191. package/lib/module/index.js +34 -1
  192. package/lib/module/index.js.map +1 -0
  193. package/lib/module/preset.js +74 -1
  194. package/lib/module/preset.js.map +1 -0
  195. package/lib/module/store/activityGroups.js +103 -1
  196. package/lib/module/store/activityGroups.js.map +1 -0
  197. package/lib/module/store/activityGroups.test.js +77 -1
  198. package/lib/module/store/activityGroups.test.js.map +1 -0
  199. package/lib/module/store/askBuoySettings.js +67 -1
  200. package/lib/module/store/askBuoySettings.js.map +1 -0
  201. package/lib/module/store/askBuoyStore.js +583 -1
  202. package/lib/module/store/askBuoyStore.js.map +1 -0
  203. package/lib/module/store/blockPlacement.js +59 -1
  204. package/lib/module/store/blockPlacement.js.map +1 -0
  205. package/lib/module/store/blockPlacement.test.js +122 -1
  206. package/lib/module/store/blockPlacement.test.js.map +1 -0
  207. package/lib/module/store/queue.test.js +149 -1
  208. package/lib/module/store/queue.test.js.map +1 -0
  209. package/lib/module/store/resetConversation.js +72 -1
  210. package/lib/module/store/resetConversation.js.map +1 -0
  211. package/lib/module/store/restorePending.test.js +62 -1
  212. package/lib/module/store/restorePending.test.js.map +1 -0
  213. package/lib/module/store/restoredIds.test.js +46 -1
  214. package/lib/module/store/restoredIds.test.js.map +1 -0
  215. package/lib/module/store/suggestions.js +49 -1
  216. package/lib/module/store/suggestions.js.map +1 -0
  217. package/lib/module/store/suggestions.test.js +57 -1
  218. package/lib/module/store/suggestions.test.js.map +1 -0
  219. package/lib/module/store/systemLine.test.js +76 -1
  220. package/lib/module/store/systemLine.test.js.map +1 -0
  221. package/lib/module/store/ticketPrompt.js +13 -1
  222. package/lib/module/store/ticketPrompt.js.map +1 -0
  223. package/lib/module/store/traceText.js +75 -1
  224. package/lib/module/store/traceText.js.map +1 -0
  225. package/lib/module/store/traceText.test.js +111 -1
  226. package/lib/module/store/traceText.test.js.map +1 -0
  227. package/lib/module/store/transcriptPersistence.js +287 -1
  228. package/lib/module/store/transcriptPersistence.js.map +1 -0
  229. package/lib/module/store/transcriptPersistence.test.js +332 -1
  230. package/lib/module/store/transcriptPersistence.test.js.map +1 -0
  231. package/lib/module/store/turnRendering.test.js +150 -1
  232. package/lib/module/store/turnRendering.test.js.map +1 -0
  233. package/lib/module/store/useAskBuoy.js +646 -1
  234. package/lib/module/store/useAskBuoy.js.map +1 -0
  235. package/lib/module/store/useAskBuoySettings.js +9 -1
  236. package/lib/module/store/useAskBuoySettings.js.map +1 -0
  237. package/lib/module/sync/askBuoySyncAdapter.js +148 -1
  238. package/lib/module/sync/askBuoySyncAdapter.js.map +1 -0
  239. package/lib/module/sync/askBuoySyncAdapter.test.js +140 -1
  240. package/lib/module/sync/askBuoySyncAdapter.test.js.map +1 -0
  241. package/lib/module/sync/wire.js +47 -1
  242. package/lib/module/sync/wire.js.map +1 -0
  243. package/lib/module/types.js +4 -1
  244. package/lib/module/types.js.map +1 -0
  245. package/lib/typescript/blocks/AskBlocks.d.ts.map +1 -0
  246. package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -0
  247. package/lib/typescript/blocks/ChromePrototypes.d.ts.map +1 -0
  248. package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -0
  249. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -0
  250. package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -0
  251. package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +1 -0
  252. package/lib/typescript/blocks/blockText.d.ts.map +1 -0
  253. package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
  254. package/lib/typescript/blocks/context.d.ts.map +1 -0
  255. package/lib/typescript/blocks/icons.d.ts.map +1 -0
  256. package/lib/typescript/blocks/index.d.ts.map +1 -0
  257. package/lib/typescript/blocks/listRow.test.d.ts.map +1 -0
  258. package/lib/typescript/blocks/pageState.d.ts.map +1 -0
  259. package/lib/typescript/blocks/pageState.test.d.ts.map +1 -0
  260. package/lib/typescript/blocks/primitives.d.ts.map +1 -0
  261. package/lib/typescript/blocks/primitivesIndex.d.ts.map +1 -0
  262. package/lib/typescript/components/ApprovalCard.d.ts.map +1 -0
  263. package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -0
  264. package/lib/typescript/components/AskBuoyIcon.d.ts.map +1 -0
  265. package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -0
  266. package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -0
  267. package/lib/typescript/components/ChangesBar.d.ts.map +1 -0
  268. package/lib/typescript/components/Composer.d.ts.map +1 -0
  269. package/lib/typescript/components/EmptyState.d.ts.map +1 -0
  270. package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
  271. package/lib/typescript/components/Markdown.d.ts.map +1 -0
  272. package/lib/typescript/components/MessageList.d.ts.map +1 -0
  273. package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
  274. package/lib/typescript/components/ThinkingStrip.d.ts.map +1 -0
  275. package/lib/typescript/components/TypingDots.d.ts.map +1 -0
  276. package/lib/typescript/components/markdownParse.d.ts.map +1 -0
  277. package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
  278. package/lib/typescript/components/useCopyAction.d.ts.map +1 -0
  279. package/lib/typescript/index.d.ts.map +1 -0
  280. package/lib/typescript/preset.d.ts.map +1 -0
  281. package/lib/typescript/store/activityGroups.d.ts.map +1 -0
  282. package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
  283. package/lib/typescript/store/askBuoySettings.d.ts.map +1 -0
  284. package/lib/typescript/store/askBuoyStore.d.ts.map +1 -0
  285. package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
  286. package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
  287. package/lib/typescript/store/queue.test.d.ts.map +1 -0
  288. package/lib/typescript/store/resetConversation.d.ts.map +1 -0
  289. package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
  290. package/lib/typescript/store/restoredIds.test.d.ts.map +1 -0
  291. package/lib/typescript/store/suggestions.d.ts.map +1 -0
  292. package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
  293. package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
  294. package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
  295. package/lib/typescript/store/traceText.d.ts.map +1 -0
  296. package/lib/typescript/store/traceText.test.d.ts.map +1 -0
  297. package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -0
  298. package/lib/typescript/store/transcriptPersistence.test.d.ts.map +1 -0
  299. package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
  300. package/lib/typescript/store/useAskBuoy.d.ts.map +1 -0
  301. package/lib/typescript/store/useAskBuoySettings.d.ts.map +1 -0
  302. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -0
  303. package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +1 -0
  304. package/lib/typescript/sync/wire.d.ts.map +1 -0
  305. package/lib/typescript/types.d.ts.map +1 -0
  306. package/package.json +8 -8
@@ -1 +1,176 @@
1
- "use strict";import{Pressable,ScrollView,StyleSheet,Text,View}from"react-native";import{AlertTriangle,night,ToggleRow}from"@buoy-gg/shared-ui";import{useAskBuoySettings}from"../store/useAskBuoySettings";import{askBuoySettings}from"../store/askBuoySettings";import{askBuoyStore}from"../store/askBuoyStore";import{useAskBuoyState}from"../store/useAskBuoy";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function AskBuoySettings(){const e=useAskBuoySettings(),t=useAskBuoyState().trusted;return _jsxs(ScrollView,{style:styles.scroll,contentContainerStyle:styles.content,testID:"buoy-ask-buoy-settings",children:[_jsx(Text,{style:styles.section,children:"CHAT"}),_jsx(ToggleRow,{testID:"buoy-ask-buoy-setting-thinking",label:"Show agent thinking",description:"Adds a collapsed strip under each answer: the model's reasoning, and every step it ran with its parameters, result, duration and token cost. Copy includes the steps and reasoning while this is on, so you can read the run outside the app.",value:e.showThinking,onValueChange:e=>askBuoySettings.set("showThinking",e)}),_jsx(Text,{style:styles.note,children:"Not every model reports reasoning. Claude thinks by default; most OpenAI models return none, and the strip then shows the steps alone."}),_jsx(Text,{style:styles.section,children:"PERMISSIONS"}),_jsx(ToggleRow,{testID:"buoy-ask-buoy-setting-readonly",label:"Read only",description:"Inspect the app, change nothing. Every write and simulation is refused until this is off. Undo still works — putting things back is the safe direction.",value:e.readOnly,onValueChange:e=>askBuoySettings.set("readOnly",e)}),e.readOnly?_jsx(Text,{style:styles.note,testID:"buoy-ask-buoy-readonly-note",children:"On across reloads until you turn it off here. The header says “Read only” while it is on. It adds to whatever this app already restricts — it never loosens anything."}):null,_jsx(ToggleRow,{testID:"buoy-ask-buoy-setting-bypass",tone:"warning",emphasizeLabel:e.bypassApprovals,disabled:e.readOnly,label:"Skip approval prompts",description:e.readOnly?"Unavailable while Read only is on — nothing can be approved.":"Runs every action the moment the agent calls it, with no Allow card — including the destructive ones that wipe or reset data.",value:e.bypassApprovals,onValueChange:e=>askBuoySettings.set("bypassApprovals",e)}),e.bypassApprovals&&!e.readOnly?_jsxs(View,{style:styles.warning,testID:"buoy-ask-buoy-bypass-warning",children:[_jsx(AlertTriangle,{size:14,color:night.color.warning}),_jsx(Text,{style:styles.warningText,children:"Nothing will ask before a change lands. A wipe or a reset runs on the model's word alone, and Undo only reverses the changes that can be reversed — the bar tells you which. This stays on across reloads and app restarts until you turn it off here, so leave it off on any device holding data you care about. It does not widen what the agent may reach: read-only mode, this app's deny list and the release-build refusals still apply."})]}):_jsx(Text,{style:styles.note,children:"On by default for destructive actions only — reads and ordinary writes already run without asking, and the changes bar records them."}),t.length>0?_jsxs(View,{style:styles.trustedBox,testID:"buoy-ask-buoy-trusted",children:[_jsx(Text,{style:styles.section,children:"ALLOWED WITHOUT ASKING — THIS CHAT"}),t.map(e=>_jsxs(View,{style:styles.trustedRow,children:[_jsx(Text,{style:styles.trustedLabel,numberOfLines:2,children:e.label}),_jsx(Pressable,{testID:`buoy-ask-buoy-untrust-${e.key}`,accessibilityRole:"button",onPress:()=>askBuoyStore.untrust(e.key),style:({pressed:e})=>[styles.forget,e&&{opacity:.7}],hitSlop:6,children:_jsx(Text,{style:styles.forgetText,children:"Ask again"})})]},e.key))]}):null]})}const styles=StyleSheet.create({scroll:{flex:1},content:{padding:night.gutter,gap:10,paddingBottom:32},section:{color:night.color.textTertiary,fontSize:10,fontWeight:"700",letterSpacing:.6,paddingHorizontal:4,paddingTop:4},warning:{flexDirection:"row",gap:8,padding:night.cardPad,borderRadius:night.radius.card,borderWidth:StyleSheet.hairlineWidth,borderColor:night.color.warning,backgroundColor:night.color.surface},warningText:{flex:1,color:night.color.warning,fontSize:night.font.micro,lineHeight:16},trustedBox:{gap:6,paddingTop:6},trustedRow:{flexDirection:"row",alignItems:"center",gap:10,padding:night.cardPad,borderRadius:night.radius.card,borderWidth:StyleSheet.hairlineWidth,borderColor:night.color.border,backgroundColor:night.color.surface},trustedLabel:{flex:1,color:night.color.text,fontSize:night.font.caption,lineHeight:18},forget:{paddingHorizontal:10,paddingVertical:6,borderRadius:night.radius.row,backgroundColor:night.color.button},forgetText:{color:night.color.text,fontSize:night.font.micro,fontWeight:"600"},note:{color:night.color.textTertiary,fontSize:night.font.micro,lineHeight:16,paddingHorizontal:4}});
1
+ "use strict";
2
+
3
+ /**
4
+ * The sheet's settings, reached from the header.
5
+ *
6
+ * A view inside the sheet rather than a second modal: a settings panel that
7
+ * covers the conversation you are configuring makes the effect of a toggle
8
+ * invisible until you dismiss it. Back returns to the chat with the
9
+ * transcript exactly where it was.
10
+ *
11
+ * Sections are by subject, not by implementation. "Chat" is what a tester
12
+ * calls the thing they are looking at.
13
+ */
14
+ import { Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
15
+ import { AlertTriangle, night, ToggleRow } from "@buoy-gg/shared-ui";
16
+ import { useAskBuoySettings } from "../store/useAskBuoySettings";
17
+ import { askBuoySettings } from "../store/askBuoySettings";
18
+ import { askBuoyStore } from "../store/askBuoyStore";
19
+ import { useAskBuoyState } from "../store/useAskBuoy";
20
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
+ export function AskBuoySettings() {
22
+ const settings = useAskBuoySettings();
23
+ const trusted = useAskBuoyState().trusted;
24
+ return /*#__PURE__*/_jsxs(ScrollView, {
25
+ style: styles.scroll,
26
+ contentContainerStyle: styles.content,
27
+ testID: "buoy-ask-buoy-settings",
28
+ children: [/*#__PURE__*/_jsx(Text, {
29
+ style: styles.section,
30
+ children: "CHAT"
31
+ }), /*#__PURE__*/_jsx(ToggleRow, {
32
+ testID: "buoy-ask-buoy-setting-thinking",
33
+ label: "Show agent thinking",
34
+ description: "Adds a collapsed strip under each answer: the model's reasoning, and every step it ran with its parameters, result, duration and token cost. Copy includes the steps and reasoning while this is on, so you can read the run outside the app.",
35
+ value: settings.showThinking,
36
+ onValueChange: next => askBuoySettings.set("showThinking", next)
37
+ }), /*#__PURE__*/_jsx(Text, {
38
+ style: styles.note,
39
+ children: "Not every model reports reasoning. Claude thinks by default; most OpenAI models return none, and the strip then shows the steps alone."
40
+ }), /*#__PURE__*/_jsx(Text, {
41
+ style: styles.section,
42
+ children: "PERMISSIONS"
43
+ }), /*#__PURE__*/_jsx(ToggleRow, {
44
+ testID: "buoy-ask-buoy-setting-readonly",
45
+ label: "Read only",
46
+ description: "Inspect the app, change nothing. Every write and simulation is refused until this is off. Undo still works \u2014 putting things back is the safe direction.",
47
+ value: settings.readOnly,
48
+ onValueChange: next => askBuoySettings.set("readOnly", next)
49
+ }), settings.readOnly ? /*#__PURE__*/_jsx(Text, {
50
+ style: styles.note,
51
+ testID: "buoy-ask-buoy-readonly-note",
52
+ children: "On across reloads until you turn it off here. The header says \u201CRead only\u201D while it is on. It adds to whatever this app already restricts \u2014 it never loosens anything."
53
+ }) : null, /*#__PURE__*/_jsx(ToggleRow, {
54
+ testID: "buoy-ask-buoy-setting-bypass",
55
+ tone: "warning",
56
+ emphasizeLabel: settings.bypassApprovals,
57
+ disabled: settings.readOnly,
58
+ label: "Skip approval prompts",
59
+ description: settings.readOnly ? "Unavailable while Read only is on — nothing can be approved." : "Runs every action the moment the agent calls it, with no Allow card — including the destructive ones that wipe or reset data.",
60
+ value: settings.bypassApprovals,
61
+ onValueChange: next => askBuoySettings.set("bypassApprovals", next)
62
+ }), settings.bypassApprovals && !settings.readOnly ? /*#__PURE__*/_jsxs(View, {
63
+ style: styles.warning,
64
+ testID: "buoy-ask-buoy-bypass-warning",
65
+ children: [/*#__PURE__*/_jsx(AlertTriangle, {
66
+ size: 14,
67
+ color: night.color.warning
68
+ }), /*#__PURE__*/_jsx(Text, {
69
+ style: styles.warningText,
70
+ children: "Nothing will ask before a change lands. A wipe or a reset runs on the model's word alone, and Undo only reverses the changes that can be reversed \u2014 the bar tells you which. This stays on across reloads and app restarts until you turn it off here, so leave it off on any device holding data you care about. It does not widen what the agent may reach: read-only mode, this app's deny list and the release-build refusals still apply."
71
+ })]
72
+ }) : /*#__PURE__*/_jsx(Text, {
73
+ style: styles.note,
74
+ children: "On by default for destructive actions only \u2014 reads and ordinary writes already run without asking, and the changes bar records them."
75
+ }), trusted.length > 0 ? /*#__PURE__*/_jsxs(View, {
76
+ style: styles.trustedBox,
77
+ testID: "buoy-ask-buoy-trusted",
78
+ children: [/*#__PURE__*/_jsx(Text, {
79
+ style: styles.section,
80
+ children: "ALLOWED WITHOUT ASKING \u2014 THIS CHAT"
81
+ }), trusted.map(t => /*#__PURE__*/_jsxs(View, {
82
+ style: styles.trustedRow,
83
+ children: [/*#__PURE__*/_jsx(Text, {
84
+ style: styles.trustedLabel,
85
+ numberOfLines: 2,
86
+ children: t.label
87
+ }), /*#__PURE__*/_jsx(Pressable, {
88
+ testID: `buoy-ask-buoy-untrust-${t.key}`,
89
+ accessibilityRole: "button",
90
+ onPress: () => askBuoyStore.untrust(t.key),
91
+ style: ({
92
+ pressed
93
+ }) => [styles.forget, pressed && {
94
+ opacity: 0.7
95
+ }],
96
+ hitSlop: 6,
97
+ children: /*#__PURE__*/_jsx(Text, {
98
+ style: styles.forgetText,
99
+ children: "Ask again"
100
+ })
101
+ })]
102
+ }, t.key))]
103
+ }) : null]
104
+ });
105
+ }
106
+ const styles = StyleSheet.create({
107
+ scroll: {
108
+ flex: 1
109
+ },
110
+ content: {
111
+ padding: night.gutter,
112
+ gap: 10,
113
+ paddingBottom: 32
114
+ },
115
+ section: {
116
+ color: night.color.textTertiary,
117
+ fontSize: 10,
118
+ fontWeight: "700",
119
+ letterSpacing: 0.6,
120
+ paddingHorizontal: 4,
121
+ paddingTop: 4
122
+ },
123
+ warning: {
124
+ flexDirection: "row",
125
+ gap: 8,
126
+ padding: night.cardPad,
127
+ borderRadius: night.radius.card,
128
+ borderWidth: StyleSheet.hairlineWidth,
129
+ borderColor: night.color.warning,
130
+ backgroundColor: night.color.surface
131
+ },
132
+ warningText: {
133
+ flex: 1,
134
+ color: night.color.warning,
135
+ fontSize: night.font.micro,
136
+ lineHeight: 16
137
+ },
138
+ trustedBox: {
139
+ gap: 6,
140
+ paddingTop: 6
141
+ },
142
+ trustedRow: {
143
+ flexDirection: "row",
144
+ alignItems: "center",
145
+ gap: 10,
146
+ padding: night.cardPad,
147
+ borderRadius: night.radius.card,
148
+ borderWidth: StyleSheet.hairlineWidth,
149
+ borderColor: night.color.border,
150
+ backgroundColor: night.color.surface
151
+ },
152
+ trustedLabel: {
153
+ flex: 1,
154
+ color: night.color.text,
155
+ fontSize: night.font.caption,
156
+ lineHeight: 18
157
+ },
158
+ forget: {
159
+ paddingHorizontal: 10,
160
+ paddingVertical: 6,
161
+ borderRadius: night.radius.row,
162
+ backgroundColor: night.color.button
163
+ },
164
+ forgetText: {
165
+ color: night.color.text,
166
+ fontSize: night.font.micro,
167
+ fontWeight: "600"
168
+ },
169
+ note: {
170
+ color: night.color.textTertiary,
171
+ fontSize: night.font.micro,
172
+ lineHeight: 16,
173
+ paddingHorizontal: 4
174
+ }
175
+ });
176
+ //# sourceMappingURL=AskBuoySettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Pressable","ScrollView","StyleSheet","Text","View","AlertTriangle","night","ToggleRow","useAskBuoySettings","askBuoySettings","askBuoyStore","useAskBuoyState","jsx","_jsx","jsxs","_jsxs","AskBuoySettings","settings","trusted","style","styles","scroll","contentContainerStyle","content","testID","children","section","label","description","value","showThinking","onValueChange","next","set","note","readOnly","tone","emphasizeLabel","bypassApprovals","disabled","warning","size","color","warningText","length","trustedBox","map","t","trustedRow","trustedLabel","numberOfLines","key","accessibilityRole","onPress","untrust","pressed","forget","opacity","hitSlop","forgetText","create","flex","padding","gutter","gap","paddingBottom","textTertiary","fontSize","fontWeight","letterSpacing","paddingHorizontal","paddingTop","flexDirection","cardPad","borderRadius","radius","card","borderWidth","hairlineWidth","borderColor","backgroundColor","surface","font","micro","lineHeight","alignItems","border","text","caption","paddingVertical","row","button"],"sourceRoot":"../../../src","sources":["components/AskBuoySettings.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAC5E,SAASC,aAAa,EAAEC,KAAK,EAAEC,SAAS,QAAQ,oBAAoB;AAEpE,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,eAAe,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtD,OAAO,SAASC,eAAeA,CAAA,EAAG;EAChC,MAAMC,QAAQ,GAAGT,kBAAkB,CAAC,CAAC;EACrC,MAAMU,OAAO,GAAGP,eAAe,CAAC,CAAC,CAACO,OAAO;EACzC,oBACEH,KAAA,CAACd,UAAU;IACTkB,KAAK,EAAEC,MAAM,CAACC,MAAO;IACrBC,qBAAqB,EAAEF,MAAM,CAACG,OAAQ;IACtCC,MAAM,EAAC,wBAAwB;IAAAC,QAAA,gBAE/BZ,IAAA,CAACV,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACM,OAAQ;MAAAD,QAAA,EAAC;IAAI,CAAM,CAAC,eACxCZ,IAAA,CAACN,SAAS;MACRiB,MAAM,EAAC,gCAAgC;MACvCG,KAAK,EAAC,qBAAqB;MAC3BC,WAAW,EAAC,+OAA+O;MAC3PC,KAAK,EAAEZ,QAAQ,CAACa,YAAa;MAC7BC,aAAa,EAAGC,IAAI,IAAKvB,eAAe,CAACwB,GAAG,CAAC,cAAc,EAAED,IAAI;IAAE,CACpE,CAAC,eACFnB,IAAA,CAACV,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACc,IAAK;MAAAT,QAAA,EAAC;IAG1B,CAAM,CAAC,eAEPZ,IAAA,CAACV,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACM,OAAQ;MAAAD,QAAA,EAAC;IAAW,CAAM,CAAC,eAC/CZ,IAAA,CAACN,SAAS;MACRiB,MAAM,EAAC,gCAAgC;MACvCG,KAAK,EAAC,WAAW;MACjBC,WAAW,EAAC,8JAAyJ;MACrKC,KAAK,EAAEZ,QAAQ,CAACkB,QAAS;MACzBJ,aAAa,EAAGC,IAAI,IAAKvB,eAAe,CAACwB,GAAG,CAAC,UAAU,EAAED,IAAI;IAAE,CAChE,CAAC,EACDf,QAAQ,CAACkB,QAAQ,gBAChBtB,IAAA,CAACV,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACc,IAAK;MAACV,MAAM,EAAC,6BAA6B;MAAAC,QAAA,EAAC;IAG/D,CAAM,CAAC,GACL,IAAI,eACRZ,IAAA,CAACN,SAAS;MACRiB,MAAM,EAAC,8BAA8B;MACrCY,IAAI,EAAC,SAAS;MACdC,cAAc,EAAEpB,QAAQ,CAACqB,eAAgB;MACzCC,QAAQ,EAAEtB,QAAQ,CAACkB,QAAS;MAC5BR,KAAK,EAAC,uBAAuB;MAC7BC,WAAW,EACTX,QAAQ,CAACkB,QAAQ,GACb,8DAA8D,GAC9D,+HACL;MACDN,KAAK,EAAEZ,QAAQ,CAACqB,eAAgB;MAChCP,aAAa,EAAGC,IAAI,IAAKvB,eAAe,CAACwB,GAAG,CAAC,iBAAiB,EAAED,IAAI;IAAE,CACvE,CAAC,EACDf,QAAQ,CAACqB,eAAe,IAAI,CAACrB,QAAQ,CAACkB,QAAQ,gBAC7CpB,KAAA,CAACX,IAAI;MAACe,KAAK,EAAEC,MAAM,CAACoB,OAAQ;MAAChB,MAAM,EAAC,8BAA8B;MAAAC,QAAA,gBAChEZ,IAAA,CAACR,aAAa;QAACoC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEpC,KAAK,CAACoC,KAAK,CAACF;MAAQ,CAAE,CAAC,eACvD3B,IAAA,CAACV,IAAI;QAACgB,KAAK,EAAEC,MAAM,CAACuB,WAAY;QAAAlB,QAAA,EAAC;MAQjC,CAAM,CAAC;IAAA,CACH,CAAC,gBAEPZ,IAAA,CAACV,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACc,IAAK;MAAAT,QAAA,EAAC;IAG1B,CAAM,CACP,EAGAP,OAAO,CAAC0B,MAAM,GAAG,CAAC,gBACjB7B,KAAA,CAACX,IAAI;MAACe,KAAK,EAAEC,MAAM,CAACyB,UAAW;MAACrB,MAAM,EAAC,uBAAuB;MAAAC,QAAA,gBAC5DZ,IAAA,CAACV,IAAI;QAACgB,KAAK,EAAEC,MAAM,CAACM,OAAQ;QAAAD,QAAA,EAAC;MAAkC,CAAM,CAAC,EACrEP,OAAO,CAAC4B,GAAG,CAAEC,CAAC,iBACbhC,KAAA,CAACX,IAAI;QAAae,KAAK,EAAEC,MAAM,CAAC4B,UAAW;QAAAvB,QAAA,gBACzCZ,IAAA,CAACV,IAAI;UAACgB,KAAK,EAAEC,MAAM,CAAC6B,YAAa;UAACC,aAAa,EAAE,CAAE;UAAAzB,QAAA,EAChDsB,CAAC,CAACpB;QAAK,CACJ,CAAC,eACPd,IAAA,CAACb,SAAS;UACRwB,MAAM,EAAE,yBAAyBuB,CAAC,CAACI,GAAG,EAAG;UACzCC,iBAAiB,EAAC,QAAQ;UAC1BC,OAAO,EAAEA,CAAA,KAAM3C,YAAY,CAAC4C,OAAO,CAACP,CAAC,CAACI,GAAG,CAAE;UAC3ChC,KAAK,EAAEA,CAAC;YAAEoC;UAAQ,CAAC,KAAK,CAACnC,MAAM,CAACoC,MAAM,EAAED,OAAO,IAAI;YAAEE,OAAO,EAAE;UAAI,CAAC,CAAE;UACrEC,OAAO,EAAE,CAAE;UAAAjC,QAAA,eAEXZ,IAAA,CAACV,IAAI;YAACgB,KAAK,EAAEC,MAAM,CAACuC,UAAW;YAAAlC,QAAA,EAAC;UAAS,CAAM;QAAC,CACvC,CAAC;MAAA,GAZHsB,CAAC,CAACI,GAaP,CACP,CAAC;IAAA,CACE,CAAC,GACL,IAAI;EAAA,CACE,CAAC;AAEjB;AAEA,MAAM/B,MAAM,GAAGlB,UAAU,CAAC0D,MAAM,CAAC;EAC/BvC,MAAM,EAAE;IAAEwC,IAAI,EAAE;EAAE,CAAC;EACnBtC,OAAO,EAAE;IAAEuC,OAAO,EAAExD,KAAK,CAACyD,MAAM;IAAEC,GAAG,EAAE,EAAE;IAAEC,aAAa,EAAE;EAAG,CAAC;EAC9DvC,OAAO,EAAE;IACPgB,KAAK,EAAEpC,KAAK,CAACoC,KAAK,CAACwB,YAAY;IAC/BC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,aAAa,EAAE,GAAG;IAClBC,iBAAiB,EAAE,CAAC;IACpBC,UAAU,EAAE;EACd,CAAC;EACD/B,OAAO,EAAE;IACPgC,aAAa,EAAE,KAAK;IACpBR,GAAG,EAAE,CAAC;IACNF,OAAO,EAAExD,KAAK,CAACmE,OAAO;IACtBC,YAAY,EAAEpE,KAAK,CAACqE,MAAM,CAACC,IAAI;IAC/BC,WAAW,EAAE3E,UAAU,CAAC4E,aAAa;IACrCC,WAAW,EAAEzE,KAAK,CAACoC,KAAK,CAACF,OAAO;IAChCwC,eAAe,EAAE1E,KAAK,CAACoC,KAAK,CAACuC;EAC/B,CAAC;EACDtC,WAAW,EAAE;IACXkB,IAAI,EAAE,CAAC;IACPnB,KAAK,EAAEpC,KAAK,CAACoC,KAAK,CAACF,OAAO;IAC1B2B,QAAQ,EAAE7D,KAAK,CAAC4E,IAAI,CAACC,KAAK;IAC1BC,UAAU,EAAE;EACd,CAAC;EACDvC,UAAU,EAAE;IAAEmB,GAAG,EAAE,CAAC;IAAEO,UAAU,EAAE;EAAE,CAAC;EACrCvB,UAAU,EAAE;IACVwB,aAAa,EAAE,KAAK;IACpBa,UAAU,EAAE,QAAQ;IACpBrB,GAAG,EAAE,EAAE;IACPF,OAAO,EAAExD,KAAK,CAACmE,OAAO;IACtBC,YAAY,EAAEpE,KAAK,CAACqE,MAAM,CAACC,IAAI;IAC/BC,WAAW,EAAE3E,UAAU,CAAC4E,aAAa;IACrCC,WAAW,EAAEzE,KAAK,CAACoC,KAAK,CAAC4C,MAAM;IAC/BN,eAAe,EAAE1E,KAAK,CAACoC,KAAK,CAACuC;EAC/B,CAAC;EACDhC,YAAY,EAAE;IAAEY,IAAI,EAAE,CAAC;IAAEnB,KAAK,EAAEpC,KAAK,CAACoC,KAAK,CAAC6C,IAAI;IAAEpB,QAAQ,EAAE7D,KAAK,CAAC4E,IAAI,CAACM,OAAO;IAAEJ,UAAU,EAAE;EAAG,CAAC;EAChG5B,MAAM,EAAE;IAAEc,iBAAiB,EAAE,EAAE;IAAEmB,eAAe,EAAE,CAAC;IAAEf,YAAY,EAAEpE,KAAK,CAACqE,MAAM,CAACe,GAAG;IAAEV,eAAe,EAAE1E,KAAK,CAACoC,KAAK,CAACiD;EAAO,CAAC;EAC1HhC,UAAU,EAAE;IAAEjB,KAAK,EAAEpC,KAAK,CAACoC,KAAK,CAAC6C,IAAI;IAAEpB,QAAQ,EAAE7D,KAAK,CAAC4E,IAAI,CAACC,KAAK;IAAEf,UAAU,EAAE;EAAM,CAAC;EACtFlC,IAAI,EAAE;IACJQ,KAAK,EAAEpC,KAAK,CAACoC,KAAK,CAACwB,YAAY;IAC/BC,QAAQ,EAAE7D,KAAK,CAAC4E,IAAI,CAACC,KAAK;IAC1BC,UAAU,EAAE,EAAE;IACdd,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1,206 @@
1
- "use strict";import{useSyncExternalStore}from"react";import{Pressable,ScrollView,StyleSheet,Text,View}from"react-native";import{ChevronDown,ChevronRight,night}from"@buoy-gg/shared-ui";import{isReversible}from"@buoy-gg/agent-core";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const EMPTY=[];function useLedgerEntries(e){return useSyncExternalStore(t=>e?.subscribe(t)??(()=>{}),()=>e?.list()??EMPTY,()=>e?.list()??EMPTY)}export function ChangesBar({ledger:e,onUndoAll:t,expanded:o,onToggle:n}){const r=useLedgerEntries(e).filter(e=>!e.undoneAt),s=r.filter(e=>"transient"!==e.effect.kind);if(0===s.length)return null;const l=s.filter(e=>isReversible(e.effect)),i=s.length-l.length,a=r.length-s.length,c=o?ChevronDown:ChevronRight,d=[l.length>0?`${l.length} undoable`:null,i>0?`${i} permanent`:null].filter(Boolean).join(" · ");return _jsxs(View,{style:styles.wrap,children:[_jsxs(Pressable,{testID:"buoy-ask-buoy-changes-bar",accessibilityRole:"button",accessibilityState:{expanded:o},onPress:n,style:styles.bar,children:[_jsx(View,{style:styles.dot}),_jsx(Text,{style:styles.summary,numberOfLines:1,children:"Changed this app"}),_jsx(Text,{style:styles.counts,numberOfLines:1,children:d}),_jsx(c,{size:12,color:night.color.textSecondary})]}),o&&_jsxs(View,{style:styles.panel,children:[_jsxs(ScrollView,{style:styles.panelScroll,testID:"buoy-ask-buoy-changes-scroll",keyboardShouldPersistTaps:"handled",children:[s.map(e=>{const t=!isReversible(e.effect);return _jsxs(View,{style:styles.row,children:[_jsx(Text,{style:styles.rowLabel,children:e.effect.label}),_jsx(Text,{style:[styles.rowTag,t&&styles.rowTagMuted],children:t?"Permanent":"Undoable"})]},e.id)}),a>0&&_jsx(View,{style:styles.row,children:_jsxs(Text,{style:[styles.rowLabel,styles.rowLabelMuted],children:["Also did ",a," one-shot action",1===a?"":"s"," (navigation, taps) — nothing to undo."]})})]}),_jsxs(View,{style:styles.footer,children:[l.length>0&&_jsx(Pressable,{testID:"buoy-ask-buoy-undo-all",accessibilityRole:"button",onPress:t,style:({pressed:e})=>[styles.undo,e&&styles.pressed],children:_jsxs(Text,{style:styles.undoText,children:["Undo ",l.length," change",1===l.length?"":"s"]})}),i>0&&_jsx(Text,{style:styles.footnote,children:"Permanent changes can't be undone from here."})]})]})]})}const styles=StyleSheet.create({wrap:{borderBottomWidth:StyleSheet.hairlineWidth,borderBottomColor:night.color.border,backgroundColor:night.color.warningSoft},bar:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:night.gutter,paddingVertical:10},dot:{width:7,height:7,borderRadius:4,backgroundColor:night.color.warning},summary:{color:night.color.text,fontSize:night.font.caption,fontWeight:"600"},counts:{flex:1,color:night.color.textSecondary,fontSize:night.font.caption},panel:{paddingHorizontal:night.gutter,paddingBottom:12,gap:10},panelScroll:{maxHeight:180},row:{flexDirection:"row",alignItems:"flex-start",gap:10,paddingVertical:8,borderTopWidth:StyleSheet.hairlineWidth,borderTopColor:night.color.separator},rowLabel:{flex:1,color:night.color.text,fontSize:night.font.caption,lineHeight:18},rowTag:{color:night.color.accent,fontSize:night.font.micro,fontWeight:"600",letterSpacing:.6,textTransform:"uppercase",paddingTop:2},rowTagMuted:{color:night.color.textTertiary},rowLabelMuted:{color:night.color.textTertiary},footer:{flexDirection:"row",alignItems:"center",gap:12,flexWrap:"wrap"},undo:{paddingHorizontal:14,paddingVertical:8,borderRadius:night.radius.row,backgroundColor:night.color.button},undoText:{color:night.color.accent,fontSize:night.font.caption,fontWeight:"600"},footnote:{flex:1,color:night.color.textTertiary,fontSize:night.font.micro},pressed:{opacity:.7}});
1
+ "use strict";
2
+
3
+ /**
4
+ * "The agent changed things" — the bar, and the list behind it.
5
+ *
6
+ * Ask Buoy mutates without asking, so this is what keeps the user in control:
7
+ * if reality has been bent, you can never not know it. Same principle as the
8
+ * impersonate and override banners.
9
+ *
10
+ * It counts REVERSIBLE and ONE-SHOT effects separately, which is the one place
11
+ * this deliberately differs from the Scenarios banner. That one folds
12
+ * transients into a single "N changes" total and then silently no-ops on them
13
+ * at revert — a user who taps Undo, sees "4 changes", and finds three of them
14
+ * still in place learns not to trust the bar. Better to say "1 undoable ·
15
+ * 1 permanent" and be believed.
16
+ */
17
+ import { useSyncExternalStore } from "react";
18
+ import { Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
19
+ import { ChevronDown, ChevronRight, night } from "@buoy-gg/shared-ui";
20
+ import { isReversible } from "@buoy-gg/agent-core";
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
+ const EMPTY = [];
23
+ function useLedgerEntries(ledger) {
24
+ return useSyncExternalStore(fn => ledger?.subscribe(fn) ?? (() => {}), () => ledger?.list() ?? EMPTY, () => ledger?.list() ?? EMPTY);
25
+ }
26
+ export function ChangesBar({
27
+ ledger,
28
+ onUndoAll,
29
+ expanded,
30
+ onToggle
31
+ }) {
32
+ const entries = useLedgerEntries(ledger);
33
+ const outstanding = entries.filter(e => !e.undoneAt);
34
+ // Transients — navigation, taps — are one-shot ACTIONS, not changes. Counting
35
+ // them here read "Changed this app · 9 permanent" after a read-only tour,
36
+ // which is the bar lying in the alarming direction. They still appear in the
37
+ // expanded panel's footnote, because honesty, but they raise no banner.
38
+ const changes = outstanding.filter(e => e.effect.kind !== "transient");
39
+ if (changes.length === 0) return null;
40
+ const reversible = changes.filter(e => isReversible(e.effect));
41
+ const permanent = changes.length - reversible.length;
42
+ const transients = outstanding.length - changes.length;
43
+ const Chevron = expanded ? ChevronDown : ChevronRight;
44
+ const counts = [reversible.length > 0 ? `${reversible.length} undoable` : null, permanent > 0 ? `${permanent} permanent` : null].filter(Boolean).join(" · ");
45
+ return /*#__PURE__*/_jsxs(View, {
46
+ style: styles.wrap,
47
+ children: [/*#__PURE__*/_jsxs(Pressable, {
48
+ testID: "buoy-ask-buoy-changes-bar",
49
+ accessibilityRole: "button",
50
+ accessibilityState: {
51
+ expanded
52
+ },
53
+ onPress: onToggle,
54
+ style: styles.bar,
55
+ children: [/*#__PURE__*/_jsx(View, {
56
+ style: styles.dot
57
+ }), /*#__PURE__*/_jsx(Text, {
58
+ style: styles.summary,
59
+ numberOfLines: 1,
60
+ children: "Changed this app"
61
+ }), /*#__PURE__*/_jsx(Text, {
62
+ style: styles.counts,
63
+ numberOfLines: 1,
64
+ children: counts
65
+ }), /*#__PURE__*/_jsx(Chevron, {
66
+ size: 12,
67
+ color: night.color.textSecondary
68
+ })]
69
+ }), expanded && /*#__PURE__*/_jsxs(View, {
70
+ style: styles.panel,
71
+ children: [/*#__PURE__*/_jsxs(ScrollView, {
72
+ style: styles.panelScroll,
73
+ testID: "buoy-ask-buoy-changes-scroll",
74
+ keyboardShouldPersistTaps: "handled",
75
+ children: [changes.map(entry => {
76
+ const oneOff = !isReversible(entry.effect);
77
+ return /*#__PURE__*/_jsxs(View, {
78
+ style: styles.row,
79
+ children: [/*#__PURE__*/_jsx(Text, {
80
+ style: styles.rowLabel,
81
+ children: entry.effect.label
82
+ }), /*#__PURE__*/_jsx(Text, {
83
+ style: [styles.rowTag, oneOff && styles.rowTagMuted],
84
+ children: oneOff ? "Permanent" : "Undoable"
85
+ })]
86
+ }, entry.id);
87
+ }), transients > 0 && /*#__PURE__*/_jsx(View, {
88
+ style: styles.row,
89
+ children: /*#__PURE__*/_jsxs(Text, {
90
+ style: [styles.rowLabel, styles.rowLabelMuted],
91
+ children: ["Also did ", transients, " one-shot action", transients === 1 ? "" : "s", " (navigation, taps) \u2014 nothing to undo."]
92
+ })
93
+ })]
94
+ }), /*#__PURE__*/_jsxs(View, {
95
+ style: styles.footer,
96
+ children: [reversible.length > 0 && /*#__PURE__*/_jsx(Pressable, {
97
+ testID: "buoy-ask-buoy-undo-all",
98
+ accessibilityRole: "button",
99
+ onPress: onUndoAll,
100
+ style: ({
101
+ pressed
102
+ }) => [styles.undo, pressed && styles.pressed],
103
+ children: /*#__PURE__*/_jsxs(Text, {
104
+ style: styles.undoText,
105
+ children: ["Undo ", reversible.length, " change", reversible.length === 1 ? "" : "s"]
106
+ })
107
+ }), permanent > 0 && /*#__PURE__*/_jsx(Text, {
108
+ style: styles.footnote,
109
+ children: "Permanent changes can't be undone from here."
110
+ })]
111
+ })]
112
+ })]
113
+ });
114
+ }
115
+ const styles = StyleSheet.create({
116
+ wrap: {
117
+ borderBottomWidth: StyleSheet.hairlineWidth,
118
+ borderBottomColor: night.color.border,
119
+ backgroundColor: night.color.warningSoft
120
+ },
121
+ bar: {
122
+ flexDirection: "row",
123
+ alignItems: "center",
124
+ gap: 8,
125
+ paddingHorizontal: night.gutter,
126
+ paddingVertical: 10
127
+ },
128
+ dot: {
129
+ width: 7,
130
+ height: 7,
131
+ borderRadius: 4,
132
+ backgroundColor: night.color.warning
133
+ },
134
+ summary: {
135
+ color: night.color.text,
136
+ fontSize: night.font.caption,
137
+ fontWeight: "600"
138
+ },
139
+ counts: {
140
+ flex: 1,
141
+ color: night.color.textSecondary,
142
+ fontSize: night.font.caption
143
+ },
144
+ panel: {
145
+ paddingHorizontal: night.gutter,
146
+ paddingBottom: 12,
147
+ gap: 10
148
+ },
149
+ panelScroll: {
150
+ maxHeight: 180
151
+ },
152
+ row: {
153
+ flexDirection: "row",
154
+ alignItems: "flex-start",
155
+ gap: 10,
156
+ paddingVertical: 8,
157
+ borderTopWidth: StyleSheet.hairlineWidth,
158
+ borderTopColor: night.color.separator
159
+ },
160
+ rowLabel: {
161
+ flex: 1,
162
+ color: night.color.text,
163
+ fontSize: night.font.caption,
164
+ lineHeight: 18
165
+ },
166
+ rowTag: {
167
+ color: night.color.accent,
168
+ fontSize: night.font.micro,
169
+ fontWeight: "600",
170
+ letterSpacing: 0.6,
171
+ textTransform: "uppercase",
172
+ paddingTop: 2
173
+ },
174
+ rowTagMuted: {
175
+ color: night.color.textTertiary
176
+ },
177
+ rowLabelMuted: {
178
+ color: night.color.textTertiary
179
+ },
180
+ footer: {
181
+ flexDirection: "row",
182
+ alignItems: "center",
183
+ gap: 12,
184
+ flexWrap: "wrap"
185
+ },
186
+ undo: {
187
+ paddingHorizontal: 14,
188
+ paddingVertical: 8,
189
+ borderRadius: night.radius.row,
190
+ backgroundColor: night.color.button
191
+ },
192
+ undoText: {
193
+ color: night.color.accent,
194
+ fontSize: night.font.caption,
195
+ fontWeight: "600"
196
+ },
197
+ footnote: {
198
+ flex: 1,
199
+ color: night.color.textTertiary,
200
+ fontSize: night.font.micro
201
+ },
202
+ pressed: {
203
+ opacity: 0.7
204
+ }
205
+ });
206
+ //# sourceMappingURL=ChangesBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSyncExternalStore","Pressable","ScrollView","StyleSheet","Text","View","ChevronDown","ChevronRight","night","isReversible","jsx","_jsx","jsxs","_jsxs","EMPTY","useLedgerEntries","ledger","fn","subscribe","list","ChangesBar","onUndoAll","expanded","onToggle","entries","outstanding","filter","e","undoneAt","changes","effect","kind","length","reversible","permanent","transients","Chevron","counts","Boolean","join","style","styles","wrap","children","testID","accessibilityRole","accessibilityState","onPress","bar","dot","summary","numberOfLines","size","color","textSecondary","panel","panelScroll","keyboardShouldPersistTaps","map","entry","oneOff","row","rowLabel","label","rowTag","rowTagMuted","id","rowLabelMuted","footer","pressed","undo","undoText","footnote","create","borderBottomWidth","hairlineWidth","borderBottomColor","border","backgroundColor","warningSoft","flexDirection","alignItems","gap","paddingHorizontal","gutter","paddingVertical","width","height","borderRadius","warning","text","fontSize","font","caption","fontWeight","flex","paddingBottom","maxHeight","borderTopWidth","borderTopColor","separator","lineHeight","accent","micro","letterSpacing","textTransform","paddingTop","textTertiary","flexWrap","radius","button","opacity"],"sourceRoot":"../../../src","sources":["components/ChangesBar.tsx"],"mappings":"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","ignoreList":[]}