@cardstack/boxel-cli 0.11.0-unstable.1 → 0.11.0-unstable.3

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 (177) hide show
  1. package/bundled-realms/pretui/components/agent-mark.gts +98 -0
  2. package/bundled-realms/pretui/components/agent-question.gts +340 -37
  3. package/bundled-realms/pretui/components/answer-footer.gts +249 -0
  4. package/bundled-realms/pretui/components/card-embed.gts +523 -0
  5. package/bundled-realms/pretui/components/card-pills.gts +725 -0
  6. package/bundled-realms/pretui/components/code-block.gts +87 -45
  7. package/bundled-realms/pretui/components/collapsed-turn.gts +133 -12
  8. package/bundled-realms/pretui/components/compaction-chip.gts +81 -67
  9. package/bundled-realms/pretui/components/composer-cap.gts +516 -0
  10. package/bundled-realms/pretui/components/context-ring.gts +108 -0
  11. package/bundled-realms/pretui/components/diff-block.gts +1002 -31
  12. package/bundled-realms/pretui/components/diff-stat.gts +102 -0
  13. package/bundled-realms/pretui/components/jump-chip.gts +86 -53
  14. package/bundled-realms/pretui/components/markdown-stream.gts +799 -0
  15. package/bundled-realms/pretui/components/markdown-surface.gts +71 -0
  16. package/bundled-realms/pretui/components/plan-mark.gts +147 -0
  17. package/bundled-realms/pretui/components/prose.gts +185 -8
  18. package/bundled-realms/pretui/components/prose.md +6 -8
  19. package/bundled-realms/pretui/components/quick-look.gts +377 -0
  20. package/bundled-realms/pretui/components/reactions.gts +136 -0
  21. package/bundled-realms/pretui/components/recommendation.gts +67 -36
  22. package/bundled-realms/pretui/components/result-card.gts +58 -22
  23. package/bundled-realms/pretui/components/segmented-control.gts +13 -8
  24. package/bundled-realms/pretui/components/session-prep.gts +12 -11
  25. package/bundled-realms/pretui/components/sliding-highlight.gts +8 -3
  26. package/bundled-realms/pretui/components/speaker-label.gts +132 -0
  27. package/bundled-realms/pretui/components/state-glyph.gts +121 -0
  28. package/bundled-realms/pretui/components/step-list.gts +62 -60
  29. package/bundled-realms/pretui/components/stick-to-bottom.gts +1150 -0
  30. package/bundled-realms/pretui/components/system-line.gts +143 -0
  31. package/bundled-realms/pretui/components/task-checklist.gts +184 -0
  32. package/bundled-realms/pretui/components/thinking.gts +63 -94
  33. package/bundled-realms/pretui/components/tool-change-table.gts +285 -0
  34. package/bundled-realms/pretui/components/tool-gate.gts +462 -0
  35. package/bundled-realms/pretui/components/tool-group.gts +920 -0
  36. package/bundled-realms/pretui/components/tool-icon.ts +64 -0
  37. package/bundled-realms/pretui/components/tool-meta.gts +82 -0
  38. package/bundled-realms/pretui/components/tool-plan.gts +197 -0
  39. package/bundled-realms/pretui/components/tool-row.gts +2087 -0
  40. package/bundled-realms/pretui/components/turn-changes.gts +227 -0
  41. package/bundled-realms/pretui/components/user-bubble.gts +575 -0
  42. package/bundled-realms/pretui/components/work-item.gts +185 -48
  43. package/bundled-realms/pretui/docs/scroll-anchoring-protocol.md +136 -0
  44. package/bundled-realms/pretui/internal/markdown-projection.ts +438 -0
  45. package/bundled-realms/pretui/internal/mount-queue.ts +79 -0
  46. package/bundled-realms/pretui/internal/tool-phrases.ts +168 -0
  47. package/bundled-realms/pretui/package.json +2 -1
  48. package/bundled-test-harness/assets/{ai-module-creation-test-beRNwH-e.js → ai-module-creation-test-B6FQKqIl.js} +1 -1
  49. package/bundled-test-harness/assets/{app-QAuw0l8v.js → app-KpPqdyX3.js} +4 -4
  50. package/bundled-test-harness/assets/{binary-upload-dedupe-test-bI8T0QLl.js → binary-upload-dedupe-test-DN00y1tM.js} +1 -1
  51. package/bundled-test-harness/assets/{can-invoke-test-DVaU_yRT.js → can-invoke-test-Bl-EUFM3.js} +1 -1
  52. package/bundled-test-harness/assets/{card-chooser-paging-test-DnxMnXKR.js → card-chooser-paging-test-BNuZRHX3.js} +1 -1
  53. package/bundled-test-harness/assets/{card-chooser-test-DUSnLr-u.js → card-chooser-test-wKfPOOT4.js} +1 -1
  54. package/bundled-test-harness/assets/{card-def-field-def-relationships-test-GBUr3tFK.js → card-def-field-def-relationships-test-CduQ6zan.js} +1 -1
  55. package/bundled-test-harness/assets/{card-delete-test-CQveO1VC.js → card-delete-test-DKxolj5o.js} +1 -1
  56. package/bundled-test-harness/assets/{check-correctness-test-D2M2p66N.js → check-correctness-test-B-kgHztp.js} +1 -1
  57. package/bundled-test-harness/assets/choreo-BEHW-NOc.js +2 -0
  58. package/bundled-test-harness/assets/{choreo-CJfBb_EY.js → choreo-C2cpCfhA.js} +164 -13
  59. package/bundled-test-harness/assets/{choreo-feature-reel-test-D2OrygZv.js → choreo-feature-reel-test-CPI_6nkT.js} +2 -2
  60. package/bundled-test-harness/assets/{choreo-gallery-w07xqtO-.js → choreo-gallery-BxA9cyzF.js} +3 -3
  61. package/bundled-test-harness/assets/{choreo-gallery-build-order-test-yQg4JER6.js → choreo-gallery-build-order-test-CLVoseAJ.js} +1 -1
  62. package/bundled-test-harness/assets/{choreo-gallery-compositor-test-C2THCXJN.js → choreo-gallery-compositor-test-BpT5Ia6B.js} +1 -1
  63. package/bundled-test-harness/assets/{choreo-gallery-cover-test-D4T_Tk4s.js → choreo-gallery-cover-test-DL_fdSsh.js} +1 -1
  64. package/bundled-test-harness/assets/{choreo-gallery-crossing-stage-test-tHUPJ-Hy.js → choreo-gallery-crossing-stage-test-BcKHhpOK.js} +2 -2
  65. package/bundled-test-harness/assets/{choreo-gallery-demos-alive-test-BOtBOnEZ.js → choreo-gallery-demos-alive-test-KufLhXG8.js} +1 -1
  66. package/bundled-test-harness/assets/{choreo-gallery-drift-test-D_6U1Z2c.js → choreo-gallery-drift-test-Cx58rYIA.js} +1 -1
  67. package/bundled-test-harness/assets/{choreo-gallery-escort-test-DDBU0n4C.js → choreo-gallery-escort-test-Wz-emmID.js} +1 -1
  68. package/bundled-test-harness/assets/{choreo-gallery-films-test-CgW1NSdr.js → choreo-gallery-films-test-BFrVs5WW.js} +2 -2
  69. package/bundled-test-harness/assets/{choreo-gallery-filter-test-DUIsNwdO.js → choreo-gallery-filter-test-DCKQkhwe.js} +1 -1
  70. package/bundled-test-harness/assets/{choreo-gallery-fold-test-Chzlxvdr.js → choreo-gallery-fold-test-UtpDgpG9.js} +1 -1
  71. package/bundled-test-harness/assets/{choreo-gallery-guide-pages-test-DOWnqALT.js → choreo-gallery-guide-pages-test-rXDU9JLM.js} +1 -1
  72. package/bundled-test-harness/assets/{choreo-gallery-guides-test-Dra2J4LJ.js → choreo-gallery-guides-test-DfVFdIuU.js} +3 -3
  73. package/bundled-test-harness/assets/{choreo-gallery-hang-test-zzn1eiB-.js → choreo-gallery-hang-test-Cj7MbkFf.js} +1 -1
  74. package/bundled-test-harness/assets/{choreo-gallery-highlight-test-CW99hncQ.js → choreo-gallery-highlight-test-D6CF3IYZ.js} +2 -2
  75. package/bundled-test-harness/assets/{choreo-gallery-inline-edit-test-CYFm1kUz.js → choreo-gallery-inline-edit-test-LfHWsbqc.js} +1 -1
  76. package/bundled-test-harness/assets/{choreo-gallery-interruption-test-CYIBrKV9.js → choreo-gallery-interruption-test-CvQQAgTp.js} +2 -2
  77. package/bundled-test-harness/assets/{choreo-gallery-lone-stack-test-DL8R3SG7.js → choreo-gallery-lone-stack-test-D7Zci7fm.js} +1 -1
  78. package/bundled-test-harness/assets/{choreo-gallery-navigation-test-Dcv04kDx.js → choreo-gallery-navigation-test-DB1EnBEW.js} +1 -1
  79. package/bundled-test-harness/assets/{choreo-gallery-playhead-transport-test-Cfz7GsXl.js → choreo-gallery-playhead-transport-test-CtBlc6AJ.js} +1 -1
  80. package/bundled-test-harness/assets/{choreo-gallery-poplayout-subtree-test-CwoklBkW.js → choreo-gallery-poplayout-subtree-test-BQbmjsvI.js} +1 -1
  81. package/bundled-test-harness/assets/{choreo-gallery-presence-modes-test-BDCIZzJ0.js → choreo-gallery-presence-modes-test-CIdXVG1K.js} +1 -1
  82. package/bundled-test-harness/assets/{choreo-gallery-presentation-test-DlyiHwFf.js → choreo-gallery-presentation-test-C_rPFp29.js} +1 -1
  83. package/bundled-test-harness/assets/{choreo-gallery-reduced-motion-test-DVz5SKNR.js → choreo-gallery-reduced-motion-test-CH5w8Lw-.js} +2 -2
  84. package/bundled-test-harness/assets/{choreo-gallery-sheet-standalone-test-CpD_-BvS.js → choreo-gallery-sheet-standalone-test-CDgI4mGX.js} +1 -1
  85. package/bundled-test-harness/assets/{choreo-gallery-sheet-test-BjvAKHDL.js → choreo-gallery-sheet-test-5lsFX7Rk.js} +1 -1
  86. package/bundled-test-harness/assets/{choreo-gallery-site-test-oq_7y_PN.js → choreo-gallery-site-test-DbMa2xeC.js} +2 -2
  87. package/bundled-test-harness/assets/{choreo-gallery-stage-Bzr4_8Xd.js → choreo-gallery-stage-b3Sk86hp.js} +2 -2
  88. package/bundled-test-harness/assets/{choreo-gallery-stage-keyboard-test-a83d2euJ.js → choreo-gallery-stage-keyboard-test-ds6fT5Eg.js} +1 -1
  89. package/bundled-test-harness/assets/{choreo-gallery-stages-test-C9Sl1kH6.js → choreo-gallery-stages-test-ahioKCct.js} +2 -2
  90. package/bundled-test-harness/assets/{choreo-gallery-subdivision-test-BVVnkOwk.js → choreo-gallery-subdivision-test-g7anTDhT.js} +1 -1
  91. package/bundled-test-harness/assets/{choreo-gallery-table-plan-test-B0YdYEA0.js → choreo-gallery-table-plan-test-Bozc4uUf.js} +1 -1
  92. package/bundled-test-harness/assets/{choreo-gallery-theater-test-BLA147xw.js → choreo-gallery-theater-test-kE535d-b.js} +3 -3
  93. package/bundled-test-harness/assets/{choreo-gallery-tuning-test-DSXiNzCh.js → choreo-gallery-tuning-test-6rHkQBnZ.js} +1 -1
  94. package/bundled-test-harness/assets/{choreo-gallery-widget-room-test-BI574PdO.js → choreo-gallery-widget-room-test-0Vq-uTo1.js} +2 -2
  95. package/bundled-test-harness/assets/{choreo-gallery-wires-test-B6Mz2WZl.js → choreo-gallery-wires-test-CdtnAWYO.js} +1 -1
  96. package/bundled-test-harness/assets/clip-BLfuHi8g.js +2 -0
  97. package/bundled-test-harness/assets/{clip-C_pXjVvY.js → clip-q1QE5f73.js} +1 -1
  98. package/bundled-test-harness/assets/{codeblocks-test-AdolhdCA.js → codeblocks-test-BDD7qK_V.js} +1 -1
  99. package/bundled-test-harness/assets/{compaction-test-DvyAQq56.js → compaction-test-BweolkhG.js} +1 -1
  100. package/bundled-test-harness/assets/{container-DIF_9lZ9.css → container-B5B6u-xm.css} +29 -22
  101. package/bundled-test-harness/assets/{container-DvvqmNpg.js → container-BnJjIM6J.js} +9 -6
  102. package/bundled-test-harness/assets/{create-listing-modal-test-D95JfQab.js → create-listing-modal-test-FvcAKpIa.js} +1 -1
  103. package/bundled-test-harness/assets/{debug-message-test-BcNtj7Wr.js → debug-message-test-CJ18Evt7.js} +1 -1
  104. package/bundled-test-harness/assets/{externals-6ZWftYIb.js → externals-BWjhmCD4.js} +12 -12
  105. package/bundled-test-harness/assets/{fallback-banner-live-delete-test-5lnN1pv2.js → fallback-banner-live-delete-test-C2H3BrT-.js} +1 -1
  106. package/bundled-test-harness/assets/{fallback-banner-test-DFb_m_Kq.js → fallback-banner-test-C10aYjkj.js} +1 -1
  107. package/bundled-test-harness/assets/{fallback-models-test-p3YIwj1L.js → fallback-models-test-BxoPiaGF.js} +1 -1
  108. package/bundled-test-harness/assets/{file-attachment-test-CmyjNWRR.js → file-attachment-test-DeKyzYaz.js} +1 -1
  109. package/bundled-test-harness/assets/film-B68PjRlr.js +2 -0
  110. package/bundled-test-harness/assets/{film-D7vtJO5q.js → film-CeUpnHN_.js} +6 -6
  111. package/bundled-test-harness/assets/{film-DN0A8JHx.js → film-DBZqyqW4.js} +6 -6
  112. package/bundled-test-harness/assets/{general-test-CX-TFDuX.js → general-test-BewzrpoB.js} +1 -1
  113. package/bundled-test-harness/assets/{glimmer-motion-and-choreo-in-cards-test-BHte2t9G.js → glimmer-motion-and-choreo-in-cards-test-HA-INN3d.js} +14 -14
  114. package/bundled-test-harness/assets/{glimmer-motion-and-choreo-test-BPNVeIio.js → glimmer-motion-and-choreo-test-BZ0ZuuAw.js} +3 -3
  115. package/bundled-test-harness/assets/{index-query-engine-test-Dz7Q4Xmk.js → index-query-engine-test-BtI8Y2LR.js} +1 -1
  116. package/bundled-test-harness/assets/{instance-filter-matcher-test-BoLU3bVg.js → instance-filter-matcher-test-BHXHGHjE.js} +1 -1
  117. package/bundled-test-harness/assets/{main-Dlgp8c7v.js → main-CqAHZ2kK.js} +1 -1
  118. package/bundled-test-harness/assets/{message-tool-test-CfjRSJvt.js → message-tool-test-NMaPJFsd.js} +1 -1
  119. package/bundled-test-harness/assets/{model-cost-tier-test-mZG84Uso.js → model-cost-tier-test-BgbfN2LH.js} +1 -1
  120. package/bundled-test-harness/assets/{operation-lowering-test-B0KpI1xu.js → operation-lowering-test-C4IaOjsA.js} +1 -1
  121. package/bundled-test-harness/assets/{operator-mode-card-chooser-test-KWS8lq16.js → operator-mode-card-chooser-test-Bwe47Rn7.js} +1 -1
  122. package/bundled-test-harness/assets/{operator-mode-links-test-CViFt0Ws.js → operator-mode-links-test-BU4jkC-B.js} +1 -1
  123. package/bundled-test-harness/assets/{operator-mode-test-D0gZM2yw.js → operator-mode-test-Bh0rGM9z.js} +1 -1
  124. package/bundled-test-harness/assets/{operator-mode-ui-test-CEvHJ9DS.js → operator-mode-ui-test-whgUw0ju.js} +1 -1
  125. package/bundled-test-harness/assets/{overlay-menu-items-test-Pw80RXsr.js → overlay-menu-items-test-Cwn1vr8q.js} +1 -1
  126. package/bundled-test-harness/assets/{overlays-BnOM360u.js → overlays-BOzLbVDK.js} +1 -1
  127. package/bundled-test-harness/assets/{overlays-kBVfa4i8.js → overlays-C_PuGDGh.js} +1 -1
  128. package/bundled-test-harness/assets/{past-sessions-test-CW0-Bjav.js → past-sessions-test-Bh24N-Kz.js} +1 -1
  129. package/bundled-test-harness/assets/{permission-checking-realm-test-D5uXQypS.js → permission-checking-realm-test-DKnnAy0f.js} +1 -1
  130. package/bundled-test-harness/assets/{plate-CFvCDv2t.js → plate-BL7UtyKE.js} +1 -1
  131. package/bundled-test-harness/assets/plate-CqG3igCJ.js +2 -0
  132. package/bundled-test-harness/assets/player-BJfsgdSI.js +2 -0
  133. package/bundled-test-harness/assets/{player-DzuYjrTU.js → player-Da_CIsp_.js} +1 -1
  134. package/bundled-test-harness/assets/{realm-config-policy-standing-test-Btatheni.js → realm-config-policy-standing-test-DngdYypq.js} +1 -1
  135. package/bundled-test-harness/assets/{realm-config-routing-rule-edit-test-Dh5zW13o.js → realm-config-routing-rule-edit-test-_rkFU8SN.js} +1 -1
  136. package/bundled-test-harness/assets/{realm-config-settings-test-BJa8gv_C.js → realm-config-settings-test-CR9NH0Zn.js} +1 -1
  137. package/bundled-test-harness/assets/{reasoning-test-2Zp37cQB.js → reasoning-test-0lH10kRl.js} +1 -1
  138. package/bundled-test-harness/assets/{room-message-test-BsrON13e.js → room-message-test-C-PddE4Y.js} +1 -1
  139. package/bundled-test-harness/assets/{run-BMyvn_UL.js → run-D4n4LPcK.js} +96 -6
  140. package/bundled-test-harness/assets/{run-realm-code-BxktQf6R.js → run-realm-code-C8N7DtN-.js} +1 -1
  141. package/bundled-test-harness/assets/{run-realm-code-test-7grpTos-.js → run-realm-code-test-DBdp147q.js} +1 -1
  142. package/bundled-test-harness/assets/{schema-generation-test-CM9ggQji.js → schema-generation-test-CB1Hb7GQ.js} +1 -1
  143. package/bundled-test-harness/assets/{scrolling-test-BER00htB.js → scrolling-test-3PhVin8h.js} +1 -1
  144. package/bundled-test-harness/assets/{searchable-option-test-BBr5BPow.js → searchable-option-test-BAdOiL4U.js} +1 -1
  145. package/bundled-test-harness/assets/{sending-test-BJGobs2E.js → sending-test-KSmu1tSJ.js} +1 -1
  146. package/bundled-test-harness/assets/{skills-test-GPOsHRN6.js → skills-test-D-dlcFpd.js} +1 -1
  147. package/bundled-test-harness/assets/{src-Df148w_b.js → src-B_DEhPze.js} +4 -4
  148. package/bundled-test-harness/assets/{src-Cf2wv-Le.js → src-BoTgwqUA.js} +2 -2
  149. package/bundled-test-harness/assets/{store-test-QvvHimzH.js → store-test-CEW7xQjZ.js} +1 -1
  150. package/bundled-test-harness/assets/{test-support-rNHuieEc.js → test-support-FXDPpIl3.js} +1 -1
  151. package/bundled-test-harness/assets/{test-support-C6N_2X-l.js → test-support-VX6ukQNR.js} +1 -1
  152. package/bundled-test-harness/assets/{tests-CmsQ-Z_3.js → tests-QYqqa6nv.js} +84 -84
  153. package/bundled-test-harness/assets/{text-input-validator-test-CYYH2N0L.js → text-input-validator-test-D8iNOWep.js} +1 -1
  154. package/bundled-test-harness/assets/{titles-B1pTaIfP.js → titles-DFJj5O0E.js} +1 -1
  155. package/bundled-test-harness/assets/titles-xGlgu7ys.js +2 -0
  156. package/bundled-test-harness/assets/{to-device-streaming-test-Ctqa0bVp.js → to-device-streaming-test-trCX-505.js} +1 -1
  157. package/bundled-test-harness/assets/{token-usage-test-BQVbK3X0.js → token-usage-test-C6sULooH.js} +1 -1
  158. package/bundled-test-harness/assets/{tools-DU8Rc15s.js → tools-UJfD-_al.js} +1 -1
  159. package/bundled-test-harness/assets/{tools-test-B13yvEKE.js → tools-test-Brav31AV.js} +1 -1
  160. package/bundled-test-harness/assets/{worker-DHBEBihX.js → worker-9ph9_Lpv.js} +31 -26
  161. package/bundled-test-harness/index.html +8 -8
  162. package/bundled-test-harness/tests/index.html +8 -8
  163. package/bundled-types/choreo/beacons.ts +16 -4
  164. package/bundled-types/choreo/changeset.ts +25 -5
  165. package/bundled-types/choreo/choreo.gts +245 -3
  166. package/bundled-types/choreo/far.ts +39 -0
  167. package/bundled-types/choreo/index.ts +2 -0
  168. package/bundled-types/choreo/run.ts +104 -1
  169. package/bundled-types/host-app/lib/realm-runner/worker.ts +8 -51
  170. package/bundled-types/runtime-common/realm-runner-script.d.ts +3 -0
  171. package/package.json +1 -1
  172. package/bundled-test-harness/assets/choreo-B3Z9QhDH.js +0 -2
  173. package/bundled-test-harness/assets/clip-BjcXuTwN.js +0 -2
  174. package/bundled-test-harness/assets/film-DMDPP7ma.js +0 -2
  175. package/bundled-test-harness/assets/plate-66qnQ-M9.js +0 -2
  176. package/bundled-test-harness/assets/player-pygg1PwA.js +0 -2
  177. package/bundled-test-harness/assets/titles-Ccpcl-jq.js +0 -2
@@ -1,5 +1,8 @@
1
1
  // Pretui — CompactionChip: a marker that earlier context was compacted, expandable to what was kept.
2
2
  import Component from '@glimmer/component';
3
+ import ChevronDownIcon from '@cardstack/boxel-icons/chevron-down';
4
+ import ListFilterIcon from '@cardstack/boxel-icons/list-filter';
5
+ import XIcon from '@cardstack/boxel-icons/x';
3
6
  import { tracked } from '@glimmer/tracking';
4
7
  import { on } from '@ember/modifier';
5
8
  import { guidFor } from '@ember/object/internals';
@@ -18,12 +21,15 @@ import { Collapse } from '../internal/agentic-chat';
18
21
 
19
22
  export interface CompactionChipSignature {
20
23
  Args: {
21
- /** 'running' while compacting, 'done' once the summary exists */
22
- state?: 'running' | 'done';
24
+ /** 'running' while compacting, 'done' once the summary exists,
25
+ * 'failed' when it could not be made (the history is kept as it was) */
26
+ state?: 'running' | 'done' | 'failed';
23
27
  /** label while running (default 'Compacting long history') */
24
28
  runningLabel?: string;
25
29
  /** label once settled (default 'History compacted') */
26
30
  doneLabel?: string;
31
+ /** label when it failed (default 'Could not compact history') */
32
+ failedLabel?: string;
27
33
  /** how many messages were condensed */
28
34
  messageCount?: number;
29
35
  /** how many tool calls were condensed */
@@ -49,16 +55,23 @@ export class CompactionChip extends Component<CompactionChipSignature> {
49
55
 
50
56
  private panelId = guidFor(this) + '-summary';
51
57
 
52
- get state(): 'running' | 'done' {
58
+ get state(): 'running' | 'done' | 'failed' {
53
59
  return this.args.state ?? 'done';
54
60
  }
55
61
  get running(): boolean {
56
62
  return this.state === 'running';
57
63
  }
64
+ get failed(): boolean {
65
+ return this.state === 'failed';
66
+ }
58
67
  get label(): string {
59
- return this.running
60
- ? (this.args.runningLabel ?? 'Compacting long history')
61
- : (this.args.doneLabel ?? 'History compacted');
68
+ if (this.running) {
69
+ return this.args.runningLabel ?? 'Compacting long history';
70
+ }
71
+ if (this.failed) {
72
+ return this.args.failedLabel ?? 'Could not compact history';
73
+ }
74
+ return this.args.doneLabel ?? 'History compacted';
62
75
  }
63
76
  /** the condensed-counts line, assembled as text so it reads in greyscale */
64
77
  get counts(): string | undefined {
@@ -74,11 +87,14 @@ export class CompactionChip extends Component<CompactionChipSignature> {
74
87
  return parts.length ? parts.join(' · ') + ' condensed' : undefined;
75
88
  }
76
89
  get expandable(): boolean {
77
- return !this.running;
90
+ return this.state === 'done';
78
91
  }
79
92
  get expanded(): boolean {
80
93
  return (
81
- this.args.expanded ?? this.innerExpanded ?? this.args.defaultExpanded ?? false
94
+ this.args.expanded ??
95
+ this.innerExpanded ??
96
+ this.args.defaultExpanded ??
97
+ false
82
98
  );
83
99
  }
84
100
 
@@ -108,38 +124,31 @@ export class CompactionChip extends Component<CompactionChipSignature> {
108
124
  data-test-pretui-compaction-toggle
109
125
  {{on 'click' this.toggle}}
110
126
  >
111
- <svg viewBox='0 0 24 24' aria-hidden='true' focusable='false'>
112
- <path
113
- d='M4 8h16M7 12h10M10 16h4'
114
- fill='none'
115
- stroke='currentColor'
116
- stroke-width='2'
117
- stroke-linecap='round'
118
- />
119
- </svg>
127
+ <ListFilterIcon width='13' height='13' aria-hidden='true' />
120
128
  <span class='pretui-compaction-label'>{{this.label}}</span>
121
129
  {{#if this.counts}}
122
130
  <span class='pretui-compaction-counts'>{{this.counts}}</span>
123
131
  {{/if}}
124
- <svg
132
+ <ChevronDownIcon
125
133
  class='pretui-compaction-chev'
126
- viewBox='0 0 24 24'
134
+ width='13'
135
+ height='13'
127
136
  aria-hidden='true'
128
- focusable='false'
129
- >
130
- <path
131
- d='M6 9l6 6 6-6'
132
- fill='none'
133
- stroke='currentColor'
134
- stroke-width='2.2'
135
- stroke-linecap='round'
136
- stroke-linejoin='round'
137
- />
138
- </svg>
137
+ />
139
138
  </button>
140
139
  {{else}}
141
140
  <span class='pretui-compaction-chip' role='status'>
142
- <Spinner @size={{11}} />
141
+ {{#if this.failed}}
142
+ <XIcon
143
+ class='pretui-compaction-failed'
144
+ width='13'
145
+ height='13'
146
+ aria-hidden='true'
147
+ data-test-pretui-compaction-failed-mark
148
+ />
149
+ {{else}}
150
+ <Spinner @size={{11}} />
151
+ {{/if}}
143
152
  <span class='pretui-compaction-label'>{{this.label}}</span>
144
153
  </span>
145
154
  {{/if}}
@@ -167,44 +176,55 @@ export class CompactionChip extends Component<CompactionChipSignature> {
167
176
  .pretui-compaction {
168
177
  display: flex;
169
178
  flex-direction: column;
170
- gap: 4px;
171
- font-size: var(--text-ui-sm, 11.5px);
179
+ gap: var(--boxel-sp-4xs);
180
+ font-size: var(--boxel-ui-label-font-size);
181
+ line-height: var(--boxel-ui-label-line-height);
172
182
  }
173
183
  .pretui-compaction-marker {
174
184
  display: flex;
175
185
  align-items: center;
176
- gap: 10px;
186
+ gap: var(--boxel-sp-xs);
187
+ }
188
+ /* a failure colours its mark, not its words. The mark's rule names
189
+ the chip as well, so it outranks the quiet colour every icon in
190
+ the chip takes below */
191
+ .pretui-compaction[data-state='failed'] .pretui-compaction-chip {
192
+ color: var(--foreground);
193
+ }
194
+ .pretui-compaction-chip > .pretui-compaction-failed {
195
+ color: var(--destructive-ink);
177
196
  }
178
197
  .pretui-compaction-rule {
179
198
  flex: 1;
180
199
  height: 1px;
181
- min-width: 12px;
182
- background: var(--border);
200
+ min-width: var(--boxel-sp-sm);
201
+ background-color: var(--border);
183
202
  }
184
203
  .pretui-compaction-chip {
185
204
  display: inline-flex;
186
205
  align-items: center;
187
- gap: 7px;
188
- min-height: 26px;
189
- padding: 0 10px;
206
+ gap: var(--boxel-sp-xs);
207
+ min-height: 1.625rem;
208
+ padding: 0 var(--boxel-sp-sm);
190
209
  border: 0;
191
- border-radius: 999px;
192
- background: var(--inset, var(--boxel-100));
193
- box-shadow: var(
194
- --pretui-shadow-hairline,
195
- 0 0 0 1px var(--border)
196
- );
197
- font: inherit;
198
- font-size: var(--text-ui-sm, 11.5px);
210
+ border-radius: var(--boxel-border-radius-sm);
211
+ background-color: var(--inset);
212
+ box-shadow: var(--pretui-shadow-hairline, 0 0 0 1px var(--border));
213
+ font-family: inherit;
214
+ font-size: var(--boxel-ui-label-font-size);
215
+ line-height: var(--boxel-ui-label-line-height);
199
216
  color: var(--muted-foreground);
200
- flex: none;
217
+ /* shrinks between its rules, so a narrow panel truncates the
218
+ label instead of pushing the chip past the edge */
219
+ flex: 0 1 auto;
220
+ min-width: 0;
201
221
  max-width: 100%;
202
222
  }
203
223
  button.pretui-compaction-chip {
204
224
  cursor: pointer;
205
225
  }
206
226
  button.pretui-compaction-chip:hover {
207
- background: var(--hover, var(--boxel-100));
227
+ background-color: var(--hover);
208
228
  color: var(--foreground);
209
229
  }
210
230
  button.pretui-compaction-chip:focus-visible {
@@ -212,13 +232,11 @@ export class CompactionChip extends Component<CompactionChipSignature> {
212
232
  outline-offset: 2px;
213
233
  }
214
234
  .pretui-compaction-chip > svg {
215
- width: 13px;
216
- height: 13px;
217
235
  flex: none;
218
- color: var(--ink-3, var(--boxel-400));
236
+ color: var(--subtle-foreground);
219
237
  }
220
238
  .pretui-compaction-label {
221
- font-weight: 500;
239
+ font-weight: 400;
222
240
  min-width: 0;
223
241
  overflow: hidden;
224
242
  text-overflow: ellipsis;
@@ -226,7 +244,7 @@ export class CompactionChip extends Component<CompactionChipSignature> {
226
244
  }
227
245
  .pretui-compaction-counts {
228
246
  flex: none;
229
- color: var(--ink-3, var(--boxel-400));
247
+ color: var(--subtle-foreground);
230
248
  font-variant-numeric: tabular-nums;
231
249
  }
232
250
  .pretui-compaction-chev {
@@ -237,23 +255,19 @@ export class CompactionChip extends Component<CompactionChipSignature> {
237
255
  transform: rotate(180deg);
238
256
  }
239
257
  .pretui-compaction-summary {
240
- margin: 4px auto 0;
241
- max-width: 62ch;
242
- padding: 9px 12px;
243
- border-radius: 10px;
244
- background: var(--inset, var(--boxel-100));
245
- box-shadow: var(
246
- --pretui-shadow-hairline,
247
- 0 0 0 1px var(--border)
248
- );
258
+ margin: var(--boxel-sp-4xs) auto 0;
259
+ max-inline-size: 68ch;
260
+ padding: var(--boxel-sp-xs) var(--boxel-sp-sm);
261
+ border-radius: var(--boxel-border-radius-sm);
262
+ background-color: var(--inset);
263
+ box-shadow: var(--pretui-shadow-hairline, 0 0 0 1px var(--border));
249
264
  color: var(--muted-foreground);
250
- line-height: 1.6;
251
265
  }
252
266
  .pretui-compaction-summary p {
253
267
  margin: 0;
254
268
  }
255
269
  .pretui-compaction-none {
256
- color: var(--ink-3, var(--boxel-400));
270
+ color: var(--subtle-foreground);
257
271
  font-style: italic;
258
272
  }
259
273
  @media (prefers-reduced-motion: reduce) {
@@ -263,8 +277,8 @@ export class CompactionChip extends Component<CompactionChipSignature> {
263
277
  }
264
278
  @media (any-pointer: coarse) {
265
279
  button.pretui-compaction-chip {
266
- min-height: 44px;
267
- padding: 0 16px;
280
+ min-height: 2.75rem;
281
+ padding: 0 var(--boxel-sp);
268
282
  }
269
283
  }
270
284
  }