@lostgradient/cinder 0.8.0 → 0.9.0

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 (271) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +2 -2
  3. package/components.json +59 -15
  4. package/dist/components/_internal/command-list-context.d.ts +3 -3
  5. package/dist/components/_internal/create-command-list-state.svelte.d.ts +11 -11
  6. package/dist/components/access-gate/index.js +201 -126
  7. package/dist/components/approval-card/approval-card-actions.svelte.d.ts +16 -0
  8. package/dist/components/approval-card/approval-card-state.d.ts +65 -0
  9. package/dist/components/approval-card/approval-card.css +269 -92
  10. package/dist/components/approval-card/approval-card.schema.js +10 -31
  11. package/dist/components/approval-card/approval-card.svelte.d.ts +3 -3
  12. package/dist/components/approval-card/approval-card.types.d.ts +14 -28
  13. package/dist/components/approval-card/index.d.ts +1 -1
  14. package/dist/components/approval-card/index.js +4268 -2884
  15. package/dist/components/card/card.css +5 -0
  16. package/dist/components/card/card.schema.js +2 -2
  17. package/dist/components/card/card.types.d.ts +2 -2
  18. package/dist/components/card/index.js +2 -1
  19. package/dist/components/chat/chat.schema.js +44 -2
  20. package/dist/components/chat/chat.svelte.d.ts +4 -2
  21. package/dist/components/chat/chat.types.d.ts +34 -3
  22. package/dist/components/chat/container/chat.svelte.d.ts +4 -2
  23. package/dist/components/chat/index.d.ts +3 -3
  24. package/dist/components/chat/index.js +2485 -6279
  25. package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
  26. package/dist/components/chat/input/chat-input.svelte.d.ts +22 -1
  27. package/dist/components/chat/input/index.d.ts +1 -0
  28. package/dist/components/chat-composer-popover/chat-composer-popover-filter.d.ts +11 -0
  29. package/dist/components/chat-composer-popover/chat-composer-popover.css +7 -0
  30. package/dist/components/chat-composer-popover/chat-composer-popover.css.d.ts +1 -0
  31. package/dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts +3 -0
  32. package/dist/components/chat-composer-popover/chat-composer-popover.schema.js +150 -0
  33. package/dist/components/chat-composer-popover/chat-composer-popover.svelte.d.ts +46 -0
  34. package/dist/components/chat-composer-popover/chat-composer-popover.types.d.ts +77 -0
  35. package/dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts +2 -0
  36. package/dist/components/chat-composer-popover/chat-composer-popover.variables.js +61 -0
  37. package/dist/components/chat-composer-popover/index.d.ts +6 -0
  38. package/dist/components/chat-composer-popover/index.js +3285 -0
  39. package/dist/components/chat-conversation-header/index.js +1627 -5600
  40. package/dist/components/chat-conversation-list/index.js +15 -3988
  41. package/dist/components/code-block/code-block.schema.js +5 -1
  42. package/dist/components/code-block/code-block.types.d.ts +6 -0
  43. package/dist/components/code-block/index.js +4 -4
  44. package/dist/components/command-item/index.js +7 -6
  45. package/dist/components/command-menu/command-menu.schema.js +5 -1
  46. package/dist/components/command-menu/command-menu.types.d.ts +2 -0
  47. package/dist/components/command-menu/index.js +48 -19
  48. package/dist/components/command-palette/index.js +40 -14
  49. package/dist/components/event-stream-viewer/index.js +44 -44
  50. package/dist/components/experimental/json-viewer/index.js +44 -44
  51. package/dist/components/json-schema-editor/index.js +5 -2
  52. package/dist/components/json-viewer/index.js +44 -44
  53. package/dist/components/json-viewer/json-viewer.css +10 -6
  54. package/dist/components/payload-inspector/index.d.ts +1 -1
  55. package/dist/components/payload-inspector/index.js +306 -1422
  56. package/dist/components/payload-inspector/payload-inspector.css +15 -75
  57. package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
  58. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
  59. package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
  60. package/dist/components/tab/index.js +5 -2
  61. package/dist/components/tab/tab.schema.js +7 -3
  62. package/dist/components/tab/tab.svelte.d.ts +2 -1
  63. package/dist/components/tab/tab.types.d.ts +8 -2
  64. package/dist/components/tabs/index.js +5 -2
  65. package/dist/components/team-section/index.js +2 -1
  66. package/dist/components/testimonial-section/index.js +2 -1
  67. package/dist/index.d.ts +4 -2
  68. package/dist/index.js +23711 -27432
  69. package/dist/server/components/access-gate/index.js +2 -1
  70. package/dist/server/components/accordion/index.js +2 -2
  71. package/dist/server/components/alert-dialog/index.js +2 -2
  72. package/dist/server/components/approval-card/index.js +15 -19
  73. package/dist/server/components/autocomplete/index.js +7 -7
  74. package/dist/server/components/avatar-group/index.js +5 -5
  75. package/dist/server/components/button-group/index.js +3 -5
  76. package/dist/server/components/card/index.js +2 -2
  77. package/dist/server/components/chat/index.js +14 -11
  78. package/dist/server/components/chat-composer-popover/index.js +26 -0
  79. package/dist/server/components/chat-conversation-header/index.js +9 -10
  80. package/dist/server/components/chat-conversation-list/index.js +4 -5
  81. package/dist/server/components/checkbox/index.js +3 -3
  82. package/dist/server/components/choice-grid/index.js +2 -2
  83. package/dist/server/components/code-block/index.js +2 -2
  84. package/dist/server/components/color-field/index.js +3 -3
  85. package/dist/server/components/combobox/index.js +6 -6
  86. package/dist/server/components/command-item/index.js +5 -3
  87. package/dist/server/components/command-menu/index.js +6 -4
  88. package/dist/server/components/command-palette/index.js +2 -2
  89. package/dist/server/components/confirm-dialog/index.js +2 -2
  90. package/dist/server/components/context-menu/index.js +5 -5
  91. package/dist/server/components/data-table/index.js +5 -5
  92. package/dist/server/components/date-picker/index.js +6 -6
  93. package/dist/server/components/date-range-field/index.js +7 -7
  94. package/dist/server/components/description-list/index.js +3 -5
  95. package/dist/server/components/diff-viewer/index.js +7 -7
  96. package/dist/server/components/drawer/index.js +3 -3
  97. package/dist/server/components/dropdown/index.js +4 -4
  98. package/dist/server/components/event-stream-viewer/index.js +2 -2
  99. package/dist/server/components/experimental/json-viewer/index.js +2 -2
  100. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  101. package/dist/server/components/hover-card/index.js +1 -1
  102. package/dist/server/components/input/index.js +3 -3
  103. package/dist/server/components/json-schema-editor/index.js +22 -22
  104. package/dist/server/components/json-viewer/index.js +2 -2
  105. package/dist/server/components/markdown-editor/index.js +13 -13
  106. package/dist/server/components/modal/index.js +1 -1
  107. package/dist/server/components/multi-select/index.js +1 -1
  108. package/dist/server/components/newsletter-section/index.js +3 -3
  109. package/dist/server/components/payload-inspector/index.js +4 -16
  110. package/dist/server/components/popover/index.js +5 -5
  111. package/dist/server/components/review-editor/index.js +25 -25
  112. package/dist/server/components/run-step-timeline/index.js +2 -2
  113. package/dist/server/components/schema-form/index.js +4 -4
  114. package/dist/server/components/secret-value-field/index.js +3 -5
  115. package/dist/server/components/segment/index.js +3 -3
  116. package/dist/server/components/segmented-control/index.js +4 -4
  117. package/dist/server/components/selection-popover/index.js +4 -4
  118. package/dist/server/components/sheet/index.js +2 -2
  119. package/dist/server/components/sidebar/index.js +3 -3
  120. package/dist/server/components/tab/index.js +2 -2
  121. package/dist/server/components/table/index.js +3 -3
  122. package/dist/server/components/tabs/index.js +4 -4
  123. package/dist/server/components/tag-input/index.js +3 -3
  124. package/dist/server/components/team-section/index.js +8 -8
  125. package/dist/server/components/testimonial-section/index.js +2 -2
  126. package/dist/server/components/toggle/index.js +2 -2
  127. package/dist/server/components/tooltip/index.js +1 -1
  128. package/dist/server/index.js +159 -148
  129. package/dist/server/{index.server-cbtg8rq5.js → index.server-0atyznp7.js} +5 -5
  130. package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
  131. package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
  132. package/dist/server/{index.server-jync915v.js → index.server-2dga5yzr.js} +25 -25
  133. package/dist/server/index.server-2hqrv7ca.js +9 -0
  134. package/dist/server/{index.server-69epaape.js → index.server-2qj6s2mh.js} +1 -1
  135. package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
  136. package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
  137. package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
  138. package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
  139. package/dist/server/index.server-67qgdypc.js +9 -0
  140. package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
  141. package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
  142. package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
  143. package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
  144. package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
  145. package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
  146. package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
  147. package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
  148. package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
  149. package/dist/server/{index.server-j3ddzcaa.js → index.server-c6pe4kaf.js} +6 -6
  150. package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
  151. package/dist/server/{index.server-qfa2rxzx.js → index.server-dg83ke3k.js} +3 -5
  152. package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
  153. package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
  154. package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
  155. package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
  156. package/dist/server/{index.server-ejyf7e48.js → index.server-fy068yne.js} +1 -1
  157. package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
  158. package/dist/server/index.server-gkazv439.js +576 -0
  159. package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
  160. package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
  161. package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
  162. package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
  163. package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
  164. package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
  165. package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
  166. package/dist/server/{index.server-mehav5vs.js → index.server-jxg42jpz.js} +4 -4
  167. package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
  168. package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
  169. package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
  170. package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
  171. package/dist/server/index.server-m0ezemav.js +170 -0
  172. package/dist/server/index.server-m191rm44.js +79 -0
  173. package/dist/server/{index.server-f23vtaw4.js → index.server-marjz8ps.js} +6 -6
  174. package/dist/server/index.server-mqt1ngqw.js +250 -0
  175. package/dist/server/{index.server-s9khh4ry.js → index.server-mzzb7dnm.js} +3 -5
  176. package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
  177. package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
  178. package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
  179. package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
  180. package/dist/server/{index.server-gxf0d1p5.js → index.server-q7w4jw89.js} +2 -2
  181. package/dist/server/{index.server-v4zabrsx.js → index.server-qh9qzd5t.js} +163 -25
  182. package/dist/server/{index.server-pxg74pyp.js → index.server-qk1h0n02.js} +4 -4
  183. package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
  184. package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
  185. package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
  186. package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
  187. package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
  188. package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
  189. package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
  190. package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
  191. package/dist/server/index.server-xtjjmsyq.js +315 -0
  192. package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
  193. package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
  194. package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
  195. package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
  196. package/dist/server/{index.server-atjc1qcq.js → index.server-yz4k36cw.js} +1 -1
  197. package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
  198. package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
  199. package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
  200. package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
  201. package/package.json +40 -6
  202. package/src/components/_internal/command-list-context.ts +3 -3
  203. package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
  204. package/src/components/approval-card/approval-card-actions.svelte +168 -0
  205. package/src/components/approval-card/approval-card-state.ts +152 -1
  206. package/src/components/approval-card/approval-card.css +269 -92
  207. package/src/components/approval-card/approval-card.examples.json +3 -3
  208. package/src/components/approval-card/approval-card.schema.json +9 -30
  209. package/src/components/approval-card/approval-card.schema.ts +13 -31
  210. package/src/components/approval-card/approval-card.svelte +176 -470
  211. package/src/components/approval-card/approval-card.types.ts +15 -28
  212. package/src/components/approval-card/index.ts +1 -0
  213. package/src/components/card/card.css +5 -0
  214. package/src/components/card/card.schema.json +1 -1
  215. package/src/components/card/card.schema.ts +1 -1
  216. package/src/components/card/card.svelte +1 -0
  217. package/src/components/card/card.types.ts +2 -2
  218. package/src/components/chat/chat.schema.json +36 -1
  219. package/src/components/chat/chat.schema.ts +44 -1
  220. package/src/components/chat/chat.svelte +12 -0
  221. package/src/components/chat/chat.types.ts +35 -3
  222. package/src/components/chat/container/chat.svelte +73 -3
  223. package/src/components/chat/index.ts +15 -3
  224. package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
  225. package/src/components/chat/input/chat-input.svelte +22 -5
  226. package/src/components/chat/input/index.ts +5 -0
  227. package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
  228. package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
  229. package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
  230. package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
  231. package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
  232. package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
  233. package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
  234. package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
  235. package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
  236. package/src/components/chat-composer-popover/index.ts +19 -0
  237. package/src/components/code-block/code-block.schema.json +4 -0
  238. package/src/components/code-block/code-block.schema.ts +5 -0
  239. package/src/components/code-block/code-block.svelte +3 -3
  240. package/src/components/code-block/code-block.types.ts +6 -0
  241. package/src/components/command-item/command-item.svelte +7 -6
  242. package/src/components/command-menu/command-menu.schema.json +4 -0
  243. package/src/components/command-menu/command-menu.schema.ts +4 -0
  244. package/src/components/command-menu/command-menu.svelte +16 -5
  245. package/src/components/command-menu/command-menu.types.ts +2 -0
  246. package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
  247. package/src/components/json-viewer/json-viewer.css +10 -6
  248. package/src/components/payload-inspector/index.ts +0 -2
  249. package/src/components/payload-inspector/payload-inspector.css +15 -75
  250. package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
  251. package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
  252. package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
  253. package/src/components/payload-inspector/payload-inspector.svelte +46 -239
  254. package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
  255. package/src/components/tab/tab.schema.json +6 -2
  256. package/src/components/tab/tab.schema.ts +8 -2
  257. package/src/components/tab/tab.svelte +9 -5
  258. package/src/components/tab/tab.types.ts +8 -2
  259. package/src/index.ts +18 -5
  260. package/src/styles/components.css +1 -0
  261. package/dist/server/index-49we2xfs.js +0 -344
  262. package/dist/server/index-8fhvxk30.js +0 -265
  263. package/dist/server/index-x2ysg8ds.js +0 -388
  264. package/dist/server/index.server-20j0jh30.js +0 -9
  265. package/dist/server/index.server-dc35kh7d.js +0 -1835
  266. package/dist/server/index.server-kd4b0342.js +0 -607
  267. package/dist/server/index.server-n5cdmsz4.js +0 -30
  268. package/dist/server/index.server-rjap4k7y.js +0 -1389
  269. package/dist/server/index.server-vt6sn9y4.js +0 -447
  270. package/dist/server/index.server-w63n618v.js +0 -9
  271. package/dist/server/index.server-y2pa1k46.js +0 -9
@@ -1,344 +0,0 @@
1
- import {
2
- isCanonicalToolResultPayload,
3
- toJSONValue
4
- } from "./index.server-n5cdmsz4.js";
5
- import {
6
- appendMessages,
7
- assertConversationSafe,
8
- createConversationHistory,
9
- getOrderedMessages,
10
- isStreamingMessage
11
- } from "./index.server-rjap4k7y.js";
12
- import"./index.server-0v6na3yp.js";
13
-
14
- // ../../node_modules/conversationalist/dist/adapters/gemini/index.js
15
- var DEFAULT_FILE_MIME_TYPE = "application/octet-stream";
16
- var MIME_TYPE_BY_EXTENSION = {
17
- bmp: "image/bmp",
18
- gif: "image/gif",
19
- heic: "image/heic",
20
- heif: "image/heif",
21
- jpeg: "image/jpeg",
22
- jpg: "image/jpeg",
23
- png: "image/png",
24
- svg: "image/svg+xml",
25
- webp: "image/webp"
26
- };
27
- function inferMimeType(url) {
28
- const trimmed = url.split("#")[0]?.split("?")[0] ?? "";
29
- const dotIndex = trimmed.lastIndexOf(".");
30
- if (dotIndex === -1)
31
- return;
32
- return MIME_TYPE_BY_EXTENSION[trimmed.slice(dotIndex + 1).toLowerCase()];
33
- }
34
- function resolveMimeType(url, explicit) {
35
- return explicit ?? inferMimeType(url) ?? DEFAULT_FILE_MIME_TYPE;
36
- }
37
- function normalizeGeminiResponse(toolResult) {
38
- if (toolResult.outcome === "success") {
39
- if (toolResult.content !== null && typeof toolResult.content === "object")
40
- return toolResult.content;
41
- return { result: toolResult.content };
42
- }
43
- return {
44
- outcome: toolResult.outcome,
45
- content: toolResult.content,
46
- ...toolResult.error ? { error: toolResult.error } : {},
47
- ...toolResult.action ? { action: toolResult.action } : {}
48
- };
49
- }
50
- function toGeminiParts(content) {
51
- if (typeof content === "string")
52
- return content ? [{ text: content }] : [];
53
- const parts = [];
54
- for (const part of content)
55
- if (part.type === "text") {
56
- if (part.text)
57
- parts.push({ text: part.text });
58
- } else if (part.type === "image") {
59
- const url = part.url ?? "";
60
- if (url.startsWith("data:")) {
61
- const matches = url.match(/^data:([^;]+);base64,(.+)$/);
62
- if (matches)
63
- parts.push({ inlineData: {
64
- mimeType: matches[1],
65
- data: matches[2]
66
- } });
67
- } else {
68
- const fileData = {
69
- fileUri: url,
70
- mimeType: resolveMimeType(url, part.mimeType)
71
- };
72
- parts.push({ fileData });
73
- }
74
- }
75
- return parts;
76
- }
77
- function toFunctionCallPart(toolCall) {
78
- let args;
79
- if (typeof toolCall.arguments === "string")
80
- try {
81
- const parsed = JSON.parse(toolCall.arguments);
82
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed))
83
- args = parsed;
84
- else
85
- args = { _value: parsed };
86
- } catch {
87
- args = { _raw: toolCall.arguments };
88
- }
89
- else if (toolCall.arguments && typeof toolCall.arguments === "object" && !Array.isArray(toolCall.arguments))
90
- args = toolCall.arguments;
91
- else
92
- args = { _value: toolCall.arguments };
93
- return { functionCall: {
94
- name: toolCall.name,
95
- args
96
- } };
97
- }
98
- function toFunctionResponsePart(toolResult, functionName) {
99
- return { functionResponse: {
100
- name: functionName,
101
- response: normalizeGeminiResponse(toolResult)
102
- } };
103
- }
104
- function extractSystemInstruction(messages) {
105
- const systemMessages = messages.filter((m) => (m.role === "system" || m.role === "developer") && !m.hidden && !isStreamingMessage(m));
106
- if (systemMessages.length === 0)
107
- return;
108
- const parts = [];
109
- for (const msg of systemMessages)
110
- parts.push(...toGeminiParts(msg.content));
111
- if (parts.length === 0)
112
- return;
113
- return {
114
- role: "user",
115
- parts
116
- };
117
- }
118
- function toGeminiMessages(conversation) {
119
- assertConversationSafe(conversation);
120
- const ordered = getOrderedMessages(conversation);
121
- const systemInstruction = extractSystemInstruction(ordered);
122
- const toolCallNames = /* @__PURE__ */ new Map;
123
- for (const message of ordered)
124
- if (message.role === "tool-call" && message.toolCall)
125
- toolCallNames.set(message.toolCall.id, message.toolCall.name);
126
- const contents = [];
127
- let currentRole = null;
128
- let currentParts = [];
129
- const flushCurrent = () => {
130
- if (currentRole && currentParts.length > 0) {
131
- contents.push({
132
- role: currentRole,
133
- parts: currentParts
134
- });
135
- currentParts = [];
136
- }
137
- currentRole = null;
138
- };
139
- for (const message of ordered) {
140
- if (message.hidden)
141
- continue;
142
- if (isStreamingMessage(message))
143
- continue;
144
- if (message.role === "system" || message.role === "developer")
145
- continue;
146
- if (message.role === "snapshot")
147
- continue;
148
- let targetRole;
149
- let parts;
150
- if (message.role === "user") {
151
- targetRole = "user";
152
- parts = toGeminiParts(message.content);
153
- } else if (message.role === "assistant") {
154
- targetRole = "model";
155
- parts = toGeminiParts(message.content);
156
- } else if (message.role === "tool-call" && message.toolCall) {
157
- targetRole = "model";
158
- parts = [toFunctionCallPart(message.toolCall)];
159
- } else if (message.role === "tool-result" && message.toolResult) {
160
- targetRole = "user";
161
- const functionName = toolCallNames.get(message.toolResult.callId) ?? "unknown";
162
- parts = [toFunctionResponsePart(message.toolResult, functionName)];
163
- } else
164
- continue;
165
- if (parts.length === 0)
166
- continue;
167
- if (currentRole === targetRole)
168
- currentParts.push(...parts);
169
- else {
170
- flushCurrent();
171
- currentRole = targetRole;
172
- currentParts = parts;
173
- }
174
- }
175
- flushCurrent();
176
- const result = { contents };
177
- if (systemInstruction !== undefined)
178
- result.systemInstruction = systemInstruction;
179
- return result;
180
- }
181
- function parseFunctionArguments(args) {
182
- if (Object.keys(args).length === 1 && Object.hasOwn(args, "_value"))
183
- return toJSONValue(args["_value"]);
184
- if (Object.keys(args).length === 1 && Object.hasOwn(args, "_raw") && typeof args["_raw"] === "string")
185
- return args["_raw"];
186
- return toJSONValue(args);
187
- }
188
- function parseFunctionResponse(callId, response) {
189
- const value = toJSONValue(response);
190
- if (isCanonicalToolResultPayload(value))
191
- return {
192
- callId,
193
- outcome: value.outcome,
194
- content: value.content,
195
- ...value.error ? { error: value.error } : {},
196
- ...value.action ? { action: value.action } : {},
197
- ...typeof value.inputDigest === "string" ? { inputDigest: value.inputDigest } : {},
198
- ...typeof value.outputDigest === "string" ? { outputDigest: value.outputDigest } : {}
199
- };
200
- if (value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length === 1 && Object.hasOwn(value, "result"))
201
- return {
202
- callId,
203
- outcome: "success",
204
- content: toJSONValue(value.result)
205
- };
206
- return {
207
- callId,
208
- outcome: "success",
209
- content: value
210
- };
211
- }
212
- function toContentFromGeminiPart(part) {
213
- if ("text" in part)
214
- return part.text;
215
- if ("inlineData" in part)
216
- return [{
217
- type: "image",
218
- url: `data:${part.inlineData.mimeType};base64,${part.inlineData.data}`,
219
- mimeType: part.inlineData.mimeType
220
- }];
221
- return [{
222
- type: "image",
223
- url: part.fileData.fileUri,
224
- mimeType: part.fileData.mimeType
225
- }];
226
- }
227
- function toSystemInstructionContent(parts) {
228
- const contentParts = [];
229
- for (const part of parts)
230
- if ("text" in part)
231
- contentParts.push({
232
- type: "text",
233
- text: part.text
234
- });
235
- else if ("inlineData" in part)
236
- contentParts.push({
237
- type: "image",
238
- url: `data:${part.inlineData.mimeType};base64,${part.inlineData.data}`,
239
- mimeType: part.inlineData.mimeType
240
- });
241
- else if ("fileData" in part)
242
- contentParts.push({
243
- type: "image",
244
- url: part.fileData.fileUri,
245
- mimeType: part.fileData.mimeType
246
- });
247
- if (contentParts.length === 0)
248
- return;
249
- if (contentParts.length === 1 && contentParts[0]?.type === "text")
250
- return contentParts[0].text ?? "";
251
- return contentParts;
252
- }
253
- function toMessageInputs(payload) {
254
- const inputs = [];
255
- let syntheticToolCallCount = 0;
256
- const pendingToolCalls = /* @__PURE__ */ new Map;
257
- const queueToolCall = (name, callId) => {
258
- const queued = pendingToolCalls.get(name) ?? [];
259
- queued.push(callId);
260
- pendingToolCalls.set(name, queued);
261
- };
262
- const dequeueToolCall = (name) => {
263
- const queued = pendingToolCalls.get(name);
264
- if (!queued || queued.length === 0)
265
- return;
266
- const [callId, ...rest] = queued;
267
- if (rest.length === 0)
268
- pendingToolCalls.delete(name);
269
- else
270
- pendingToolCalls.set(name, rest);
271
- return callId;
272
- };
273
- const systemContent = payload.systemInstruction ? toSystemInstructionContent(payload.systemInstruction.parts) : undefined;
274
- if (systemContent !== undefined)
275
- inputs.push({
276
- role: "system",
277
- content: systemContent
278
- });
279
- for (const content of payload.contents) {
280
- const role = content.role === "model" ? "assistant" : "user";
281
- for (const part of content.parts) {
282
- if ("functionCall" in part) {
283
- const callId = `gemini-call-${++syntheticToolCallCount}`;
284
- queueToolCall(part.functionCall.name, callId);
285
- inputs.push({
286
- role: "tool-call",
287
- content: "",
288
- toolCall: {
289
- id: callId,
290
- name: part.functionCall.name,
291
- arguments: parseFunctionArguments(part.functionCall.args)
292
- }
293
- });
294
- continue;
295
- }
296
- if ("functionResponse" in part) {
297
- const callId = dequeueToolCall(part.functionResponse.name) ?? `gemini-call-${++syntheticToolCallCount}`;
298
- inputs.push({
299
- role: "tool-result",
300
- content: "",
301
- toolResult: parseFunctionResponse(callId, part.functionResponse.response)
302
- });
303
- continue;
304
- }
305
- inputs.push({
306
- role,
307
- content: toContentFromGeminiPart(part)
308
- });
309
- }
310
- }
311
- return inputs;
312
- }
313
- function fromGeminiMessages(payload) {
314
- let conversation = createConversationHistory();
315
- const inputs = toMessageInputs(payload);
316
- if (inputs.length > 0)
317
- conversation = appendMessages(conversation, ...inputs);
318
- return conversation;
319
- }
320
- function appendGeminiMessages(conversation, payload) {
321
- const inputs = toMessageInputs(payload);
322
- if (inputs.length === 0)
323
- return conversation;
324
- return appendMessages(conversation, ...inputs);
325
- }
326
- var geminiConversationAdapter = {
327
- export(conversation) {
328
- return toGeminiMessages(conversation);
329
- },
330
- import(payload) {
331
- return fromGeminiMessages(payload);
332
- },
333
- append(conversation, payload) {
334
- return appendGeminiMessages(conversation, payload);
335
- }
336
- };
337
- export {
338
- toGeminiMessages,
339
- geminiConversationAdapter,
340
- fromGeminiMessages,
341
- appendGeminiMessages
342
- };
343
-
344
- //# debugId=A9243EAE4BC9430164756E2164756E21
@@ -1,265 +0,0 @@
1
- import {
2
- isCanonicalToolResultPayload,
3
- parseJSONValue
4
- } from "./index.server-n5cdmsz4.js";
5
- import {
6
- appendMessages,
7
- assertConversationSafe,
8
- createConversationHistory,
9
- getOrderedMessages,
10
- isStreamingMessage
11
- } from "./index.server-rjap4k7y.js";
12
- import"./index.server-0v6na3yp.js";
13
-
14
- // ../../node_modules/conversationalist/dist/adapters/openai/index.js
15
- function toOpenAIContent(content, options = {}) {
16
- if (typeof content === "string")
17
- return content;
18
- const allowImages = options.allowImages ?? true;
19
- const parts = [];
20
- for (const part of content)
21
- if (part.type === "text")
22
- parts.push({
23
- type: "text",
24
- text: part.text ?? ""
25
- });
26
- else if (part.type === "image" && allowImages)
27
- parts.push({
28
- type: "image_url",
29
- image_url: { url: part.url ?? "" }
30
- });
31
- if (parts.length === 0)
32
- return "";
33
- if (parts.length === 1 && parts[0]?.type === "text")
34
- return parts[0].text;
35
- return allowImages ? parts : parts;
36
- }
37
- function toOpenAITextContent(content) {
38
- return toOpenAIContent(content, { allowImages: false });
39
- }
40
- function toOpenAIToolCall(toolCall) {
41
- return {
42
- id: toolCall.id,
43
- type: "function",
44
- function: {
45
- name: toolCall.name,
46
- arguments: typeof toolCall.arguments === "string" ? toolCall.arguments : JSON.stringify(toolCall.arguments)
47
- }
48
- };
49
- }
50
- function convertMessage(message) {
51
- if (message.hidden)
52
- return null;
53
- if (isStreamingMessage(message))
54
- return null;
55
- switch (message.role) {
56
- case "system":
57
- case "developer":
58
- return {
59
- role: "system",
60
- content: toOpenAITextContent(message.content)
61
- };
62
- case "user":
63
- return {
64
- role: "user",
65
- content: toOpenAIContent(message.content)
66
- };
67
- case "assistant":
68
- return {
69
- role: "assistant",
70
- content: toOpenAITextContent(message.content)
71
- };
72
- case "tool-call":
73
- if (!message.toolCall)
74
- return null;
75
- return {
76
- role: "assistant",
77
- content: null,
78
- tool_calls: [toOpenAIToolCall(message.toolCall)]
79
- };
80
- case "tool-result":
81
- if (!message.toolResult)
82
- return null;
83
- return {
84
- role: "tool",
85
- content: stringifyToolResult(message.toolResult),
86
- tool_call_id: message.toolResult.callId
87
- };
88
- case "snapshot":
89
- return null;
90
- }
91
- }
92
- function stringifyToolResult(result) {
93
- const payload = result.outcome === "success" ? result.content : {
94
- outcome: result.outcome,
95
- content: result.content,
96
- ...result.error ? { error: result.error } : {},
97
- ...result.action ? { action: result.action } : {}
98
- };
99
- if (typeof payload === "string")
100
- return payload;
101
- return JSON.stringify(payload);
102
- }
103
- function toConversationContent(content) {
104
- if (content === null)
105
- return;
106
- if (typeof content === "string")
107
- return content;
108
- const parts = content.map((part) => part.type === "text" ? {
109
- type: "text",
110
- text: part.text
111
- } : {
112
- type: "image",
113
- url: part.image_url.url
114
- });
115
- if (parts.length === 0)
116
- return "";
117
- if (parts.length === 1 && parts[0]?.type === "text")
118
- return parts[0].text ?? "";
119
- return parts;
120
- }
121
- function parseToolArguments(value) {
122
- return parseJSONValue(value) ?? value;
123
- }
124
- function parseToolResult(callId, content) {
125
- const serialized = typeof content === "string" ? content : content.map((part) => part.text).join(`
126
-
127
- `);
128
- const parsed = parseJSONValue(serialized);
129
- if (parsed !== undefined && isCanonicalToolResultPayload(parsed))
130
- return {
131
- callId,
132
- outcome: parsed.outcome,
133
- content: parsed.content,
134
- ...parsed.error ? { error: parsed.error } : {},
135
- ...parsed.action ? { action: parsed.action } : {},
136
- ...typeof parsed.inputDigest === "string" ? { inputDigest: parsed.inputDigest } : {},
137
- ...typeof parsed.outputDigest === "string" ? { outputDigest: parsed.outputDigest } : {}
138
- };
139
- return {
140
- callId,
141
- outcome: "success",
142
- content: parsed ?? serialized
143
- };
144
- }
145
- function toMessageInputs(messages) {
146
- const inputs = [];
147
- for (const message of messages)
148
- switch (message.role) {
149
- case "system":
150
- inputs.push({
151
- role: "system",
152
- content: toConversationContent(message.content) ?? ""
153
- });
154
- break;
155
- case "user":
156
- inputs.push({
157
- role: "user",
158
- content: toConversationContent(message.content) ?? ""
159
- });
160
- break;
161
- case "assistant": {
162
- const assistantContent = toConversationContent(message.content);
163
- if (assistantContent !== undefined && (typeof assistantContent === "string" ? assistantContent.length > 0 : assistantContent.length > 0))
164
- inputs.push({
165
- role: "assistant",
166
- content: assistantContent
167
- });
168
- for (const toolCall of message.tool_calls ?? [])
169
- inputs.push({
170
- role: "tool-call",
171
- content: "",
172
- toolCall: {
173
- id: toolCall.id,
174
- name: toolCall.function.name,
175
- arguments: parseToolArguments(toolCall.function.arguments)
176
- }
177
- });
178
- break;
179
- }
180
- case "tool":
181
- inputs.push({
182
- role: "tool-result",
183
- content: "",
184
- toolResult: parseToolResult(message.tool_call_id, message.content)
185
- });
186
- break;
187
- }
188
- return inputs;
189
- }
190
- function toOpenAIMessages(conversation) {
191
- assertConversationSafe(conversation);
192
- const messages = [];
193
- for (const message of getOrderedMessages(conversation)) {
194
- const converted = convertMessage(message);
195
- if (converted)
196
- messages.push(converted);
197
- }
198
- return messages;
199
- }
200
- function toOpenAIMessagesGrouped(conversation) {
201
- assertConversationSafe(conversation);
202
- const messages = [];
203
- let pendingToolCalls = [];
204
- for (const message of getOrderedMessages(conversation)) {
205
- if (message.hidden)
206
- continue;
207
- if (isStreamingMessage(message))
208
- continue;
209
- if (message.role === "tool-call" && message.toolCall) {
210
- pendingToolCalls.push(toOpenAIToolCall(message.toolCall));
211
- continue;
212
- }
213
- if (pendingToolCalls.length > 0) {
214
- messages.push({
215
- role: "assistant",
216
- content: null,
217
- tool_calls: pendingToolCalls
218
- });
219
- pendingToolCalls = [];
220
- }
221
- const converted = convertMessage(message);
222
- if (converted && message.role !== "tool-call")
223
- messages.push(converted);
224
- }
225
- if (pendingToolCalls.length > 0)
226
- messages.push({
227
- role: "assistant",
228
- content: null,
229
- tool_calls: pendingToolCalls
230
- });
231
- return messages;
232
- }
233
- function fromOpenAIMessages(messages) {
234
- let conversation = createConversationHistory();
235
- const inputs = toMessageInputs(messages);
236
- if (inputs.length > 0)
237
- conversation = appendMessages(conversation, ...inputs);
238
- return conversation;
239
- }
240
- function appendOpenAIMessages(conversation, messages) {
241
- const inputs = toMessageInputs(messages);
242
- if (inputs.length === 0)
243
- return conversation;
244
- return appendMessages(conversation, ...inputs);
245
- }
246
- var openAIConversationAdapter = {
247
- export(conversation, options = {}) {
248
- return options.groupToolCalls === false ? toOpenAIMessages(conversation) : toOpenAIMessagesGrouped(conversation);
249
- },
250
- import(messages) {
251
- return fromOpenAIMessages(messages);
252
- },
253
- append(conversation, messages) {
254
- return appendOpenAIMessages(conversation, messages);
255
- }
256
- };
257
- export {
258
- toOpenAIMessagesGrouped,
259
- toOpenAIMessages,
260
- openAIConversationAdapter,
261
- fromOpenAIMessages,
262
- appendOpenAIMessages
263
- };
264
-
265
- //# debugId=0A5BA28B9394E94C64756E2164756E21