@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,607 +0,0 @@
1
- import {
2
- Secret_value_field
3
- } from "./index.server-wc8dbm5e.js";
4
- import {
5
- Payload_inspector
6
- } from "./index.server-vt6sn9y4.js";
7
- import {
8
- Status_dot
9
- } from "./index.server-npxtkwjp.js";
10
- import {
11
- Card
12
- } from "./index.server-1vscnped.js";
13
- import {
14
- Code_block
15
- } from "./index.server-q89dz8h1.js";
16
- import {
17
- Button_group
18
- } from "./index.server-w1g5q9j9.js";
19
- import {
20
- Badge
21
- } from "./index.server-thedzn9z.js";
22
- import {
23
- Button
24
- } from "./index.server-t859hsx1.js";
25
- import {
26
- classNames
27
- } from "./index.server-z7nvkz8v.js";
28
-
29
- // src/components/approval-card/approval-card.svelte
30
- import * as $ from "svelte/internal/server";
31
- import { onDestroy } from "svelte";
32
-
33
- // src/components/approval-card/approval-card-state.ts
34
- function resolveEffectiveApprovalState(approvalState, expirationTimestamp, currentTime) {
35
- if (approvalState !== "pending" || expirationTimestamp === undefined)
36
- return approvalState;
37
- return resolveComparisonTime(currentTime) >= expirationTimestamp ? "expired" : approvalState;
38
- }
39
- function isApprovalActionable(approvalState, expirationTimestamp, currentTime) {
40
- if (approvalState !== "pending")
41
- return false;
42
- if (expirationTimestamp === undefined)
43
- return true;
44
- return resolveComparisonTime(currentTime) < expirationTimestamp;
45
- }
46
- function resolveComparisonTime(currentTime) {
47
- return currentTime ?? Date.now();
48
- }
49
-
50
- // src/components/approval-card/approval-card.svelte
51
- function Approval_card($$renderer, $$props) {
52
- $$renderer.component(($$renderer2) => {
53
- const generatedId = $.props_id($$renderer2);
54
- const ARGUMENTS_PREVIEW_MAX_CHARACTERS = 4096;
55
- let {
56
- tool,
57
- sandbox,
58
- operation,
59
- env = [],
60
- snapshotId,
61
- policyVersion,
62
- idempotencyKey,
63
- expiresAt,
64
- state: approvalState,
65
- editableArgs = false,
66
- onresolve,
67
- onapprove,
68
- onapprovewithedits,
69
- ondeny,
70
- onremember,
71
- oncancel,
72
- id,
73
- class: customClassName,
74
- $$slots,
75
- $$events,
76
- ...rest
77
- } = $$props;
78
- const rootId = $.derived(() => id ?? generatedId);
79
- const titleId = $.derived(() => `${rootId()}-title`);
80
- const descriptionId = $.derived(() => `${rootId()}-description`);
81
- const resolutionDescriptionId = $.derived(() => `${rootId()}-resolution-description`);
82
- const editDescriptionId = $.derived(() => `${rootId()}-edit-description`);
83
- const editErrorId = $.derived(() => `${rootId()}-edit-error`);
84
- let currentTime = undefined;
85
- let resolutionReason = "";
86
- let rememberResolution = false;
87
- let resolutionSeedKey = null;
88
- let editingArgumentsSeedKey = null;
89
- let editedArgumentsDrafts = {};
90
- let expirationTimer;
91
- const expirationTimestamp = $.derived(() => parseExpirationTimestamp(expiresAt));
92
- const effectiveState = $.derived(() => resolveEffectiveApprovalState(approvalState, expirationTimestamp(), currentTime));
93
- const isActionable = $.derived(() => isApprovalActionable(approvalState, expirationTimestamp(), currentTime));
94
- const operationKindLabel = $.derived(() => formatOperationKind(operation.kind));
95
- const riskLabel = $.derived(() => formatRisk(tool.risk));
96
- const stateText = $.derived(() => formatState(effectiveState()));
97
- const stateDescription = $.derived(() => isActionable() ? `${operationKindLabel()} approval is waiting for a decision.` : `No approval actions are available because this request is ${stateText().toLowerCase()}.`);
98
- const expirationText = $.derived(() => {
99
- if (effectiveState() === "expired")
100
- return "Expired";
101
- if (approvalState !== "pending" || expirationTimestamp() === undefined || currentTime === undefined) {
102
- return;
103
- }
104
- return `Expires in ${formatRemainingTime(expirationTimestamp() - currentTime)}`;
105
- });
106
- const hasArgumentsPreview = $.derived(() => operation.argsPreview !== undefined);
107
- const editableArgumentsValue = $.derived(() => normalizeArgumentsPreviewValue(operation.argsPreview));
108
- const argumentsPreview = $.derived(() => prepareArgumentsPreview(editableArgumentsValue()));
109
- const filesTouched = $.derived(() => operation.filesTouched ?? []);
110
- const filesTouchedLabel = $.derived(() => `${filesTouched().length} file${filesTouched().length === 1 ? "" : "s"}`);
111
- const environmentNames = $.derived(() => sanitizeEnvironmentNames(env));
112
- const currentEditedArgumentsText = $.derived(() => formatEditableArguments(editableArgumentsValue()));
113
- const currentEditedArgumentsSeedKey = $.derived(() => `${idempotencyKey}\x00${currentEditedArgumentsText()}`);
114
- const currentResolutionSeedKey = $.derived(() => `${idempotencyKey}\x00${operation.kind}`);
115
- const canEditArguments = $.derived(() => editableArgs && hasArgumentsPreview());
116
- const editingArguments = $.derived(() => canEditArguments() && editingArgumentsSeedKey === currentEditedArgumentsSeedKey());
117
- const editedArgumentsText = $.derived(() => editedArgumentsDrafts[currentEditedArgumentsSeedKey()] ?? currentEditedArgumentsText());
118
- const editParseResult = $.derived(() => parseJsonText(editedArgumentsText()));
119
- const canConfirmEditedApproval = $.derived(() => canEditArguments() && editParseResult().ok && (typeof onapprovewithedits === "function" || typeof onresolve === "function"));
120
- const hasResolutionCallback = $.derived(() => typeof onresolve === "function");
121
- const canResolveApproval = $.derived(() => typeof onapprove === "function" || hasResolutionCallback());
122
- const canResolveEditedApproval = $.derived(() => typeof onapprovewithedits === "function" || hasResolutionCallback());
123
- const canResolveDenial = $.derived(() => typeof ondeny === "function" || hasResolutionCallback());
124
- const canResolveCancellation = $.derived(() => typeof oncancel === "function" || hasResolutionCallback());
125
- onDestroy(clearExpirationTimer);
126
- function clearExpirationTimer() {
127
- if (expirationTimer !== undefined) {
128
- clearTimeout(expirationTimer);
129
- expirationTimer = undefined;
130
- }
131
- }
132
- function parseExpirationTimestamp(value) {
133
- if (!value)
134
- return;
135
- const timestamp = Date.parse(value);
136
- return Number.isFinite(timestamp) ? timestamp : undefined;
137
- }
138
- function formatRemainingTime(milliseconds) {
139
- const totalSeconds = Math.max(0, Math.ceil(milliseconds / 1000));
140
- const hours = Math.floor(totalSeconds / 3600);
141
- const minutes = Math.floor(totalSeconds % 3600 / 60);
142
- const seconds = totalSeconds % 60;
143
- if (hours > 0)
144
- return `${hours}h ${minutes}m`;
145
- if (minutes > 0)
146
- return `${minutes}m ${seconds}s`;
147
- return `${seconds}s`;
148
- }
149
- function formatRisk(risk) {
150
- switch (risk) {
151
- case "low":
152
- return "Low risk";
153
- case "medium":
154
- return "Medium risk";
155
- case "high":
156
- return "High risk";
157
- }
158
- }
159
- function riskBadgeVariant(risk) {
160
- switch (risk) {
161
- case "low":
162
- return "success";
163
- case "medium":
164
- return "warning";
165
- case "high":
166
- return "danger";
167
- }
168
- }
169
- function formatOperationKind(kind) {
170
- switch (kind) {
171
- case "command":
172
- return "Command";
173
- case "file-write":
174
- return "File write";
175
- case "patch":
176
- return "Patch";
177
- case "other":
178
- return "Operation";
179
- }
180
- }
181
- function formatState(approvalState2) {
182
- switch (approvalState2) {
183
- case "pending":
184
- return "Pending";
185
- case "approved":
186
- return "Approved";
187
- case "approved_with_edits":
188
- return "Approved with edits";
189
- case "denied":
190
- return "Denied";
191
- case "expired":
192
- return "Expired";
193
- case "cancelled":
194
- return "Cancelled";
195
- }
196
- }
197
- function stateDotStatus(approvalState2) {
198
- switch (approvalState2) {
199
- case "pending":
200
- return "pending";
201
- case "approved":
202
- case "approved_with_edits":
203
- return "success";
204
- case "denied":
205
- return "danger";
206
- case "expired":
207
- return "neutral";
208
- case "cancelled":
209
- return "offline";
210
- }
211
- }
212
- function normalizeArgumentsPreviewValue(value) {
213
- if (typeof value !== "string")
214
- return value;
215
- try {
216
- return JSON.parse(value);
217
- } catch {
218
- return value;
219
- }
220
- }
221
- function prepareArgumentsPreview(value) {
222
- try {
223
- const serialized = JSON.stringify(value);
224
- if (typeof serialized !== "string" || serialized.length <= ARGUMENTS_PREVIEW_MAX_CHARACTERS) {
225
- return {
226
- value: typeof value === "string" ? serialized : value,
227
- truncated: false
228
- };
229
- }
230
- return {
231
- value: {
232
- notice: "Arguments preview truncated",
233
- originalCharacters: serialized.length,
234
- displayedCharacters: ARGUMENTS_PREVIEW_MAX_CHARACTERS,
235
- excerpt: serialized.slice(0, ARGUMENTS_PREVIEW_MAX_CHARACTERS)
236
- },
237
- truncated: true
238
- };
239
- } catch {
240
- return { value, truncated: false };
241
- }
242
- }
243
- function formatEditableArguments(value) {
244
- try {
245
- const serialized = JSON.stringify(value, null, 2);
246
- return serialized ?? "null";
247
- } catch {
248
- return "{}";
249
- }
250
- }
251
- function parseJsonText(text) {
252
- try {
253
- return { ok: true, value: JSON.parse(text) };
254
- } catch {
255
- return { ok: false, message: "Edited arguments must be valid JSON." };
256
- }
257
- }
258
- function sanitizeEnvironmentName(name) {
259
- const [firstPart] = name.split("=");
260
- return firstPart?.trim() ?? "";
261
- }
262
- function sanitizeEnvironmentNames(names) {
263
- const seen = [];
264
- const sanitizedNames = [];
265
- for (const name of names) {
266
- const sanitizedName = sanitizeEnvironmentName(name);
267
- if (!sanitizedName || seen.includes(sanitizedName))
268
- continue;
269
- seen.push(sanitizedName);
270
- sanitizedNames.push(sanitizedName);
271
- }
272
- return sanitizedNames;
273
- }
274
- function currentApprovalIsActionable() {
275
- const comparisonTime = expirationTimestamp() === undefined ? currentTime : Date.now();
276
- const actionable = isApprovalActionable(approvalState, expirationTimestamp(), comparisonTime);
277
- if (!actionable && approvalState === "pending" && expirationTimestamp() !== undefined) {
278
- currentTime = comparisonTime;
279
- }
280
- return actionable;
281
- }
282
- function beginEditingArguments() {
283
- if (!currentApprovalIsActionable())
284
- return;
285
- if (!canEditArguments())
286
- return;
287
- if (!(currentEditedArgumentsSeedKey() in editedArgumentsDrafts)) {
288
- editedArgumentsDrafts = {
289
- ...editedArgumentsDrafts,
290
- [currentEditedArgumentsSeedKey()]: currentEditedArgumentsText()
291
- };
292
- }
293
- editingArgumentsSeedKey = currentEditedArgumentsSeedKey();
294
- }
295
- function handleEditedArgumentsInput(event) {
296
- editedArgumentsDrafts = {
297
- ...editedArgumentsDrafts,
298
- [currentEditedArgumentsSeedKey()]: event.currentTarget.value
299
- };
300
- }
301
- function handleReasonInput(event) {
302
- resolutionReason = event.currentTarget.value;
303
- }
304
- function handleRememberInput(event) {
305
- rememberResolution = event.currentTarget.checked;
306
- }
307
- function emitResolution(decision, editedArgs) {
308
- const trimmedReason = resolutionReason.trim();
309
- const resolution = { decision, remember: rememberResolution };
310
- if (decision === "approve_with_edits") {
311
- resolution.editedArgs = editedArgs;
312
- }
313
- if (trimmedReason) {
314
- resolution.reason = trimmedReason;
315
- }
316
- onresolve?.(resolution);
317
- }
318
- function handleApprove() {
319
- if (!currentApprovalIsActionable())
320
- return;
321
- onapprove?.();
322
- emitResolution("approve");
323
- }
324
- function handleApproveWithEdits() {
325
- if (!currentApprovalIsActionable())
326
- return;
327
- if (!canEditArguments())
328
- return;
329
- if (!editParseResult().ok)
330
- return;
331
- onapprovewithedits?.(editParseResult().value);
332
- emitResolution("approve_with_edits", editParseResult().value);
333
- }
334
- function handleDeny() {
335
- if (!currentApprovalIsActionable())
336
- return;
337
- ondeny?.();
338
- emitResolution("deny");
339
- }
340
- function handleRemember() {
341
- if (!currentApprovalIsActionable())
342
- return;
343
- onremember?.();
344
- }
345
- function handleCancel() {
346
- if (!currentApprovalIsActionable())
347
- return;
348
- oncancel?.();
349
- emitResolution("cancel");
350
- }
351
- $$renderer2.push(`<section${$.attributes({
352
- ...rest,
353
- id: rootId(),
354
- class: $.clsx(classNames("cinder-approval-card", customClassName)),
355
- "aria-labelledby": titleId(),
356
- "aria-describedby": descriptionId(),
357
- "data-cinder-state": effectiveState(),
358
- "data-cinder-risk": tool.risk
359
- })}>`);
360
- {
361
- let header = function($$renderer3) {
362
- $$renderer3.push(`<div class="cinder-approval-card__header"><div class="cinder-approval-card__title-group"><p class="cinder-approval-card__eyebrow">${$.escape(operationKindLabel())} approval</p> <h3${$.attr("id", titleId())} class="cinder-approval-card__title">Approval required for ${$.escape(tool.name)}</h3> <p${$.attr("id", descriptionId())} class="cinder-approval-card__description">${$.escape(stateDescription())}</p></div> <div class="cinder-approval-card__badges" role="group" aria-label="Approval status">`);
363
- Status_dot($$renderer3, { status: stateDotStatus(effectiveState()), label: stateText() });
364
- $$renderer3.push(`<!----> `);
365
- Badge($$renderer3, {
366
- variant: riskBadgeVariant(tool.risk),
367
- size: "sm",
368
- children: ($$renderer4) => {
369
- $$renderer4.push(`<!---->${$.escape(riskLabel())}`);
370
- },
371
- $$slots: { default: true }
372
- });
373
- $$renderer3.push(`<!----> `);
374
- if (expirationText()) {
375
- $$renderer3.push("<!--[0-->");
376
- Badge($$renderer3, {
377
- variant: effectiveState() === "expired" ? "neutral" : "warning",
378
- size: "sm",
379
- children: ($$renderer4) => {
380
- $$renderer4.push(`<!---->${$.escape(expirationText())}`);
381
- },
382
- $$slots: { default: true }
383
- });
384
- } else {
385
- $$renderer3.push("<!--[-1-->");
386
- }
387
- $$renderer3.push(`<!--]--></div></div>`);
388
- };
389
- Card($$renderer2, {
390
- padding: "none",
391
- class: "cinder-approval-card__surface",
392
- header,
393
- children: ($$renderer3) => {
394
- $$renderer3.push(`<div class="cinder-approval-card__body"><dl class="cinder-approval-card__metadata" aria-label="Approval metadata"><div class="cinder-approval-card__metadata-item"><dt>Policy</dt> <dd>${$.escape(policyVersion)}</dd></div> <div class="cinder-approval-card__metadata-item"><dt>Idempotency key</dt> <dd>${$.escape(idempotencyKey)}</dd></div> `);
395
- if (snapshotId) {
396
- $$renderer3.push("<!--[0-->");
397
- $$renderer3.push(`<div class="cinder-approval-card__metadata-item"><dt>Snapshot</dt> <dd>${$.escape(snapshotId)}</dd></div>`);
398
- } else {
399
- $$renderer3.push("<!--[-1-->");
400
- }
401
- $$renderer3.push(`<!--]--></dl> `);
402
- if (sandbox) {
403
- $$renderer3.push("<!--[0-->");
404
- $$renderer3.push(`<section class="cinder-approval-card__section" aria-label="Sandbox context"><h4 class="cinder-approval-card__section-title">Sandbox</h4> <dl class="cinder-approval-card__metadata cinder-approval-card__metadata--compact"><div class="cinder-approval-card__metadata-item"><dt>Provider</dt> <dd>${$.escape(sandbox.provider)}</dd></div> <div class="cinder-approval-card__metadata-item"><dt>Name</dt> <dd>${$.escape(sandbox.name)}</dd></div> <div class="cinder-approval-card__metadata-item"><dt>Working directory</dt> <dd>${$.escape(sandbox.workingDir)}</dd></div></dl></section>`);
405
- } else {
406
- $$renderer3.push("<!--[-1-->");
407
- }
408
- $$renderer3.push(`<!--]--> <section class="cinder-approval-card__section" aria-label="Operation details"><div class="cinder-approval-card__section-heading"><h4 class="cinder-approval-card__section-title">Operation</h4> `);
409
- Badge($$renderer3, {
410
- size: "sm",
411
- mono: true,
412
- children: ($$renderer4) => {
413
- $$renderer4.push(`<!---->${$.escape(operation.kind)}`);
414
- },
415
- $$slots: { default: true }
416
- });
417
- $$renderer3.push(`<!----></div> `);
418
- if (operation.kind === "command" && operation.command) {
419
- $$renderer3.push("<!--[0-->");
420
- Code_block($$renderer3, { code: operation.command, language: "shell", highlight: false });
421
- } else if (operation.kind === "patch" && operation.diff) {
422
- $$renderer3.push("<!--[1-->");
423
- Code_block($$renderer3, { code: operation.diff, language: "diff", highlight: false });
424
- } else if (operation.kind === "file-write") {
425
- $$renderer3.push("<!--[2-->");
426
- $$renderer3.push(`<p class="cinder-approval-card__muted">Review the touched files and arguments before approving this file write.</p>`);
427
- } else {
428
- $$renderer3.push("<!--[-1-->");
429
- $$renderer3.push(`<p class="cinder-approval-card__muted">Review the arguments and metadata before approving this operation.</p>`);
430
- }
431
- $$renderer3.push(`<!--]--> `);
432
- if (filesTouched().length > 0) {
433
- $$renderer3.push("<!--[0-->");
434
- $$renderer3.push(`<div class="cinder-approval-card__files"><div class="cinder-approval-card__section-heading"><h5 class="cinder-approval-card__subsection-title">Files touched</h5> `);
435
- Badge($$renderer3, {
436
- size: "sm",
437
- children: ($$renderer4) => {
438
- $$renderer4.push(`<!---->${$.escape(filesTouchedLabel())}`);
439
- },
440
- $$slots: { default: true }
441
- });
442
- $$renderer3.push(`<!----></div> <ul class="cinder-approval-card__file-list"><!--[-->`);
443
- const each_array = $.ensure_array_like(filesTouched());
444
- for (let fileIndex = 0, $$length = each_array.length;fileIndex < $$length; fileIndex++) {
445
- let file = each_array[fileIndex];
446
- $$renderer3.push(`<li>${$.escape(file)}</li>`);
447
- }
448
- $$renderer3.push(`<!--]--></ul></div>`);
449
- } else {
450
- $$renderer3.push("<!--[-1-->");
451
- }
452
- $$renderer3.push(`<!--]--></section> <section class="cinder-approval-card__section" aria-label="Arguments preview">`);
453
- if (hasArgumentsPreview()) {
454
- $$renderer3.push("<!--[0-->");
455
- Payload_inspector($$renderer3, {
456
- value: argumentsPreview().value,
457
- truncated: argumentsPreview().truncated,
458
- label: "Arguments preview"
459
- });
460
- } else {
461
- $$renderer3.push("<!--[-1-->");
462
- $$renderer3.push(`<p class="cinder-approval-card__muted">No arguments were provided.</p>`);
463
- }
464
- $$renderer3.push(`<!--]--></section> `);
465
- if (environmentNames().length > 0) {
466
- $$renderer3.push("<!--[0-->");
467
- $$renderer3.push(`<section class="cinder-approval-card__section" aria-label="Environment names"><h4 class="cinder-approval-card__section-title">Environment</h4> <div class="cinder-approval-card__environment-list"><!--[-->`);
468
- const each_array_1 = $.ensure_array_like(environmentNames());
469
- for (let environmentIndex = 0, $$length = each_array_1.length;environmentIndex < $$length; environmentIndex++) {
470
- let environmentName = each_array_1[environmentIndex];
471
- Secret_value_field($$renderer3, { value: environmentName, label: environmentName });
472
- }
473
- $$renderer3.push(`<!--]--></div></section>`);
474
- } else {
475
- $$renderer3.push("<!--[-1-->");
476
- }
477
- $$renderer3.push(`<!--]--> `);
478
- if (isActionable()) {
479
- $$renderer3.push("<!--[0-->");
480
- $$renderer3.push(`<section class="cinder-approval-card__section cinder-approval-card__actions-section">`);
481
- if (hasResolutionCallback()) {
482
- $$renderer3.push("<!--[0-->");
483
- $$renderer3.push(`<div class="cinder-approval-card__resolution-controls"><label class="cinder-approval-card__editor-label"${$.attr("for", `${rootId()}-resolution-reason`)}>Resolution reason</label> <p${$.attr("id", resolutionDescriptionId())} class="cinder-approval-card__muted">Optional context included with the host resolution payload.</p> <textarea${$.attr("id", `${rootId()}-resolution-reason`)} class="cinder-approval-card__textarea cinder-approval-card__textarea--reason" rows="3"${$.attr("aria-describedby", resolutionDescriptionId())}>`);
484
- const $$body = $.escape(resolutionReason);
485
- if ($$body) {
486
- $$renderer3.push(`${$$body}`);
487
- } else {}
488
- $$renderer3.push(`</textarea> <label class="cinder-approval-card__remember-control"><input type="checkbox"${$.attr("checked", rememberResolution, true)}/> <span>Remember this approval boundary</span></label></div>`);
489
- } else {
490
- $$renderer3.push("<!--[-1-->");
491
- }
492
- $$renderer3.push(`<!--]--> `);
493
- Button_group($$renderer3, {
494
- label: "Approval actions",
495
- children: ($$renderer4) => {
496
- Button($$renderer4, {
497
- type: "button",
498
- variant: "primary",
499
- onclick: handleApprove,
500
- disabled: !canResolveApproval(),
501
- children: ($$renderer5) => {
502
- $$renderer5.push(`<!---->Approve`);
503
- },
504
- $$slots: { default: true }
505
- });
506
- $$renderer4.push(`<!----> `);
507
- if (canEditArguments()) {
508
- $$renderer4.push("<!--[0-->");
509
- Button($$renderer4, {
510
- type: "button",
511
- variant: "secondary",
512
- onclick: beginEditingArguments,
513
- disabled: !canResolveEditedApproval(),
514
- children: ($$renderer5) => {
515
- $$renderer5.push(`<!---->Approve with edits`);
516
- },
517
- $$slots: { default: true }
518
- });
519
- } else {
520
- $$renderer4.push("<!--[-1-->");
521
- }
522
- $$renderer4.push(`<!--]--> `);
523
- Button($$renderer4, {
524
- type: "button",
525
- variant: "soft-danger",
526
- onclick: handleDeny,
527
- disabled: !canResolveDenial(),
528
- children: ($$renderer5) => {
529
- $$renderer5.push(`<!---->Deny`);
530
- },
531
- $$slots: { default: true }
532
- });
533
- $$renderer4.push(`<!----> `);
534
- Button($$renderer4, {
535
- type: "button",
536
- variant: "soft",
537
- onclick: handleRemember,
538
- disabled: !onremember,
539
- children: ($$renderer5) => {
540
- $$renderer5.push(`<!---->Remember`);
541
- },
542
- $$slots: { default: true }
543
- });
544
- $$renderer4.push(`<!----> `);
545
- Button($$renderer4, {
546
- type: "button",
547
- variant: "ghost",
548
- onclick: handleCancel,
549
- disabled: !canResolveCancellation(),
550
- children: ($$renderer5) => {
551
- $$renderer5.push(`<!---->Cancel`);
552
- },
553
- $$slots: { default: true }
554
- });
555
- $$renderer4.push(`<!---->`);
556
- },
557
- $$slots: { default: true }
558
- });
559
- $$renderer3.push(`<!----> `);
560
- if (editingArguments()) {
561
- $$renderer3.push("<!--[0-->");
562
- $$renderer3.push(`<div class="cinder-approval-card__editor"><label class="cinder-approval-card__editor-label"${$.attr("for", `${rootId()}-edited-arguments`)}>Edited arguments JSON</label> <p${$.attr("id", editDescriptionId())} class="cinder-approval-card__muted">Confirming parses this JSON and sends the parsed value to the approval callback.</p> <textarea${$.attr("id", `${rootId()}-edited-arguments`)} class="cinder-approval-card__textarea" rows="8" spellcheck="false"${$.attr("aria-describedby", editParseResult().ok ? editDescriptionId() : `${editDescriptionId()} ${editErrorId()}`)}${$.attr("aria-invalid", editParseResult().ok ? undefined : "true")}>`);
563
- const $$body_1 = $.escape(editedArgumentsText());
564
- if ($$body_1) {
565
- $$renderer3.push(`${$$body_1}`);
566
- } else {}
567
- $$renderer3.push(`</textarea> `);
568
- if (!editParseResult().ok) {
569
- $$renderer3.push("<!--[0-->");
570
- $$renderer3.push(`<p${$.attr("id", editErrorId())} class="cinder-approval-card__error" role="alert">${$.escape(editParseResult().message)}</p>`);
571
- } else {
572
- $$renderer3.push("<!--[-1-->");
573
- }
574
- $$renderer3.push(`<!--]--> <div class="cinder-approval-card__editor-actions">`);
575
- Button($$renderer3, {
576
- type: "button",
577
- variant: "primary",
578
- onclick: handleApproveWithEdits,
579
- disabled: !canConfirmEditedApproval(),
580
- children: ($$renderer4) => {
581
- $$renderer4.push(`<!---->Confirm edited approval`);
582
- },
583
- $$slots: { default: true }
584
- });
585
- $$renderer3.push(`<!----></div></div>`);
586
- } else {
587
- $$renderer3.push("<!--[-1-->");
588
- }
589
- $$renderer3.push(`<!--]--></section>`);
590
- } else {
591
- $$renderer3.push("<!--[-1-->");
592
- $$renderer3.push(`<p class="cinder-approval-card__readonly-summary">No approval actions are available for this request.</p>`);
593
- }
594
- $$renderer3.push(`<!--]--></div>`);
595
- },
596
- $$slots: { header: true, default: true }
597
- });
598
- }
599
- $$renderer2.push(`<!----></section>`);
600
- }, Approval_card);
601
- }
602
-
603
- // src/components/approval-card/index.ts
604
- var approval_card_default = Approval_card;
605
- export { Approval_card, approval_card_default };
606
-
607
- //# debugId=5887B36D4752008164756E2164756E21
@@ -1,30 +0,0 @@
1
- // ../../node_modules/conversationalist/dist/shared-BylU-V4n.js
2
- function toJSONValue(value) {
3
- if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean")
4
- return value;
5
- if (Array.isArray(value))
6
- return value.map((item) => toJSONValue(item));
7
- if (value && typeof value === "object") {
8
- const record = {};
9
- for (const [key, entry] of Object.entries(value))
10
- record[key] = toJSONValue(entry);
11
- return record;
12
- }
13
- return String(value);
14
- }
15
- function parseJSONValue(value) {
16
- try {
17
- return JSON.parse(value);
18
- } catch {
19
- return;
20
- }
21
- }
22
- function isCanonicalToolResultPayload(value) {
23
- if (!value || typeof value !== "object" || Array.isArray(value))
24
- return false;
25
- return "outcome" in value && (value["outcome"] === "success" || value["outcome"] === "error" || value["outcome"] === "action_required") && "content" in value;
26
- }
27
-
28
- export { toJSONValue, parseJSONValue, isCanonicalToolResultPayload };
29
-
30
- //# debugId=F59ADEF8718EAAC864756E2164756E21