@buoy-gg/ask-buoy 7.0.33 → 7.0.34

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 (153) hide show
  1. package/README.md +1 -1
  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 -545
  6. package/lib/commonjs/blocks/ExtraBlocks.js +1 -1821
  7. package/lib/commonjs/blocks/MediaBlocks.js +1 -140
  8. package/lib/commonjs/blocks/ReceiptBlocks.js +1 -596
  9. package/lib/commonjs/blocks/context.js +1 -42
  10. package/lib/commonjs/blocks/icons.js +1 -96
  11. package/lib/commonjs/blocks/index.js +1 -95
  12. package/lib/commonjs/blocks/primitives.js +1 -312
  13. package/lib/commonjs/blocks/primitivesIndex.js +1 -56
  14. package/lib/commonjs/components/ApprovalCard.js +1 -140
  15. package/lib/commonjs/components/AskBuoyHeader.js +1 -127
  16. package/lib/commonjs/components/AskBuoyIcon.js +1 -19
  17. package/lib/commonjs/components/AskBuoyModal.js +1 -322
  18. package/lib/commonjs/components/ChangesBar.js +1 -211
  19. package/lib/commonjs/components/Composer.js +1 -175
  20. package/lib/commonjs/components/EmptyState.js +1 -154
  21. package/lib/commonjs/components/Markdown.js +1 -252
  22. package/lib/commonjs/components/MessageList.js +1 -648
  23. package/lib/commonjs/components/TypingDots.js +1 -63
  24. package/lib/commonjs/index.js +1 -205
  25. package/lib/commonjs/preset.js +1 -90
  26. package/lib/commonjs/store/askBuoyStore.js +1 -279
  27. package/lib/commonjs/store/useAskBuoy.js +1 -299
  28. package/lib/commonjs/sync/askBuoySyncAdapter.js +1 -119
  29. package/lib/commonjs/sync/askBuoySyncAdapter.test.js +1 -136
  30. package/lib/commonjs/sync/wire.js +1 -58
  31. package/lib/commonjs/types.js +1 -6
  32. package/lib/module/blocks/AskBlocks.js +1 -331
  33. package/lib/module/blocks/BlockRenderer.js +1 -245
  34. package/lib/module/blocks/ChromePrototypes.js +1 -503
  35. package/lib/module/blocks/DataBlocks.js +1 -532
  36. package/lib/module/blocks/ExtraBlocks.js +1 -1794
  37. package/lib/module/blocks/MediaBlocks.js +1 -135
  38. package/lib/module/blocks/ReceiptBlocks.js +1 -584
  39. package/lib/module/blocks/context.js +1 -35
  40. package/lib/module/blocks/icons.js +1 -91
  41. package/lib/module/blocks/index.js +1 -8
  42. package/lib/module/blocks/primitives.js +1 -301
  43. package/lib/module/blocks/primitivesIndex.js +1 -5
  44. package/lib/module/components/ApprovalCard.js +1 -135
  45. package/lib/module/components/AskBuoyHeader.js +1 -124
  46. package/lib/module/components/AskBuoyIcon.js +1 -8
  47. package/lib/module/components/AskBuoyModal.js +1 -317
  48. package/lib/module/components/ChangesBar.js +1 -206
  49. package/lib/module/components/Composer.js +1 -170
  50. package/lib/module/components/EmptyState.js +1 -149
  51. package/lib/module/components/Markdown.js +1 -246
  52. package/lib/module/components/MessageList.js +1 -642
  53. package/lib/module/components/TypingDots.js +1 -58
  54. package/lib/module/index.js +1 -29
  55. package/lib/module/preset.js +1 -73
  56. package/lib/module/store/askBuoyStore.js +1 -275
  57. package/lib/module/store/useAskBuoy.js +1 -293
  58. package/lib/module/sync/askBuoySyncAdapter.js +1 -114
  59. package/lib/module/sync/askBuoySyncAdapter.test.js +1 -135
  60. package/lib/module/sync/wire.js +1 -47
  61. package/lib/module/types.js +1 -4
  62. package/lib/typescript/preset.d.ts +1 -1
  63. package/package.json +8 -8
  64. package/lib/commonjs/blocks/AskBlocks.js.map +0 -1
  65. package/lib/commonjs/blocks/BlockRenderer.js.map +0 -1
  66. package/lib/commonjs/blocks/ChromePrototypes.js.map +0 -1
  67. package/lib/commonjs/blocks/DataBlocks.js.map +0 -1
  68. package/lib/commonjs/blocks/ExtraBlocks.js.map +0 -1
  69. package/lib/commonjs/blocks/MediaBlocks.js.map +0 -1
  70. package/lib/commonjs/blocks/ReceiptBlocks.js.map +0 -1
  71. package/lib/commonjs/blocks/context.js.map +0 -1
  72. package/lib/commonjs/blocks/icons.js.map +0 -1
  73. package/lib/commonjs/blocks/index.js.map +0 -1
  74. package/lib/commonjs/blocks/primitives.js.map +0 -1
  75. package/lib/commonjs/blocks/primitivesIndex.js.map +0 -1
  76. package/lib/commonjs/components/ApprovalCard.js.map +0 -1
  77. package/lib/commonjs/components/AskBuoyHeader.js.map +0 -1
  78. package/lib/commonjs/components/AskBuoyIcon.js.map +0 -1
  79. package/lib/commonjs/components/AskBuoyModal.js.map +0 -1
  80. package/lib/commonjs/components/ChangesBar.js.map +0 -1
  81. package/lib/commonjs/components/Composer.js.map +0 -1
  82. package/lib/commonjs/components/EmptyState.js.map +0 -1
  83. package/lib/commonjs/components/Markdown.js.map +0 -1
  84. package/lib/commonjs/components/MessageList.js.map +0 -1
  85. package/lib/commonjs/components/TypingDots.js.map +0 -1
  86. package/lib/commonjs/index.js.map +0 -1
  87. package/lib/commonjs/preset.js.map +0 -1
  88. package/lib/commonjs/store/askBuoyStore.js.map +0 -1
  89. package/lib/commonjs/store/useAskBuoy.js.map +0 -1
  90. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +0 -1
  91. package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +0 -1
  92. package/lib/commonjs/sync/wire.js.map +0 -1
  93. package/lib/commonjs/types.js.map +0 -1
  94. package/lib/module/blocks/AskBlocks.js.map +0 -1
  95. package/lib/module/blocks/BlockRenderer.js.map +0 -1
  96. package/lib/module/blocks/ChromePrototypes.js.map +0 -1
  97. package/lib/module/blocks/DataBlocks.js.map +0 -1
  98. package/lib/module/blocks/ExtraBlocks.js.map +0 -1
  99. package/lib/module/blocks/MediaBlocks.js.map +0 -1
  100. package/lib/module/blocks/ReceiptBlocks.js.map +0 -1
  101. package/lib/module/blocks/context.js.map +0 -1
  102. package/lib/module/blocks/icons.js.map +0 -1
  103. package/lib/module/blocks/index.js.map +0 -1
  104. package/lib/module/blocks/primitives.js.map +0 -1
  105. package/lib/module/blocks/primitivesIndex.js.map +0 -1
  106. package/lib/module/components/ApprovalCard.js.map +0 -1
  107. package/lib/module/components/AskBuoyHeader.js.map +0 -1
  108. package/lib/module/components/AskBuoyIcon.js.map +0 -1
  109. package/lib/module/components/AskBuoyModal.js.map +0 -1
  110. package/lib/module/components/ChangesBar.js.map +0 -1
  111. package/lib/module/components/Composer.js.map +0 -1
  112. package/lib/module/components/EmptyState.js.map +0 -1
  113. package/lib/module/components/Markdown.js.map +0 -1
  114. package/lib/module/components/MessageList.js.map +0 -1
  115. package/lib/module/components/TypingDots.js.map +0 -1
  116. package/lib/module/index.js.map +0 -1
  117. package/lib/module/preset.js.map +0 -1
  118. package/lib/module/store/askBuoyStore.js.map +0 -1
  119. package/lib/module/store/useAskBuoy.js.map +0 -1
  120. package/lib/module/sync/askBuoySyncAdapter.js.map +0 -1
  121. package/lib/module/sync/askBuoySyncAdapter.test.js.map +0 -1
  122. package/lib/module/sync/wire.js.map +0 -1
  123. package/lib/module/types.js.map +0 -1
  124. package/lib/typescript/blocks/AskBlocks.d.ts.map +0 -1
  125. package/lib/typescript/blocks/BlockRenderer.d.ts.map +0 -1
  126. package/lib/typescript/blocks/ChromePrototypes.d.ts.map +0 -1
  127. package/lib/typescript/blocks/DataBlocks.d.ts.map +0 -1
  128. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +0 -1
  129. package/lib/typescript/blocks/MediaBlocks.d.ts.map +0 -1
  130. package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +0 -1
  131. package/lib/typescript/blocks/context.d.ts.map +0 -1
  132. package/lib/typescript/blocks/icons.d.ts.map +0 -1
  133. package/lib/typescript/blocks/index.d.ts.map +0 -1
  134. package/lib/typescript/blocks/primitives.d.ts.map +0 -1
  135. package/lib/typescript/blocks/primitivesIndex.d.ts.map +0 -1
  136. package/lib/typescript/components/ApprovalCard.d.ts.map +0 -1
  137. package/lib/typescript/components/AskBuoyHeader.d.ts.map +0 -1
  138. package/lib/typescript/components/AskBuoyIcon.d.ts.map +0 -1
  139. package/lib/typescript/components/AskBuoyModal.d.ts.map +0 -1
  140. package/lib/typescript/components/ChangesBar.d.ts.map +0 -1
  141. package/lib/typescript/components/Composer.d.ts.map +0 -1
  142. package/lib/typescript/components/EmptyState.d.ts.map +0 -1
  143. package/lib/typescript/components/Markdown.d.ts.map +0 -1
  144. package/lib/typescript/components/MessageList.d.ts.map +0 -1
  145. package/lib/typescript/components/TypingDots.d.ts.map +0 -1
  146. package/lib/typescript/index.d.ts.map +0 -1
  147. package/lib/typescript/preset.d.ts.map +0 -1
  148. package/lib/typescript/store/askBuoyStore.d.ts.map +0 -1
  149. package/lib/typescript/store/useAskBuoy.d.ts.map +0 -1
  150. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +0 -1
  151. package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +0 -1
  152. package/lib/typescript/sync/wire.d.ts.map +0 -1
  153. package/lib/typescript/types.d.ts.map +0 -1
@@ -1,63 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TypingDots = TypingDots;
7
- var _react = require("react");
8
- var _reactNative = require("react-native");
9
- var _sharedUi = require("@buoy-gg/shared-ui");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- /**
12
- * Three pulsing dots — the "it heard you" signal between sending a message
13
- * and the first streamed token. A static "…" glyph read as a finished (and
14
- * confusing) answer.
15
- *
16
- * Native-driver opacity only, so it costs the JS thread nothing while the
17
- * stream that replaces it is being parsed.
18
- */
19
-
20
- function TypingDots() {
21
- const dots = (0, _react.useRef)([0, 1, 2].map(() => new _reactNative.Animated.Value(0.25))).current;
22
- (0, _react.useEffect)(() => {
23
- const loops = dots.map((v, i) => _reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.delay(i * 140), _reactNative.Animated.timing(v, {
24
- toValue: 1,
25
- duration: 320,
26
- easing: _reactNative.Easing.inOut(_reactNative.Easing.ease),
27
- useNativeDriver: true
28
- }), _reactNative.Animated.timing(v, {
29
- toValue: 0.25,
30
- duration: 320,
31
- easing: _reactNative.Easing.inOut(_reactNative.Easing.ease),
32
- useNativeDriver: true
33
- }), _reactNative.Animated.delay((2 - i) * 140)])));
34
- loops.forEach(l => l.start());
35
- return () => loops.forEach(l => l.stop());
36
- }, [dots]);
37
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
38
- style: styles.wrap,
39
- testID: "buoy-ask-buoy-typing",
40
- accessibilityLabel: "Thinking",
41
- children: dots.map((v, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
42
- style: [styles.dot, {
43
- opacity: v
44
- }]
45
- }, i))
46
- });
47
- }
48
- const styles = _reactNative.StyleSheet.create({
49
- wrap: {
50
- flexDirection: "row",
51
- alignItems: "center",
52
- gap: 5,
53
- paddingVertical: 8,
54
- paddingHorizontal: 2
55
- },
56
- dot: {
57
- width: 7,
58
- height: 7,
59
- borderRadius: 4,
60
- backgroundColor: _sharedUi.night.color.textSecondary
61
- }
62
- });
63
- //# sourceMappingURL=TypingDots.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TypingDots=TypingDots;var _react=require("react"),_reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_jsxRuntime=require("react/jsx-runtime");function TypingDots(){const e=(0,_react.useRef)([0,1,2].map(()=>new _reactNative.Animated.Value(.25))).current;return(0,_react.useEffect)(()=>{const t=e.map((e,t)=>_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.delay(140*t),_reactNative.Animated.timing(e,{toValue:1,duration:320,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(e,{toValue:.25,duration:320,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.delay(140*(2-t))])));return t.forEach(e=>e.start()),()=>t.forEach(e=>e.stop())},[e]),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.wrap,testID:"buoy-ask-buoy-typing",accessibilityLabel:"Thinking",children:e.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.dot,{opacity:e}]},t))})}const styles=_reactNative.StyleSheet.create({wrap:{flexDirection:"row",alignItems:"center",gap:5,paddingVertical:8,paddingHorizontal:2},dot:{width:7,height:7,borderRadius:4,backgroundColor:_sharedUi.night.color.textSecondary}});
@@ -1,205 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "ASK_BUOY_ADAPTER_VERSION", {
7
- enumerable: true,
8
- get: function () {
9
- return _askBuoySyncAdapter.ASK_BUOY_ADAPTER_VERSION;
10
- }
11
- });
12
- Object.defineProperty(exports, "ASK_BUOY_ICON_COLOR", {
13
- enumerable: true,
14
- get: function () {
15
- return _preset.ASK_BUOY_ICON_COLOR;
16
- }
17
- });
18
- Object.defineProperty(exports, "ApprovalCard", {
19
- enumerable: true,
20
- get: function () {
21
- return _ApprovalCard.ApprovalCard;
22
- }
23
- });
24
- Object.defineProperty(exports, "AskBuoyHeader", {
25
- enumerable: true,
26
- get: function () {
27
- return _AskBuoyHeader.AskBuoyHeader;
28
- }
29
- });
30
- Object.defineProperty(exports, "AskBuoyIcon", {
31
- enumerable: true,
32
- get: function () {
33
- return _preset.AskBuoyIcon;
34
- }
35
- });
36
- Object.defineProperty(exports, "AskBuoyModal", {
37
- enumerable: true,
38
- get: function () {
39
- return _AskBuoyModal.AskBuoyModal;
40
- }
41
- });
42
- Object.defineProperty(exports, "BlockActionRow", {
43
- enumerable: true,
44
- get: function () {
45
- return _blocks.ActionRow;
46
- }
47
- });
48
- Object.defineProperty(exports, "BlockCard", {
49
- enumerable: true,
50
- get: function () {
51
- return _blocks.Card;
52
- }
53
- });
54
- Object.defineProperty(exports, "BlockHandlersProvider", {
55
- enumerable: true,
56
- get: function () {
57
- return _blocks.BlockHandlersProvider;
58
- }
59
- });
60
- Object.defineProperty(exports, "BlockRenderer", {
61
- enumerable: true,
62
- get: function () {
63
- return _blocks.BlockRenderer;
64
- }
65
- });
66
- Object.defineProperty(exports, "ChangesBar", {
67
- enumerable: true,
68
- get: function () {
69
- return _ChangesBar.ChangesBar;
70
- }
71
- });
72
- Object.defineProperty(exports, "Composer", {
73
- enumerable: true,
74
- get: function () {
75
- return _Composer.Composer;
76
- }
77
- });
78
- Object.defineProperty(exports, "EditableUserBubble", {
79
- enumerable: true,
80
- get: function () {
81
- return _blocks.EditableUserBubble;
82
- }
83
- });
84
- Object.defineProperty(exports, "ElapsedRow", {
85
- enumerable: true,
86
- get: function () {
87
- return _blocks.ElapsedRow;
88
- }
89
- });
90
- Object.defineProperty(exports, "LivePill", {
91
- enumerable: true,
92
- get: function () {
93
- return _blocks.LivePill;
94
- }
95
- });
96
- Object.defineProperty(exports, "Markdown", {
97
- enumerable: true,
98
- get: function () {
99
- return _Markdown.Markdown;
100
- }
101
- });
102
- Object.defineProperty(exports, "MessageActions", {
103
- enumerable: true,
104
- get: function () {
105
- return _blocks.MessageActions;
106
- }
107
- });
108
- Object.defineProperty(exports, "MessageList", {
109
- enumerable: true,
110
- get: function () {
111
- return _MessageList.MessageList;
112
- }
113
- });
114
- Object.defineProperty(exports, "ProvenanceBadge", {
115
- enumerable: true,
116
- get: function () {
117
- return _blocks.ProvenanceBadge;
118
- }
119
- });
120
- Object.defineProperty(exports, "QueuedComposer", {
121
- enumerable: true,
122
- get: function () {
123
- return _blocks.QueuedComposer;
124
- }
125
- });
126
- Object.defineProperty(exports, "ReasoningStrip", {
127
- enumerable: true,
128
- get: function () {
129
- return _blocks.ReasoningStrip;
130
- }
131
- });
132
- Object.defineProperty(exports, "ReloadDivider", {
133
- enumerable: true,
134
- get: function () {
135
- return _blocks.ReloadDivider;
136
- }
137
- });
138
- Object.defineProperty(exports, "Timestamp", {
139
- enumerable: true,
140
- get: function () {
141
- return _blocks.Timestamp;
142
- }
143
- });
144
- Object.defineProperty(exports, "askBuoyStore", {
145
- enumerable: true,
146
- get: function () {
147
- return _askBuoyStore.askBuoyStore;
148
- }
149
- });
150
- Object.defineProperty(exports, "askBuoySyncAdapter", {
151
- enumerable: true,
152
- get: function () {
153
- return _askBuoySyncAdapter.askBuoySyncAdapter;
154
- }
155
- });
156
- Object.defineProperty(exports, "askBuoyToolPreset", {
157
- enumerable: true,
158
- get: function () {
159
- return _preset.askBuoyToolPreset;
160
- }
161
- });
162
- Object.defineProperty(exports, "createAskBuoyTool", {
163
- enumerable: true,
164
- get: function () {
165
- return _preset.createAskBuoyTool;
166
- }
167
- });
168
- Object.defineProperty(exports, "redactForWire", {
169
- enumerable: true,
170
- get: function () {
171
- return _wire.redactForWire;
172
- }
173
- });
174
- Object.defineProperty(exports, "useAskBuoy", {
175
- enumerable: true,
176
- get: function () {
177
- return _useAskBuoy.useAskBuoy;
178
- }
179
- });
180
- Object.defineProperty(exports, "useAskBuoyState", {
181
- enumerable: true,
182
- get: function () {
183
- return _useAskBuoy.useAskBuoyState;
184
- }
185
- });
186
- Object.defineProperty(exports, "useBlockHandlers", {
187
- enumerable: true,
188
- get: function () {
189
- return _blocks.useBlockHandlers;
190
- }
191
- });
192
- var _AskBuoyModal = require("./components/AskBuoyModal");
193
- var _preset = require("./preset");
194
- var _askBuoySyncAdapter = require("./sync/askBuoySyncAdapter");
195
- var _askBuoyStore = require("./store/askBuoyStore");
196
- var _useAskBuoy = require("./store/useAskBuoy");
197
- var _wire = require("./sync/wire");
198
- var _blocks = require("./blocks");
199
- var _Markdown = require("./components/Markdown");
200
- var _MessageList = require("./components/MessageList");
201
- var _AskBuoyHeader = require("./components/AskBuoyHeader");
202
- var _Composer = require("./components/Composer");
203
- var _ChangesBar = require("./components/ChangesBar");
204
- var _ApprovalCard = require("./components/ApprovalCard");
205
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ASK_BUOY_ADAPTER_VERSION",{enumerable:!0,get:function(){return _askBuoySyncAdapter.ASK_BUOY_ADAPTER_VERSION}}),Object.defineProperty(exports,"ASK_BUOY_ICON_COLOR",{enumerable:!0,get:function(){return _preset.ASK_BUOY_ICON_COLOR}}),Object.defineProperty(exports,"ApprovalCard",{enumerable:!0,get:function(){return _ApprovalCard.ApprovalCard}}),Object.defineProperty(exports,"AskBuoyHeader",{enumerable:!0,get:function(){return _AskBuoyHeader.AskBuoyHeader}}),Object.defineProperty(exports,"AskBuoyIcon",{enumerable:!0,get:function(){return _preset.AskBuoyIcon}}),Object.defineProperty(exports,"AskBuoyModal",{enumerable:!0,get:function(){return _AskBuoyModal.AskBuoyModal}}),Object.defineProperty(exports,"BlockActionRow",{enumerable:!0,get:function(){return _blocks.ActionRow}}),Object.defineProperty(exports,"BlockCard",{enumerable:!0,get:function(){return _blocks.Card}}),Object.defineProperty(exports,"BlockHandlersProvider",{enumerable:!0,get:function(){return _blocks.BlockHandlersProvider}}),Object.defineProperty(exports,"BlockRenderer",{enumerable:!0,get:function(){return _blocks.BlockRenderer}}),Object.defineProperty(exports,"ChangesBar",{enumerable:!0,get:function(){return _ChangesBar.ChangesBar}}),Object.defineProperty(exports,"Composer",{enumerable:!0,get:function(){return _Composer.Composer}}),Object.defineProperty(exports,"EditableUserBubble",{enumerable:!0,get:function(){return _blocks.EditableUserBubble}}),Object.defineProperty(exports,"ElapsedRow",{enumerable:!0,get:function(){return _blocks.ElapsedRow}}),Object.defineProperty(exports,"LivePill",{enumerable:!0,get:function(){return _blocks.LivePill}}),Object.defineProperty(exports,"Markdown",{enumerable:!0,get:function(){return _Markdown.Markdown}}),Object.defineProperty(exports,"MessageActions",{enumerable:!0,get:function(){return _blocks.MessageActions}}),Object.defineProperty(exports,"MessageList",{enumerable:!0,get:function(){return _MessageList.MessageList}}),Object.defineProperty(exports,"ProvenanceBadge",{enumerable:!0,get:function(){return _blocks.ProvenanceBadge}}),Object.defineProperty(exports,"QueuedComposer",{enumerable:!0,get:function(){return _blocks.QueuedComposer}}),Object.defineProperty(exports,"ReasoningStrip",{enumerable:!0,get:function(){return _blocks.ReasoningStrip}}),Object.defineProperty(exports,"ReloadDivider",{enumerable:!0,get:function(){return _blocks.ReloadDivider}}),Object.defineProperty(exports,"Timestamp",{enumerable:!0,get:function(){return _blocks.Timestamp}}),Object.defineProperty(exports,"askBuoyStore",{enumerable:!0,get:function(){return _askBuoyStore.askBuoyStore}}),Object.defineProperty(exports,"askBuoySyncAdapter",{enumerable:!0,get:function(){return _askBuoySyncAdapter.askBuoySyncAdapter}}),Object.defineProperty(exports,"askBuoyToolPreset",{enumerable:!0,get:function(){return _preset.askBuoyToolPreset}}),Object.defineProperty(exports,"createAskBuoyTool",{enumerable:!0,get:function(){return _preset.createAskBuoyTool}}),Object.defineProperty(exports,"redactForWire",{enumerable:!0,get:function(){return _wire.redactForWire}}),Object.defineProperty(exports,"useAskBuoy",{enumerable:!0,get:function(){return _useAskBuoy.useAskBuoy}}),Object.defineProperty(exports,"useAskBuoyState",{enumerable:!0,get:function(){return _useAskBuoy.useAskBuoyState}}),Object.defineProperty(exports,"useBlockHandlers",{enumerable:!0,get:function(){return _blocks.useBlockHandlers}});var _AskBuoyModal=require("./components/AskBuoyModal"),_preset=require("./preset"),_askBuoySyncAdapter=require("./sync/askBuoySyncAdapter"),_askBuoyStore=require("./store/askBuoyStore"),_useAskBuoy=require("./store/useAskBuoy"),_wire=require("./sync/wire"),_blocks=require("./blocks"),_Markdown=require("./components/Markdown"),_MessageList=require("./components/MessageList"),_AskBuoyHeader=require("./components/AskBuoyHeader"),_Composer=require("./components/Composer"),_ChangesBar=require("./components/ChangesBar"),_ApprovalCard=require("./components/ApprovalCard");
@@ -1,90 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "ASK_BUOY_ICON_COLOR", {
7
- enumerable: true,
8
- get: function () {
9
- return _AskBuoyIcon.ASK_BUOY_ICON_COLOR;
10
- }
11
- });
12
- Object.defineProperty(exports, "AskBuoyIcon", {
13
- enumerable: true,
14
- get: function () {
15
- return _AskBuoyIcon.AskBuoyIcon;
16
- }
17
- });
18
- exports.askBuoyToolPreset = void 0;
19
- exports.createAskBuoyTool = createAskBuoyTool;
20
- var _AskBuoyIcon = require("./components/AskBuoyIcon");
21
- var _AskBuoyModal = require("./components/AskBuoyModal");
22
- var _jsxRuntime = require("react/jsx-runtime");
23
- /**
24
- * The Ask Buoy tool preset.
25
- *
26
- * Manual chrome (`component` renders its own JsModal) rather than the
27
- * declarative `modal` config, because ToolModalShell forwards neither a footer
28
- * slot nor `initialHeight` — and a chat needs a sticky composer and more than
29
- * the default 400pt of sheet.
30
- *
31
- * The config is closed over at creation time rather than read from a store, so
32
- * the endpoint and headers come from the app's own code on every render and
33
- * there is never a copy of them sitting anywhere Buoy persists.
34
- */
35
-
36
- const askBuoyToolPreset = exports.askBuoyToolPreset = {
37
- id: "ask-buoy",
38
- name: "ASK BUOY",
39
- description: "Ask about this app in plain English",
40
- slot: "both",
41
- // Set here rather than in floating-tools-core's `toolColors` map: that map
42
- // is already missing half the shipped tools, so the web twin falls back to a
43
- // generic accent for them. A color on the preset is the one place both
44
- // native and web read.
45
- color: _AskBuoyIcon.ASK_BUOY_ICON_COLOR,
46
- icon: ({
47
- size,
48
- color
49
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_AskBuoyIcon.AskBuoyIcon, {
50
- size: size,
51
- color: color || _AskBuoyIcon.ASK_BUOY_ICON_COLOR
52
- }),
53
- component: _AskBuoyModal.AskBuoyModal
54
- };
55
-
56
- /**
57
- * `endpoint` and `model` are REQUIRED at the type level. This used to extend
58
- * Partial<AskBuoyConfig> with a cast, so a missing endpoint type-checked and
59
- * only surfaced as a runtime "not set up yet" — the wrong moment to learn it.
60
- */
61
-
62
- /**
63
- * Wire Ask Buoy to your team's AI endpoint.
64
- *
65
- * @example
66
- * createAskBuoyTool({
67
- * endpoint: "https://ai.acme.com/v1/messages",
68
- * model: "claude-sonnet-4-5",
69
- * headers: async () => ({ Authorization: `Bearer ${await auth.getToken()}` }),
70
- * context: { notes: ["user.rewards.points = loyalty points"] },
71
- * })
72
- */
73
- function createAskBuoyTool(config) {
74
- const {
75
- name,
76
- description,
77
- ...rest
78
- } = config;
79
- const resolved = rest;
80
- return {
81
- ...askBuoyToolPreset,
82
- name: name ?? askBuoyToolPreset.name,
83
- description: description ?? askBuoyToolPreset.description,
84
- component: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_AskBuoyModal.AskBuoyModal, {
85
- ...props,
86
- config: resolved
87
- })
88
- };
89
- }
90
- //# sourceMappingURL=preset.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ASK_BUOY_ICON_COLOR",{enumerable:!0,get:function(){return _AskBuoyIcon.ASK_BUOY_ICON_COLOR}}),Object.defineProperty(exports,"AskBuoyIcon",{enumerable:!0,get:function(){return _AskBuoyIcon.AskBuoyIcon}}),exports.askBuoyToolPreset=void 0,exports.createAskBuoyTool=createAskBuoyTool;var _AskBuoyIcon=require("./components/AskBuoyIcon"),_AskBuoyModal=require("./components/AskBuoyModal"),_jsxRuntime=require("react/jsx-runtime");const askBuoyToolPreset=exports.askBuoyToolPreset={id:"ask-buoy",name:"ASK BUOY",description:"Ask about this app in plain English",slot:"both",color:_AskBuoyIcon.ASK_BUOY_ICON_COLOR,icon:({size:o,color:e})=>(0,_jsxRuntime.jsx)(_AskBuoyIcon.AskBuoyIcon,{size:o,color:e||_AskBuoyIcon.ASK_BUOY_ICON_COLOR}),component:_AskBuoyModal.AskBuoyModal};function createAskBuoyTool(o){const{name:e,description:s,...n}=o,t=n;return{...askBuoyToolPreset,name:e??askBuoyToolPreset.name,description:s??askBuoyToolPreset.description,component:o=>(0,_jsxRuntime.jsx)(_AskBuoyModal.AskBuoyModal,{...o,config:t})}}
@@ -1,279 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.askBuoyStore = void 0;
7
- /**
8
- * Conversation state for the sheet.
9
- *
10
- * A module-level store rather than component state for two reasons: the sheet
11
- * is unmounted whenever the tool is closed or minimised (and a conversation
12
- * that vanished because someone tapped away would be maddening), and the sync
13
- * adapter needs to read the same transcript to show it on the desktop.
14
- *
15
- * Deliberately NOT persisted. A transcript can contain anything the agent read
16
- * — storage values, response bodies, a customer's record — and writing that to
17
- * disk under a Buoy key would put it in the Storage tool and, from there, on
18
- * the unauthenticated broker wire. It lives for the session and no longer.
19
- */
20
-
21
- /** A block in a message, and (for receipts) the tool call that produced it. */
22
-
23
- let seq = 0;
24
- const nextId = () => `m${++seq}`;
25
- let state = {
26
- messages: [],
27
- busy: false,
28
- pending: null,
29
- notice: null,
30
- configured: false,
31
- answers: {},
32
- awaitingBlockId: null,
33
- actionState: {},
34
- queued: null,
35
- usage: {
36
- input: 0,
37
- output: 0,
38
- requests: 0
39
- }
40
- };
41
- const listeners = new Set();
42
- let ledgerRef = null;
43
-
44
- /**
45
- * The session outlives the sheet the same way the transcript does. Session and
46
- * ledger used to be per-mount: closing and reopening the tool kept the visible
47
- * conversation but silently swapped in an empty ledger and a blank model
48
- * memory — the undo bar vanished while the agent's changes stayed live in the
49
- * app. Held here, keyed by a config signature so a real reconfiguration
50
- * (different endpoint/model/tool set) still rebuilds.
51
- */
52
- let heldSession = null;
53
- function set(next) {
54
- state = {
55
- ...state,
56
- ...next
57
- };
58
- for (const fn of listeners) {
59
- try {
60
- fn();
61
- } catch {
62
- // A throwing subscriber must not take the transcript down mid-answer.
63
- }
64
- }
65
- }
66
- const askBuoyStore = exports.askBuoyStore = {
67
- getState: () => state,
68
- subscribe(fn) {
69
- listeners.add(fn);
70
- return () => listeners.delete(fn);
71
- },
72
- setLedger(ledger) {
73
- ledgerRef = ledger;
74
- },
75
- getLedger() {
76
- return ledgerRef;
77
- },
78
- holdSession(session, signature) {
79
- heldSession = {
80
- session,
81
- signature
82
- };
83
- },
84
- getHeldSession() {
85
- return heldSession;
86
- },
87
- setNotice(notice) {
88
- set({
89
- notice
90
- });
91
- },
92
- setConfigured(configured) {
93
- if (configured !== state.configured) set({
94
- configured
95
- });
96
- },
97
- addUser(text) {
98
- set({
99
- messages: [...state.messages, {
100
- id: nextId(),
101
- role: "user",
102
- text,
103
- toolCalls: [],
104
- blocks: []
105
- }],
106
- busy: true
107
- });
108
- },
109
- /** Mark a turn as running without adding a bubble — the retry path. */
110
- beginTurn() {
111
- set({
112
- busy: true
113
- });
114
- },
115
- /** Park a message typed mid-turn instead of silently dropping it. */
116
- setQueued(text) {
117
- set({
118
- queued: text
119
- });
120
- },
121
- /** Drop one message — the failed assistant bubble a retry replaces. */
122
- removeMessage(id) {
123
- set({
124
- messages: state.messages.filter(m => m.id !== id)
125
- });
126
- },
127
- /** The user answered (or skipped) an Ask block. */
128
- recordAnswer(answer) {
129
- set({
130
- answers: {
131
- ...state.answers,
132
- [answer.blockId]: answer
133
- },
134
- awaitingBlockId: state.awaitingBlockId === answer.blockId ? null : state.awaitingBlockId
135
- });
136
- },
137
- setActionState(key, value) {
138
- const next = {
139
- ...state.actionState
140
- };
141
- if (value === null) delete next[key];else next[key] = value;
142
- set({
143
- actionState: next
144
- });
145
- },
146
- /** Open a new assistant bubble for the turn that is about to stream. */
147
- startAssistant() {
148
- const id = nextId();
149
- set({
150
- messages: [...state.messages, {
151
- id,
152
- role: "assistant",
153
- text: "",
154
- toolCalls: [],
155
- blocks: [],
156
- streaming: true
157
- }]
158
- });
159
- return id;
160
- },
161
- /**
162
- * Fold one engine event into the open assistant message.
163
- *
164
- * Tool calls render as rows inside the bubble rather than as raw payloads:
165
- * the label is already domain-flavoured ("Set points to 1500"), which is the
166
- * only form a non-developer can actually check.
167
- */
168
- applyEvent(messageId, ev) {
169
- const messages = state.messages.map(m => {
170
- if (m.id !== messageId) return m;
171
- switch (ev.type) {
172
- case "text":
173
- return {
174
- ...m,
175
- text: m.breakBeforeNextText && m.text ? `${m.text.trimEnd()}\n\n${ev.delta}` : m.text + ev.delta,
176
- breakBeforeNextText: false
177
- };
178
- case "tool-start":
179
- return {
180
- ...m,
181
- toolCalls: [...m.toolCalls, {
182
- id: ev.id,
183
- toolId: ev.toolId,
184
- action: ev.action,
185
- label: ev.label,
186
- description: ev.description,
187
- status: "running"
188
- }]
189
- };
190
- case "tool-end":
191
- return {
192
- ...m,
193
- breakBeforeNextText: true,
194
- toolCalls: m.toolCalls.map(c => c.id === ev.id ? {
195
- ...c,
196
- status: !ev.ok && ev.summary === "refused" ? "refused" : ev.ok ? "ok" : "failed",
197
- summary: ev.summary
198
- } : c)
199
- };
200
- case "block":
201
- return {
202
- ...m,
203
- breakBeforeNextText: true,
204
- blocks: [...m.blocks, {
205
- block: ev.block,
206
- forToolCallId: ev.forToolCallId
207
- }]
208
- };
209
- case "error":
210
- return {
211
- ...m,
212
- error: ev.message
213
- };
214
- default:
215
- return m;
216
- }
217
- });
218
- set({
219
- messages,
220
- ...(ev.type === "awaiting-user" ? {
221
- awaitingBlockId: ev.blockId
222
- } : {}),
223
- ...(ev.type === "usage" ? {
224
- usage: {
225
- input: state.usage.input + ev.input,
226
- output: state.usage.output + ev.output,
227
- requests: state.usage.requests + 1
228
- }
229
- } : {})
230
- });
231
- },
232
- finishAssistant(messageId) {
233
- set({
234
- messages: state.messages.map(m => m.id === messageId ? {
235
- ...m,
236
- streaming: false
237
- } : m),
238
- busy: false
239
- });
240
- },
241
- askApproval(input) {
242
- return new Promise(resolve => {
243
- set({
244
- pending: {
245
- ...input,
246
- resolve
247
- }
248
- });
249
- });
250
- },
251
- answerApproval(approved) {
252
- const pending = state.pending;
253
- set({
254
- pending: null
255
- });
256
- pending?.resolve(approved);
257
- },
258
- reset() {
259
- // Reject anything still waiting, or the turn hangs forever on a promise
260
- // whose only resolver just left the screen.
261
- state.pending?.resolve(false);
262
- set({
263
- messages: [],
264
- busy: false,
265
- pending: null,
266
- notice: null,
267
- answers: {},
268
- awaitingBlockId: null,
269
- actionState: {},
270
- queued: null,
271
- usage: {
272
- input: 0,
273
- output: 0,
274
- requests: 0
275
- }
276
- });
277
- }
278
- };
279
- //# sourceMappingURL=askBuoyStore.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.askBuoyStore=void 0;let seq=0;const nextId=()=>"m"+ ++seq;let state={messages:[],busy:!1,pending:null,notice:null,configured:!1,answers:{},awaitingBlockId:null,actionState:{},queued:null,usage:{input:0,output:0,requests:0}};const listeners=new Set;let ledgerRef=null,heldSession=null;function set(e){state={...state,...e};for(const e of listeners)try{e()}catch{}}const askBuoyStore=exports.askBuoyStore={getState:()=>state,subscribe:e=>(listeners.add(e),()=>listeners.delete(e)),setLedger(e){ledgerRef=e},getLedger:()=>ledgerRef,holdSession(e,t){heldSession={session:e,signature:t}},getHeldSession:()=>heldSession,setNotice(e){set({notice:e})},setConfigured(e){e!==state.configured&&set({configured:e})},addUser(e){set({messages:[...state.messages,{id:nextId(),role:"user",text:e,toolCalls:[],blocks:[]}],busy:!0})},beginTurn(){set({busy:!0})},setQueued(e){set({queued:e})},removeMessage(e){set({messages:state.messages.filter(t=>t.id!==e)})},recordAnswer(e){set({answers:{...state.answers,[e.blockId]:e},awaitingBlockId:state.awaitingBlockId===e.blockId?null:state.awaitingBlockId})},setActionState(e,t){const s={...state.actionState};null===t?delete s[e]:s[e]=t,set({actionState:s})},startAssistant(){const e=nextId();return set({messages:[...state.messages,{id:e,role:"assistant",text:"",toolCalls:[],blocks:[],streaming:!0}]}),e},applyEvent(e,t){set({messages:state.messages.map(s=>{if(s.id!==e)return s;switch(t.type){case"text":return{...s,text:s.breakBeforeNextText&&s.text?`${s.text.trimEnd()}\n\n${t.delta}`:s.text+t.delta,breakBeforeNextText:!1};case"tool-start":return{...s,toolCalls:[...s.toolCalls,{id:t.id,toolId:t.toolId,action:t.action,label:t.label,description:t.description,status:"running"}]};case"tool-end":return{...s,breakBeforeNextText:!0,toolCalls:s.toolCalls.map(e=>e.id===t.id?{...e,status:t.ok||"refused"!==t.summary?t.ok?"ok":"failed":"refused",summary:t.summary}:e)};case"block":return{...s,breakBeforeNextText:!0,blocks:[...s.blocks,{block:t.block,forToolCallId:t.forToolCallId}]};case"error":return{...s,error:t.message};default:return s}}),..."awaiting-user"===t.type?{awaitingBlockId:t.blockId}:{},..."usage"===t.type?{usage:{input:state.usage.input+t.input,output:state.usage.output+t.output,requests:state.usage.requests+1}}:{}})},finishAssistant(e){set({messages:state.messages.map(t=>t.id===e?{...t,streaming:!1}:t),busy:!1})},askApproval:e=>new Promise(t=>{set({pending:{...e,resolve:t}})}),answerApproval(e){const t=state.pending;set({pending:null}),t?.resolve(e)},reset(){state.pending?.resolve(!1),set({messages:[],busy:!1,pending:null,notice:null,answers:{},awaitingBlockId:null,actionState:{},queued:null,usage:{input:0,output:0,requests:0}})}};