@buoy-gg/ask-buoy 7.0.38 → 7.0.40

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,181 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AskBuoySettings=AskBuoySettings;var _reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_useAskBuoySettings=require("../store/useAskBuoySettings"),_askBuoySettings=require("../store/askBuoySettings"),_askBuoyStore=require("../store/askBuoyStore"),_useAskBuoy=require("../store/useAskBuoy"),_jsxRuntime=require("react/jsx-runtime");function AskBuoySettings(){const e=(0,_useAskBuoySettings.useAskBuoySettings)(),t=(0,_useAskBuoy.useAskBuoyState)().trusted;return(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{style:styles.scroll,contentContainerStyle:styles.content,testID:"buoy-ask-buoy-settings",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.section,children:"CHAT"}),(0,_jsxRuntime.jsx)(_sharedUi.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.askBuoySettings.set("showThinking",e)}),(0,_jsxRuntime.jsx)(_reactNative.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."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.section,children:"PERMISSIONS"}),(0,_jsxRuntime.jsx)(_sharedUi.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.askBuoySettings.set("readOnly",e)}),e.readOnly?(0,_jsxRuntime.jsx)(_reactNative.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,(0,_jsxRuntime.jsx)(_sharedUi.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.askBuoySettings.set("bypassApprovals",e)}),e.bypassApprovals&&!e.readOnly?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.warning,testID:"buoy-ask-buoy-bypass-warning",children:[(0,_jsxRuntime.jsx)(_sharedUi.AlertTriangle,{size:14,color:_sharedUi.night.color.warning}),(0,_jsxRuntime.jsx)(_reactNative.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."})]}):(0,_jsxRuntime.jsx)(_reactNative.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?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.trustedBox,testID:"buoy-ask-buoy-trusted",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.section,children:"ALLOWED WITHOUT ASKING — THIS CHAT"}),t.map(e=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.trustedRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.trustedLabel,numberOfLines:2,children:e.label}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:`buoy-ask-buoy-untrust-${e.key}`,accessibilityRole:"button",onPress:()=>_askBuoyStore.askBuoyStore.untrust(e.key),style:({pressed:e})=>[styles.forget,e&&{opacity:.7}],hitSlop:6,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.forgetText,children:"Ask again"})})]},e.key))]}):null]})}const styles=_reactNative.StyleSheet.create({scroll:{flex:1},content:{padding:_sharedUi.night.gutter,gap:10,paddingBottom:32},section:{color:_sharedUi.night.color.textTertiary,fontSize:10,fontWeight:"700",letterSpacing:.6,paddingHorizontal:4,paddingTop:4},warning:{flexDirection:"row",gap:8,padding:_sharedUi.night.cardPad,borderRadius:_sharedUi.night.radius.card,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_sharedUi.night.color.warning,backgroundColor:_sharedUi.night.color.surface},warningText:{flex:1,color:_sharedUi.night.color.warning,fontSize:_sharedUi.night.font.micro,lineHeight:16},trustedBox:{gap:6,paddingTop:6},trustedRow:{flexDirection:"row",alignItems:"center",gap:10,padding:_sharedUi.night.cardPad,borderRadius:_sharedUi.night.radius.card,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface},trustedLabel:{flex:1,color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.caption,lineHeight:18},forget:{paddingHorizontal:10,paddingVertical:6,borderRadius:_sharedUi.night.radius.row,backgroundColor:_sharedUi.night.color.button},forgetText:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.micro,fontWeight:"600"},note:{color:_sharedUi.night.color.textTertiary,fontSize:_sharedUi.night.font.micro,lineHeight:16,paddingHorizontal:4}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AskBuoySettings = AskBuoySettings;
7
+ var _reactNative = require("react-native");
8
+ var _sharedUi = require("@buoy-gg/shared-ui");
9
+ var _useAskBuoySettings = require("../store/useAskBuoySettings");
10
+ var _askBuoySettings = require("../store/askBuoySettings");
11
+ var _askBuoyStore = require("../store/askBuoyStore");
12
+ var _useAskBuoy = require("../store/useAskBuoy");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ /**
15
+ * The sheet's settings, reached from the header.
16
+ *
17
+ * A view inside the sheet rather than a second modal: a settings panel that
18
+ * covers the conversation you are configuring makes the effect of a toggle
19
+ * invisible until you dismiss it. Back returns to the chat with the
20
+ * transcript exactly where it was.
21
+ *
22
+ * Sections are by subject, not by implementation. "Chat" is what a tester
23
+ * calls the thing they are looking at.
24
+ */
25
+
26
+ function AskBuoySettings() {
27
+ const settings = (0, _useAskBuoySettings.useAskBuoySettings)();
28
+ const trusted = (0, _useAskBuoy.useAskBuoyState)().trusted;
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
30
+ style: styles.scroll,
31
+ contentContainerStyle: styles.content,
32
+ testID: "buoy-ask-buoy-settings",
33
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
34
+ style: styles.section,
35
+ children: "CHAT"
36
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToggleRow, {
37
+ testID: "buoy-ask-buoy-setting-thinking",
38
+ label: "Show agent thinking",
39
+ 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.",
40
+ value: settings.showThinking,
41
+ onValueChange: next => _askBuoySettings.askBuoySettings.set("showThinking", next)
42
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
43
+ style: styles.note,
44
+ children: "Not every model reports reasoning. Claude thinks by default; most OpenAI models return none, and the strip then shows the steps alone."
45
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
46
+ style: styles.section,
47
+ children: "PERMISSIONS"
48
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToggleRow, {
49
+ testID: "buoy-ask-buoy-setting-readonly",
50
+ label: "Read only",
51
+ 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.",
52
+ value: settings.readOnly,
53
+ onValueChange: next => _askBuoySettings.askBuoySettings.set("readOnly", next)
54
+ }), settings.readOnly ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
55
+ style: styles.note,
56
+ testID: "buoy-ask-buoy-readonly-note",
57
+ 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."
58
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToggleRow, {
59
+ testID: "buoy-ask-buoy-setting-bypass",
60
+ tone: "warning",
61
+ emphasizeLabel: settings.bypassApprovals,
62
+ disabled: settings.readOnly,
63
+ label: "Skip approval prompts",
64
+ 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.",
65
+ value: settings.bypassApprovals,
66
+ onValueChange: next => _askBuoySettings.askBuoySettings.set("bypassApprovals", next)
67
+ }), settings.bypassApprovals && !settings.readOnly ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
68
+ style: styles.warning,
69
+ testID: "buoy-ask-buoy-bypass-warning",
70
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.AlertTriangle, {
71
+ size: 14,
72
+ color: _sharedUi.night.color.warning
73
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
74
+ style: styles.warningText,
75
+ 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."
76
+ })]
77
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
78
+ style: styles.note,
79
+ children: "On by default for destructive actions only \u2014 reads and ordinary writes already run without asking, and the changes bar records them."
80
+ }), trusted.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
81
+ style: styles.trustedBox,
82
+ testID: "buoy-ask-buoy-trusted",
83
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
84
+ style: styles.section,
85
+ children: "ALLOWED WITHOUT ASKING \u2014 THIS CHAT"
86
+ }), trusted.map(t => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
87
+ style: styles.trustedRow,
88
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
89
+ style: styles.trustedLabel,
90
+ numberOfLines: 2,
91
+ children: t.label
92
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
93
+ testID: `buoy-ask-buoy-untrust-${t.key}`,
94
+ accessibilityRole: "button",
95
+ onPress: () => _askBuoyStore.askBuoyStore.untrust(t.key),
96
+ style: ({
97
+ pressed
98
+ }) => [styles.forget, pressed && {
99
+ opacity: 0.7
100
+ }],
101
+ hitSlop: 6,
102
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
103
+ style: styles.forgetText,
104
+ children: "Ask again"
105
+ })
106
+ })]
107
+ }, t.key))]
108
+ }) : null]
109
+ });
110
+ }
111
+ const styles = _reactNative.StyleSheet.create({
112
+ scroll: {
113
+ flex: 1
114
+ },
115
+ content: {
116
+ padding: _sharedUi.night.gutter,
117
+ gap: 10,
118
+ paddingBottom: 32
119
+ },
120
+ section: {
121
+ color: _sharedUi.night.color.textTertiary,
122
+ fontSize: 10,
123
+ fontWeight: "700",
124
+ letterSpacing: 0.6,
125
+ paddingHorizontal: 4,
126
+ paddingTop: 4
127
+ },
128
+ warning: {
129
+ flexDirection: "row",
130
+ gap: 8,
131
+ padding: _sharedUi.night.cardPad,
132
+ borderRadius: _sharedUi.night.radius.card,
133
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
134
+ borderColor: _sharedUi.night.color.warning,
135
+ backgroundColor: _sharedUi.night.color.surface
136
+ },
137
+ warningText: {
138
+ flex: 1,
139
+ color: _sharedUi.night.color.warning,
140
+ fontSize: _sharedUi.night.font.micro,
141
+ lineHeight: 16
142
+ },
143
+ trustedBox: {
144
+ gap: 6,
145
+ paddingTop: 6
146
+ },
147
+ trustedRow: {
148
+ flexDirection: "row",
149
+ alignItems: "center",
150
+ gap: 10,
151
+ padding: _sharedUi.night.cardPad,
152
+ borderRadius: _sharedUi.night.radius.card,
153
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
154
+ borderColor: _sharedUi.night.color.border,
155
+ backgroundColor: _sharedUi.night.color.surface
156
+ },
157
+ trustedLabel: {
158
+ flex: 1,
159
+ color: _sharedUi.night.color.text,
160
+ fontSize: _sharedUi.night.font.caption,
161
+ lineHeight: 18
162
+ },
163
+ forget: {
164
+ paddingHorizontal: 10,
165
+ paddingVertical: 6,
166
+ borderRadius: _sharedUi.night.radius.row,
167
+ backgroundColor: _sharedUi.night.color.button
168
+ },
169
+ forgetText: {
170
+ color: _sharedUi.night.color.text,
171
+ fontSize: _sharedUi.night.font.micro,
172
+ fontWeight: "600"
173
+ },
174
+ note: {
175
+ color: _sharedUi.night.color.textTertiary,
176
+ fontSize: _sharedUi.night.font.micro,
177
+ lineHeight: 16,
178
+ paddingHorizontal: 4
179
+ }
180
+ });
181
+ //# sourceMappingURL=AskBuoySettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_useAskBuoySettings","_askBuoySettings","_askBuoyStore","_useAskBuoy","_jsxRuntime","AskBuoySettings","settings","useAskBuoySettings","trusted","useAskBuoyState","jsxs","ScrollView","style","styles","scroll","contentContainerStyle","content","testID","children","jsx","Text","section","ToggleRow","label","description","value","showThinking","onValueChange","next","askBuoySettings","set","note","readOnly","tone","emphasizeLabel","bypassApprovals","disabled","View","warning","AlertTriangle","size","color","night","warningText","length","trustedBox","map","t","trustedRow","trustedLabel","numberOfLines","Pressable","key","accessibilityRole","onPress","askBuoyStore","untrust","pressed","forget","opacity","hitSlop","forgetText","StyleSheet","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":"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","ignoreList":[]}
@@ -1 +1,211 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChangesBar=ChangesBar;var _react=require("react"),_reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_agentCore=require("@buoy-gg/agent-core"),_jsxRuntime=require("react/jsx-runtime");const EMPTY=[];function useLedgerEntries(e){return(0,_react.useSyncExternalStore)(t=>e?.subscribe(t)??(()=>{}),()=>e?.list()??EMPTY,()=>e?.list()??EMPTY)}function ChangesBar({ledger:e,onUndoAll:t,expanded:r,onToggle:i}){const n=useLedgerEntries(e).filter(e=>!e.undoneAt),s=n.filter(e=>"transient"!==e.effect.kind);if(0===s.length)return null;const o=s.filter(e=>(0,_agentCore.isReversible)(e.effect)),a=s.length-o.length,l=n.length-s.length,c=r?_sharedUi.ChevronDown:_sharedUi.ChevronRight,d=[o.length>0?`${o.length} undoable`:null,a>0?`${a} permanent`:null].filter(Boolean).join(" · ");return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wrap,children:[(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{testID:"buoy-ask-buoy-changes-bar",accessibilityRole:"button",accessibilityState:{expanded:r},onPress:i,style:styles.bar,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.dot}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.summary,numberOfLines:1,children:"Changed this app"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.counts,numberOfLines:1,children:d}),(0,_jsxRuntime.jsx)(c,{size:12,color:_sharedUi.night.color.textSecondary})]}),r&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.panel,children:[(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{style:styles.panelScroll,testID:"buoy-ask-buoy-changes-scroll",keyboardShouldPersistTaps:"handled",children:[s.map(e=>{const t=!(0,_agentCore.isReversible)(e.effect);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.rowLabel,children:e.effect.label}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.rowTag,t&&styles.rowTagMuted],children:t?"Permanent":"Undoable"})]},e.id)}),l>0&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.row,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[styles.rowLabel,styles.rowLabelMuted],children:["Also did ",l," one-shot action",1===l?"":"s"," (navigation, taps) — nothing to undo."]})})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.footer,children:[o.length>0&&(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-ask-buoy-undo-all",accessibilityRole:"button",onPress:t,style:({pressed:e})=>[styles.undo,e&&styles.pressed],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.undoText,children:["Undo ",o.length," change",1===o.length?"":"s"]})}),a>0&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.footnote,children:"Permanent changes can't be undone from here."})]})]})]})}const styles=_reactNative.StyleSheet.create({wrap:{borderBottomWidth:_reactNative.StyleSheet.hairlineWidth,borderBottomColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.warningSoft},bar:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:_sharedUi.night.gutter,paddingVertical:10},dot:{width:7,height:7,borderRadius:4,backgroundColor:_sharedUi.night.color.warning},summary:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.caption,fontWeight:"600"},counts:{flex:1,color:_sharedUi.night.color.textSecondary,fontSize:_sharedUi.night.font.caption},panel:{paddingHorizontal:_sharedUi.night.gutter,paddingBottom:12,gap:10},panelScroll:{maxHeight:180},row:{flexDirection:"row",alignItems:"flex-start",gap:10,paddingVertical:8,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:_sharedUi.night.color.separator},rowLabel:{flex:1,color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.caption,lineHeight:18},rowTag:{color:_sharedUi.night.color.accent,fontSize:_sharedUi.night.font.micro,fontWeight:"600",letterSpacing:.6,textTransform:"uppercase",paddingTop:2},rowTagMuted:{color:_sharedUi.night.color.textTertiary},rowLabelMuted:{color:_sharedUi.night.color.textTertiary},footer:{flexDirection:"row",alignItems:"center",gap:12,flexWrap:"wrap"},undo:{paddingHorizontal:14,paddingVertical:8,borderRadius:_sharedUi.night.radius.row,backgroundColor:_sharedUi.night.color.button},undoText:{color:_sharedUi.night.color.accent,fontSize:_sharedUi.night.font.caption,fontWeight:"600"},footnote:{flex:1,color:_sharedUi.night.color.textTertiary,fontSize:_sharedUi.night.font.micro},pressed:{opacity:.7}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChangesBar = ChangesBar;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _agentCore = require("@buoy-gg/agent-core");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * "The agent changed things" — the bar, and the list behind it.
14
+ *
15
+ * Ask Buoy mutates without asking, so this is what keeps the user in control:
16
+ * if reality has been bent, you can never not know it. Same principle as the
17
+ * impersonate and override banners.
18
+ *
19
+ * It counts REVERSIBLE and ONE-SHOT effects separately, which is the one place
20
+ * this deliberately differs from the Scenarios banner. That one folds
21
+ * transients into a single "N changes" total and then silently no-ops on them
22
+ * at revert — a user who taps Undo, sees "4 changes", and finds three of them
23
+ * still in place learns not to trust the bar. Better to say "1 undoable ·
24
+ * 1 permanent" and be believed.
25
+ */
26
+
27
+ const EMPTY = [];
28
+ function useLedgerEntries(ledger) {
29
+ return (0, _react.useSyncExternalStore)(fn => ledger?.subscribe(fn) ?? (() => {}), () => ledger?.list() ?? EMPTY, () => ledger?.list() ?? EMPTY);
30
+ }
31
+ function ChangesBar({
32
+ ledger,
33
+ onUndoAll,
34
+ expanded,
35
+ onToggle
36
+ }) {
37
+ const entries = useLedgerEntries(ledger);
38
+ const outstanding = entries.filter(e => !e.undoneAt);
39
+ // Transients — navigation, taps — are one-shot ACTIONS, not changes. Counting
40
+ // them here read "Changed this app · 9 permanent" after a read-only tour,
41
+ // which is the bar lying in the alarming direction. They still appear in the
42
+ // expanded panel's footnote, because honesty, but they raise no banner.
43
+ const changes = outstanding.filter(e => e.effect.kind !== "transient");
44
+ if (changes.length === 0) return null;
45
+ const reversible = changes.filter(e => (0, _agentCore.isReversible)(e.effect));
46
+ const permanent = changes.length - reversible.length;
47
+ const transients = outstanding.length - changes.length;
48
+ const Chevron = expanded ? _sharedUi.ChevronDown : _sharedUi.ChevronRight;
49
+ const counts = [reversible.length > 0 ? `${reversible.length} undoable` : null, permanent > 0 ? `${permanent} permanent` : null].filter(Boolean).join(" · ");
50
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
51
+ style: styles.wrap,
52
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
53
+ testID: "buoy-ask-buoy-changes-bar",
54
+ accessibilityRole: "button",
55
+ accessibilityState: {
56
+ expanded
57
+ },
58
+ onPress: onToggle,
59
+ style: styles.bar,
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
61
+ style: styles.dot
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
63
+ style: styles.summary,
64
+ numberOfLines: 1,
65
+ children: "Changed this app"
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
+ style: styles.counts,
68
+ numberOfLines: 1,
69
+ children: counts
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Chevron, {
71
+ size: 12,
72
+ color: _sharedUi.night.color.textSecondary
73
+ })]
74
+ }), expanded && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
75
+ style: styles.panel,
76
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
77
+ style: styles.panelScroll,
78
+ testID: "buoy-ask-buoy-changes-scroll",
79
+ keyboardShouldPersistTaps: "handled",
80
+ children: [changes.map(entry => {
81
+ const oneOff = !(0, _agentCore.isReversible)(entry.effect);
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
83
+ style: styles.row,
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
85
+ style: styles.rowLabel,
86
+ children: entry.effect.label
87
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
88
+ style: [styles.rowTag, oneOff && styles.rowTagMuted],
89
+ children: oneOff ? "Permanent" : "Undoable"
90
+ })]
91
+ }, entry.id);
92
+ }), transients > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
93
+ style: styles.row,
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
95
+ style: [styles.rowLabel, styles.rowLabelMuted],
96
+ children: ["Also did ", transients, " one-shot action", transients === 1 ? "" : "s", " (navigation, taps) \u2014 nothing to undo."]
97
+ })
98
+ })]
99
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
100
+ style: styles.footer,
101
+ children: [reversible.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
102
+ testID: "buoy-ask-buoy-undo-all",
103
+ accessibilityRole: "button",
104
+ onPress: onUndoAll,
105
+ style: ({
106
+ pressed
107
+ }) => [styles.undo, pressed && styles.pressed],
108
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
109
+ style: styles.undoText,
110
+ children: ["Undo ", reversible.length, " change", reversible.length === 1 ? "" : "s"]
111
+ })
112
+ }), permanent > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
113
+ style: styles.footnote,
114
+ children: "Permanent changes can't be undone from here."
115
+ })]
116
+ })]
117
+ })]
118
+ });
119
+ }
120
+ const styles = _reactNative.StyleSheet.create({
121
+ wrap: {
122
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
123
+ borderBottomColor: _sharedUi.night.color.border,
124
+ backgroundColor: _sharedUi.night.color.warningSoft
125
+ },
126
+ bar: {
127
+ flexDirection: "row",
128
+ alignItems: "center",
129
+ gap: 8,
130
+ paddingHorizontal: _sharedUi.night.gutter,
131
+ paddingVertical: 10
132
+ },
133
+ dot: {
134
+ width: 7,
135
+ height: 7,
136
+ borderRadius: 4,
137
+ backgroundColor: _sharedUi.night.color.warning
138
+ },
139
+ summary: {
140
+ color: _sharedUi.night.color.text,
141
+ fontSize: _sharedUi.night.font.caption,
142
+ fontWeight: "600"
143
+ },
144
+ counts: {
145
+ flex: 1,
146
+ color: _sharedUi.night.color.textSecondary,
147
+ fontSize: _sharedUi.night.font.caption
148
+ },
149
+ panel: {
150
+ paddingHorizontal: _sharedUi.night.gutter,
151
+ paddingBottom: 12,
152
+ gap: 10
153
+ },
154
+ panelScroll: {
155
+ maxHeight: 180
156
+ },
157
+ row: {
158
+ flexDirection: "row",
159
+ alignItems: "flex-start",
160
+ gap: 10,
161
+ paddingVertical: 8,
162
+ borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
163
+ borderTopColor: _sharedUi.night.color.separator
164
+ },
165
+ rowLabel: {
166
+ flex: 1,
167
+ color: _sharedUi.night.color.text,
168
+ fontSize: _sharedUi.night.font.caption,
169
+ lineHeight: 18
170
+ },
171
+ rowTag: {
172
+ color: _sharedUi.night.color.accent,
173
+ fontSize: _sharedUi.night.font.micro,
174
+ fontWeight: "600",
175
+ letterSpacing: 0.6,
176
+ textTransform: "uppercase",
177
+ paddingTop: 2
178
+ },
179
+ rowTagMuted: {
180
+ color: _sharedUi.night.color.textTertiary
181
+ },
182
+ rowLabelMuted: {
183
+ color: _sharedUi.night.color.textTertiary
184
+ },
185
+ footer: {
186
+ flexDirection: "row",
187
+ alignItems: "center",
188
+ gap: 12,
189
+ flexWrap: "wrap"
190
+ },
191
+ undo: {
192
+ paddingHorizontal: 14,
193
+ paddingVertical: 8,
194
+ borderRadius: _sharedUi.night.radius.row,
195
+ backgroundColor: _sharedUi.night.color.button
196
+ },
197
+ undoText: {
198
+ color: _sharedUi.night.color.accent,
199
+ fontSize: _sharedUi.night.font.caption,
200
+ fontWeight: "600"
201
+ },
202
+ footnote: {
203
+ flex: 1,
204
+ color: _sharedUi.night.color.textTertiary,
205
+ fontSize: _sharedUi.night.font.micro
206
+ },
207
+ pressed: {
208
+ opacity: 0.7
209
+ }
210
+ });
211
+ //# sourceMappingURL=ChangesBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_sharedUi","_agentCore","_jsxRuntime","EMPTY","useLedgerEntries","ledger","useSyncExternalStore","fn","subscribe","list","ChangesBar","onUndoAll","expanded","onToggle","entries","outstanding","filter","e","undoneAt","changes","effect","kind","length","reversible","isReversible","permanent","transients","Chevron","ChevronDown","ChevronRight","counts","Boolean","join","jsxs","View","style","styles","wrap","children","Pressable","testID","accessibilityRole","accessibilityState","onPress","bar","jsx","dot","Text","summary","numberOfLines","size","color","night","textSecondary","panel","ScrollView","panelScroll","keyboardShouldPersistTaps","map","entry","oneOff","row","rowLabel","label","rowTag","rowTagMuted","id","rowLabelMuted","footer","pressed","undo","undoText","footnote","StyleSheet","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":[]}