@buoy-gg/ask-buoy 7.0.35 → 7.0.38

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 (286) hide show
  1. package/README.md +73 -15
  2. package/lib/commonjs/blocks/AskBlocks.js +1 -338
  3. package/lib/commonjs/blocks/BlockRenderer.js +1 -250
  4. package/lib/commonjs/blocks/ChromePrototypes.js +1 -514
  5. package/lib/commonjs/blocks/DataBlocks.js +1 -688
  6. package/lib/commonjs/blocks/ExtraBlocks.js +1 -1854
  7. package/lib/commonjs/blocks/MediaBlocks.js +1 -140
  8. package/lib/commonjs/blocks/ReceiptBlocks.js +1 -586
  9. package/lib/commonjs/blocks/blockText.js +1 -0
  10. package/lib/commonjs/blocks/blockText.test.js +1 -0
  11. package/lib/commonjs/blocks/context.js +1 -42
  12. package/lib/commonjs/blocks/icons.js +1 -96
  13. package/lib/commonjs/blocks/index.js +1 -95
  14. package/lib/commonjs/blocks/listRow.test.js +1 -55
  15. package/lib/commonjs/blocks/pageState.js +1 -34
  16. package/lib/commonjs/blocks/pageState.test.js +1 -57
  17. package/lib/commonjs/blocks/primitives.js +1 -401
  18. package/lib/commonjs/blocks/primitivesIndex.js +1 -62
  19. package/lib/commonjs/components/ApprovalCard.js +1 -140
  20. package/lib/commonjs/components/AskBuoyHeader.js +1 -164
  21. package/lib/commonjs/components/AskBuoyIcon.js +1 -19
  22. package/lib/commonjs/components/AskBuoyModal.js +1 -353
  23. package/lib/commonjs/components/AskBuoySettings.js +1 -69
  24. package/lib/commonjs/components/ChangesBar.js +1 -211
  25. package/lib/commonjs/components/Composer.js +1 -175
  26. package/lib/commonjs/components/EmptyState.js +1 -154
  27. package/lib/commonjs/components/KeyboardPad.js +1 -0
  28. package/lib/commonjs/components/Markdown.js +1 -252
  29. package/lib/commonjs/components/MessageList.js +1 -683
  30. package/lib/commonjs/components/QueuedMessages.js +1 -0
  31. package/lib/commonjs/components/ThinkingStrip.js +1 -223
  32. package/lib/commonjs/components/TypingDots.js +1 -63
  33. package/lib/commonjs/components/markdownParse.js +1 -0
  34. package/lib/commonjs/components/markdownParse.test.js +1 -0
  35. package/lib/commonjs/components/useCopyAction.js +1 -50
  36. package/lib/commonjs/index.js +1 -252
  37. package/lib/commonjs/preset.js +1 -90
  38. package/lib/commonjs/store/activityGroups.js +1 -0
  39. package/lib/commonjs/store/activityGroups.test.js +1 -0
  40. package/lib/commonjs/store/askBuoySettings.js +1 -67
  41. package/lib/commonjs/store/askBuoyStore.js +1 -365
  42. package/lib/commonjs/store/blockPlacement.js +1 -0
  43. package/lib/commonjs/store/blockPlacement.test.js +1 -0
  44. package/lib/commonjs/store/queue.test.js +1 -0
  45. package/lib/commonjs/store/resetConversation.js +1 -0
  46. package/lib/commonjs/store/restorePending.test.js +1 -0
  47. package/lib/commonjs/store/restoredIds.test.js +1 -47
  48. package/lib/commonjs/store/suggestions.js +1 -0
  49. package/lib/commonjs/store/suggestions.test.js +1 -0
  50. package/lib/commonjs/store/systemLine.test.js +1 -0
  51. package/lib/commonjs/store/ticketPrompt.js +1 -0
  52. package/lib/commonjs/store/traceText.js +1 -81
  53. package/lib/commonjs/store/traceText.test.js +1 -112
  54. package/lib/commonjs/store/transcriptPersistence.js +1 -208
  55. package/lib/commonjs/store/transcriptPersistence.test.js +1 -185
  56. package/lib/commonjs/store/turnRendering.test.js +1 -0
  57. package/lib/commonjs/store/useAskBuoy.js +1 -400
  58. package/lib/commonjs/store/useAskBuoySettings.js +1 -14
  59. package/lib/commonjs/sync/askBuoySyncAdapter.js +1 -119
  60. package/lib/commonjs/sync/askBuoySyncAdapter.test.js +1 -141
  61. package/lib/commonjs/sync/wire.js +1 -58
  62. package/lib/commonjs/types.js +1 -6
  63. package/lib/module/blocks/AskBlocks.js +1 -331
  64. package/lib/module/blocks/BlockRenderer.js +1 -245
  65. package/lib/module/blocks/ChromePrototypes.js +1 -503
  66. package/lib/module/blocks/DataBlocks.js +1 -674
  67. package/lib/module/blocks/ExtraBlocks.js +1 -1827
  68. package/lib/module/blocks/MediaBlocks.js +1 -135
  69. package/lib/module/blocks/ReceiptBlocks.js +1 -574
  70. package/lib/module/blocks/blockText.js +1 -0
  71. package/lib/module/blocks/blockText.test.js +1 -0
  72. package/lib/module/blocks/context.js +1 -35
  73. package/lib/module/blocks/icons.js +1 -91
  74. package/lib/module/blocks/index.js +1 -8
  75. package/lib/module/blocks/listRow.test.js +1 -56
  76. package/lib/module/blocks/pageState.js +1 -30
  77. package/lib/module/blocks/pageState.test.js +1 -56
  78. package/lib/module/blocks/primitives.js +1 -389
  79. package/lib/module/blocks/primitivesIndex.js +1 -5
  80. package/lib/module/components/ApprovalCard.js +1 -135
  81. package/lib/module/components/AskBuoyHeader.js +1 -161
  82. package/lib/module/components/AskBuoyIcon.js +1 -8
  83. package/lib/module/components/AskBuoyModal.js +1 -348
  84. package/lib/module/components/AskBuoySettings.js +1 -64
  85. package/lib/module/components/ChangesBar.js +1 -206
  86. package/lib/module/components/Composer.js +1 -170
  87. package/lib/module/components/EmptyState.js +1 -149
  88. package/lib/module/components/KeyboardPad.js +1 -0
  89. package/lib/module/components/Markdown.js +1 -246
  90. package/lib/module/components/MessageList.js +1 -677
  91. package/lib/module/components/QueuedMessages.js +1 -0
  92. package/lib/module/components/ThinkingStrip.js +1 -218
  93. package/lib/module/components/TypingDots.js +1 -58
  94. package/lib/module/components/markdownParse.js +1 -0
  95. package/lib/module/components/markdownParse.test.js +1 -0
  96. package/lib/module/components/useCopyAction.js +1 -46
  97. package/lib/module/index.js +1 -34
  98. package/lib/module/preset.js +1 -73
  99. package/lib/module/store/activityGroups.js +1 -0
  100. package/lib/module/store/activityGroups.test.js +1 -0
  101. package/lib/module/store/askBuoySettings.js +1 -62
  102. package/lib/module/store/askBuoyStore.js +1 -361
  103. package/lib/module/store/blockPlacement.js +1 -0
  104. package/lib/module/store/blockPlacement.test.js +1 -0
  105. package/lib/module/store/queue.test.js +1 -0
  106. package/lib/module/store/resetConversation.js +1 -0
  107. package/lib/module/store/restorePending.test.js +1 -0
  108. package/lib/module/store/restoredIds.test.js +1 -46
  109. package/lib/module/store/suggestions.js +1 -0
  110. package/lib/module/store/suggestions.test.js +1 -0
  111. package/lib/module/store/systemLine.test.js +1 -0
  112. package/lib/module/store/ticketPrompt.js +1 -0
  113. package/lib/module/store/traceText.js +1 -75
  114. package/lib/module/store/traceText.test.js +1 -111
  115. package/lib/module/store/transcriptPersistence.js +1 -198
  116. package/lib/module/store/transcriptPersistence.test.js +1 -184
  117. package/lib/module/store/turnRendering.test.js +1 -0
  118. package/lib/module/store/useAskBuoy.js +1 -394
  119. package/lib/module/store/useAskBuoySettings.js +1 -9
  120. package/lib/module/sync/askBuoySyncAdapter.js +1 -114
  121. package/lib/module/sync/askBuoySyncAdapter.test.js +1 -140
  122. package/lib/module/sync/wire.js +1 -47
  123. package/lib/module/types.js +1 -4
  124. package/lib/typescript/blocks/DataBlocks.d.ts +11 -0
  125. package/lib/typescript/blocks/ExtraBlocks.d.ts +18 -2
  126. package/lib/typescript/blocks/blockText.d.ts +14 -0
  127. package/lib/typescript/blocks/blockText.test.d.ts +2 -0
  128. package/lib/typescript/blocks/primitives.d.ts +16 -1
  129. package/lib/typescript/components/ApprovalCard.d.ts +9 -1
  130. package/lib/typescript/components/AskBuoyHeader.d.ts +31 -1
  131. package/lib/typescript/components/Composer.d.ts +16 -1
  132. package/lib/typescript/components/EmptyState.d.ts +5 -1
  133. package/lib/typescript/components/KeyboardPad.d.ts +33 -0
  134. package/lib/typescript/components/Markdown.d.ts +0 -10
  135. package/lib/typescript/components/MessageList.d.ts +7 -2
  136. package/lib/typescript/components/QueuedMessages.d.ts +10 -0
  137. package/lib/typescript/components/markdownParse.d.ts +49 -0
  138. package/lib/typescript/components/markdownParse.test.d.ts +2 -0
  139. package/lib/typescript/preset.d.ts +4 -2
  140. package/lib/typescript/store/activityGroups.d.ts +29 -0
  141. package/lib/typescript/store/activityGroups.test.d.ts +2 -0
  142. package/lib/typescript/store/askBuoySettings.d.ts +22 -0
  143. package/lib/typescript/store/askBuoyStore.d.ts +174 -9
  144. package/lib/typescript/store/blockPlacement.d.ts +30 -0
  145. package/lib/typescript/store/blockPlacement.test.d.ts +2 -0
  146. package/lib/typescript/store/queue.test.d.ts +2 -0
  147. package/lib/typescript/store/resetConversation.d.ts +38 -0
  148. package/lib/typescript/store/restorePending.test.d.ts +2 -0
  149. package/lib/typescript/store/suggestions.d.ts +32 -0
  150. package/lib/typescript/store/suggestions.test.d.ts +2 -0
  151. package/lib/typescript/store/systemLine.test.d.ts +2 -0
  152. package/lib/typescript/store/ticketPrompt.d.ts +11 -0
  153. package/lib/typescript/store/transcriptPersistence.d.ts +41 -2
  154. package/lib/typescript/store/turnRendering.test.d.ts +2 -0
  155. package/lib/typescript/store/useAskBuoy.d.ts +26 -3
  156. package/lib/typescript/sync/askBuoySyncAdapter.d.ts +29 -6
  157. package/package.json +10 -10
  158. package/lib/commonjs/blocks/AskBlocks.js.map +0 -1
  159. package/lib/commonjs/blocks/BlockRenderer.js.map +0 -1
  160. package/lib/commonjs/blocks/ChromePrototypes.js.map +0 -1
  161. package/lib/commonjs/blocks/DataBlocks.js.map +0 -1
  162. package/lib/commonjs/blocks/ExtraBlocks.js.map +0 -1
  163. package/lib/commonjs/blocks/MediaBlocks.js.map +0 -1
  164. package/lib/commonjs/blocks/ReceiptBlocks.js.map +0 -1
  165. package/lib/commonjs/blocks/context.js.map +0 -1
  166. package/lib/commonjs/blocks/icons.js.map +0 -1
  167. package/lib/commonjs/blocks/index.js.map +0 -1
  168. package/lib/commonjs/blocks/listRow.test.js.map +0 -1
  169. package/lib/commonjs/blocks/pageState.js.map +0 -1
  170. package/lib/commonjs/blocks/pageState.test.js.map +0 -1
  171. package/lib/commonjs/blocks/primitives.js.map +0 -1
  172. package/lib/commonjs/blocks/primitivesIndex.js.map +0 -1
  173. package/lib/commonjs/components/ApprovalCard.js.map +0 -1
  174. package/lib/commonjs/components/AskBuoyHeader.js.map +0 -1
  175. package/lib/commonjs/components/AskBuoyIcon.js.map +0 -1
  176. package/lib/commonjs/components/AskBuoyModal.js.map +0 -1
  177. package/lib/commonjs/components/AskBuoySettings.js.map +0 -1
  178. package/lib/commonjs/components/ChangesBar.js.map +0 -1
  179. package/lib/commonjs/components/Composer.js.map +0 -1
  180. package/lib/commonjs/components/EmptyState.js.map +0 -1
  181. package/lib/commonjs/components/Markdown.js.map +0 -1
  182. package/lib/commonjs/components/MessageList.js.map +0 -1
  183. package/lib/commonjs/components/ThinkingStrip.js.map +0 -1
  184. package/lib/commonjs/components/TypingDots.js.map +0 -1
  185. package/lib/commonjs/components/useCopyAction.js.map +0 -1
  186. package/lib/commonjs/index.js.map +0 -1
  187. package/lib/commonjs/preset.js.map +0 -1
  188. package/lib/commonjs/store/askBuoySettings.js.map +0 -1
  189. package/lib/commonjs/store/askBuoyStore.js.map +0 -1
  190. package/lib/commonjs/store/restoredIds.test.js.map +0 -1
  191. package/lib/commonjs/store/traceText.js.map +0 -1
  192. package/lib/commonjs/store/traceText.test.js.map +0 -1
  193. package/lib/commonjs/store/transcriptPersistence.js.map +0 -1
  194. package/lib/commonjs/store/transcriptPersistence.test.js.map +0 -1
  195. package/lib/commonjs/store/useAskBuoy.js.map +0 -1
  196. package/lib/commonjs/store/useAskBuoySettings.js.map +0 -1
  197. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +0 -1
  198. package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +0 -1
  199. package/lib/commonjs/sync/wire.js.map +0 -1
  200. package/lib/commonjs/types.js.map +0 -1
  201. package/lib/module/blocks/AskBlocks.js.map +0 -1
  202. package/lib/module/blocks/BlockRenderer.js.map +0 -1
  203. package/lib/module/blocks/ChromePrototypes.js.map +0 -1
  204. package/lib/module/blocks/DataBlocks.js.map +0 -1
  205. package/lib/module/blocks/ExtraBlocks.js.map +0 -1
  206. package/lib/module/blocks/MediaBlocks.js.map +0 -1
  207. package/lib/module/blocks/ReceiptBlocks.js.map +0 -1
  208. package/lib/module/blocks/context.js.map +0 -1
  209. package/lib/module/blocks/icons.js.map +0 -1
  210. package/lib/module/blocks/index.js.map +0 -1
  211. package/lib/module/blocks/listRow.test.js.map +0 -1
  212. package/lib/module/blocks/pageState.js.map +0 -1
  213. package/lib/module/blocks/pageState.test.js.map +0 -1
  214. package/lib/module/blocks/primitives.js.map +0 -1
  215. package/lib/module/blocks/primitivesIndex.js.map +0 -1
  216. package/lib/module/components/ApprovalCard.js.map +0 -1
  217. package/lib/module/components/AskBuoyHeader.js.map +0 -1
  218. package/lib/module/components/AskBuoyIcon.js.map +0 -1
  219. package/lib/module/components/AskBuoyModal.js.map +0 -1
  220. package/lib/module/components/AskBuoySettings.js.map +0 -1
  221. package/lib/module/components/ChangesBar.js.map +0 -1
  222. package/lib/module/components/Composer.js.map +0 -1
  223. package/lib/module/components/EmptyState.js.map +0 -1
  224. package/lib/module/components/Markdown.js.map +0 -1
  225. package/lib/module/components/MessageList.js.map +0 -1
  226. package/lib/module/components/ThinkingStrip.js.map +0 -1
  227. package/lib/module/components/TypingDots.js.map +0 -1
  228. package/lib/module/components/useCopyAction.js.map +0 -1
  229. package/lib/module/index.js.map +0 -1
  230. package/lib/module/preset.js.map +0 -1
  231. package/lib/module/store/askBuoySettings.js.map +0 -1
  232. package/lib/module/store/askBuoyStore.js.map +0 -1
  233. package/lib/module/store/restoredIds.test.js.map +0 -1
  234. package/lib/module/store/traceText.js.map +0 -1
  235. package/lib/module/store/traceText.test.js.map +0 -1
  236. package/lib/module/store/transcriptPersistence.js.map +0 -1
  237. package/lib/module/store/transcriptPersistence.test.js.map +0 -1
  238. package/lib/module/store/useAskBuoy.js.map +0 -1
  239. package/lib/module/store/useAskBuoySettings.js.map +0 -1
  240. package/lib/module/sync/askBuoySyncAdapter.js.map +0 -1
  241. package/lib/module/sync/askBuoySyncAdapter.test.js.map +0 -1
  242. package/lib/module/sync/wire.js.map +0 -1
  243. package/lib/module/types.js.map +0 -1
  244. package/lib/typescript/blocks/AskBlocks.d.ts.map +0 -1
  245. package/lib/typescript/blocks/BlockRenderer.d.ts.map +0 -1
  246. package/lib/typescript/blocks/ChromePrototypes.d.ts.map +0 -1
  247. package/lib/typescript/blocks/DataBlocks.d.ts.map +0 -1
  248. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +0 -1
  249. package/lib/typescript/blocks/MediaBlocks.d.ts.map +0 -1
  250. package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +0 -1
  251. package/lib/typescript/blocks/context.d.ts.map +0 -1
  252. package/lib/typescript/blocks/icons.d.ts.map +0 -1
  253. package/lib/typescript/blocks/index.d.ts.map +0 -1
  254. package/lib/typescript/blocks/listRow.test.d.ts.map +0 -1
  255. package/lib/typescript/blocks/pageState.d.ts.map +0 -1
  256. package/lib/typescript/blocks/pageState.test.d.ts.map +0 -1
  257. package/lib/typescript/blocks/primitives.d.ts.map +0 -1
  258. package/lib/typescript/blocks/primitivesIndex.d.ts.map +0 -1
  259. package/lib/typescript/components/ApprovalCard.d.ts.map +0 -1
  260. package/lib/typescript/components/AskBuoyHeader.d.ts.map +0 -1
  261. package/lib/typescript/components/AskBuoyIcon.d.ts.map +0 -1
  262. package/lib/typescript/components/AskBuoyModal.d.ts.map +0 -1
  263. package/lib/typescript/components/AskBuoySettings.d.ts.map +0 -1
  264. package/lib/typescript/components/ChangesBar.d.ts.map +0 -1
  265. package/lib/typescript/components/Composer.d.ts.map +0 -1
  266. package/lib/typescript/components/EmptyState.d.ts.map +0 -1
  267. package/lib/typescript/components/Markdown.d.ts.map +0 -1
  268. package/lib/typescript/components/MessageList.d.ts.map +0 -1
  269. package/lib/typescript/components/ThinkingStrip.d.ts.map +0 -1
  270. package/lib/typescript/components/TypingDots.d.ts.map +0 -1
  271. package/lib/typescript/components/useCopyAction.d.ts.map +0 -1
  272. package/lib/typescript/index.d.ts.map +0 -1
  273. package/lib/typescript/preset.d.ts.map +0 -1
  274. package/lib/typescript/store/askBuoySettings.d.ts.map +0 -1
  275. package/lib/typescript/store/askBuoyStore.d.ts.map +0 -1
  276. package/lib/typescript/store/restoredIds.test.d.ts.map +0 -1
  277. package/lib/typescript/store/traceText.d.ts.map +0 -1
  278. package/lib/typescript/store/traceText.test.d.ts.map +0 -1
  279. package/lib/typescript/store/transcriptPersistence.d.ts.map +0 -1
  280. package/lib/typescript/store/transcriptPersistence.test.d.ts.map +0 -1
  281. package/lib/typescript/store/useAskBuoy.d.ts.map +0 -1
  282. package/lib/typescript/store/useAskBuoySettings.d.ts.map +0 -1
  283. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +0 -1
  284. package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +0 -1
  285. package/lib/typescript/sync/wire.d.ts.map +0 -1
  286. package/lib/typescript/types.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { Block, BlockAnswer, AskBuoySession, EffectLedger, TurnEvent } from "@buoy-gg/agent-core";
1
+ import type { ApprovalAnswer, Block, BlockAnswer, AskBuoySession, EffectLedger, TurnEvent } from "@buoy-gg/agent-core";
2
2
  /** A block in a message, and (for receipts) the tool call that produced it. */
3
3
  export interface PlacedBlock {
4
4
  block: Block;
@@ -12,9 +12,23 @@ export interface ChatToolCall {
12
12
  label: string;
13
13
  /** The catalog's fuller sentence, shown when the row is expanded. */
14
14
  description?: string;
15
- status: "running" | "ok" | "failed" | "refused";
15
+ /**
16
+ * `refused` — the policy said no. `declined` — the USER said no on the
17
+ * approval card. Both are rows for calls that never ran, and both matter:
18
+ * a turn that changed course because permission was withheld is unreadable
19
+ * without them. `stopped` — the user pressed Stop before this call started;
20
+ * the engine checks the abort signal before every call in a batch, and a
21
+ * call it skipped is shown rather than silently omitted, because the user
22
+ * needs to know which of the proposed changes did NOT land.
23
+ */
24
+ status: "running" | "ok" | "failed" | "refused" | "declined" | "stopped";
16
25
  /** Trailing status word once finished — "12 items", "Not found", "Done". */
17
26
  summary?: string;
27
+ /** The outcome check, when the action has one — see agent-core engine/verify.ts. */
28
+ verification?: {
29
+ status: "verified" | "unverified" | "failed";
30
+ detail: string;
31
+ };
18
32
  /**
19
33
  * What the model asked this step to do, serialised and capped. Shown only in
20
34
  * the thinking view — it is the difference between "a storage write ran" and
@@ -68,7 +82,39 @@ export interface ChatMessage {
68
82
  };
69
83
  /** Set while the assistant is still streaming this message. */
70
84
  streaming?: boolean;
85
+ /**
86
+ * What the engine is waiting on right now, when it is not the model —
87
+ * "Endpoint busy — retrying in 2 s". Shown next to the typing dots and
88
+ * cleared by the next thing that arrives, so a retry never reads as a
89
+ * hang. Never persisted: it is only true while the turn is live.
90
+ */
91
+ waiting?: string;
71
92
  error?: string;
93
+ /**
94
+ * The user pressed Stop.
95
+ *
96
+ * Kept apart from `error` because it is not one: the abort surfaces as a
97
+ * cancelled fetch, and reported as an error it told the user "couldn't reach
98
+ * your AI endpoint, check the connection" about a thing they had just chosen
99
+ * to do — with a Swift exception underneath it.
100
+ */
101
+ stopped?: boolean;
102
+ /**
103
+ * This bubble came back from disk.
104
+ *
105
+ * The MODEL does not remember it the way the screen does: a restored history
106
+ * is rewound to the last complete round, so an Ask block — which ends its
107
+ * turn with a `buoy_ui` call — is always rewound out of the model's memory
108
+ * while its buttons stay tappable on screen. Answering one has to carry the
109
+ * question with it. See `answer` in useAskBuoy.
110
+ */
111
+ restored?: boolean;
112
+ /**
113
+ * A line from Buoy itself, not the model — "older messages were trimmed".
114
+ * Rendered as a dim centred note, never as an answer, and never given a
115
+ * footer or a copy pill.
116
+ */
117
+ system?: boolean;
72
118
  /**
73
119
  * True once a tool call has run and no narration has arrived since.
74
120
  *
@@ -87,12 +133,62 @@ export interface PendingApproval {
87
133
  label: string;
88
134
  description?: string;
89
135
  reason: string;
90
- resolve: (approved: boolean) => void;
136
+ /** The call itself. Never rendered; kept so a restored card can run it. */
137
+ params?: Record<string, unknown>;
138
+ /**
139
+ * This card came back from disk after a reload.
140
+ *
141
+ * The turn that asked the question died with the JS context, so there is no
142
+ * promise left to resolve and no model waiting on the answer. Allow has to
143
+ * dispatch the call itself — see `approve` in useAskBuoy.
144
+ */
145
+ restored?: boolean;
146
+ /**
147
+ * Fingerprint of what the call would overwrite, as of when it was asked.
148
+ * A restored Allow re-reads and compares before writing: same label, same
149
+ * params, different app state is exactly the case a restart produces. A
150
+ * hash, so nothing of the value itself is persisted.
151
+ */
152
+ targetDigest?: string;
153
+ resolve: (answer: ApprovalAnswer) => void;
91
154
  }
155
+ /**
156
+ * A message typed while a turn was running.
157
+ *
158
+ * A list with ids, not a string: the single slot it replaced OVERWROTE — type
159
+ * two things mid-turn and the first vanished, which is precisely the loss the
160
+ * queue exists to prevent. Ids so two identical requests stay distinguishable
161
+ * and the list can be edited by row.
162
+ */
163
+ export interface QueuedMessage {
164
+ id: string;
165
+ text: string;
166
+ }
167
+ /**
168
+ * The one word every component reads to know what the chat is doing.
169
+ *
170
+ * Presentation state (minimised, settings open) is NOT in here on purpose —
171
+ * it sits on top. This exists because the header, the composer, the queue
172
+ * flush and the modal each used to derive their own answer from five
173
+ * overlapping booleans, and disagreed: the queue fired after an error because
174
+ * "not busy" looked like "idle" to it.
175
+ */
176
+ export type TurnPhase = "idle" | "running" | "awaitingApproval" | "awaitingAnswer" | "stopping";
92
177
  export interface AskBuoyState {
93
178
  messages: ChatMessage[];
94
179
  busy: boolean;
180
+ /** Stop was pressed and the turn has not yet wound down. See TurnPhase. */
181
+ stopping: boolean;
95
182
  pending: PendingApproval | null;
183
+ /**
184
+ * Actions the user answered with "Allow for this chat" — the card is not
185
+ * shown for them again this conversation. Mirrors the session's set for
186
+ * display; `untrust` removes from both. Cleared with the conversation.
187
+ */
188
+ trusted: {
189
+ key: string;
190
+ label: string;
191
+ }[];
96
192
  /** Set when the tool is unconfigured or the endpoint keeps failing. */
97
193
  notice: string | null;
98
194
  /** Whether the host app wired an endpoint + model. Set by the sheet's hook. */
@@ -103,8 +199,13 @@ export interface AskBuoyState {
103
199
  awaitingBlockId: string | null;
104
200
  /** Run state of block action buttons, keyed `${blockId}:${label}`. */
105
201
  actionState: Record<string, "running" | "done" | "failed">;
106
- /** A message typed while a turn was running; sent when the turn finishes. */
107
- queued: string | null;
202
+ /** Messages typed while a turn was running, in the order they were typed. */
203
+ queued: QueuedMessage[];
204
+ /**
205
+ * Text handed back to the composer — a queued message the user tapped to
206
+ * edit. The composer takes it and calls `clearDraft`.
207
+ */
208
+ draft: string | null;
108
209
  /** Session token totals, accumulated from provider usage reports. */
109
210
  usage: {
110
211
  input: number;
@@ -144,8 +245,22 @@ export declare const askBuoyStore: {
144
245
  addUser(text: string): void;
145
246
  /** Mark a turn as running without adding a bubble — the retry path. */
146
247
  beginTurn(): void;
147
- /** Park a message typed mid-turn instead of silently dropping it. */
148
- setQueued(text: string | null): void;
248
+ /** Park a message typed mid-turn, behind whatever is already parked. */
249
+ enqueue(text: string): QueuedMessage;
250
+ /** Drop one parked message — the ✕ on its row. */
251
+ removeQueued(id: string): void;
252
+ /** Take the FIRST parked message off the queue — the flush path. */
253
+ shiftQueued(): QueuedMessage | undefined;
254
+ /** Hand one parked message back to the composer to edit. See `draft`. */
255
+ takeQueuedToDraft(id: string): void;
256
+ /**
257
+ * The user pressed Stop. The turn is still winding down — the abort is only
258
+ * read between calls — so the phase is `stopping`, not `idle`, until
259
+ * `finishAssistant` lands.
260
+ */
261
+ requestStop(): void;
262
+ /** The composer has taken the draft into its input. */
263
+ clearDraft(): void;
149
264
  /** Drop one message — the failed assistant bubble a retry replaces. */
150
265
  removeMessage(id: string): void;
151
266
  /** The user answered (or skipped) an Ask block. */
@@ -161,9 +276,40 @@ export declare const askBuoyStore: {
161
276
  * only form a non-developer can actually check.
162
277
  */
163
278
  applyEvent(messageId: string, ev: TurnEvent): void;
279
+ /** The user pressed Stop on this turn. See `ChatMessage.stopped`. */
280
+ markStopped(messageId: string): void;
164
281
  finishAssistant(messageId: string): void;
165
- askApproval(input: Omit<PendingApproval, "resolve">): Promise<boolean>;
166
- answerApproval(approved: boolean): void;
282
+ askApproval(input: Omit<PendingApproval, "resolve">): Promise<ApprovalAnswer>;
283
+ /**
284
+ * The user's answer, in full: yes/no, an optional note on a no (it goes to
285
+ * the model verbatim), and on a yes whether to stop asking about this
286
+ * action for the rest of the conversation. A bare boolean still works.
287
+ */
288
+ answerApproval(answer: ApprovalAnswer): void;
289
+ /** Ask again for this action. Removes it from the session's waiver set too. */
290
+ untrust(key: string): void;
291
+ /**
292
+ * Put an unanswered approval back after a restart.
293
+ *
294
+ * A question the app asked and then forgot is worse than not asking: the
295
+ * user tapped nothing, so as far as they are concerned the change is still
296
+ * waiting for them. `resolve` is a no-op because nothing is waiting on this
297
+ * one any more; `restored` is what tells the sheet to run the call rather
298
+ * than answer a dead promise.
299
+ *
300
+ * Refused once a turn is under way, for the same reason `hydrate` is: a slow
301
+ * disk read must not shove an old question in front of a live conversation.
302
+ */
303
+ restorePending(input: Omit<PendingApproval, "resolve" | "restored">): boolean;
304
+ /**
305
+ * A line in the transcript from Buoy itself rather than from the model.
306
+ *
307
+ * It wears the assistant's bubble because that is the only shape the list
308
+ * renders, but nothing is sent to the model and nothing lands in its
309
+ * history — it exists so an approval answered after a restart leaves a
310
+ * trace, instead of the card silently vanishing a second time.
311
+ */
312
+ addNote(text: string): void;
167
313
  /**
168
314
  * Put a saved conversation back, once, at open.
169
315
  *
@@ -178,8 +324,27 @@ export declare const askBuoyStore: {
178
324
  output: number;
179
325
  requests: number;
180
326
  };
327
+ /**
328
+ * Messages that were still parked when the app died. Restored VISIBLY and
329
+ * never auto-sent: the turn they were waiting on is gone, and a request
330
+ * firing by itself on relaunch is the one thing a restart must not do.
331
+ */
332
+ queued?: QueuedMessage[];
181
333
  }): boolean;
182
334
  reset(): void;
183
335
  };
336
+ /** See TurnPhase. Pure, so every component and the flush effect agree. */
337
+ export declare function turnPhaseOf(s: AskBuoyState): TurnPhase;
338
+ /**
339
+ * Why parked messages are NOT being sent right now, in the user's words — or
340
+ * null when the queue may deliver.
341
+ *
342
+ * A queued message is a next TASK, not an answer. It used to go the moment
343
+ * `busy` dropped: after an error it fired into the same dead connection, and
344
+ * with a choice block open it was sent as the reply to the question. So the
345
+ * queue holds on error, Stop, an approval and an unanswered Ask block, and
346
+ * says which.
347
+ */
348
+ export declare function queuePauseReason(s: AskBuoyState): string | null;
184
349
  export {};
185
350
  //# sourceMappingURL=askBuoyStore.d.ts.map
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Where each block of a turn is drawn: inside a step row, after the prose as
3
+ * the answer itself, or last of all as the thing being asked.
4
+ *
5
+ * Pure and separate from MessageList because the rule is subtle and the cost
6
+ * of getting it wrong is silent — a block that lands in no bucket renders
7
+ * nowhere at all, and nothing in the UI says so. That is exactly what
8
+ * happened: "show me the shop as pictures" built its imageGrid, the engine
9
+ * accepted it, and the sheet dropped it on the floor twice while the model
10
+ * narrated the artwork in prose.
11
+ */
12
+ import { type Block } from "@buoy-gg/agent-core";
13
+ import type { PlacedBlock } from "./askBuoyStore";
14
+ export interface BlockPlacement {
15
+ /** Receipts folded into the step row that produced them, by tool-call id. */
16
+ nested: Map<string, Block[]>;
17
+ /**
18
+ * Cards drawn AFTER the prose — the answer itself, once the text has said
19
+ * what it is. Named for the position on purpose: this bucket used to render
20
+ * between the activity list and the text, which put a 28-item grid above
21
+ * the five paragraphs explaining it. The order is a promise the prompt
22
+ * makes to the model ("say what it means, then show it"), so it must not be
23
+ * a detail of how MessageList happens to be laid out.
24
+ */
25
+ afterText: PlacedBlock[];
26
+ /** Choice / confirm / input — drawn last of all, after the answer. */
27
+ ask: PlacedBlock[];
28
+ }
29
+ export declare function placeBlocks(blocks: PlacedBlock[], stepIds: Iterable<string>): BlockPlacement;
30
+ //# sourceMappingURL=blockPlacement.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blockPlacement.test.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queue.test.d.ts.map
@@ -0,0 +1,38 @@
1
+ /**
2
+ * "New conversation" — the ONE way a conversation is cleared.
3
+ *
4
+ * Clearing drops the effect ledger, which is the only undo surface, while the
5
+ * agent's changes stay live in the app. So the path that clears has to be the
6
+ * path that knows whether undo succeeded — and there used to be two paths
7
+ * that did not: the sheet's "Undo, then clear" awaited `revertAll` and reset
8
+ * without reading the outcome (two of five reverts fail, the conversation
9
+ * clears anyway, two changes stay applied with no record), and the desktop's
10
+ * `reset` action skipped the question entirely.
11
+ *
12
+ * Both now come through here. A failed revert does NOT clear: the caller gets
13
+ * the list of what is still applied and clearing becomes a second, explicit
14
+ * choice.
15
+ */
16
+ import type { DispatchFn, RevertOutcome } from "@buoy-gg/agent-core";
17
+ export interface ResetOutcome {
18
+ /** The conversation, session and saved copy are gone. */
19
+ cleared: boolean;
20
+ /** How many changes were put back first. */
21
+ reverted: number;
22
+ /** Changes that could not be put back and are still live in the app. */
23
+ failed: RevertOutcome["failed"];
24
+ }
25
+ /** Clear everything, unconditionally. The caller has already decided. */
26
+ export declare function clearConversation(): void;
27
+ /**
28
+ * Undo what can be undone, then clear — unless something would not go back.
29
+ *
30
+ * Refuses while a turn is running: the ledger is being written to, and a
31
+ * revert racing a dispatch is how "changed since Ask Buoy wrote it" happens
32
+ * to our own write.
33
+ */
34
+ export declare function resetConversation(input: {
35
+ dispatch: DispatchFn;
36
+ undoFirst: boolean;
37
+ }): Promise<ResetOutcome>;
38
+ //# sourceMappingURL=resetConversation.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=restorePending.test.d.ts.map
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The empty state's "try asking" chips, filtered to what will actually work.
3
+ *
4
+ * The list was static, so a release build offered "Make the next request fail
5
+ * with a 500" directly above a line saying simulations need a dev build — and
6
+ * the agent then refused the very thing the screen had just suggested. First
7
+ * impression: broken. Each chip now says what it needs; the empty state keeps
8
+ * the ones this device, build and policy can honour.
9
+ *
10
+ * Deterministic on purpose: no model call, no navigation, no guessed route
11
+ * names or account ids. When the tool registry has not reported yet (it fills
12
+ * in a frame or two after open) only the chips that need nothing are shown —
13
+ * a short list that grows beats a long one that shrinks.
14
+ */
15
+ export interface Suggestion {
16
+ text: string;
17
+ /** A Buoy tool that must be registered on this device. */
18
+ needs?: string;
19
+ /** The chip asks for a change — hidden in read-only mode. */
20
+ write?: boolean;
21
+ /** The chip drives a dev-only simulation — hidden in a release build. */
22
+ devOnly?: boolean;
23
+ }
24
+ export declare const SUGGESTIONS: Suggestion[];
25
+ /** At most this many chips — the rest of the screen is the point. */
26
+ export declare const MAX_SUGGESTIONS = 4;
27
+ export declare function pickSuggestions(input: {
28
+ availableToolIds: string[];
29
+ readOnly: boolean;
30
+ isRelease: boolean;
31
+ }): string[];
32
+ //# sourceMappingURL=suggestions.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=suggestions.test.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=systemLine.test.d.ts.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The "Summarize for a ticket" request, sent as an ordinary user message.
3
+ *
4
+ * One button, one canned sentence, because the machinery already exists: the
5
+ * prompt teaches the `finding` block and the renderer draws it. What was
6
+ * missing was a way to ASK for one without knowing the word, and a Copy that
7
+ * includes it (see blockText.ts). Facts and inference are separated in the
8
+ * ask, nothing is re-run to produce it, and nothing is submitted anywhere.
9
+ */
10
+ export declare const TICKET_PROMPT: string;
11
+ //# sourceMappingURL=ticketPrompt.d.ts.map
@@ -1,7 +1,26 @@
1
- import type { AgentMessage } from "@buoy-gg/agent-core";
2
- import type { ChatMessage } from "./askBuoyStore";
1
+ import type { AgentMessage, LedgerEntry } from "@buoy-gg/agent-core";
2
+ import type { ChatMessage, PendingApproval, QueuedMessage } from "./askBuoyStore";
3
3
  /** `@react_buoy` prefix, so the Storage tool treats it as one of its own. */
4
4
  export declare const TRANSCRIPT_KEY: string;
5
+ /**
6
+ * An approval the user never answered.
7
+ *
8
+ * Saved with the conversation because an unanswered question is exactly the
9
+ * state a reload must not quietly resolve for them: nothing was tapped, so the
10
+ * change is still pending as far as they know. `params` is the real call —
11
+ * after a restart there is no turn left to resume, so Allow re-dispatches it.
12
+ */
13
+ export interface StoredApproval {
14
+ id: string;
15
+ toolId: string;
16
+ action: string;
17
+ label: string;
18
+ description?: string;
19
+ reason: string;
20
+ params: Record<string, unknown>;
21
+ /** A hash of the target at ask time, never the target. See PendingApproval. */
22
+ targetDigest?: string;
23
+ }
5
24
  export interface StoredTranscript {
6
25
  v: number;
7
26
  savedAt: number;
@@ -15,6 +34,23 @@ export interface StoredTranscript {
15
34
  output: number;
16
35
  requests: number;
17
36
  };
37
+ /** The card that was still on screen, if any. See StoredApproval. */
38
+ pending?: StoredApproval | null;
39
+ /**
40
+ * The effect ledger — what the agent changed, and how to put it back.
41
+ *
42
+ * Saved because it is the ONLY undo surface and it used to die with the JS
43
+ * context: the transcript came back after a reload with its "saved" lines
44
+ * and receipt cards intact, while the changes bar vanished and the changes
45
+ * stayed applied. Entries are plain data; the values inside them are the
46
+ * PRIOR state a revert needs (a storage key's old value, a rule id).
47
+ */
48
+ ledger?: LedgerEntry[];
49
+ /**
50
+ * Messages still parked when the app died. Come back as unsent rows the
51
+ * user can send, edit or drop — never auto-sent on relaunch.
52
+ */
53
+ queued?: QueuedMessage[];
18
54
  }
19
55
  /**
20
56
  * Trim to the caps. Messages and history are trimmed together and from the
@@ -31,6 +67,9 @@ export declare function buildPayload(input: {
31
67
  output: number;
32
68
  requests: number;
33
69
  };
70
+ pending?: PendingApproval | null;
71
+ ledger?: LedgerEntry[];
72
+ queued?: QueuedMessage[];
34
73
  }): StoredTranscript;
35
74
  /** Anything unparseable, or from an older shape, is treated as "no transcript". */
36
75
  export declare function parsePayload(raw: string | null): StoredTranscript | null;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=turnRendering.test.d.ts.map
@@ -1,15 +1,36 @@
1
- import { type BlockAction, type BlockAnswer } from "@buoy-gg/agent-core";
1
+ import { type ApprovalAnswer, type BlockAction, type BlockAnswer } from "@buoy-gg/agent-core";
2
2
  import { type AskBuoyState } from "./askBuoyStore";
3
+ import { type ResetOutcome } from "./resetConversation";
3
4
  import type { AskBuoyConfig } from "../types";
4
5
  export declare function useAskBuoyState(): AskBuoyState;
5
6
  export interface AskBuoyController {
6
7
  state: AskBuoyState;
7
8
  send: (text: string) => void;
8
9
  stop: () => void;
10
+ /** Clear everything, unconditionally. See `undoThenReset` for the guarded path. */
9
11
  reset: () => void;
10
- approve: (approved: boolean) => void;
11
- /** Re-send the last user message after a failed turn. */
12
+ /**
13
+ * Undo what can be undone, then clear — or refuse and say what is still
14
+ * applied. The sheet's "Undo, then clear" and the desktop's reset both go
15
+ * through this; see resetConversation.ts for why there is only one path.
16
+ */
17
+ undoThenReset: () => Promise<ResetOutcome>;
18
+ /** Answer the pending approval card — a boolean, or the full answer with a note / "allow for this chat". */
19
+ approve: (answer: ApprovalAnswer) => void;
20
+ /**
21
+ * Run the last user message again after a failed or stopped turn.
22
+ *
23
+ * The failed bubble STAYS. It used to be removed first, and it can hold
24
+ * receipts for writes that really happened — two bag lines landed, the
25
+ * endpoint dropped on the third — so deleting it deleted the only record of
26
+ * them while the changes bar went on counting them. A new attempt gets a new
27
+ * bubble; the old one simply loses its Try-again button.
28
+ */
12
29
  retry: () => void;
30
+ /** Pull a parked message back into the composer to edit. */
31
+ editQueued: (id: string) => void;
32
+ /** Drop a parked message. */
33
+ removeQueued: (id: string) => void;
13
34
  /** Answer an Ask block: locks it and sends the answer as the next message. */
14
35
  answer: (answer: BlockAnswer) => void;
15
36
  /** Run a block button that dispatches a Buoy action or sends a message. */
@@ -17,6 +38,8 @@ export interface AskBuoyController {
17
38
  configured: boolean;
18
39
  /** How many Buoy tools the agent can reach on this device. */
19
40
  toolCount: number;
41
+ /** Which ones, for the empty state's chips. */
42
+ availableToolIds: string[];
20
43
  }
21
44
  export declare function useAskBuoy(config: AskBuoyConfig | undefined): AskBuoyController;
22
45
  //# sourceMappingURL=useAskBuoy.d.ts.map
@@ -1,6 +1,8 @@
1
+ import { dispatchToolAction } from "./wire";
1
2
  export declare const ASK_BUOY_ADAPTER_VERSION = 1;
2
3
  export declare const askBuoySyncAdapter: {
3
4
  version: number;
5
+ dispose(cleanup: typeof dispatchToolAction): Promise<void>;
4
6
  getSnapshot(): {
5
7
  version: number;
6
8
  busy: boolean;
@@ -15,7 +17,7 @@ export declare const askBuoySyncAdapter: {
15
17
  toolCalls: {
16
18
  toolId: string;
17
19
  action: string;
18
- status: "running" | "failed" | "ok" | "refused";
20
+ status: "running" | "failed" | "ok" | "refused" | "declined" | "stopped";
19
21
  }[];
20
22
  }[];
21
23
  usage: {
@@ -33,7 +35,7 @@ export declare const askBuoySyncAdapter: {
33
35
  permanent: number;
34
36
  transients: number;
35
37
  items: {
36
- kind: "network-override" | "impersonation" | "storage-write" | "state-write" | "transient";
38
+ kind: "network-override" | "impersonation" | "storage-write" | "query-write" | "state-write" | "transient";
37
39
  label: string;
38
40
  }[];
39
41
  };
@@ -46,7 +48,7 @@ export declare const askBuoySyncAdapter: {
46
48
  at: number;
47
49
  toolId: string;
48
50
  action: string;
49
- kind: "network-override" | "impersonation" | "storage-write" | "state-write" | "transient";
51
+ kind: "network-override" | "impersonation" | "storage-write" | "query-write" | "state-write" | "transient";
50
52
  label: string;
51
53
  reversible: boolean;
52
54
  }[];
@@ -61,13 +63,34 @@ export declare const askBuoySyncAdapter: {
61
63
  error: string;
62
64
  }[];
63
65
  skippedTransients: number;
66
+ permanent: number;
64
67
  ok: boolean;
65
68
  error?: undefined;
66
69
  }>;
67
- /** Clear the transcript and the ledger. Does not undo anything. */
68
- reset: () => {
70
+ /**
71
+ * Undo what can be undone, then clear the transcript and the ledger.
72
+ *
73
+ * The same path as the sheet's "New conversation" (resetConversation.ts).
74
+ * This action used to clear unconditionally — no question, no undo — so a
75
+ * desktop click could drop the only undo record for changes still live on
76
+ * the tester's phone. Now it refuses to clear when a revert fails and says
77
+ * what is still applied; the dashboard decides whether to clear anyway
78
+ * by calling `undoAll` first or accepting the kept conversation.
79
+ */
80
+ reset: () => Promise<{
69
81
  ok: boolean;
70
- };
82
+ error: string;
83
+ failed: {
84
+ label: string;
85
+ error: string;
86
+ }[];
87
+ reverted?: undefined;
88
+ } | {
89
+ ok: boolean;
90
+ reverted: number;
91
+ error?: undefined;
92
+ failed?: undefined;
93
+ }>;
71
94
  };
72
95
  };
73
96
  //# sourceMappingURL=askBuoySyncAdapter.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@buoy-gg/ask-buoy",
3
- "version": "7.0.35",
4
- "description": "Ask Buoy - an in-app AI chat that drives every Buoy devtool, powered by your own model endpoint",
3
+ "version": "7.0.38",
4
+ "description": "In-app AI chat for supported Buoy inspection and action tools, using a configured model endpoint.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
7
7
  "types": "lib/typescript/index.d.ts",
@@ -24,15 +24,15 @@
24
24
  "buoy"
25
25
  ],
26
26
  "dependencies": {
27
- "@buoy-gg/shared-ui": "^7.0.35",
28
- "@buoy-gg/agent-core": "^7.0.35",
29
- "@buoy-gg/floating-tools-core": "^7.0.35"
27
+ "@buoy-gg/agent-core": "^7.0.38",
28
+ "@buoy-gg/shared-ui": "^7.0.38",
29
+ "@buoy-gg/floating-tools-core": "^7.0.38"
30
30
  },
31
31
  "peerDependencies": {
32
- "@buoy-gg/license": "7.0.35",
32
+ "@buoy-gg/license": "7.0.38",
33
33
  "react": "*",
34
34
  "react-native": "*",
35
- "@buoy-gg/core": "^7.0.35"
35
+ "@buoy-gg/core": "^7.0.38"
36
36
  },
37
37
  "peerDependenciesMeta": {
38
38
  "@buoy-gg/core": {
@@ -43,8 +43,8 @@
43
43
  "@types/react": "^19.1.0",
44
44
  "@types/react-native": "^0.73.0",
45
45
  "typescript": "~5.8.3",
46
- "@buoy-gg/license": "^7.0.35",
47
- "@buoy-gg/core": "^7.0.35"
46
+ "@buoy-gg/license": "^7.0.38",
47
+ "@buoy-gg/core": "^7.0.38"
48
48
  },
49
49
  "react-native-builder-bob": {
50
50
  "source": "src",
@@ -68,7 +68,7 @@
68
68
  "bugs": {
69
69
  "url": "https://github.com/LovesWorking/react-native-buoy/issues"
70
70
  },
71
- "homepage": "https://github.com/LovesWorking/react-native-buoy/tree/main/packages/ask-buoy#readme",
71
+ "homepage": "https://buoy.gg/buoy/latest/docs/tools/ask-buoy",
72
72
  "publishConfig": {
73
73
  "access": "public",
74
74
  "tag": "latest"
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNative","_sharedUi","_context","_icons","_primitives","_jsxRuntime","Choice","block","h","useBlockHandlers","answer","answered","id","chosen","kind","optionId","locked","jsxs","Card","testID","tone","undefined","children","jsx","Text","style","styles","question","View","options","slice","map","o","i","isChosen","Pressable","accessibilityRole","accessibilityState","selected","disabled","onPress","blockId","label","pressed","option","optionDivider","optionChosen","optionDimmed","icon","BlockIcon","name","optionText","optionLabel","optionLabelChosen","detail","optionDetail","Check","size","color","night","accent","ChevronRight","textTertiary","allowFreeText","hint","Confirm","approved","confirmTitle","title","confirmChange","change","consequence","confirmConsequence","confirmActions","decided","approveLabel","declineLabel","Fragment","button","buttonPrimary","buttonTextPrimary","buttonPlate","buttonTextPlate","Input","value","setValue","useState","secret","type","submit","v","trim","inputRow","TextInput","input","onChangeText","placeholder","placeholderTextColor","keyboardType","secureTextEntry","autoCapitalize","autoCorrect","returnKeyType","onSubmitEditing","buttonDisabled","submitLabel","StyleSheet","create","text","fontSize","font","row","fontWeight","lineHeight","paddingHorizontal","paddingTop","paddingBottom","marginHorizontal","marginBottom","borderRadius","radius","backgroundColor","surfaceElevated","overflow","flexDirection","alignItems","gap","paddingVertical","borderTopWidth","hairlineWidth","borderTopColor","separator","accentSoft","opacity","flex","body","textSecondary","caption","micro","warning","height","onAccent"],"sourceRoot":"../../../src","sources":["blocks/AskBlocks.tsx"],"mappings":"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","ignoreList":[]}