@design.estate/dees-catalog 3.90.1 → 3.92.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 (231) hide show
  1. package/dist_bundle/bundle.js +10399 -4790
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.js +5 -4
  4. package/dist_ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.js +6 -7
  5. package/dist_ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.js +4 -6
  6. package/dist_ts_web/elements/00group-button/dees-button/dees-button.d.ts +7 -1
  7. package/dist_ts_web/elements/00group-button/dees-button/dees-button.demo.js +16 -2
  8. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +65 -25
  9. package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.js +1 -1
  10. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.d.ts +69 -0
  11. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.js +342 -0
  12. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +48 -3
  13. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.demo.js +128 -39
  14. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +663 -190
  15. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/index.d.ts +1 -0
  16. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/index.js +2 -1
  17. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.d.ts +3 -0
  18. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.js +48 -30
  19. package/dist_ts_web/elements/00group-dataview/dees-grouped-list/dees-grouped-list.js +1 -1
  20. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +1 -2
  21. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.js +1 -1
  22. package/dist_ts_web/elements/00group-dataview/dees-table/styles.js +1 -1
  23. package/dist_ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.js +9 -9
  24. package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.d.ts +1 -1
  25. package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.js +1 -1
  26. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +55 -0
  27. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.d.ts +1 -0
  28. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +183 -0
  29. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +412 -0
  30. package/dist_ts_web/elements/00group-harness/dees-harness-chat/index.d.ts +1 -0
  31. package/dist_ts_web/elements/00group-harness/dees-harness-chat/index.js +2 -0
  32. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +65 -0
  33. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.d.ts +1 -0
  34. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.js +55 -0
  35. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +589 -0
  36. package/dist_ts_web/elements/00group-harness/dees-harness-composer/index.d.ts +1 -0
  37. package/dist_ts_web/elements/00group-harness/dees-harness-composer/index.js +2 -0
  38. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.d.ts +21 -0
  39. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.demo.d.ts +1 -0
  40. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.demo.js +41 -0
  41. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.js +215 -0
  42. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/index.d.ts +1 -0
  43. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/index.js +2 -0
  44. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +58 -0
  45. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.demo.d.ts +1 -0
  46. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.demo.js +126 -0
  47. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +551 -0
  48. package/dist_ts_web/elements/00group-harness/dees-harness-message/index.d.ts +1 -0
  49. package/dist_ts_web/elements/00group-harness/dees-harness-message/index.js +2 -0
  50. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +50 -0
  51. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.demo.d.ts +1 -0
  52. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.demo.js +101 -0
  53. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +424 -0
  54. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/index.d.ts +1 -0
  55. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/index.js +2 -0
  56. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.d.ts +27 -0
  57. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.demo.d.ts +1 -0
  58. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.demo.js +46 -0
  59. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.js +282 -0
  60. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/index.d.ts +1 -0
  61. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/index.js +2 -0
  62. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.d.ts +24 -0
  63. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.demo.d.ts +1 -0
  64. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.demo.js +32 -0
  65. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.js +241 -0
  66. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/index.d.ts +1 -0
  67. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/index.js +2 -0
  68. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.d.ts +28 -0
  69. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.d.ts +1 -0
  70. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.js +56 -0
  71. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +279 -0
  72. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/index.d.ts +1 -0
  73. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/index.js +2 -0
  74. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.d.ts +30 -0
  75. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.demo.d.ts +1 -0
  76. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.demo.js +35 -0
  77. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.js +235 -0
  78. package/dist_ts_web/elements/00group-harness/dees-harness-status/index.d.ts +1 -0
  79. package/dist_ts_web/elements/00group-harness/dees-harness-status/index.js +2 -0
  80. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.d.ts +27 -0
  81. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.demo.d.ts +1 -0
  82. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.demo.js +41 -0
  83. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.js +258 -0
  84. package/dist_ts_web/elements/00group-harness/dees-harness-todos/index.d.ts +1 -0
  85. package/dist_ts_web/elements/00group-harness/dees-harness-todos/index.js +2 -0
  86. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +35 -0
  87. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.demo.d.ts +1 -0
  88. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.demo.js +162 -0
  89. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +368 -0
  90. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/index.d.ts +2 -0
  91. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/index.js +3 -0
  92. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.d.ts +5 -0
  93. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +183 -0
  94. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.d.ts +19 -0
  95. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.demo.d.ts +1 -0
  96. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.demo.js +25 -0
  97. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.js +148 -0
  98. package/dist_ts_web/elements/00group-harness/dees-harness-usage/index.d.ts +1 -0
  99. package/dist_ts_web/elements/00group-harness/dees-harness-usage/index.js +2 -0
  100. package/dist_ts_web/elements/00group-harness/harness.demodata.d.ts +22 -0
  101. package/dist_ts_web/elements/00group-harness/harness.demodata.js +94 -0
  102. package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +37 -0
  103. package/dist_ts_web/elements/00group-harness/harness.helpers.js +221 -0
  104. package/dist_ts_web/elements/00group-harness/harness.markdown.d.ts +25 -0
  105. package/dist_ts_web/elements/00group-harness/harness.markdown.js +147 -0
  106. package/dist_ts_web/elements/00group-harness/harness.styles.d.ts +9 -0
  107. package/dist_ts_web/elements/00group-harness/harness.styles.js +94 -0
  108. package/dist_ts_web/elements/00group-harness/index.d.ts +18 -0
  109. package/dist_ts_web/elements/00group-harness/index.js +22 -0
  110. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +210 -0
  111. package/dist_ts_web/elements/00group-harness/interfaces.js +11 -0
  112. package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +76 -0
  113. package/dist_ts_web/elements/00group-harness/toolregistry.js +210 -0
  114. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +30 -18
  115. package/dist_ts_web/elements/00group-input/dees-input-datepicker/datepicker-popup.js +73 -46
  116. package/dist_ts_web/elements/00group-input/dees-input-datepicker/styles.js +15 -16
  117. package/dist_ts_web/elements/00group-input/dees-input-list/dees-input-list.js +2 -4
  118. package/dist_ts_web/elements/00group-input/dees-input-tags/dees-input-tags.js +36 -15
  119. package/dist_ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.js +5 -4
  120. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/code.block.js +10 -89
  121. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +12 -8
  122. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.js +1 -1
  123. package/dist_ts_web/elements/00group-layout/dees-pagination/dees-pagination.js +27 -12
  124. package/dist_ts_web/elements/00group-layout/dees-settings/dees-settings.js +1 -1
  125. package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +14 -18
  126. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +6 -7
  127. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.js +6 -21
  128. package/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.d.ts +2 -1
  129. package/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.js +10 -4
  130. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.js +1 -1
  131. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +9 -8
  132. package/dist_ts_web/elements/00group-workspace/dees-workspace/dees-workspace.js +1 -1
  133. package/dist_ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.js +3 -4
  134. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.js +8 -78
  135. package/dist_ts_web/elements/00syntax.d.ts +28 -0
  136. package/dist_ts_web/elements/00syntax.js +98 -0
  137. package/dist_ts_web/elements/00theme.js +26 -14
  138. package/dist_ts_web/elements/index.d.ts +1 -0
  139. package/dist_ts_web/elements/index.js +2 -1
  140. package/dist_watch/bundle.js +233948 -0
  141. package/dist_watch/bundle.js.map +7 -0
  142. package/dist_watch/index.html +28 -0
  143. package/package.json +2 -2
  144. package/readme.hints.md +7 -1
  145. package/readme.md +116 -9
  146. package/readme.playbook.md +10 -0
  147. package/ts_web/00_commitinfo_data.ts +1 -1
  148. package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +4 -3
  149. package/ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.ts +5 -6
  150. package/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts +3 -5
  151. package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +15 -1
  152. package/ts_web/elements/00group-button/dees-button/dees-button.ts +59 -24
  153. package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.ts +1 -1
  154. package/ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.ts +401 -0
  155. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.demo.ts +132 -38
  156. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +649 -187
  157. package/ts_web/elements/00group-dataview/dees-dataview-codebox/index.ts +1 -0
  158. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +45 -30
  159. package/ts_web/elements/00group-dataview/dees-grouped-list/dees-grouped-list.ts +1 -1
  160. package/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +0 -1
  161. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.ts +1 -1
  162. package/ts_web/elements/00group-dataview/dees-table/styles.ts +1 -1
  163. package/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.ts +9 -9
  164. package/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.ts +1 -1
  165. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +193 -0
  166. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +301 -0
  167. package/ts_web/elements/00group-harness/dees-harness-chat/index.ts +1 -0
  168. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.ts +56 -0
  169. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +514 -0
  170. package/ts_web/elements/00group-harness/dees-harness-composer/index.ts +1 -0
  171. package/ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.demo.ts +44 -0
  172. package/ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.ts +172 -0
  173. package/ts_web/elements/00group-harness/dees-harness-content-blocks/index.ts +1 -0
  174. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.demo.ts +129 -0
  175. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +498 -0
  176. package/ts_web/elements/00group-harness/dees-harness-message/index.ts +1 -0
  177. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.demo.ts +105 -0
  178. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +342 -0
  179. package/ts_web/elements/00group-harness/dees-harness-message-list/index.ts +1 -0
  180. package/ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.demo.ts +47 -0
  181. package/ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.ts +225 -0
  182. package/ts_web/elements/00group-harness/dees-harness-permission-card/index.ts +1 -0
  183. package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.demo.ts +32 -0
  184. package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.ts +195 -0
  185. package/ts_web/elements/00group-harness/dees-harness-reasoning/index.ts +1 -0
  186. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.ts +59 -0
  187. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +222 -0
  188. package/ts_web/elements/00group-harness/dees-harness-session-list/index.ts +1 -0
  189. package/ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.demo.ts +35 -0
  190. package/ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.ts +187 -0
  191. package/ts_web/elements/00group-harness/dees-harness-status/index.ts +1 -0
  192. package/ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.demo.ts +43 -0
  193. package/ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.ts +206 -0
  194. package/ts_web/elements/00group-harness/dees-harness-todos/index.ts +1 -0
  195. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.demo.ts +166 -0
  196. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +315 -0
  197. package/ts_web/elements/00group-harness/dees-harness-tool-card/index.ts +2 -0
  198. package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +205 -0
  199. package/ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.demo.ts +25 -0
  200. package/ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.ts +96 -0
  201. package/ts_web/elements/00group-harness/dees-harness-usage/index.ts +1 -0
  202. package/ts_web/elements/00group-harness/harness.demodata.ts +113 -0
  203. package/ts_web/elements/00group-harness/harness.helpers.ts +227 -0
  204. package/ts_web/elements/00group-harness/harness.markdown.ts +151 -0
  205. package/ts_web/elements/00group-harness/harness.styles.ts +96 -0
  206. package/ts_web/elements/00group-harness/index.ts +22 -0
  207. package/ts_web/elements/00group-harness/interfaces.ts +203 -0
  208. package/ts_web/elements/00group-harness/toolregistry.ts +264 -0
  209. package/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts +29 -17
  210. package/ts_web/elements/00group-input/dees-input-datepicker/datepicker-popup.ts +72 -45
  211. package/ts_web/elements/00group-input/dees-input-datepicker/styles.ts +14 -15
  212. package/ts_web/elements/00group-input/dees-input-list/dees-input-list.ts +1 -3
  213. package/ts_web/elements/00group-input/dees-input-tags/dees-input-tags.ts +35 -14
  214. package/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.ts +4 -3
  215. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/code.block.ts +9 -88
  216. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +11 -7
  217. package/ts_web/elements/00group-layout/dees-chips/dees-chips.ts +1 -1
  218. package/ts_web/elements/00group-layout/dees-pagination/dees-pagination.ts +26 -11
  219. package/ts_web/elements/00group-layout/dees-settings/dees-settings.ts +1 -1
  220. package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +13 -17
  221. package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +5 -6
  222. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts +5 -20
  223. package/ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.ts +10 -3
  224. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.ts +1 -1
  225. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +8 -7
  226. package/ts_web/elements/00group-workspace/dees-workspace/dees-workspace.ts +1 -1
  227. package/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts +2 -3
  228. package/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts +7 -77
  229. package/ts_web/elements/00syntax.ts +124 -0
  230. package/ts_web/elements/00theme.ts +25 -13
  231. package/ts_web/elements/index.ts +1 -0
@@ -0,0 +1,368 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { demoFunc } from './dees-harness-tool-card.demo.js';
36
+ import { DeesElement, html, css, customElement, property, state, cssManager, } from '@design.estate/dees-element';
37
+ import { themeDefaultStyles } from '../../00theme.js';
38
+ import { DeesHarnessToolRegistry, parseMcpName, } from '../toolregistry.js';
39
+ import { builtinBodyRenderers } from './renderers.js';
40
+ import { harnessCardStyles, harnessPillStyles, harnessMonoStyles } from '../harness.styles.js';
41
+ import { harnessFormatDuration, harnessTruncate } from '../harness.helpers.js';
42
+ import '../dees-harness-content-blocks/dees-harness-content-blocks.js';
43
+ import '../../00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js';
44
+ import '../../00group-feedback/dees-badge/dees-badge.js';
45
+ import '../../00group-utility/dees-icon/dees-icon.js';
46
+ /**
47
+ * Tool-call card: shared chrome (icon, label, subtitle, status pill,
48
+ * duration, MCP badges) with a per-kind body. Bodies come from the built-in
49
+ * renderer map or a descriptor's custom renderBody; kind resolution goes
50
+ * through the tool registry.
51
+ */
52
+ let DeesHarnessToolCard = (() => {
53
+ let _classDecorators = [customElement('dees-harness-tool-card')];
54
+ let _classDescriptor;
55
+ let _classExtraInitializers = [];
56
+ let _classThis;
57
+ let _classSuper = DeesElement;
58
+ let _call_decorators;
59
+ let _call_initializers = [];
60
+ let _call_extraInitializers = [];
61
+ let _toolRegistry_decorators;
62
+ let _toolRegistry_initializers = [];
63
+ let _toolRegistry_extraInitializers = [];
64
+ let _expanded_decorators;
65
+ let _expanded_initializers = [];
66
+ let _expanded_extraInitializers = [];
67
+ let _outputExpanded_decorators;
68
+ let _outputExpanded_initializers = [];
69
+ let _outputExpanded_extraInitializers = [];
70
+ var DeesHarnessToolCard = class extends _classSuper {
71
+ static { _classThis = this; }
72
+ static {
73
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
74
+ _call_decorators = [property({ attribute: false })];
75
+ _toolRegistry_decorators = [property({ attribute: false })];
76
+ _expanded_decorators = [state()];
77
+ _outputExpanded_decorators = [state()];
78
+ __esDecorate(this, null, _call_decorators, { kind: "accessor", name: "call", static: false, private: false, access: { has: obj => "call" in obj, get: obj => obj.call, set: (obj, value) => { obj.call = value; } }, metadata: _metadata }, _call_initializers, _call_extraInitializers);
79
+ __esDecorate(this, null, _toolRegistry_decorators, { kind: "accessor", name: "toolRegistry", static: false, private: false, access: { has: obj => "toolRegistry" in obj, get: obj => obj.toolRegistry, set: (obj, value) => { obj.toolRegistry = value; } }, metadata: _metadata }, _toolRegistry_initializers, _toolRegistry_extraInitializers);
80
+ __esDecorate(this, null, _expanded_decorators, { kind: "accessor", name: "expanded", static: false, private: false, access: { has: obj => "expanded" in obj, get: obj => obj.expanded, set: (obj, value) => { obj.expanded = value; } }, metadata: _metadata }, _expanded_initializers, _expanded_extraInitializers);
81
+ __esDecorate(this, null, _outputExpanded_decorators, { kind: "accessor", name: "outputExpanded", static: false, private: false, access: { has: obj => "outputExpanded" in obj, get: obj => obj.outputExpanded, set: (obj, value) => { obj.outputExpanded = value; } }, metadata: _metadata }, _outputExpanded_initializers, _outputExpanded_extraInitializers);
82
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
83
+ DeesHarnessToolCard = _classThis = _classDescriptor.value;
84
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
85
+ }
86
+ static demo = demoFunc;
87
+ static demoGroups = ['Agent Chat'];
88
+ #call_accessor_storage = __runInitializers(this, _call_initializers, { id: '', name: '', status: 'pending' });
89
+ get call() { return this.#call_accessor_storage; }
90
+ set call(value) { this.#call_accessor_storage = value; }
91
+ #toolRegistry_accessor_storage = (__runInitializers(this, _call_extraInitializers), __runInitializers(this, _toolRegistry_initializers, DeesHarnessToolRegistry.default));
92
+ get toolRegistry() { return this.#toolRegistry_accessor_storage; }
93
+ set toolRegistry(value) { this.#toolRegistry_accessor_storage = value; }
94
+ #expanded_accessor_storage = (__runInitializers(this, _toolRegistry_extraInitializers), __runInitializers(this, _expanded_initializers, undefined));
95
+ get expanded() { return this.#expanded_accessor_storage; }
96
+ set expanded(value) { this.#expanded_accessor_storage = value; }
97
+ #outputExpanded_accessor_storage = (__runInitializers(this, _expanded_extraInitializers), __runInitializers(this, _outputExpanded_initializers, false));
98
+ get outputExpanded() { return this.#outputExpanded_accessor_storage; }
99
+ set outputExpanded(value) { this.#outputExpanded_accessor_storage = value; }
100
+ static styles = [
101
+ themeDefaultStyles,
102
+ cssManager.defaultStyles,
103
+ harnessCardStyles,
104
+ harnessPillStyles,
105
+ harnessMonoStyles,
106
+ css `
107
+ :host {
108
+ display: block;
109
+ font-family: var(--dees-font-family);
110
+ }
111
+
112
+ .header {
113
+ display: flex;
114
+ align-items: center;
115
+ gap: var(--dees-spacing-sm);
116
+ width: 100%;
117
+ padding: var(--dees-spacing-xs) var(--dees-spacing-md);
118
+ border: 0;
119
+ background: transparent;
120
+ color: inherit;
121
+ cursor: pointer;
122
+ font-family: inherit;
123
+ text-align: left;
124
+ }
125
+
126
+ .header:hover {
127
+ background: var(--dees-color-hover);
128
+ }
129
+
130
+ .toolIcon {
131
+ display: grid;
132
+ place-items: center;
133
+ width: 22px;
134
+ flex: 0 0 22px;
135
+ color: var(--dees-color-text-secondary);
136
+ }
137
+
138
+ .harness-card.status-running .toolIcon,
139
+ .harness-card.status-pending .toolIcon {
140
+ color: var(--dees-color-accent-primary);
141
+ }
142
+
143
+ .titleBlock {
144
+ min-width: 0;
145
+ flex: 1;
146
+ }
147
+
148
+ .titleRow {
149
+ display: flex;
150
+ align-items: center;
151
+ gap: var(--dees-spacing-sm);
152
+ }
153
+
154
+ .toolLabel {
155
+ color: var(--dees-color-text-primary);
156
+ font-size: var(--dees-font-control-size-sm, 12px);
157
+ font-weight: 600;
158
+ white-space: nowrap;
159
+ }
160
+
161
+ .badges {
162
+ display: flex;
163
+ gap: 4px;
164
+ flex-wrap: wrap;
165
+ }
166
+
167
+ .subtitle {
168
+ margin-top: 1px;
169
+ color: var(--dees-color-text-secondary);
170
+ font-size: var(--dees-font-caption1-size, 11px);
171
+ overflow: hidden;
172
+ text-overflow: ellipsis;
173
+ white-space: nowrap;
174
+ }
175
+
176
+ .metaColumn {
177
+ display: flex;
178
+ align-items: center;
179
+ gap: var(--dees-spacing-sm);
180
+ flex: 0 0 auto;
181
+ }
182
+
183
+ .duration {
184
+ color: var(--dees-color-text-muted);
185
+ font-size: var(--dees-font-caption1-size, 11px);
186
+ white-space: nowrap;
187
+ }
188
+
189
+ .body {
190
+ display: grid;
191
+ gap: var(--dees-spacing-sm);
192
+ padding: 0 var(--dees-spacing-md) var(--dees-spacing-md);
193
+ }
194
+
195
+ .kvGrid {
196
+ display: grid;
197
+ grid-template-columns: auto minmax(0, 1fr);
198
+ gap: 2px var(--dees-spacing-md);
199
+ font-size: var(--dees-font-control-size-sm, 12px);
200
+ }
201
+
202
+ .kvKey {
203
+ color: var(--dees-color-text-secondary);
204
+ white-space: nowrap;
205
+ }
206
+
207
+ .kvValue {
208
+ color: var(--dees-color-text-primary);
209
+ font-family: var(--dees-font-family-mono);
210
+ overflow-wrap: anywhere;
211
+ }
212
+
213
+ .bodyImage {
214
+ max-width: 100%;
215
+ max-height: 420px;
216
+ border-radius: var(--dees-radius-md);
217
+ border: 1px solid var(--dees-color-border-subtle);
218
+ }
219
+
220
+ dees-dataview-codebox {
221
+ font-family: var(--dees-font-family);
222
+ }
223
+ `,
224
+ ];
225
+ get descriptor() {
226
+ return this.toolRegistry.resolve(this.enrichedCall);
227
+ }
228
+ /** call with mcp meta derived from the name when the adapter didn't set it */
229
+ get enrichedCall() {
230
+ if (this.call.mcp)
231
+ return this.call;
232
+ const parsed = parseMcpName(this.call.name);
233
+ return parsed ? { ...this.call, mcp: { serverName: parsed.serverName, toolName: parsed.toolName } } : this.call;
234
+ }
235
+ get isOpen() {
236
+ if (this.expanded !== undefined)
237
+ return this.expanded;
238
+ const descriptor = this.descriptor;
239
+ if (this.call.status === 'error' || this.call.isError)
240
+ return true;
241
+ if (typeof descriptor.defaultExpanded === 'function')
242
+ return descriptor.defaultExpanded(this.enrichedCall);
243
+ return descriptor.defaultExpanded ?? false;
244
+ }
245
+ render() {
246
+ const call = this.enrichedCall;
247
+ const descriptor = this.descriptor;
248
+ const label = typeof descriptor.label === 'function' ? descriptor.label(call) : descriptor.label;
249
+ const subtitle = descriptor.subtitle?.(call) ?? '';
250
+ const statusTone = call.isError ? 'error' : call.status === 'completed' ? 'success' : call.status;
251
+ const duration = harnessFormatDuration(call.startedAt, call.finishedAt);
252
+ return html `
253
+ <div class="harness-card status-${call.isError ? 'error' : call.status} ${descriptor.destructive ? 'destructive' : ''}">
254
+ <button
255
+ class="header"
256
+ type="button"
257
+ aria-expanded=${this.isOpen ? 'true' : 'false'}
258
+ @click=${() => {
259
+ this.expanded = !this.isOpen;
260
+ }}
261
+ >
262
+ <span class="toolIcon"><dees-icon .icon=${descriptor.icon} iconSize="15"></dees-icon></span>
263
+ <span class="titleBlock">
264
+ <span class="titleRow">
265
+ <span class="toolLabel">${label}</span>
266
+ ${this.renderMcpBadges(call)}
267
+ </span>
268
+ ${subtitle ? html `<span class="subtitle" title=${subtitle}>${subtitle}</span>` : ''}
269
+ </span>
270
+ <span class="metaColumn">
271
+ ${duration ? html `<span class="duration">${duration}</span>` : ''}
272
+ <span class="harness-pill tone-${statusTone}">
273
+ ${call.isError ? 'error' : call.status}
274
+ </span>
275
+ </span>
276
+ </button>
277
+ ${this.isOpen ? html `<div class="body">${this.renderBody(call)}</div>` : ''}
278
+ </div>
279
+ `;
280
+ }
281
+ renderMcpBadges(call) {
282
+ if (!call.mcp)
283
+ return html ``;
284
+ const annotations = call.mcp.annotations;
285
+ return html `
286
+ <span class="badges">
287
+ <dees-badge type="default" .text=${call.mcp.serverName} rounded></dees-badge>
288
+ ${annotations?.readOnlyHint ? html `<dees-badge type="success" text="read-only" rounded></dees-badge>` : ''}
289
+ ${annotations?.destructiveHint ? html `<dees-badge type="error" text="destructive" rounded></dees-badge>` : ''}
290
+ ${annotations?.openWorldHint ? html `<dees-badge type="warning" text="open-world" rounded></dees-badge>` : ''}
291
+ ${annotations?.idempotentHint ? html `<dees-badge type="default" text="idempotent" rounded></dees-badge>` : ''}
292
+ </span>
293
+ `;
294
+ }
295
+ renderBody(call) {
296
+ const descriptor = this.descriptor;
297
+ const helpers = this.createHelpers();
298
+ if (descriptor.renderBody)
299
+ return descriptor.renderBody(call, helpers);
300
+ const builtin = builtinBodyRenderers[descriptor.kind] ?? builtinBodyRenderers.unknown;
301
+ return builtin(call, helpers);
302
+ }
303
+ createHelpers() {
304
+ return {
305
+ codeBlock: (code, language, filename) => html `
306
+ <dees-dataview-codebox
307
+ .progLang=${language ?? 'plaintext'}
308
+ .filename=${filename ?? ''}
309
+ .codeToDisplay=${code}
310
+ ></dees-dataview-codebox>
311
+ `,
312
+ diffBlock: (before, after, options) => html `
313
+ <dees-dataview-codebox
314
+ .progLang=${options?.language ?? 'plaintext'}
315
+ .filename=${options?.filename ?? ''}
316
+ .diffView=${options?.view ?? 'inline'}
317
+ .codeBefore=${before}
318
+ .codeToDisplay=${after}
319
+ ></dees-dataview-codebox>
320
+ `,
321
+ monoBlock: (text, options) => {
322
+ const maxChars = options?.maxChars ?? 6000;
323
+ const { text: shown, truncated } = harnessTruncate(text, this.outputExpanded ? Number.MAX_SAFE_INTEGER : maxChars);
324
+ return html `
325
+ <pre class="harness-mono ${options?.tone === 'error' ? 'tone-error' : ''}">${shown}${truncated ? '…' : ''}</pre>
326
+ ${truncated
327
+ ? html `
328
+ <button
329
+ class="harness-mono-expand"
330
+ type="button"
331
+ @click=${() => {
332
+ this.outputExpanded = true;
333
+ }}
334
+ >
335
+ Show all
336
+ </button>
337
+ `
338
+ : ''}
339
+ `;
340
+ },
341
+ keyValues: (pairs) => html `
342
+ <div class="kvGrid">
343
+ ${pairs.map(([key, value]) => html `
344
+ <div class="kvKey">${key}</div>
345
+ <div class="kvValue">${value}</div>
346
+ `)}
347
+ </div>
348
+ `,
349
+ contentBlocks: (blocks) => html `
350
+ <dees-harness-content-blocks .blocks=${blocks}></dees-harness-content-blocks>
351
+ `,
352
+ image: (dataBase64, mimeType, alt) => html `
353
+ <img class="bodyImage" src=${`data:${mimeType};base64,${dataBase64}`} alt=${alt ?? 'tool output image'} />
354
+ `,
355
+ };
356
+ }
357
+ constructor() {
358
+ super(...arguments);
359
+ __runInitializers(this, _outputExpanded_extraInitializers);
360
+ }
361
+ static {
362
+ __runInitializers(_classThis, _classExtraInitializers);
363
+ }
364
+ };
365
+ return DeesHarnessToolCard = _classThis;
366
+ })();
367
+ export { DeesHarnessToolCard };
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXRvb2wtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLXRvb2wtY2FyZC9kZWVzLWhhcm5lc3MtdG9vbC1jYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsWUFBWSxHQUdiLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9FLE9BQU8sK0RBQStELENBQUM7QUFDdkUsT0FBTyx1RUFBdUUsQ0FBQztBQUMvRSxPQUFPLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sOENBQThDLENBQUM7QUFRdEQ7Ozs7O0dBS0c7SUFFVSxtQkFBbUI7NEJBRC9CLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7Ozs7Ozs7O21DQUFuQixTQUFRLFdBQVc7Ozs7Z0NBSWpELFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt3Q0FHOUIsUUFBUSxDQUFD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
@@ -0,0 +1,2 @@
1
+ export * from './dees-harness-tool-card.js';
2
+ export * from './renderers.js';
@@ -0,0 +1,3 @@
1
+ export * from './dees-harness-tool-card.js';
2
+ export * from './renderers.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy10b29sLWNhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDIn0=
@@ -0,0 +1,5 @@
1
+ import { type TemplateResult } from '@design.estate/dees-element';
2
+ import type { IHarnessToolCall } from '../interfaces.js';
3
+ import type { IHarnessToolRenderHelpers } from '../toolregistry.js';
4
+ import '../dees-harness-todos/dees-harness-todos.js';
5
+ export declare const builtinBodyRenderers: Record<string, (call: IHarnessToolCall, helpers: IHarnessToolRenderHelpers) => TemplateResult>;
@@ -0,0 +1,183 @@
1
+ import { html } from '@design.estate/dees-element';
2
+ import { harnessIsRecord, harnessLanguageForPath, harnessParseTodos, harnessStringifyValue, harnessSummarizeValue, } from '../harness.helpers.js';
3
+ import '../dees-harness-todos/dees-harness-todos.js';
4
+ /**
5
+ * Built-in tool-card bodies, one per registry kind. Kept as render functions
6
+ * (not elements): they share the card chrome and differ only in body markup.
7
+ * Custom tools override via IHarnessToolDescriptor.renderBody.
8
+ */
9
+ const inputRecord = (call) => harnessIsRecord(call.input) ? call.input : {};
10
+ const outputText = (call) => {
11
+ if (call.errorText)
12
+ return call.errorText;
13
+ return harnessStringifyValue(call.output);
14
+ };
15
+ const filePathOf = (call) => {
16
+ const input = inputRecord(call);
17
+ return String(input.path ?? input.filePath ?? input.file ?? '');
18
+ };
19
+ const renderTerminal = (call, helpers) => {
20
+ const input = inputRecord(call);
21
+ const command = String(input.command ?? '');
22
+ const output = call.output;
23
+ let stdout = '';
24
+ let stderr = '';
25
+ let exitCode;
26
+ if (harnessIsRecord(output)) {
27
+ stdout = typeof output.stdout === 'string' ? output.stdout : harnessStringifyValue(output.stdout ?? '');
28
+ stderr = typeof output.stderr === 'string' ? output.stderr : '';
29
+ exitCode = typeof output.exitCode === 'number' ? output.exitCode : undefined;
30
+ }
31
+ else {
32
+ stdout = harnessStringifyValue(output);
33
+ }
34
+ return html `
35
+ ${command ? helpers.monoBlock(`$ ${command}`) : ''}
36
+ ${stdout ? helpers.monoBlock(stdout) : ''}
37
+ ${stderr ? helpers.monoBlock(stderr, { tone: 'error' }) : ''}
38
+ ${call.errorText ? helpers.monoBlock(call.errorText, { tone: 'error' }) : ''}
39
+ ${exitCode !== undefined
40
+ ? helpers.keyValues([['exit code', String(exitCode)]])
41
+ : ''}
42
+ `;
43
+ };
44
+ const renderFileRead = (call, helpers) => {
45
+ const path = filePathOf(call);
46
+ const content = outputText(call);
47
+ if (!content)
48
+ return helpers.keyValues([['file', path || '—']]);
49
+ return helpers.codeBlock(content, harnessLanguageForPath(path), path.split('/').pop() || undefined);
50
+ };
51
+ const renderFileWrite = (call, helpers) => {
52
+ const input = inputRecord(call);
53
+ const path = filePathOf(call);
54
+ const newContent = String(input.content ?? input.newContent ?? '');
55
+ const previousContent = String(input.oldContent ?? input.originalContent ?? input.before ?? '');
56
+ const filename = path.split('/').pop() || undefined;
57
+ const language = harnessLanguageForPath(path);
58
+ if (previousContent) {
59
+ return helpers.diffBlock(previousContent, newContent, { language, filename });
60
+ }
61
+ if (newContent) {
62
+ return helpers.codeBlock(newContent, language, filename);
63
+ }
64
+ return html `
65
+ ${helpers.keyValues([['file', path || '—']])}
66
+ ${outputText(call) ? helpers.monoBlock(outputText(call)) : ''}
67
+ `;
68
+ };
69
+ const renderFileDelete = (call, helpers) => {
70
+ return html `
71
+ ${helpers.keyValues([['file', filePathOf(call) || '—']])}
72
+ ${outputText(call) ? helpers.monoBlock(outputText(call), call.status === 'error' ? { tone: 'error' } : undefined) : ''}
73
+ `;
74
+ };
75
+ const renderDirList = (call, helpers) => {
76
+ const output = call.output;
77
+ const entries = Array.isArray(output)
78
+ ? output.map((entry) => String(entry))
79
+ : outputText(call).split('\n').filter(Boolean);
80
+ return helpers.monoBlock(entries.join('\n'));
81
+ };
82
+ const renderBrowser = (call, helpers) => {
83
+ const input = inputRecord(call);
84
+ const action = String(input.action ?? 'snapshot');
85
+ const pairs = [['action', action]];
86
+ if (input.url)
87
+ pairs.push(['url', String(input.url)]);
88
+ if (input.selector)
89
+ pairs.push(['selector', String(input.selector)]);
90
+ const output = call.output;
91
+ let screenshotBase64 = '';
92
+ if (harnessIsRecord(output)) {
93
+ screenshotBase64 = String(output.screenshotBase64 ?? output.screenshot ?? output.dataBase64 ?? '');
94
+ }
95
+ const script = String(input.script ?? '');
96
+ return html `
97
+ ${helpers.keyValues(pairs)}
98
+ ${script ? helpers.codeBlock(script, 'javascript') : ''}
99
+ ${screenshotBase64 ? helpers.image(screenshotBase64, 'image/png', 'browser screenshot') : ''}
100
+ ${!screenshotBase64 && outputText(call) ? helpers.monoBlock(outputText(call)) : ''}
101
+ `;
102
+ };
103
+ const renderHttp = (call, helpers) => {
104
+ const input = inputRecord(call);
105
+ const pairs = [];
106
+ if (input.url)
107
+ pairs.push(['url', String(input.url)]);
108
+ const body = input.body !== undefined ? harnessStringifyValue(input.body) : '';
109
+ const response = outputText(call);
110
+ return html `
111
+ ${pairs.length ? helpers.keyValues(pairs) : ''}
112
+ ${body ? helpers.codeBlock(body, 'json') : ''}
113
+ ${response ? helpers.codeBlock(response, 'json') : ''}
114
+ `;
115
+ };
116
+ const renderJson = (call, helpers) => {
117
+ const input = inputRecord(call);
118
+ const source = String(input.jsonString ?? '');
119
+ return html `
120
+ ${source ? helpers.codeBlock(source, 'json') : ''}
121
+ ${outputText(call) ? helpers.monoBlock(outputText(call), call.isError || call.status === 'error' ? { tone: 'error' } : undefined) : ''}
122
+ `;
123
+ };
124
+ const renderSearch = (call, helpers) => {
125
+ const summary = harnessSummarizeValue(call.input);
126
+ return html `
127
+ ${summary ? helpers.monoBlock(summary) : ''}
128
+ ${outputText(call) ? helpers.monoBlock(outputText(call)) : ''}
129
+ `;
130
+ };
131
+ const renderSubtask = (call, helpers) => {
132
+ const input = inputRecord(call);
133
+ const prompt = String(input.prompt ?? input.description ?? '');
134
+ return html `
135
+ ${prompt ? helpers.monoBlock(prompt) : ''}
136
+ ${outputText(call) ? helpers.monoBlock(outputText(call)) : ''}
137
+ `;
138
+ };
139
+ const renderTodo = (call, helpers) => {
140
+ const todos = harnessParseTodos(call.input);
141
+ if (!todos.length)
142
+ return helpers.monoBlock(harnessSummarizeValue(call.input) || outputText(call));
143
+ return html `<dees-harness-todos compact .todos=${todos}></dees-harness-todos>`;
144
+ };
145
+ const renderMcp = (call, helpers) => {
146
+ return html `
147
+ ${call.contentBlocks?.length ? helpers.contentBlocks(call.contentBlocks) : ''}
148
+ ${call.structuredContent !== undefined
149
+ ? helpers.codeBlock(harnessStringifyValue(call.structuredContent), 'json')
150
+ : ''}
151
+ ${!call.contentBlocks?.length && call.structuredContent === undefined && outputText(call)
152
+ ? helpers.monoBlock(outputText(call), call.isError ? { tone: 'error' } : undefined)
153
+ : ''}
154
+ ${call.input !== undefined && harnessSummarizeValue(call.input)
155
+ ? helpers.monoBlock(harnessSummarizeValue(call.input))
156
+ : ''}
157
+ `;
158
+ };
159
+ const renderUnknown = (call, helpers) => {
160
+ const inputSummary = harnessSummarizeValue(call.input);
161
+ const inputJson = !inputSummary && call.input !== undefined ? harnessStringifyValue(call.input) : '';
162
+ return html `
163
+ ${inputSummary ? helpers.monoBlock(inputSummary) : ''}
164
+ ${inputJson ? helpers.codeBlock(inputJson, 'json') : ''}
165
+ ${outputText(call) ? helpers.monoBlock(outputText(call), call.status === 'error' ? { tone: 'error' } : undefined) : ''}
166
+ `;
167
+ };
168
+ export const builtinBodyRenderers = {
169
+ 'terminal': renderTerminal,
170
+ 'file-read': renderFileRead,
171
+ 'file-write': renderFileWrite,
172
+ 'file-delete': renderFileDelete,
173
+ 'dir-list': renderDirList,
174
+ 'browser': renderBrowser,
175
+ 'http': renderHttp,
176
+ 'json': renderJson,
177
+ 'search': renderSearch,
178
+ 'subtask': renderSubtask,
179
+ 'todo': renderTodo,
180
+ 'mcp': renderMcp,
181
+ 'unknown': renderUnknown,
182
+ };
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3MtdG9vbC1jYXJkL3JlbmRlcmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBR3hFLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyw2Q0FBNkMsQ0FBQztBQUVyRDs7OztHQUlHO0FBRUgsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFzQixFQUEyQixFQUFFLENBQ3RFLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVoRCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQXNCLEVBQVUsRUFBRTtJQUNwRCxJQUFJLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBc0IsRUFBVSxFQUFFO0lBQ3BELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXNCLEVBQUUsT0FBa0MsRUFBa0IsRUFBRTtJQUNwRyxNQUFN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
@@ -0,0 +1,19 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import type { IHarnessUsage } from '../interfaces.js';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'dees-harness-usage': DeesHarnessUsage;
6
+ }
7
+ }
8
+ /**
9
+ * Token-usage chip. Compact mode shows only the total; the full mode shows
10
+ * in/out/total. Cache read/write detail lives in the tooltip.
11
+ */
12
+ export declare class DeesHarnessUsage extends DeesElement {
13
+ static demo: () => TemplateResult<1>;
14
+ static demoGroups: string[];
15
+ accessor usage: IHarnessUsage;
16
+ accessor compact: boolean;
17
+ static styles: import("@design.estate/dees-element").CSSResult[];
18
+ render(): TemplateResult;
19
+ }
@@ -0,0 +1 @@
1
+ export declare const demoFunc: () => import("@design.estate/dees-element").TemplateResult<1>;
@@ -0,0 +1,25 @@
1
+ import { html } from '@design.estate/dees-element';
2
+ export const demoFunc = () => html `
3
+ <style>
4
+ .usageDemo {
5
+ display: flex;
6
+ gap: 16px;
7
+ align-items: center;
8
+ max-width: 520px;
9
+ margin: 40px auto;
10
+ padding: 24px;
11
+ border-radius: var(--dees-radius-xl);
12
+ background: var(--dees-color-bg-secondary);
13
+ }
14
+ </style>
15
+ <div class="usageDemo">
16
+ <dees-harness-usage
17
+ .usage=${{ inputTokens: 1840, outputTokens: 310, totalTokens: 2150, cacheReadTokens: 1200 }}
18
+ ></dees-harness-usage>
19
+ <dees-harness-usage
20
+ compact
21
+ .usage=${{ inputTokens: 152_000, outputTokens: 9_400, totalTokens: 161_400 }}
22
+ ></dees-harness-usage>
23
+ </div>
24
+ `;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXVzYWdlLmRlbW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy11c2FnZS9kZWVzLWhhcm5lc3MtdXNhZ2UuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O2VBZW5CLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRTs7OztlQUlsRixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFOzs7Q0FHakYsQ0FBQyJ9