@cardstack/boxel-cli 0.13.0-unstable.4 → 0.13.0-unstable.5

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 (1050) hide show
  1. package/bundled-realms/pretui/components/doc-report.gts +2 -2
  2. package/bundled-realms/pretui/components/doc-report.usage.gts +3 -3
  3. package/bundled-realms/pretui/components/form-field.md +1 -1
  4. package/bundled-realms/pretui/components/icon-button.md +1 -1
  5. package/bundled-realms/pretui/components/popup.md +1 -1
  6. package/bundled-realms/pretui/components/switch.gts +13 -0
  7. package/bundled-realms/pretui/components/switch.md +5 -3
  8. package/bundled-realms/pretui/components/theme-frame.gts +49 -22
  9. package/bundled-realms/pretui/components/tooltip.gts +141 -42
  10. package/bundled-realms/pretui/components/tooltip.md +10 -12
  11. package/bundled-realms/pretui/components/tooltip.usage.gts +3 -5
  12. package/bundled-realms/pretui/docs/structure.md +1 -1
  13. package/bundled-realms/pretui/internal/overlay.gts +4 -2
  14. package/bundled-realms/pretui/pretui-css.gts +6 -2
  15. package/bundled-realms/pretui/theme-scoped-css.gts +262 -0
  16. package/bundled-test-harness/assets/account-switch-failed-test-DwAZq6Sc.js +45 -0
  17. package/bundled-test-harness/assets/adapter-C_6pnsx1.js +2 -0
  18. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-zMYtJWBv.js +112 -0
  19. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-CwhAV-Ow.js +130 -0
  20. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DNgclkGJ.js +46 -0
  21. package/bundled-test-harness/assets/ai-assistant-test-DGYFiRTb.js +2223 -0
  22. package/bundled-test-harness/assets/ai-function-generation-test-Dj6WzKkh.js +1176 -0
  23. package/bundled-test-harness/assets/ai-module-creation-test-EsOoJpQ1.js +151 -0
  24. package/bundled-test-harness/assets/aibot-message-uGaCPn5o.js +1312 -0
  25. package/bundled-test-harness/assets/app-pIzBYfiZ.js +14146 -0
  26. package/bundled-test-harness/assets/apply-markdown-edit-test-CPhfeg1i.js +230 -0
  27. package/bundled-test-harness/assets/ask-user-picker-NVRkhKwt.js +370 -0
  28. package/bundled-test-harness/assets/ask-user-picker-test-SsZqFm9W.js +39 -0
  29. package/bundled-test-harness/assets/assistant-transcript-test-DesuBCIB.js +57 -0
  30. package/bundled-test-harness/assets/audio-metadata-extractor-test-8JM6oZXG.js +1176 -0
  31. package/bundled-test-harness/assets/authed-fetch-test-yPTMe-9V.js +73 -0
  32. package/bundled-test-harness/assets/avif-image-def-test-Kyknj908.js +187 -0
  33. package/bundled-test-harness/assets/basic-test-D9OrrMaq.js +139 -0
  34. package/bundled-test-harness/assets/binary-upload-dedupe-test-Dnxlbbu6.js +308 -0
  35. package/bundled-test-harness/assets/bot-registration-test-Bk2lTaCW.js +97 -0
  36. package/bundled-test-harness/assets/box-test-BbV9sMyU.js +50 -0
  37. package/bundled-test-harness/assets/brand-guide-attachments-test-z4wTsKbI.js +84 -0
  38. package/bundled-test-harness/assets/brand-guide-custom-css-test-BlSJE8xo.js +196 -0
  39. package/bundled-test-harness/assets/brand-guide-edit-test-DJ1OQ6IB.js +140 -0
  40. package/bundled-test-harness/assets/brand-logo-mark-field-test-ux7eetkO.js +86 -0
  41. package/bundled-test-harness/assets/broken-link-template-test-CqB3MWyw.js +192 -0
  42. package/bundled-test-harness/assets/bundled-base-modules-test-B2oNLZSJ.js +54 -0
  43. package/bundled-test-harness/assets/bundled-base-oracle-test-DelPfFjn.js +37 -0
  44. package/bundled-test-harness/assets/buried-stack-item-scroll-test-Ixsl1tS0.js +236 -0
  45. package/bundled-test-harness/assets/button-BvYQm_A1.js +141 -0
  46. package/bundled-test-harness/assets/bxl-cyclic-graph-test-p23WCLRW.js +47 -0
  47. package/bundled-test-harness/assets/bxl-expression-test-CVTQYT_C.js +250 -0
  48. package/bundled-test-harness/assets/bxl-indexing-test-D_A7X2sr.js +212 -0
  49. package/bundled-test-harness/assets/bxl-platform-module-test-Cltfyybp.js +71 -0
  50. package/bundled-test-harness/assets/can-invoke-test-DJi7jMaU.js +455 -0
  51. package/bundled-test-harness/assets/can-read-realm-test-CIz6WX_K.js +56 -0
  52. package/bundled-test-harness/assets/cancel-indexing-job-test-0LlrOgYK.js +69 -0
  53. package/bundled-test-harness/assets/capture-test-diHIWmh0.js +360 -0
  54. package/bundled-test-harness/assets/card-api-test-Ci9b0ghP.js +198 -0
  55. package/bundled-test-harness/assets/card-basics-test-RKQoQWZD.js +5364 -0
  56. package/bundled-test-harness/assets/card-chooser-paging-test-BoUyFMEw.js +235 -0
  57. package/bundled-test-harness/assets/card-chooser-test-7ZwhxxkH.js +393 -0
  58. package/bundled-test-harness/assets/card-context-search-results-KmkXJbmC.js +30 -0
  59. package/bundled-test-harness/assets/card-context-search-results-test-CpMr8OlX.js +184 -0
  60. package/bundled-test-harness/assets/card-def-field-def-relationships-test-ByPl5n55.js +562 -0
  61. package/bundled-test-harness/assets/card-def-menu-items-test-ohuHc0b4.js +228 -0
  62. package/bundled-test-harness/assets/card-delete-test-Be971b-V.js +466 -0
  63. package/bundled-test-harness/assets/card-error-3q1o3i0e.js +72 -0
  64. package/bundled-test-harness/assets/card-error-awaiting-index-test-DPgYKfbF.js +53 -0
  65. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-CVfeJyjt.js +219 -0
  66. package/bundled-test-harness/assets/card-playground-test-D-7bi4PQ.js +1491 -0
  67. package/bundled-test-harness/assets/card-prerender-DemTfK_a.js +12939 -0
  68. package/bundled-test-harness/assets/card-thunk-error-test-DCBh1vRT.js +48 -0
  69. package/bundled-test-harness/assets/card-type-service-test-DXPrfVYk.js +161 -0
  70. package/bundled-test-harness/assets/check-correctness-test-DjE7r1X2.js +1093 -0
  71. package/bundled-test-harness/assets/check-domain-availability-test-U10xSKbY.js +98 -0
  72. package/bundled-test-harness/assets/chip-0r_r9SC8.js +44 -0
  73. package/bundled-test-harness/assets/choreo-Ci5dG5fv.js +2 -0
  74. package/bundled-test-harness/assets/choreo-D1K9RyjM.js +1031 -0
  75. package/bundled-test-harness/assets/choreo-feature-reel-test-vzmW-SFd.js +155 -0
  76. package/bundled-test-harness/assets/choreo-gallery-build-order-test-J6n0_PKm.js +436 -0
  77. package/bundled-test-harness/assets/choreo-gallery-compositor-test-DSi1N9bi.js +399 -0
  78. package/bundled-test-harness/assets/choreo-gallery-cover-test-BT05gNKC.js +214 -0
  79. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-BIuLOZH6.js +133 -0
  80. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-ClGjpnj6.js +42 -0
  81. package/bundled-test-harness/assets/choreo-gallery-drift-test-OjxMXV0Y.js +620 -0
  82. package/bundled-test-harness/assets/choreo-gallery-escort-test-D6VL4FfT.js +187 -0
  83. package/bundled-test-harness/assets/choreo-gallery-films-test-DBcDHGx8.js +140 -0
  84. package/bundled-test-harness/assets/choreo-gallery-filter-test-BUghtJZe.js +46 -0
  85. package/bundled-test-harness/assets/choreo-gallery-fold-test-0D9-_h_I.js +180 -0
  86. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-DS41eNNV.js +114 -0
  87. package/bundled-test-harness/assets/choreo-gallery-guides-test-CZnaxUNJ.js +321 -0
  88. package/bundled-test-harness/assets/choreo-gallery-hang-test-WFvsJ-MJ.js +426 -0
  89. package/bundled-test-harness/assets/choreo-gallery-highlight-test-Dn0hYPLC.js +60 -0
  90. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-C5WvS67s.js +370 -0
  91. package/bundled-test-harness/assets/choreo-gallery-interruption-test-CgT9RKTe.js +176 -0
  92. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-BZgqbTJd.js +104 -0
  93. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CWzXkvbW.js +193 -0
  94. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Dt71t4CU.js +111 -0
  95. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-B_rDq4em.js +127 -0
  96. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-j_cZ9cAM.js +100 -0
  97. package/bundled-test-harness/assets/choreo-gallery-presentation-test-CIFKR65J.js +157 -0
  98. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BvRCiCvB.js +145 -0
  99. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-DgO2MBzU.js +89 -0
  100. package/bundled-test-harness/assets/choreo-gallery-sheet-test-BntUKT_P.js +48 -0
  101. package/bundled-test-harness/assets/choreo-gallery-site-test-CvSE6Jyq.js +237 -0
  102. package/bundled-test-harness/assets/choreo-gallery-stage-Dj6tFzon.js +256 -0
  103. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-CkDrAPA8.js +102 -0
  104. package/bundled-test-harness/assets/choreo-gallery-stages-test-DHUmzoRW.js +35 -0
  105. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-BZ9-cDFh.js +138 -0
  106. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-7uP6mZpo.js +144 -0
  107. package/bundled-test-harness/assets/choreo-gallery-theater-test-DgEue9FD.js +252 -0
  108. package/bundled-test-harness/assets/choreo-gallery-tuning-test-CfPx5iCp.js +95 -0
  109. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-o9T2EFKq.js +88 -0
  110. package/bundled-test-harness/assets/choreo-gallery-wires-test-73JLkxn6.js +148 -0
  111. package/bundled-test-harness/assets/client-telemetry-test-DFM4mML2.js +340 -0
  112. package/bundled-test-harness/assets/clip-CsRtHZiN.js +92 -0
  113. package/bundled-test-harness/assets/clip-CycGr0Lf.js +2 -0
  114. package/bundled-test-harness/assets/code-block-DRE8KQZQ.js +502 -0
  115. package/bundled-test-harness/assets/code-ref-test-CDcqE8_C.js +163 -0
  116. package/bundled-test-harness/assets/code-submode-availability-test-DPTqZYYm.js +198 -0
  117. package/bundled-test-harness/assets/code-submode-test-AHV4mzJ4.js +1839 -0
  118. package/bundled-test-harness/assets/codeblocks-test-D9pbJMK8.js +418 -0
  119. package/bundled-test-harness/assets/codemirror-editor-test-BeAMVivu.js +1512 -0
  120. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bnb7_KUT.js +366 -0
  121. package/bundled-test-harness/assets/color-field-test-CR6gGEqE.js +212 -0
  122. package/bundled-test-harness/assets/compaction-test-BSqAGv4g.js +150 -0
  123. package/bundled-test-harness/assets/computed-test-DtyZGgdc.js +1320 -0
  124. package/bundled-test-harness/assets/container-CEslVSTe.js +10884 -0
  125. package/bundled-test-harness/assets/content-preview-components-test-BztI4fz-.js +462 -0
  126. package/bundled-test-harness/assets/copy-and-edit-test-Cqw7kcur.js +292 -0
  127. package/bundled-test-harness/assets/copy-card-test-D5m3eVEH.js +218 -0
  128. package/bundled-test-harness/assets/copy-file-to-realm-test-FPY-6Ddm.js +148 -0
  129. package/bundled-test-harness/assets/copy-source-test-9pJD-qey.js +56 -0
  130. package/bundled-test-harness/assets/create-file-test-DjMf88u_.js +1086 -0
  131. package/bundled-test-harness/assets/create-file-test-XbgOqg38.js +464 -0
  132. package/bundled-test-harness/assets/create-listing-modal-test-DyGlGMWu.js +273 -0
  133. package/bundled-test-harness/assets/create-listing-pr-request-test-CBtIV0Z8.js +117 -0
  134. package/bundled-test-harness/assets/create-spec-test-4xR0gM7E.js +256 -0
  135. package/bundled-test-harness/assets/create-submission-workflow-test-DQpWrpGT.js +132 -0
  136. package/bundled-test-harness/assets/create-workspace-test-BQAudgpS.js +104 -0
  137. package/bundled-test-harness/assets/credential-fields-test-DXKBdbZD.js +200 -0
  138. package/bundled-test-harness/assets/csv-file-def-test-Cnp4y834.js +102 -0
  139. package/bundled-test-harness/assets/dashboard-CmuOhIYC.js +3628 -0
  140. package/bundled-test-harness/assets/dashboard-CzN49x74.css +2400 -0
  141. package/bundled-test-harness/assets/dashboard-add-workspace-test-T32hWB-g.js +50 -0
  142. package/bundled-test-harness/assets/dashboard-agents-test-BN5maCgQ.js +334 -0
  143. package/bundled-test-harness/assets/dashboard-archive-test-BzwUte_Z.js +128 -0
  144. package/bundled-test-harness/assets/dashboard-delete-test-D2Gcp81V.js +163 -0
  145. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-BgKNIr35.js +71 -0
  146. package/bundled-test-harness/assets/dashboard-duplicate-test-D7JEWylc.js +222 -0
  147. package/bundled-test-harness/assets/dashboard-get-started-test-DOGPzGoA.js +374 -0
  148. package/bundled-test-harness/assets/dashboard-ir2bakJS.js +142 -0
  149. package/bundled-test-harness/assets/dashboard-pinned-cards-test-Bn_P9xJU.js +220 -0
  150. package/bundled-test-harness/assets/dashboard-publish-test-64sGQ0nG.js +70 -0
  151. package/bundled-test-harness/assets/dashboard-reindex-test-DJjYq1ct.js +115 -0
  152. package/bundled-test-harness/assets/dashboard-section-rail-test-ZkAhWu5V.js +169 -0
  153. package/bundled-test-harness/assets/dashboard-state-test-BbkpPB5L.js +162 -0
  154. package/bundled-test-harness/assets/dashboard-test-CBLdPrSt.js +545 -0
  155. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DFT3R1Zx.js +62 -0
  156. package/bundled-test-harness/assets/dashboard-workspace-test-DqBdCFo2.js +537 -0
  157. package/bundled-test-harness/assets/dashboard-workspaces-section-test-CH1HDfxR.js +410 -0
  158. package/bundled-test-harness/assets/data-file-def-preview-test-CNsZwQEJ.js +155 -0
  159. package/bundled-test-harness/assets/date-time-fields-test-CEFaZTnF.js +359 -0
  160. package/bundled-test-harness/assets/debug-message-test-0hv0RwE_.js +117 -0
  161. package/bundled-test-harness/assets/declared-captures-test-C-0yPRU7.js +879 -0
  162. package/bundled-test-harness/assets/delete-workspace-test-CZOwGy78.js +102 -0
  163. package/bundled-test-harness/assets/diffing-test-BEKI905O.js +210 -0
  164. package/bundled-test-harness/assets/download-file-to-realm-test-C1kAGDll.js +119 -0
  165. package/bundled-test-harness/assets/editor-test-C9x5ZY6g.js +688 -0
  166. package/bundled-test-harness/assets/edits-D76-aanh.js +651 -0
  167. package/bundled-test-harness/assets/email-field-test-LGkrB_2B.js +75 -0
  168. package/bundled-test-harness/assets/enum-field-test-CPyV1J-m.js +935 -0
  169. package/bundled-test-harness/assets/error-display-test-bWuUtfIG.js +343 -0
  170. package/bundled-test-harness/assets/evaluate-module-test-CbS5h8t3.js +91 -0
  171. package/bundled-test-harness/assets/execute-atomic-operations-test-B4Kfco0k.js +113 -0
  172. package/bundled-test-harness/assets/externals-CDQm-Lm7.js +4393 -0
  173. package/bundled-test-harness/assets/fallback-banner-live-delete-test-DQSiTzvj.js +207 -0
  174. package/bundled-test-harness/assets/fallback-banner-test-CJFKLpOy.js +225 -0
  175. package/bundled-test-harness/assets/fallback-banner-test-DQkrFE4-.js +53 -0
  176. package/bundled-test-harness/assets/fallback-models-test-CiWfmxaB.js +161 -0
  177. package/bundled-test-harness/assets/fetch-card-json-test-DULUqUEu.js +61 -0
  178. package/bundled-test-harness/assets/field-configuration-test-BXZq28xa.js +551 -0
  179. package/bundled-test-harness/assets/field-markdown-domain-test-DdXCifs6.js +616 -0
  180. package/bundled-test-harness/assets/field-markdown-oversize-test-DouPPTHX.js +88 -0
  181. package/bundled-test-harness/assets/field-markdown-primitives-test-DSRGJeyl.js +365 -0
  182. package/bundled-test-harness/assets/field-markdown-specialized-test-DlTYLl_s.js +534 -0
  183. package/bundled-test-harness/assets/field-playground-test-NhS4VvoN.js +894 -0
  184. package/bundled-test-harness/assets/field-support-predicates-test-DWpyT1Qf.js +167 -0
  185. package/bundled-test-harness/assets/file-attachment-test-m72-VerW.js +796 -0
  186. package/bundled-test-harness/assets/file-chooser-panel-test-DuAqD9bn.js +153 -0
  187. package/bundled-test-harness/assets/file-chooser-test-CjaXXwpT.js +504 -0
  188. package/bundled-test-harness/assets/file-def-format-templates-test-BDs4OmHq.js +380 -0
  189. package/bundled-test-harness/assets/file-def-live-reload-test-BqTdnq-W.js +124 -0
  190. package/bundled-test-harness/assets/file-def-menu-items-test-DqdINXsD.js +138 -0
  191. package/bundled-test-harness/assets/file-def-navigation-test-BPGr0SQy.js +109 -0
  192. package/bundled-test-harness/assets/file-def-serialization-test-CvjW-FlC.js +89 -0
  193. package/bundled-test-harness/assets/file-def-test-C-Yv_NjS.js +216 -0
  194. package/bundled-test-harness/assets/file-preview-live-reload-test-MzwGwasU.js +310 -0
  195. package/bundled-test-harness/assets/file-resource-primitives-test-D3GmfqNs.js +255 -0
  196. package/bundled-test-harness/assets/file-tree-from-index-test-CfldnUgm.js +96 -0
  197. package/bundled-test-harness/assets/file-tree-test--0ZCPRe9.js +851 -0
  198. package/bundled-test-harness/assets/file-view-model-test-BDIAeBV8.js +346 -0
  199. package/bundled-test-harness/assets/filedef-export-shape-test-B2tgU404.js +61 -0
  200. package/bundled-test-harness/assets/film-D1E-odYG.js +13 -0
  201. package/bundled-test-harness/assets/film-D25Y0ED6.js +2 -0
  202. package/bundled-test-harness/assets/film-D97U-ydx.js +4074 -0
  203. package/bundled-test-harness/assets/flac-audio-def-test-ByoXMoQ1.js +143 -0
  204. package/bundled-test-harness/assets/font-metadata-extractor-test-hawLTDTG.js +415 -0
  205. package/bundled-test-harness/assets/formatted-aibot-message-test-Bdx_-Ktn.js +109 -0
  206. package/bundled-test-harness/assets/formatted-user-message-test-CodbrU3t.js +43 -0
  207. package/bundled-test-harness/assets/freestyle-test-faQhSciz.js +17 -0
  208. package/bundled-test-harness/assets/full-reindex-realm-test-CE5RJTIC.js +101 -0
  209. package/bundled-test-harness/assets/garbage-collection-test-v-3sev77.js +403 -0
  210. package/bundled-test-harness/assets/general-test-DQuxDvXK.js +923 -0
  211. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-CucWyrkH.js +65 -0
  212. package/bundled-test-harness/assets/generic-file-def-preview-test-_EDRsebi.js +71 -0
  213. package/bundled-test-harness/assets/get-available-realm-identifiers-test-CV023yek.js +47 -0
  214. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test--DOu3DyV.js +47 -0
  215. package/bundled-test-harness/assets/get-default-writable-realm-test-Bic8jl6R.js +54 -0
  216. package/bundled-test-harness/assets/get-published-realms-test-DrA5YcFN.js +71 -0
  217. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-jfU6SIWn.js +54 -0
  218. package/bundled-test-harness/assets/get-relationship-membership-state-test-Ccy2Z7MN.js +1308 -0
  219. package/bundled-test-harness/assets/get-user-system-card-test-Bmq2lmWv.js +67 -0
  220. package/bundled-test-harness/assets/gif-image-def-test-N1mMQC-X.js +188 -0
  221. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-DzPKH76g.js +160 -0
  222. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-D9mlcQuN.js +74 -0
  223. package/bundled-test-harness/assets/gts-file-def-test-BL1jpQ9J.js +100 -0
  224. package/bundled-test-harness/assets/head-format-preview-test-BVCaPQqc.js +158 -0
  225. package/bundled-test-harness/assets/helpers-Ds68JxHe.js +5 -0
  226. package/bundled-test-harness/assets/host-mode-service-B4bisRdR.js +262 -0
  227. package/bundled-test-harness/assets/host-mode-test-BmkN2PCJ.js +831 -0
  228. package/bundled-test-harness/assets/host-submode-test-C6SxQ796.js +1392 -0
  229. package/bundled-test-harness/assets/html-component-test-CNQ9wF0Q.js +65 -0
  230. package/bundled-test-harness/assets/html-def-test-BcaCVVQq.js +160 -0
  231. package/bundled-test-harness/assets/html-meta-extractor-test-BU1hjkTp.js +60 -0
  232. package/bundled-test-harness/assets/hydratable-card-test-CX6MWiti.js +426 -0
  233. package/bundled-test-harness/assets/icon-button-C1zH38Nc.js +67 -0
  234. package/bundled-test-harness/assets/image-metadata-extractor-test-CakSBPZ_.js +1109 -0
  235. package/bundled-test-harness/assets/index-changes-test-D8RtgfyG.js +367 -0
  236. package/bundled-test-harness/assets/index-query-engine-test-BOvxkx07.js +2593 -0
  237. package/bundled-test-harness/assets/index-writer-test-B_bR2fjw.js +3040 -0
  238. package/bundled-test-harness/assets/inspector-test-BwPXJj1S.js +2058 -0
  239. package/bundled-test-harness/assets/instance-filter-matcher-test-COAlkUed.js +788 -0
  240. package/bundled-test-harness/assets/instantiate-card-test-BVQhZjpq.js +164 -0
  241. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DzQLG41H.js +475 -0
  242. package/bundled-test-harness/assets/interact-submode-setup-C5bKXq73.js +566 -0
  243. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-Cd3dpjhB.js +99 -0
  244. package/bundled-test-harness/assets/invite-user-to-room-test-Brabz1tt.js +142 -0
  245. package/bundled-test-harness/assets/invoke-card-operation-test-C1Q1FUf4.js +333 -0
  246. package/bundled-test-harness/assets/isolated-render-test-BLJfS7BU.js +51 -0
  247. package/bundled-test-harness/assets/job-scoped-doc-cache-test-Bgv5woaB.js +181 -0
  248. package/bundled-test-harness/assets/job-scoped-instance-residency-test-C_bB6KpR.js +103 -0
  249. package/bundled-test-harness/assets/jpg-image-def-test-gdLIKocD.js +697 -0
  250. package/bundled-test-harness/assets/json-file-def-test-CPYMRBY-.js +95 -0
  251. package/bundled-test-harness/assets/key-notices-badge-test-DemslfLw.js +155 -0
  252. package/bundled-test-harness/assets/key-readiness-test-5tq5JycL.js +190 -0
  253. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-BbhDZ2PH.js +398 -0
  254. package/bundled-test-harness/assets/linksto-error-sentinel-test-C2t7fFPi.js +238 -0
  255. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test--U_UvUty.js +354 -0
  256. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-Dj3Xy0ZF.js +303 -0
  257. package/bundled-test-harness/assets/linksto-sentinel-reload-test-D0dK4Jjs.js +197 -0
  258. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test---IYiXok.js +260 -0
  259. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CT04MhES.js +196 -0
  260. package/bundled-test-harness/assets/lint-and-fix-test-aadgx7rX.js +51 -0
  261. package/bundled-test-harness/assets/live-test-BGij_vuc.js +100 -0
  262. package/bundled-test-harness/assets/live-test-CppvValf.js +2 -0
  263. package/bundled-test-harness/assets/load-default-skills-test-Cp2m_ebp.js +74 -0
  264. package/bundled-test-harness/assets/loader-parallel-prefetch-test-vU_26Jqu.js +257 -0
  265. package/bundled-test-harness/assets/loader-test-CTaw8K_B.js +482 -0
  266. package/bundled-test-harness/assets/loading-test-DGGt4qZZ.js +63 -0
  267. package/bundled-test-harness/assets/m4a-audio-def-test-DAiReOXH.js +190 -0
  268. package/bundled-test-harness/assets/main-DUKPWRts.js +5 -0
  269. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-CIXq9FqR.js +470 -0
  270. package/bundled-test-harness/assets/markdown-embed-chooser-test-zFGh9WfP.js +334 -0
  271. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-Byn_WFwY.js +447 -0
  272. package/bundled-test-harness/assets/markdown-embed-preview-test-Y3iFMttg.js +368 -0
  273. package/bundled-test-harness/assets/markdown-fallback-test-Br1TPkLZ.js +316 -0
  274. package/bundled-test-harness/assets/markdown-file-def-test-Crm2MAnq.js +380 -0
  275. package/bundled-test-harness/assets/markdown-helpers-test-CZ9Vvywc.js +188 -0
  276. package/bundled-test-harness/assets/markdown-highlighting-test-CFMkoVDl.js +244 -0
  277. package/bundled-test-harness/assets/markdown-preview-Df5fp1SY.js +72 -0
  278. package/bundled-test-harness/assets/markdown-preview-test-DDaPzsVs.js +238 -0
  279. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-aH6HQly1.js +146 -0
  280. package/bundled-test-harness/assets/markdown-skill-search-test-CiNLQs-5.js +80 -0
  281. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-DaA8w1Jj.js +63 -0
  282. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-21GIlf55.js +300 -0
  283. package/bundled-test-harness/assets/matrix-service-personal-realm-test-jn9DUENm.js +125 -0
  284. package/bundled-test-harness/assets/matrix-service-realm-servers-test-eNZVJakl.js +55 -0
  285. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-Cabm8_dY.js +132 -0
  286. package/bundled-test-harness/assets/matrix-service-relogin-test-C77EFgjc.js +59 -0
  287. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-BgM0fPiO.js +35 -0
  288. package/bundled-test-harness/assets/menu-Cl50TSFe.js +3561 -0
  289. package/bundled-test-harness/assets/message-service-subscription-test-CfEqH2jP.js +110 -0
  290. package/bundled-test-harness/assets/message-service-test-DsTzH1In.js +144 -0
  291. package/bundled-test-harness/assets/message-tool-test-C5xVfTtj.js +33 -0
  292. package/bundled-test-harness/assets/midi-audio-def-test-goLRCNCZ.js +182 -0
  293. package/bundled-test-harness/assets/migrate-skill-test-yPCbVfxG.js +161 -0
  294. package/bundled-test-harness/assets/mini-YXjrY_tH.js +1404 -0
  295. package/bundled-test-harness/assets/mini-card-chooser-test-DrllikHB.js +272 -0
  296. package/bundled-test-harness/assets/mini-file-chooser-test-BfqayhmI.js +201 -0
  297. package/bundled-test-harness/assets/mock-matrix-C7BrPS6S.js +2 -0
  298. package/bundled-test-harness/assets/mock-matrix-FjsXmU7-.js +15107 -0
  299. package/bundled-test-harness/assets/modal-BgaZavcs.js +322 -0
  300. package/bundled-test-harness/assets/model-cost-tier-test-CZlu1zww.js +174 -0
  301. package/bundled-test-harness/assets/model-file-extract-test-CjEBupY5.js +206 -0
  302. package/bundled-test-harness/assets/module-transpile-cache-test-XW6DDsmz.js +67 -0
  303. package/bundled-test-harness/assets/monaco-test-DkoRuFiQ.js +100 -0
  304. package/bundled-test-harness/assets/mp3-audio-def-test-v369NNsQ.js +133 -0
  305. package/bundled-test-harness/assets/multiple-stacks-test-CJpYPWdM.js +208 -0
  306. package/bundled-test-harness/assets/nested-query-field-render-test-CfDrBcUN.js +249 -0
  307. package/bundled-test-harness/assets/no-stacks-test-MmsJeLpz.js +48 -0
  308. package/bundled-test-harness/assets/number-field-test-A7B2r0M5.js +184 -0
  309. package/bundled-test-harness/assets/office-file-def-test-BNRvFmCB.js +263 -0
  310. package/bundled-test-harness/assets/office-metadata-extractor-test-zlDoEIEp.js +218 -0
  311. package/bundled-test-harness/assets/office-poster-capture-test-DdFEaOxR.js +203 -0
  312. package/bundled-test-harness/assets/ogg-audio-def-test-kk91BzQY.js +196 -0
  313. package/bundled-test-harness/assets/open-create-listing-modal-test-D1Dl1pov.js +131 -0
  314. package/bundled-test-harness/assets/open-image-in-new-tab-test-DyCmdMyO.js +52 -0
  315. package/bundled-test-harness/assets/open-secure-window-test-dz1vPudF.js +253 -0
  316. package/bundled-test-harness/assets/open-workspace-test-BvTcskzP.js +46 -0
  317. package/bundled-test-harness/assets/operation-lowering-test-CKkamOQt.js +2957 -0
  318. package/bundled-test-harness/assets/operations-invocation-test-BMj42rQe.js +523 -0
  319. package/bundled-test-harness/assets/operations-optimistic-test-KJLyzT8v.js +203 -0
  320. package/bundled-test-harness/assets/operations-query-test-J3HcnaoK.js +459 -0
  321. package/bundled-test-harness/assets/operations-store-reconciliation-test-CkbGBMBQ.js +406 -0
  322. package/bundled-test-harness/assets/operations-test-C7zXXpRW.js +2518 -0
  323. package/bundled-test-harness/assets/operator-mode-acceptance-test-BPolI_RD.js +1195 -0
  324. package/bundled-test-harness/assets/operator-mode-card-chooser-test-CQ1v8med.js +1036 -0
  325. package/bundled-test-harness/assets/operator-mode-links-test-BMHEauS3.js +797 -0
  326. package/bundled-test-harness/assets/operator-mode-test-blL_JVF8.js +696 -0
  327. package/bundled-test-harness/assets/operator-mode-ui-test-BG6I7-Hc.js +1045 -0
  328. package/bundled-test-harness/assets/overlay-D2rQi8lJ.js +427 -0
  329. package/bundled-test-harness/assets/overlay-menu-items-test-D-zmRQQ0.js +331 -0
  330. package/bundled-test-harness/assets/overlays-COinwHCP.js +2 -0
  331. package/bundled-test-harness/assets/overlays-detached-element-test-C73nMXes.js +56 -0
  332. package/bundled-test-harness/assets/overlays-nTqcu69K.js +75 -0
  333. package/bundled-test-harness/assets/panel-D9SEMehG.js +15124 -0
  334. package/bundled-test-harness/assets/past-sessions-test-De9N4wVX.js +321 -0
  335. package/bundled-test-harness/assets/patch-fields-test-Bp2IE0Jw.js +1014 -0
  336. package/bundled-test-harness/assets/patch-instance-test-DssuRGKP.js +348 -0
  337. package/bundled-test-harness/assets/pdf-file-def-test-Barj9ffD.js +111 -0
  338. package/bundled-test-harness/assets/pdf-metadata-extractor-test-B7KnXcIm.js +130 -0
  339. package/bundled-test-harness/assets/permission-checking-realm-test-OBzvhDB_.js +306 -0
  340. package/bundled-test-harness/assets/persist-module-inspector-view-test-BIdbkdPr.js +60 -0
  341. package/bundled-test-harness/assets/persist-scroll-position-test-Bhb7wJiy.js +254 -0
  342. package/bundled-test-harness/assets/phone-number-field-test-C2yuCrXY.js +73 -0
  343. package/bundled-test-harness/assets/pill-menu-test-BIp91YXi.js +60 -0
  344. package/bundled-test-harness/assets/plate-DAr_pvwC.js +41 -0
  345. package/bundled-test-harness/assets/plate-DeoQd99m.js +2 -0
  346. package/bundled-test-harness/assets/player-BvXGBItd.js +2 -0
  347. package/bundled-test-harness/assets/player-CAVQUyKk.js +82 -0
  348. package/bundled-test-harness/assets/playground-B02e8uqB.js +58 -0
  349. package/bundled-test-harness/assets/plural-field-components-test-C1acuN-A.js +198 -0
  350. package/bundled-test-harness/assets/png-image-def-test-B9QeVo1f.js +266 -0
  351. package/bundled-test-harness/assets/policy-audit-confirmation-test-CeVquvc_.js +155 -0
  352. package/bundled-test-harness/assets/policy-scoped-search-test-SFPiIqR3.js +339 -0
  353. package/bundled-test-harness/assets/prerender-file-extract-test-HSJKAHyO.js +346 -0
  354. package/bundled-test-harness/assets/prerender-html-test-BTAcFCme.js +670 -0
  355. package/bundled-test-harness/assets/prerender-meta-test-Csyz2b21.js +614 -0
  356. package/bundled-test-harness/assets/prerender-module-test-DpTYAbmI.js +409 -0
  357. package/bundled-test-harness/assets/prerender-persistence-block-test-BhIt-7kK.js +124 -0
  358. package/bundled-test-harness/assets/prerender-pre-model-error-test-DxKPQKqx.js +61 -0
  359. package/bundled-test-harness/assets/prerender-serialize-cycle-test-C8V5YWQO.js +134 -0
  360. package/bundled-test-harness/assets/prerendered-html-read-test-Cq7JVGwg.js +191 -0
  361. package/bundled-test-harness/assets/pretui-components-test-Ducr9fLT.css +743 -0
  362. package/bundled-test-harness/assets/pretui-components-test-Hs0uyIUQ.js +992 -0
  363. package/bundled-test-harness/assets/pretui-primitives-CRs8NRm0.js +69 -0
  364. package/bundled-test-harness/assets/preview-format-test-cCqLrfdY.js +103 -0
  365. package/bundled-test-harness/assets/preview-test-BMqJSoR1.js +474 -0
  366. package/bundled-test-harness/assets/process-card-test-578tfDvr.js +94 -0
  367. package/bundled-test-harness/assets/profile-settings-modal-CVnNl7Yu.js +990 -0
  368. package/bundled-test-harness/assets/publish-realm-COoeWexp.js +82 -0
  369. package/bundled-test-harness/assets/publish-realm-test-a5nkx0Ov.js +210 -0
  370. package/bundled-test-harness/assets/query-field-barrier-test-qX3xVPfk.js +113 -0
  371. package/bundled-test-harness/assets/query-field-error-sentinel-test-V6JDPFLX.js +201 -0
  372. package/bundled-test-harness/assets/query-field-membership-status-test-CK7eDf-K.js +323 -0
  373. package/bundled-test-harness/assets/query-field-page-optin-test-B5YBHUvU.js +126 -0
  374. package/bundled-test-harness/assets/query-field-schema-test-D4SjOGlK.js +231 -0
  375. package/bundled-test-harness/assets/query-field-search-throttle-test-BVkm1-D8.js +154 -0
  376. package/bundled-test-harness/assets/query-field-stale-prerender-test-9g7hcD91.js +152 -0
  377. package/bundled-test-harness/assets/query-fields-test-CQYqhzpN.js +535 -0
  378. package/bundled-test-harness/assets/quick-look-test-icQwb1NJ.js +139 -0
  379. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D0mJorwH.js +91 -0
  380. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-B_F_2GEB.js +45 -0
  381. package/bundled-test-harness/assets/read-source-test-BgJV4B4F.js +67 -0
  382. package/bundled-test-harness/assets/read-text-file-test-DaeLzg4u.js +124 -0
  383. package/bundled-test-harness/assets/realm-C_a9su1j.js +2858 -0
  384. package/bundled-test-harness/assets/realm-api-keys-D5USFOoS.js +2 -0
  385. package/bundled-test-harness/assets/realm-api-keys-m_VOcixC.js +578 -0
  386. package/bundled-test-harness/assets/realm-api-keys-test-C_uZnTmq.js +588 -0
  387. package/bundled-test-harness/assets/realm-api-keys-test-gtJ8XZCE.js +109 -0
  388. package/bundled-test-harness/assets/realm-config-m5eccPW8.js +833 -0
  389. package/bundled-test-harness/assets/realm-config-policy-standing-test-CXJ4ZMde.js +290 -0
  390. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-DoEunShH.js +274 -0
  391. package/bundled-test-harness/assets/realm-config-settings-test-BYi9i4O6.js +187 -0
  392. package/bundled-test-harness/assets/realm-field-test-B_PUoqnk.js +100 -0
  393. package/bundled-test-harness/assets/realm-indexing-test-8iLjeV_e.js +4380 -0
  394. package/bundled-test-harness/assets/realm-policy-fitted-test-Bptvra0U.js +206 -0
  395. package/bundled-test-harness/assets/realm-policy-test-DwG0qqXE.js +1141 -0
  396. package/bundled-test-harness/assets/realm-querying-test-Dvw26A6Q.js +1067 -0
  397. package/bundled-test-harness/assets/realm-server-form-agnostic-test-DrXQH0UP.js +96 -0
  398. package/bundled-test-harness/assets/realm-server-subscriber-test-Dkj23vQK.js +46 -0
  399. package/bundled-test-harness/assets/realm-service-info-test-CdRlDhj-.js +67 -0
  400. package/bundled-test-harness/assets/realm-test-DGYN48Qx.js +2364 -0
  401. package/bundled-test-harness/assets/realm-token-refresh-test-CEWATL9h.js +153 -0
  402. package/bundled-test-harness/assets/realm-url-tooltip-test-8ZjTNPuy.js +78 -0
  403. package/bundled-test-harness/assets/reasoning-test-WUx-4agu.js +221 -0
  404. package/bundled-test-harness/assets/recent-files-test-Dc6L6Dm4.js +450 -0
  405. package/bundled-test-harness/assets/reindex-realm-test-CFRSt39u.js +117 -0
  406. package/bundled-test-harness/assets/relationship-loading-state-test-FKbtOFUr.js +290 -0
  407. package/bundled-test-harness/assets/remix-card-test-CKGC_Sgq.js +58 -0
  408. package/bundled-test-harness/assets/rendered-markdown-B_jWmDrK.js +292 -0
  409. package/bundled-test-harness/assets/rendered-markdown-test-sdWhU0NA.js +587 -0
  410. package/bundled-test-harness/assets/resident-instance-reuse-test-BjdhE6CM.js +82 -0
  411. package/bundled-test-harness/assets/result-tile-o6dtjgX4.js +144 -0
  412. package/bundled-test-harness/assets/rich-markdown-field-test-VXr6l20h.js +1647 -0
  413. package/bundled-test-harness/assets/room-message-test-BYNhZ39n.js +484 -0
  414. package/bundled-test-harness/assets/run-FzaqmBEl.js +3959 -0
  415. package/bundled-test-harness/assets/run-realm-code-DsBUf1si.js +2964 -0
  416. package/bundled-test-harness/assets/run-realm-code-test-cS0DzaKo.js +3844 -0
  417. package/bundled-test-harness/assets/sanitize-module-list-test-CvuOOiUY.js +85 -0
  418. package/bundled-test-harness/assets/save-card-skip-index-wait-test-fpJ1eq32.js +89 -0
  419. package/bundled-test-harness/assets/schema-editor-test-NkKjCgyf.js +785 -0
  420. package/bundled-test-harness/assets/schema-generation-test-Dmg3lWl7.js +28 -0
  421. package/bundled-test-harness/assets/scrolling-test-Dd4gv_fj.js +412 -0
  422. package/bundled-test-harness/assets/search-adorn-test-CZebk7_y.js +136 -0
  423. package/bundled-test-harness/assets/search-and-choose-test-Bd4NZUup.js +154 -0
  424. package/bundled-test-harness/assets/search-correlation-id-test-DXKlEO55.js +139 -0
  425. package/bundled-test-harness/assets/search-entries-result-test-QQawA8Fm.js +234 -0
  426. package/bundled-test-harness/assets/search-entries-test-3DlqGPQq.js +1486 -0
  427. package/bundled-test-harness/assets/search-entries-tool-test-D1TvDE9D.js +504 -0
  428. package/bundled-test-harness/assets/search-google-images-test-DqsoQGr1.js +166 -0
  429. package/bundled-test-harness/assets/search-results-DGrNaPxh.js +266 -0
  430. package/bundled-test-harness/assets/search-results-test-CqVHYNRt.js +578 -0
  431. package/bundled-test-harness/assets/search-selection-menu-test-D6bIjKiH.js +108 -0
  432. package/bundled-test-harness/assets/search-sheet-files-test-Bf37TQXo.js +126 -0
  433. package/bundled-test-harness/assets/search-sheet-persistence-test-CV4_XdxR.js +131 -0
  434. package/bundled-test-harness/assets/search-test-Dlb-wg3a.js +2249 -0
  435. package/bundled-test-harness/assets/search-tool-test-BJLgVMoL.js +156 -0
  436. package/bundled-test-harness/assets/searchable-option-test-eJaIPH_L.js +322 -0
  437. package/bundled-test-harness/assets/searchable-search-doc-test-yH9fLGNS.js +1271 -0
  438. package/bundled-test-harness/assets/section-rail-CNFCebtT.js +113 -0
  439. package/bundled-test-harness/assets/section-rail-test-KNJAWWl6.js +256 -0
  440. package/bundled-test-harness/assets/secure-sign-in-Dyljp0Th.js +174 -0
  441. package/bundled-test-harness/assets/secure-sign-in-test-QnqNuTP3.js +373 -0
  442. package/bundled-test-harness/assets/segmented-control-DxJdoJ4Z.js +173 -0
  443. package/bundled-test-harness/assets/select-BiQTg2ts.js +175 -0
  444. package/bundled-test-harness/assets/send-ai-assistant-message-test-CAn7M2dZ.js +52 -0
  445. package/bundled-test-harness/assets/send-bot-trigger-event-test-qBu5E_jy.js +56 -0
  446. package/bundled-test-harness/assets/send-request-via-proxy-test-CLuwLBq_.js +380 -0
  447. package/bundled-test-harness/assets/sending-test-Dt9Dh2wW.js +659 -0
  448. package/bundled-test-harness/assets/serialization-rri-form-audit-test-hMJukiKt.js +136 -0
  449. package/bundled-test-harness/assets/serialization-test-W5e3wKbz.js +8758 -0
  450. package/bundled-test-harness/assets/set-user-system-card-test-CjgWLkNV.js +59 -0
  451. package/bundled-test-harness/assets/setup-CssMNvui.js +772 -0
  452. package/bundled-test-harness/assets/setup-D8YXvK-p.js +2 -0
  453. package/bundled-test-harness/assets/shared-link-target-reuse-test-D42UO8DC.js +207 -0
  454. package/bundled-test-harness/assets/show-card-test-CHEaS514.js +365 -0
  455. package/bundled-test-harness/assets/signed-capture-link-test-BgEu0F-S.js +132 -0
  456. package/bundled-test-harness/assets/single-stack-test-DYcu_v7Z.js +652 -0
  457. package/bundled-test-harness/assets/skills-test-BP8QNesE.js +648 -0
  458. package/bundled-test-harness/assets/skip-boot-index-guard-test-BzRIncDN.js +46 -0
  459. package/bundled-test-harness/assets/spec-test-BYvFR6Xb.js +1077 -0
  460. package/bundled-test-harness/assets/spinner-Bx9x55NA.js +49 -0
  461. package/bundled-test-harness/assets/src-LqENIikj.js +5 -0
  462. package/bundled-test-harness/assets/src-a4d10Hra.js +216 -0
  463. package/bundled-test-harness/assets/stick-to-bottom-resize-test-BBLiCR3X.js +56 -0
  464. package/bundled-test-harness/assets/store-add-test-D_9IHQjZ.js +50 -0
  465. package/bundled-test-harness/assets/store-module-rebuild-test-BRGZoLRV.js +454 -0
  466. package/bundled-test-harness/assets/store-search-test-3G8JHuj2.js +175 -0
  467. package/bundled-test-harness/assets/store-test-Dd4WQp7L.js +3672 -0
  468. package/bundled-test-harness/assets/structured-theme-test-11TNsgUW.js +377 -0
  469. package/bundled-test-harness/assets/summarize-session-test-CwzD_ZbD.js +172 -0
  470. package/bundled-test-harness/assets/svg-image-def-test-zV6aMK9q.js +167 -0
  471. package/bundled-test-harness/assets/switch-submode-test-DQU2cP5_.js +168 -0
  472. package/bundled-test-harness/assets/sync-openrouter-models-test-xrXVaC2H.js +97 -0
  473. package/bundled-test-harness/assets/test-support-QTh6wGxu.js +3 -0
  474. package/bundled-test-harness/assets/test-support-Tr-PYFgc.js +99 -0
  475. package/bundled-test-harness/assets/tests-zLlwPutr.js +3598 -0
  476. package/bundled-test-harness/assets/text-file-def-test-Cyq78UFY.js +94 -0
  477. package/bundled-test-harness/assets/text-input-validator-test-C1uDVZU7.js +156 -0
  478. package/bundled-test-harness/assets/text-suggestion-test-C4XAqWqY.js +340 -0
  479. package/bundled-test-harness/assets/theme-card-test-dVNz4tgU.js +621 -0
  480. package/bundled-test-harness/assets/theme-dashboard-nav-test-DYSn5pqo.js +196 -0
  481. package/bundled-test-harness/assets/theme-scheme-island-test-C1WpkfEP.js +264 -0
  482. package/bundled-test-harness/assets/theme-scoped-css-parity-test-BVluppsE.js +176 -0
  483. package/bundled-test-harness/assets/titles-0a1luoTq.js +52 -0
  484. package/bundled-test-harness/assets/titles-DKHNLVwC.js +2 -0
  485. package/bundled-test-harness/assets/to-device-streaming-test-3A6jI0_r.js +163 -0
  486. package/bundled-test-harness/assets/token-usage-test-33ovcqPk.js +160 -0
  487. package/bundled-test-harness/assets/tools-J_Knr_W6.js +774 -0
  488. package/bundled-test-harness/assets/tools-calling-test-CfqZX0Ed.js +200 -0
  489. package/bundled-test-harness/assets/tools-test-B4x58ZmI.js +1624 -0
  490. package/bundled-test-harness/assets/tools-test-DtUQp5ez.js +3204 -0
  491. package/bundled-test-harness/assets/tooltip-B0rEgyMW.css +66 -0
  492. package/bundled-test-harness/assets/tooltip-DvUMUgVX.js +195 -0
  493. package/bundled-test-harness/assets/transform-cards-test-CYQbZeD9.js +341 -0
  494. package/bundled-test-harness/assets/ts-file-def-preview-test-m39f8Zio.js +95 -0
  495. package/bundled-test-harness/assets/ts-file-def-test-xIcL5xWe.js +92 -0
  496. package/bundled-test-harness/assets/ttf-font-def-test-ClQ2SzFF.js +206 -0
  497. package/bundled-test-harness/assets/turn-settling-test-DqYk312r.js +160 -0
  498. package/bundled-test-harness/assets/turn-summary-Bmt7ZxTS.js +1039 -0
  499. package/bundled-test-harness/assets/unpublish-realm-test-0ToTJczx.js +102 -0
  500. package/bundled-test-harness/assets/update-room-skills-test-o_j8NOUV.js +240 -0
  501. package/bundled-test-harness/assets/use-ai-assistant-test-D7HFpxKJ.js +384 -0
  502. package/bundled-test-harness/assets/user-message-BAOt1hS3.js +262 -0
  503. package/bundled-test-harness/assets/validate-realm-test-e3xIbNLB.js +67 -0
  504. package/bundled-test-harness/assets/video-metadata-extractor-test-D8naLSlg.js +520 -0
  505. package/bundled-test-harness/assets/view-visually-test-BuhGau5E.js +335 -0
  506. package/bundled-test-harness/assets/virtual-network-reset-test-CgaFNGPi.js +96 -0
  507. package/bundled-test-harness/assets/wav-audio-def-test-CWG_UdCh.js +160 -0
  508. package/bundled-test-harness/assets/webp-image-def-test-sN4yw8Zu.js +226 -0
  509. package/bundled-test-harness/assets/workspace-0LfPqbYB.js +445 -0
  510. package/bundled-test-harness/assets/workspace-a11y-test-DQxYDRAP.js +197 -0
  511. package/bundled-test-harness/assets/workspace-actions-jGJSfl8M.js +588 -0
  512. package/bundled-test-harness/assets/workspace-behavior-test-BnF-bmBN.js +338 -0
  513. package/bundled-test-harness/assets/workspace-delete-multiple-test-D-rxPDuT.js +212 -0
  514. package/bundled-test-harness/assets/workspace-delete-summary-test-C2-Mve5R.js +63 -0
  515. package/bundled-test-harness/assets/workspace-hosting-test-BvDKdlOb.js +138 -0
  516. package/bundled-test-harness/assets/workspace-indexing-test-B34T3kqD.js +71 -0
  517. package/bundled-test-harness/assets/workspace-test-CJivgv-m.js +51 -0
  518. package/bundled-test-harness/assets/workspace-test-CuSRpPnQ.js +385 -0
  519. package/bundled-test-harness/assets/workspace-timestamp-labels-test-aWgjdbCp.js +68 -0
  520. package/bundled-test-harness/assets/workspace-unit-test-DHMUf2KT.js +122 -0
  521. package/bundled-test-harness/assets/write-binary-file-test-P-hVQuin.js +124 -0
  522. package/bundled-test-harness/assets/write-text-file-test-fXvJueDd.js +191 -0
  523. package/bundled-test-harness/assets/zip-archive-test-C2P5CUSR.js +285 -0
  524. package/bundled-test-harness/assets/zip-file-def-test-BfJZAmGt.js +164 -0
  525. package/bundled-test-harness/boxel-ui-checksum.txt +1 -1
  526. package/bundled-test-harness/index.html +47 -47
  527. package/bundled-test-harness/tests/index.html +49 -49
  528. package/bundled-types/boxel-ui/helpers/theme-scoped-css.ts +4 -0
  529. package/bundled-types/choreo/choreo.gts +13 -1
  530. package/bundled-types/choreo/run.ts +19 -0
  531. package/bundled-types/host-app/components/operator-mode/dashboard/get-started.gts +152 -7
  532. package/bundled-types/host-app/components/operator-mode/dashboard/index.gts +2 -0
  533. package/bundled-types/host-app/components/operator-mode/dashboard/workspace.gts +5 -3
  534. package/bundled-types/host-app/components/operator-mode/dashboard-modals/workspace-modals.gts +5 -22
  535. package/bundled-types/host-app/components/operator-mode/host-submode/publishing-realm-popover.gts +1 -1
  536. package/bundled-types/host-app/components/operator-mode/host-submode.gts +111 -37
  537. package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +1 -0
  538. package/bundled-types/host-app/lib/modal-focus-trap.ts +33 -0
  539. package/bundled-types/host-app/lib/workspace-actions.ts +21 -0
  540. package/bundled-types/host-app/services/host-mode-service.ts +39 -0
  541. package/bundled-types/host-app/services/realm.ts +14 -0
  542. package/bundled-types/host-tests/helpers/dashboard.ts +67 -0
  543. package/package.json +1 -1
  544. package/bundled-test-harness/assets/account-switch-failed-test-FytUFiPO.js +0 -45
  545. package/bundled-test-harness/assets/adapter-DvmPwSZv.js +0 -2
  546. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-DN525jiY.js +0 -112
  547. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-q3tKqVJQ.js +0 -130
  548. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DgeXcCyi.js +0 -46
  549. package/bundled-test-harness/assets/ai-assistant-test-lDIGPKFP.js +0 -2223
  550. package/bundled-test-harness/assets/ai-function-generation-test-D5GbLyvL.js +0 -1176
  551. package/bundled-test-harness/assets/ai-module-creation-test-I3-j2beD.js +0 -151
  552. package/bundled-test-harness/assets/aibot-message-Dmsjifs6.js +0 -1312
  553. package/bundled-test-harness/assets/app-BS9_-DhN.js +0 -14146
  554. package/bundled-test-harness/assets/apply-markdown-edit-test-4zlwt0Db.js +0 -230
  555. package/bundled-test-harness/assets/ask-user-picker-Dr-0qpNr.js +0 -370
  556. package/bundled-test-harness/assets/ask-user-picker-test-633AFdmS.js +0 -39
  557. package/bundled-test-harness/assets/assistant-transcript-test-BgRnLvMg.js +0 -57
  558. package/bundled-test-harness/assets/audio-metadata-extractor-test-4xsQqL-0.js +0 -1176
  559. package/bundled-test-harness/assets/authed-fetch-test-663mT5_N.js +0 -73
  560. package/bundled-test-harness/assets/avif-image-def-test-h01BPIJy.js +0 -187
  561. package/bundled-test-harness/assets/basic-test-DiD6T-8Q.js +0 -139
  562. package/bundled-test-harness/assets/binary-upload-dedupe-test-CkjMPO_e.js +0 -308
  563. package/bundled-test-harness/assets/bot-registration-test-CFZHpwdj.js +0 -97
  564. package/bundled-test-harness/assets/box-test-C3pSy5ED.js +0 -50
  565. package/bundled-test-harness/assets/brand-guide-attachments-test-EoC_u7Vc.js +0 -84
  566. package/bundled-test-harness/assets/brand-guide-custom-css-test-Dn3fvblr.js +0 -196
  567. package/bundled-test-harness/assets/brand-guide-edit-test-NeiT3MyK.js +0 -140
  568. package/bundled-test-harness/assets/brand-logo-mark-field-test-C2A1EnBB.js +0 -86
  569. package/bundled-test-harness/assets/broken-link-template-test-CWn6V5zZ.js +0 -192
  570. package/bundled-test-harness/assets/bundled-base-modules-test-D7mLzpsw.js +0 -54
  571. package/bundled-test-harness/assets/bundled-base-oracle-test-I7xCId_k.js +0 -37
  572. package/bundled-test-harness/assets/buried-stack-item-scroll-test-DFBev0h-.js +0 -236
  573. package/bundled-test-harness/assets/button-BeSuhveJ.js +0 -207
  574. package/bundled-test-harness/assets/bxl-cyclic-graph-test-DPykwvvx.js +0 -47
  575. package/bundled-test-harness/assets/bxl-expression-test-LBWJiFb9.js +0 -250
  576. package/bundled-test-harness/assets/bxl-indexing-test-BuZmLk7y.js +0 -212
  577. package/bundled-test-harness/assets/bxl-platform-module-test-BNIvlkCM.js +0 -71
  578. package/bundled-test-harness/assets/can-invoke-test-t-bFIIeX.js +0 -455
  579. package/bundled-test-harness/assets/can-read-realm-test-2Q_MzRT9.js +0 -56
  580. package/bundled-test-harness/assets/cancel-indexing-job-test-QeYxEukn.js +0 -69
  581. package/bundled-test-harness/assets/capture-test-CJmJG8YR.js +0 -360
  582. package/bundled-test-harness/assets/card-api-test-B43I510H.js +0 -198
  583. package/bundled-test-harness/assets/card-basics-test-CBClzP2y.js +0 -5364
  584. package/bundled-test-harness/assets/card-chooser-paging-test-HEVzf6pR.js +0 -235
  585. package/bundled-test-harness/assets/card-chooser-test-GfjBRPFI.js +0 -393
  586. package/bundled-test-harness/assets/card-context-search-results-CoSr4EdS.js +0 -30
  587. package/bundled-test-harness/assets/card-context-search-results-test-BLMlZu9t.js +0 -184
  588. package/bundled-test-harness/assets/card-def-field-def-relationships-test-DEBOzKan.js +0 -562
  589. package/bundled-test-harness/assets/card-def-menu-items-test-88_h8o0D.js +0 -228
  590. package/bundled-test-harness/assets/card-delete-test-DKom1phy.js +0 -466
  591. package/bundled-test-harness/assets/card-error-awaiting-index-test-DEwgFZMP.js +0 -53
  592. package/bundled-test-harness/assets/card-error-r6_cXst9.js +0 -72
  593. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-B7LiY15e.js +0 -219
  594. package/bundled-test-harness/assets/card-playground-test-CgyIJHui.js +0 -1491
  595. package/bundled-test-harness/assets/card-prerender-rPfzpIOU.js +0 -12939
  596. package/bundled-test-harness/assets/card-thunk-error-test-L0pvg4Ce.js +0 -48
  597. package/bundled-test-harness/assets/card-type-service-test-B2dhqxSD.js +0 -161
  598. package/bundled-test-harness/assets/check-correctness-test-DgqaLlCW.js +0 -1093
  599. package/bundled-test-harness/assets/check-domain-availability-test-B0hJHY5l.js +0 -98
  600. package/bundled-test-harness/assets/chip-D01NW3WH.js +0 -44
  601. package/bundled-test-harness/assets/choreo-D2Jl79RU.js +0 -1019
  602. package/bundled-test-harness/assets/choreo-_E8SOEe-.js +0 -2
  603. package/bundled-test-harness/assets/choreo-feature-reel-test-WLjsZDmS.js +0 -155
  604. package/bundled-test-harness/assets/choreo-gallery-build-order-test-6jnS8PsS.js +0 -436
  605. package/bundled-test-harness/assets/choreo-gallery-compositor-test-CbUZsVB6.js +0 -399
  606. package/bundled-test-harness/assets/choreo-gallery-cover-test-CbvAStgk.js +0 -214
  607. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-tdjvUSa6.js +0 -133
  608. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-CsnM3hQK.js +0 -42
  609. package/bundled-test-harness/assets/choreo-gallery-drift-test-DG2LQTa7.js +0 -620
  610. package/bundled-test-harness/assets/choreo-gallery-escort-test-mn3-qXP1.js +0 -187
  611. package/bundled-test-harness/assets/choreo-gallery-films-test-BuktaC0D.js +0 -140
  612. package/bundled-test-harness/assets/choreo-gallery-filter-test-Dd-zpps0.js +0 -46
  613. package/bundled-test-harness/assets/choreo-gallery-fold-test-CWc1ijGc.js +0 -180
  614. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-tk2QmYPU.js +0 -114
  615. package/bundled-test-harness/assets/choreo-gallery-guides-test-DVbf1zM4.js +0 -321
  616. package/bundled-test-harness/assets/choreo-gallery-hang-test-B7EFp2dx.js +0 -426
  617. package/bundled-test-harness/assets/choreo-gallery-highlight-test-BFgbdesP.js +0 -60
  618. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-DJb8FC5R.js +0 -370
  619. package/bundled-test-harness/assets/choreo-gallery-interruption-test-DWyMXo5D.js +0 -176
  620. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-D3b8LsJ6.js +0 -104
  621. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CjjU6Rvn.js +0 -193
  622. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Le_h3QWU.js +0 -111
  623. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-Cp-DlWj4.js +0 -127
  624. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-DayS4GCJ.js +0 -100
  625. package/bundled-test-harness/assets/choreo-gallery-presentation-test-DeAfuFS7.js +0 -157
  626. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BgPWpggq.js +0 -145
  627. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-PzyoMNYv.js +0 -89
  628. package/bundled-test-harness/assets/choreo-gallery-sheet-test-CxaiNBkL.js +0 -48
  629. package/bundled-test-harness/assets/choreo-gallery-site-test-6xtSntS5.js +0 -237
  630. package/bundled-test-harness/assets/choreo-gallery-stage-E6Q5r-zU.js +0 -256
  631. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-C7aWMr9a.js +0 -102
  632. package/bundled-test-harness/assets/choreo-gallery-stages-test-CDWWgC61.js +0 -35
  633. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-Bkp15XJv.js +0 -138
  634. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CcGRi_3O.js +0 -144
  635. package/bundled-test-harness/assets/choreo-gallery-theater-test-Qph5pLT_.js +0 -252
  636. package/bundled-test-harness/assets/choreo-gallery-tuning-test-C4DhFLVA.js +0 -95
  637. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-LK493r1M.js +0 -88
  638. package/bundled-test-harness/assets/choreo-gallery-wires-test-B7SeUCc8.js +0 -148
  639. package/bundled-test-harness/assets/client-telemetry-test-DGmHzAFx.js +0 -340
  640. package/bundled-test-harness/assets/clip-BpYQPVz_.js +0 -2
  641. package/bundled-test-harness/assets/clip-CNaYbIwL.js +0 -92
  642. package/bundled-test-harness/assets/code-block-Cp2CJo5-.js +0 -502
  643. package/bundled-test-harness/assets/code-ref-test-C8JBHDb-.js +0 -163
  644. package/bundled-test-harness/assets/code-submode-availability-test-CzG1Tv6L.js +0 -198
  645. package/bundled-test-harness/assets/code-submode-test-BclVWjm5.js +0 -1839
  646. package/bundled-test-harness/assets/codeblocks-test-CmQlyxN7.js +0 -418
  647. package/bundled-test-harness/assets/codemirror-editor-test-B74H_yn8.js +0 -1512
  648. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bz6VEysU.js +0 -366
  649. package/bundled-test-harness/assets/color-field-test-DMCPQKIP.js +0 -212
  650. package/bundled-test-harness/assets/compaction-test-saQCLBrQ.js +0 -150
  651. package/bundled-test-harness/assets/computed-test-C05HliJC.js +0 -1320
  652. package/bundled-test-harness/assets/container-Cqcwrd-m.js +0 -10857
  653. package/bundled-test-harness/assets/content-preview-components-test-DZPj4_CU.js +0 -462
  654. package/bundled-test-harness/assets/copy-and-edit-test-DiXTQNTF.js +0 -292
  655. package/bundled-test-harness/assets/copy-card-test-ys7GquUY.js +0 -218
  656. package/bundled-test-harness/assets/copy-file-to-realm-test-Gn0Wn4vT.js +0 -148
  657. package/bundled-test-harness/assets/copy-source-test-BTLrOmPm.js +0 -56
  658. package/bundled-test-harness/assets/create-file-test-BCeIW-Rt.js +0 -464
  659. package/bundled-test-harness/assets/create-file-test-DbHQ5JsS.js +0 -1086
  660. package/bundled-test-harness/assets/create-listing-modal-test-CeHc4ter.js +0 -273
  661. package/bundled-test-harness/assets/create-listing-pr-request-test-DXbJNfMh.js +0 -117
  662. package/bundled-test-harness/assets/create-spec-test-BDIZoyHT.js +0 -256
  663. package/bundled-test-harness/assets/create-submission-workflow-test-Bix5J-3A.js +0 -132
  664. package/bundled-test-harness/assets/create-workspace-test-BmNnLHwC.js +0 -104
  665. package/bundled-test-harness/assets/credential-fields-test-NK1F4QWn.js +0 -200
  666. package/bundled-test-harness/assets/csv-file-def-test-BSfs4TTP.js +0 -102
  667. package/bundled-test-harness/assets/dashboard-C4T7ffKY.js +0 -3576
  668. package/bundled-test-harness/assets/dashboard-CFeHuP5-.js +0 -81
  669. package/bundled-test-harness/assets/dashboard-DQlpW-ux.css +0 -2392
  670. package/bundled-test-harness/assets/dashboard-add-workspace-test--rr6objf.js +0 -50
  671. package/bundled-test-harness/assets/dashboard-agents-test-D1y8H4xH.js +0 -334
  672. package/bundled-test-harness/assets/dashboard-archive-test-bN4EQaXv.js +0 -128
  673. package/bundled-test-harness/assets/dashboard-delete-test-BvsASb8B.js +0 -163
  674. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-DEsd5ZzZ.js +0 -71
  675. package/bundled-test-harness/assets/dashboard-duplicate-test-BnR0sTgB.js +0 -222
  676. package/bundled-test-harness/assets/dashboard-get-started-test-DG4uUXLv.js +0 -246
  677. package/bundled-test-harness/assets/dashboard-pinned-cards-test-AoGGVRAS.js +0 -220
  678. package/bundled-test-harness/assets/dashboard-reindex-test-BN9a96Xp.js +0 -115
  679. package/bundled-test-harness/assets/dashboard-section-rail-test-B3OT9V2T.js +0 -169
  680. package/bundled-test-harness/assets/dashboard-state-test-BY0Zqrmj.js +0 -162
  681. package/bundled-test-harness/assets/dashboard-test-C13oNpWt.js +0 -545
  682. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DZIV4x5j.js +0 -62
  683. package/bundled-test-harness/assets/dashboard-workspace-test-CBnOQViI.js +0 -537
  684. package/bundled-test-harness/assets/dashboard-workspaces-section-test-KU8ZVOYp.js +0 -396
  685. package/bundled-test-harness/assets/data-file-def-preview-test-CI5gcdtK.js +0 -155
  686. package/bundled-test-harness/assets/date-time-fields-test-D2CpR_Pb.js +0 -359
  687. package/bundled-test-harness/assets/debug-message-test-Df1kHesw.js +0 -117
  688. package/bundled-test-harness/assets/declared-captures-test-hQ43zuox.js +0 -879
  689. package/bundled-test-harness/assets/delete-workspace-test-BhfMKsix.js +0 -102
  690. package/bundled-test-harness/assets/diffing-test-CHRh55mC.js +0 -210
  691. package/bundled-test-harness/assets/download-file-to-realm-test-CC1HURCi.js +0 -119
  692. package/bundled-test-harness/assets/editor-test-DkeCv28f.js +0 -688
  693. package/bundled-test-harness/assets/edits-BSJqtUXM.js +0 -651
  694. package/bundled-test-harness/assets/email-field-test-DihK0suO.js +0 -75
  695. package/bundled-test-harness/assets/enum-field-test-Gja3bzt5.js +0 -935
  696. package/bundled-test-harness/assets/error-display-test-GhYZu7cp.js +0 -343
  697. package/bundled-test-harness/assets/evaluate-module-test-D_t4CiUq.js +0 -91
  698. package/bundled-test-harness/assets/execute-atomic-operations-test-xtou8Zeg.js +0 -113
  699. package/bundled-test-harness/assets/externals-B02-sD_L.js +0 -4393
  700. package/bundled-test-harness/assets/fallback-banner-live-delete-test-DtxzNXdE.js +0 -207
  701. package/bundled-test-harness/assets/fallback-banner-test-BfmiQ_68.js +0 -53
  702. package/bundled-test-harness/assets/fallback-banner-test-DLtTdmvn.js +0 -225
  703. package/bundled-test-harness/assets/fallback-models-test-BxNJxhfd.js +0 -161
  704. package/bundled-test-harness/assets/fetch-card-json-test-DofKbzvC.js +0 -61
  705. package/bundled-test-harness/assets/field-configuration-test-SUoPaXWy.js +0 -551
  706. package/bundled-test-harness/assets/field-markdown-domain-test-BwtR0dPP.js +0 -616
  707. package/bundled-test-harness/assets/field-markdown-oversize-test-D8UJcBc3.js +0 -88
  708. package/bundled-test-harness/assets/field-markdown-primitives-test-D5_ZdoDO.js +0 -365
  709. package/bundled-test-harness/assets/field-markdown-specialized-test-Dpd5hs04.js +0 -534
  710. package/bundled-test-harness/assets/field-playground-test-CzhYzKGv.js +0 -894
  711. package/bundled-test-harness/assets/field-support-predicates-test-BSvVOFth.js +0 -167
  712. package/bundled-test-harness/assets/file-attachment-test-fM-yFedm.js +0 -796
  713. package/bundled-test-harness/assets/file-chooser-panel-test-CKj8YTdY.js +0 -153
  714. package/bundled-test-harness/assets/file-chooser-test-Bs8jFXqa.js +0 -504
  715. package/bundled-test-harness/assets/file-def-format-templates-test-CxrRoWoD.js +0 -380
  716. package/bundled-test-harness/assets/file-def-live-reload-test-X_8YEkve.js +0 -124
  717. package/bundled-test-harness/assets/file-def-menu-items-test-Dx879o_o.js +0 -138
  718. package/bundled-test-harness/assets/file-def-navigation-test-MMI_EEO1.js +0 -109
  719. package/bundled-test-harness/assets/file-def-serialization-test-B5lguBQD.js +0 -89
  720. package/bundled-test-harness/assets/file-def-test-Di9QWcrj.js +0 -216
  721. package/bundled-test-harness/assets/file-preview-live-reload-test-aqx93A7c.js +0 -310
  722. package/bundled-test-harness/assets/file-resource-primitives-test-a5abpcSB.js +0 -255
  723. package/bundled-test-harness/assets/file-tree-from-index-test-CnruGxJ8.js +0 -96
  724. package/bundled-test-harness/assets/file-tree-test-BCyWDdSE.js +0 -851
  725. package/bundled-test-harness/assets/file-view-model-test-BfpLa01Y.js +0 -346
  726. package/bundled-test-harness/assets/filedef-export-shape-test-CQ9XbrzS.js +0 -61
  727. package/bundled-test-harness/assets/film-CL1zj_bJ.js +0 -2
  728. package/bundled-test-harness/assets/film-Dq_quZ31.js +0 -13
  729. package/bundled-test-harness/assets/film-xbkQa060.js +0 -4074
  730. package/bundled-test-harness/assets/flac-audio-def-test-BmVp9dMx.js +0 -143
  731. package/bundled-test-harness/assets/focus-Dm4wkM72.js +0 -306
  732. package/bundled-test-harness/assets/font-metadata-extractor-test-OWEh9_MS.js +0 -415
  733. package/bundled-test-harness/assets/formatted-aibot-message-test-BpHsWpuV.js +0 -109
  734. package/bundled-test-harness/assets/formatted-user-message-test-DZW5TAr0.js +0 -43
  735. package/bundled-test-harness/assets/freestyle-test-D_uaPU_3.js +0 -17
  736. package/bundled-test-harness/assets/full-reindex-realm-test-C6vHL5kC.js +0 -101
  737. package/bundled-test-harness/assets/garbage-collection-test-D-Ao4t2n.js +0 -403
  738. package/bundled-test-harness/assets/general-test-PSGI8W0z.js +0 -923
  739. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-J-m-0E6W.js +0 -65
  740. package/bundled-test-harness/assets/generic-file-def-preview-test-BAsOhTYU.js +0 -71
  741. package/bundled-test-harness/assets/get-available-realm-identifiers-test-D5PBOr97.js +0 -47
  742. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-NM9UURHE.js +0 -47
  743. package/bundled-test-harness/assets/get-default-writable-realm-test-BxXc9a3J.js +0 -54
  744. package/bundled-test-harness/assets/get-published-realms-test-C8TJEc4-.js +0 -71
  745. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-Dt8CB6lS.js +0 -54
  746. package/bundled-test-harness/assets/get-relationship-membership-state-test-9_8x3myJ.js +0 -1308
  747. package/bundled-test-harness/assets/get-user-system-card-test-k0UO-uba.js +0 -67
  748. package/bundled-test-harness/assets/gif-image-def-test-BWrqPGDX.js +0 -188
  749. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BgG8QI9E.js +0 -160
  750. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-BKOvNyCN.js +0 -74
  751. package/bundled-test-harness/assets/gts-file-def-test-BCRHwDeZ.js +0 -100
  752. package/bundled-test-harness/assets/head-format-preview-test-DnfUhniI.js +0 -158
  753. package/bundled-test-harness/assets/helpers-DklkegO_.js +0 -5
  754. package/bundled-test-harness/assets/host-mode-service-vOfN0smp.js +0 -232
  755. package/bundled-test-harness/assets/host-mode-test-CCCJFz6_.js +0 -831
  756. package/bundled-test-harness/assets/host-submode-test-CtCfbuPA.js +0 -1342
  757. package/bundled-test-harness/assets/html-component-test-CWyhb5ZX.js +0 -65
  758. package/bundled-test-harness/assets/html-def-test-Cb8C2lUx.js +0 -160
  759. package/bundled-test-harness/assets/html-meta-extractor-test-BHT9Rtir.js +0 -60
  760. package/bundled-test-harness/assets/hydratable-card-test-DpgpdesD.js +0 -426
  761. package/bundled-test-harness/assets/icon-button-ABCGVF3C.js +0 -67
  762. package/bundled-test-harness/assets/image-metadata-extractor-test-ClhPTouq.js +0 -1109
  763. package/bundled-test-harness/assets/index-changes-test-CgnVr3LH.js +0 -367
  764. package/bundled-test-harness/assets/index-query-engine-test-CQTwju5_.js +0 -2593
  765. package/bundled-test-harness/assets/index-writer-test-IoVOoZT2.js +0 -3040
  766. package/bundled-test-harness/assets/inspector-test-BN2Ieb77.js +0 -2058
  767. package/bundled-test-harness/assets/instance-filter-matcher-test-Bq-_Sy89.js +0 -788
  768. package/bundled-test-harness/assets/instantiate-card-test-DEeDTzFV.js +0 -164
  769. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DP6kOyJS.js +0 -475
  770. package/bundled-test-harness/assets/interact-submode-setup-B0_cHqH-.js +0 -566
  771. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-9uUD91Pw.js +0 -99
  772. package/bundled-test-harness/assets/invite-user-to-room-test-CcDA45Ac.js +0 -142
  773. package/bundled-test-harness/assets/invoke-card-operation-test-DmUtgueM.js +0 -333
  774. package/bundled-test-harness/assets/isolated-render-test-B2eXNHu6.js +0 -51
  775. package/bundled-test-harness/assets/job-scoped-doc-cache-test-DF9D7cOc.js +0 -181
  776. package/bundled-test-harness/assets/job-scoped-instance-residency-test-CSS8xUU5.js +0 -103
  777. package/bundled-test-harness/assets/jpg-image-def-test-voECMTht.js +0 -697
  778. package/bundled-test-harness/assets/json-file-def-test-8Y4KLjUC.js +0 -95
  779. package/bundled-test-harness/assets/key-notices-badge-test-d1mYqx0e.js +0 -155
  780. package/bundled-test-harness/assets/key-readiness-test-BtCg7PCk.js +0 -190
  781. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CyCMbJnN.js +0 -398
  782. package/bundled-test-harness/assets/linksto-error-sentinel-test-BDW572-v.js +0 -238
  783. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-B4wM97hD.js +0 -354
  784. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-BhJmtJ0_.js +0 -303
  785. package/bundled-test-harness/assets/linksto-sentinel-reload-test-BpBQ5V_i.js +0 -197
  786. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-pkBBl4e9.js +0 -260
  787. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-Bb6wjUdD.js +0 -196
  788. package/bundled-test-harness/assets/lint-and-fix-test-CcMLn-co.js +0 -51
  789. package/bundled-test-harness/assets/live-test-AyBnq7BX.js +0 -2
  790. package/bundled-test-harness/assets/live-test-CgnAcIDw.js +0 -100
  791. package/bundled-test-harness/assets/load-default-skills-test-BIOwtx0Y.js +0 -74
  792. package/bundled-test-harness/assets/loader-parallel-prefetch-test-D5_oRSER.js +0 -257
  793. package/bundled-test-harness/assets/loader-test-DSc_jR1c.js +0 -482
  794. package/bundled-test-harness/assets/loading-test-8pldx7S-.js +0 -63
  795. package/bundled-test-harness/assets/m4a-audio-def-test-BDI5apzM.js +0 -190
  796. package/bundled-test-harness/assets/main-5kHyCkdm.js +0 -5
  797. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-Wud0s7WZ.js +0 -470
  798. package/bundled-test-harness/assets/markdown-embed-chooser-test-DVzzS-0C.js +0 -334
  799. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-B5W_iqsi.js +0 -447
  800. package/bundled-test-harness/assets/markdown-embed-preview-test-CZF_s0fB.js +0 -368
  801. package/bundled-test-harness/assets/markdown-fallback-test-fT6BS4W7.js +0 -316
  802. package/bundled-test-harness/assets/markdown-file-def-test-B1aTzazR.js +0 -380
  803. package/bundled-test-harness/assets/markdown-helpers-test-gNKZf7Mw.js +0 -188
  804. package/bundled-test-harness/assets/markdown-highlighting-test-Du5_CQmD.js +0 -244
  805. package/bundled-test-harness/assets/markdown-preview-h-_aJhRc.js +0 -72
  806. package/bundled-test-harness/assets/markdown-preview-test-DJvoVsXw.js +0 -238
  807. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-VwJi3Paj.js +0 -146
  808. package/bundled-test-harness/assets/markdown-skill-search-test-ysCdf0xM.js +0 -80
  809. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-K2JuMy36.js +0 -63
  810. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-CkdL_-os.js +0 -300
  811. package/bundled-test-harness/assets/matrix-service-personal-realm-test-Dy1DultK.js +0 -125
  812. package/bundled-test-harness/assets/matrix-service-realm-servers-test-DHDDKuEg.js +0 -55
  813. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-DcTbZpMl.js +0 -132
  814. package/bundled-test-harness/assets/matrix-service-relogin-test-D3NQktoa.js +0 -59
  815. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-6CAflWOA.js +0 -35
  816. package/bundled-test-harness/assets/menu-kUSaJIPq.js +0 -3562
  817. package/bundled-test-harness/assets/message-service-subscription-test-DaQdgDWi.js +0 -110
  818. package/bundled-test-harness/assets/message-service-test-BsGEgM_m.js +0 -144
  819. package/bundled-test-harness/assets/message-tool-test-BB_4kw1V.js +0 -33
  820. package/bundled-test-harness/assets/midi-audio-def-test-BbbkFjqf.js +0 -182
  821. package/bundled-test-harness/assets/migrate-skill-test-X9xImDuq.js +0 -161
  822. package/bundled-test-harness/assets/mini-AwF31elJ.js +0 -1404
  823. package/bundled-test-harness/assets/mini-card-chooser-test-BZtrEiWu.js +0 -272
  824. package/bundled-test-harness/assets/mini-file-chooser-test-MIHW3kCI.js +0 -201
  825. package/bundled-test-harness/assets/mock-matrix-Dd8k0DNa.js +0 -15107
  826. package/bundled-test-harness/assets/mock-matrix-DhPN_34j.js +0 -2
  827. package/bundled-test-harness/assets/modal-LTh3_oHK.js +0 -322
  828. package/bundled-test-harness/assets/model-cost-tier-test-h1IkU9mp.js +0 -174
  829. package/bundled-test-harness/assets/model-file-extract-test-ntSo0wZF.js +0 -206
  830. package/bundled-test-harness/assets/module-transpile-cache-test-CDeRaaeP.js +0 -67
  831. package/bundled-test-harness/assets/monaco-test-C0Fa744D.js +0 -100
  832. package/bundled-test-harness/assets/mp3-audio-def-test-B4j4qR9H.js +0 -133
  833. package/bundled-test-harness/assets/multiple-stacks-test-BhA25ywL.js +0 -208
  834. package/bundled-test-harness/assets/nested-query-field-render-test-S9Y8YNKB.js +0 -249
  835. package/bundled-test-harness/assets/no-stacks-test-B7VciWyg.js +0 -48
  836. package/bundled-test-harness/assets/number-field-test-CS74lDPN.js +0 -184
  837. package/bundled-test-harness/assets/office-file-def-test-2cKc1pmd.js +0 -263
  838. package/bundled-test-harness/assets/office-metadata-extractor-test-DC8Fo-OW.js +0 -218
  839. package/bundled-test-harness/assets/office-poster-capture-test-Ba0_5UrT.js +0 -203
  840. package/bundled-test-harness/assets/ogg-audio-def-test-CIPQ1d4w.js +0 -196
  841. package/bundled-test-harness/assets/open-create-listing-modal-test-bmQkY5Zl.js +0 -131
  842. package/bundled-test-harness/assets/open-image-in-new-tab-test-DBD7_vMH.js +0 -52
  843. package/bundled-test-harness/assets/open-secure-window-test-BgeuYAqz.js +0 -253
  844. package/bundled-test-harness/assets/open-workspace-test-DRHGljV0.js +0 -46
  845. package/bundled-test-harness/assets/operation-lowering-test-CH1c0pSH.js +0 -2957
  846. package/bundled-test-harness/assets/operations-invocation-test-B1YkCLrv.js +0 -523
  847. package/bundled-test-harness/assets/operations-optimistic-test-DAbtOwsC.js +0 -203
  848. package/bundled-test-harness/assets/operations-query-test-9p1ZIDe-.js +0 -459
  849. package/bundled-test-harness/assets/operations-store-reconciliation-test-D0EQh3w2.js +0 -406
  850. package/bundled-test-harness/assets/operations-test-BQhlrfe3.js +0 -2518
  851. package/bundled-test-harness/assets/operator-mode-acceptance-test-DtHnonEb.js +0 -1195
  852. package/bundled-test-harness/assets/operator-mode-card-chooser-test-DQUxZxaq.js +0 -1036
  853. package/bundled-test-harness/assets/operator-mode-links-test-BJ26HllS.js +0 -797
  854. package/bundled-test-harness/assets/operator-mode-test-DIPDI0qt.js +0 -696
  855. package/bundled-test-harness/assets/operator-mode-ui-test-CfA-fAh4.js +0 -1045
  856. package/bundled-test-harness/assets/overlay-DecPh3nt.js +0 -123
  857. package/bundled-test-harness/assets/overlay-menu-items-test-C6XqjLtu.js +0 -331
  858. package/bundled-test-harness/assets/overlays-Ctp8ePzZ.js +0 -75
  859. package/bundled-test-harness/assets/overlays-CzWpSg5T.js +0 -2
  860. package/bundled-test-harness/assets/overlays-detached-element-test-DvL_8Bb5.js +0 -56
  861. package/bundled-test-harness/assets/panel-CImumikB.js +0 -15124
  862. package/bundled-test-harness/assets/past-sessions-test-N6riGN_I.js +0 -321
  863. package/bundled-test-harness/assets/patch-fields-test-D30_-KwQ.js +0 -1014
  864. package/bundled-test-harness/assets/patch-instance-test-C5rGscZq.js +0 -348
  865. package/bundled-test-harness/assets/pdf-file-def-test-DtiqGRvZ.js +0 -111
  866. package/bundled-test-harness/assets/pdf-metadata-extractor-test-FU02KmdV.js +0 -130
  867. package/bundled-test-harness/assets/permission-checking-realm-test-DqdNJDwU.js +0 -306
  868. package/bundled-test-harness/assets/persist-module-inspector-view-test-BHOAgPVy.js +0 -60
  869. package/bundled-test-harness/assets/persist-scroll-position-test-qtmS518r.js +0 -254
  870. package/bundled-test-harness/assets/phone-number-field-test-DhdaM7uL.js +0 -73
  871. package/bundled-test-harness/assets/pill-menu-test-C9Mrrepl.js +0 -60
  872. package/bundled-test-harness/assets/plate-9n-sXyCw.js +0 -41
  873. package/bundled-test-harness/assets/plate-BnZcAk-_.js +0 -2
  874. package/bundled-test-harness/assets/player-Cu5b4LEJ.js +0 -82
  875. package/bundled-test-harness/assets/player-unk2mkxV.js +0 -2
  876. package/bundled-test-harness/assets/playground-BwA8wFGK.js +0 -58
  877. package/bundled-test-harness/assets/plural-field-components-test-CFNQKETg.js +0 -198
  878. package/bundled-test-harness/assets/png-image-def-test-DG5Vhlqb.js +0 -266
  879. package/bundled-test-harness/assets/policy-audit-confirmation-test-yfKU47LR.js +0 -155
  880. package/bundled-test-harness/assets/policy-scoped-search-test-BjQRDYqR.js +0 -339
  881. package/bundled-test-harness/assets/prerender-file-extract-test-CEU4SaAZ.js +0 -346
  882. package/bundled-test-harness/assets/prerender-html-test-CGB3ClCS.js +0 -670
  883. package/bundled-test-harness/assets/prerender-meta-test-xqc4fW_0.js +0 -614
  884. package/bundled-test-harness/assets/prerender-module-test-CI1TmZw-.js +0 -409
  885. package/bundled-test-harness/assets/prerender-persistence-block-test-Da0dJO_N.js +0 -124
  886. package/bundled-test-harness/assets/prerender-pre-model-error-test-BVLyhk8R.js +0 -61
  887. package/bundled-test-harness/assets/prerender-serialize-cycle-test-glJFfxHU.js +0 -134
  888. package/bundled-test-harness/assets/prerendered-html-read-test-Mp4L0VHQ.js +0 -191
  889. package/bundled-test-harness/assets/pretui-components-test-BBpA9UnA.js +0 -991
  890. package/bundled-test-harness/assets/pretui-components-test-BqFq7rw_.css +0 -730
  891. package/bundled-test-harness/assets/preview-format-test-C55Bwcur.js +0 -103
  892. package/bundled-test-harness/assets/preview-test-CTAhRGU8.js +0 -474
  893. package/bundled-test-harness/assets/process-card-test-UjqpuxB7.js +0 -94
  894. package/bundled-test-harness/assets/profile-settings-modal-C8bCgTMK.js +0 -989
  895. package/bundled-test-harness/assets/publish-realm-ixUB4FPK.js +0 -82
  896. package/bundled-test-harness/assets/publish-realm-test-CrrsdL4W.js +0 -210
  897. package/bundled-test-harness/assets/query-field-barrier-test-DjivFE93.js +0 -113
  898. package/bundled-test-harness/assets/query-field-error-sentinel-test-0HwnV4Mw.js +0 -201
  899. package/bundled-test-harness/assets/query-field-membership-status-test-C8yTTBkc.js +0 -323
  900. package/bundled-test-harness/assets/query-field-page-optin-test-D4l_GcII.js +0 -126
  901. package/bundled-test-harness/assets/query-field-schema-test-DDbcNNm5.js +0 -231
  902. package/bundled-test-harness/assets/query-field-search-throttle-test-CXp50Ax0.js +0 -154
  903. package/bundled-test-harness/assets/query-field-stale-prerender-test-DErzt-Cv.js +0 -152
  904. package/bundled-test-harness/assets/query-fields-test-Dz67fdSl.js +0 -535
  905. package/bundled-test-harness/assets/quick-look-test-B1ijDsh_.js +0 -139
  906. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-DJxZ16H_.js +0 -91
  907. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-BoRQkZ8c.js +0 -45
  908. package/bundled-test-harness/assets/read-source-test-Bl-NjchO.js +0 -67
  909. package/bundled-test-harness/assets/read-text-file-test-CP37CZoo.js +0 -124
  910. package/bundled-test-harness/assets/realm-CaK5mkT-.js +0 -2852
  911. package/bundled-test-harness/assets/realm-api-keys-BNUFWbGR.js +0 -579
  912. package/bundled-test-harness/assets/realm-api-keys-CkshxhXC.js +0 -2
  913. package/bundled-test-harness/assets/realm-api-keys-test-BP8xifjn.js +0 -109
  914. package/bundled-test-harness/assets/realm-api-keys-test-CwdK9YXp.js +0 -588
  915. package/bundled-test-harness/assets/realm-config-iKwE3Htp.js +0 -833
  916. package/bundled-test-harness/assets/realm-config-policy-standing-test-BgVEIDnB.js +0 -290
  917. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-BoJoKzmX.js +0 -274
  918. package/bundled-test-harness/assets/realm-config-settings-test-Kxw-GHye.js +0 -187
  919. package/bundled-test-harness/assets/realm-field-test-CdGOxrFb.js +0 -100
  920. package/bundled-test-harness/assets/realm-indexing-test-CHtsBV2b.js +0 -4380
  921. package/bundled-test-harness/assets/realm-policy-fitted-test--DhNZSdC.js +0 -206
  922. package/bundled-test-harness/assets/realm-policy-test-D7714iVa.js +0 -1141
  923. package/bundled-test-harness/assets/realm-querying-test-Cj1ekZ0H.js +0 -1067
  924. package/bundled-test-harness/assets/realm-server-form-agnostic-test-CZFPNJfD.js +0 -96
  925. package/bundled-test-harness/assets/realm-server-subscriber-test-C86WmBp0.js +0 -46
  926. package/bundled-test-harness/assets/realm-service-info-test-CdgcwKDR.js +0 -67
  927. package/bundled-test-harness/assets/realm-test-DPoLsvKz.js +0 -2364
  928. package/bundled-test-harness/assets/realm-token-refresh-test-Ch35Siwi.js +0 -153
  929. package/bundled-test-harness/assets/realm-url-tooltip-test-x8xWOENK.js +0 -78
  930. package/bundled-test-harness/assets/reasoning-test-BxpE8Jvf.js +0 -221
  931. package/bundled-test-harness/assets/recent-files-test-DTmEzPLq.js +0 -450
  932. package/bundled-test-harness/assets/reindex-realm-test-BQ8KULn4.js +0 -117
  933. package/bundled-test-harness/assets/relationship-loading-state-test-BJoArPWf.js +0 -290
  934. package/bundled-test-harness/assets/remix-card-test-DsTA1KoG.js +0 -58
  935. package/bundled-test-harness/assets/rendered-markdown-DvukulDO.js +0 -292
  936. package/bundled-test-harness/assets/rendered-markdown-test-DxGptXSV.js +0 -587
  937. package/bundled-test-harness/assets/resident-instance-reuse-test-ZWnVu8uj.js +0 -82
  938. package/bundled-test-harness/assets/result-tile-CPyI6Vmv.js +0 -144
  939. package/bundled-test-harness/assets/rich-markdown-field-test-CdygoXIO.js +0 -1647
  940. package/bundled-test-harness/assets/room-message-test-D3NfMqH0.js +0 -484
  941. package/bundled-test-harness/assets/run-D_Px28eF.js +0 -3956
  942. package/bundled-test-harness/assets/run-realm-code-qWCZxmJ7.js +0 -2964
  943. package/bundled-test-harness/assets/run-realm-code-test-UzyeEJq6.js +0 -3844
  944. package/bundled-test-harness/assets/sanitize-module-list-test-Babq44bP.js +0 -85
  945. package/bundled-test-harness/assets/save-card-skip-index-wait-test-BcELXlQ_.js +0 -89
  946. package/bundled-test-harness/assets/schema-editor-test-CEvruZbt.js +0 -785
  947. package/bundled-test-harness/assets/schema-generation-test-hYAMdCrn.js +0 -28
  948. package/bundled-test-harness/assets/scrolling-test-DVIsh-_1.js +0 -412
  949. package/bundled-test-harness/assets/search-adorn-test-CkVhqFd0.js +0 -136
  950. package/bundled-test-harness/assets/search-and-choose-test-DUhOB3FV.js +0 -154
  951. package/bundled-test-harness/assets/search-correlation-id-test-Drn4r26N.js +0 -139
  952. package/bundled-test-harness/assets/search-entries-result-test-DTCRJ_wc.js +0 -234
  953. package/bundled-test-harness/assets/search-entries-test-CE0B47pw.js +0 -1486
  954. package/bundled-test-harness/assets/search-entries-tool-test-C4aG0ckM.js +0 -504
  955. package/bundled-test-harness/assets/search-google-images-test-LyhcB2f3.js +0 -166
  956. package/bundled-test-harness/assets/search-results-D4pSne0x.js +0 -266
  957. package/bundled-test-harness/assets/search-results-test-CRZHhqhn.js +0 -578
  958. package/bundled-test-harness/assets/search-selection-menu-test-B7Y3E_nj.js +0 -108
  959. package/bundled-test-harness/assets/search-sheet-files-test-C2y534g8.js +0 -126
  960. package/bundled-test-harness/assets/search-sheet-persistence-test-DePC59Bk.js +0 -131
  961. package/bundled-test-harness/assets/search-test-Dy8NxFkU.js +0 -2249
  962. package/bundled-test-harness/assets/search-tool-test-lctDaMH3.js +0 -156
  963. package/bundled-test-harness/assets/searchable-option-test-CE64M8oM.js +0 -322
  964. package/bundled-test-harness/assets/searchable-search-doc-test-C6u3mVvT.js +0 -1271
  965. package/bundled-test-harness/assets/section-rail-B_UQX00B.js +0 -113
  966. package/bundled-test-harness/assets/section-rail-test-DIda7MIw.js +0 -256
  967. package/bundled-test-harness/assets/secure-sign-in-CqqqfQG8.js +0 -174
  968. package/bundled-test-harness/assets/secure-sign-in-test-DimbVr_W.js +0 -373
  969. package/bundled-test-harness/assets/segmented-control-iePxSdTS.js +0 -173
  970. package/bundled-test-harness/assets/select-tNs6_xwW.js +0 -175
  971. package/bundled-test-harness/assets/send-ai-assistant-message-test-2GVrMF9Z.js +0 -52
  972. package/bundled-test-harness/assets/send-bot-trigger-event-test-B_3dKfGN.js +0 -56
  973. package/bundled-test-harness/assets/send-request-via-proxy-test-_clNWyYc.js +0 -380
  974. package/bundled-test-harness/assets/sending-test-DCPFXUVg.js +0 -659
  975. package/bundled-test-harness/assets/serialization-rri-form-audit-test-BI0zCs8Y.js +0 -136
  976. package/bundled-test-harness/assets/serialization-test-bjdtVlZL.js +0 -8758
  977. package/bundled-test-harness/assets/set-user-system-card-test-BUv1vL08.js +0 -59
  978. package/bundled-test-harness/assets/setup-BW1mmC7C.js +0 -772
  979. package/bundled-test-harness/assets/setup-DsIcFT-T.js +0 -2
  980. package/bundled-test-harness/assets/shared-link-target-reuse-test-9NeJEjkb.js +0 -207
  981. package/bundled-test-harness/assets/show-card-test-mfyLwusD.js +0 -365
  982. package/bundled-test-harness/assets/signed-capture-link-test-BOtKNCAM.js +0 -132
  983. package/bundled-test-harness/assets/single-stack-test-B4MGjaLk.js +0 -652
  984. package/bundled-test-harness/assets/skills-test-BuP-Yzk1.js +0 -648
  985. package/bundled-test-harness/assets/skip-boot-index-guard-test-Cmrx2-K7.js +0 -46
  986. package/bundled-test-harness/assets/spec-test-BhZDdhVQ.js +0 -1077
  987. package/bundled-test-harness/assets/spinner-CpIBUG9m.js +0 -49
  988. package/bundled-test-harness/assets/src-DGHttmW-.js +0 -216
  989. package/bundled-test-harness/assets/src-DaNDSbp7.js +0 -5
  990. package/bundled-test-harness/assets/stick-to-bottom-resize-test-Dpy3OVum.js +0 -56
  991. package/bundled-test-harness/assets/store-add-test-_IYS8o74.js +0 -50
  992. package/bundled-test-harness/assets/store-module-rebuild-test-B5VMaICy.js +0 -454
  993. package/bundled-test-harness/assets/store-search-test-C2VZabrH.js +0 -175
  994. package/bundled-test-harness/assets/store-test-D6PObxoD.js +0 -3672
  995. package/bundled-test-harness/assets/structured-theme-test-BHjVeMf-.js +0 -377
  996. package/bundled-test-harness/assets/summarize-session-test-BFtTuhe0.js +0 -172
  997. package/bundled-test-harness/assets/svg-image-def-test-BL6lkWUX.js +0 -167
  998. package/bundled-test-harness/assets/switch-submode-test-6Uv3bZMl.js +0 -168
  999. package/bundled-test-harness/assets/sync-openrouter-models-test-Dp9E05tL.js +0 -97
  1000. package/bundled-test-harness/assets/test-support-DYm8XZ0E.js +0 -3
  1001. package/bundled-test-harness/assets/test-support-DfnhiIMV.js +0 -99
  1002. package/bundled-test-harness/assets/tests-CZk0Iag2.js +0 -3596
  1003. package/bundled-test-harness/assets/text-file-def-test-CHdC0yIU.js +0 -94
  1004. package/bundled-test-harness/assets/text-input-validator-test-B9ZR8XPU.js +0 -156
  1005. package/bundled-test-harness/assets/text-suggestion-test-CGLspKFQ.js +0 -340
  1006. package/bundled-test-harness/assets/theme-card-test-CXZvSEvG.js +0 -621
  1007. package/bundled-test-harness/assets/theme-dashboard-nav-test-CkEE0ILk.js +0 -196
  1008. package/bundled-test-harness/assets/theme-scheme-island-test-URXTjipF.js +0 -264
  1009. package/bundled-test-harness/assets/titles-C6enAdIv.js +0 -2
  1010. package/bundled-test-harness/assets/titles-Dft1HoUT.js +0 -52
  1011. package/bundled-test-harness/assets/to-device-streaming-test-D33ZOc9o.js +0 -163
  1012. package/bundled-test-harness/assets/token-usage-test-BHQlU4J4.js +0 -160
  1013. package/bundled-test-harness/assets/tools-CrudqfS3.js +0 -774
  1014. package/bundled-test-harness/assets/tools-calling-test-jo7IREau.js +0 -200
  1015. package/bundled-test-harness/assets/tools-test-D1wMfUa0.js +0 -1624
  1016. package/bundled-test-harness/assets/tools-test-Dn1LYsXp.js +0 -3204
  1017. package/bundled-test-harness/assets/tooltip-8Wyz4IIn.css +0 -68
  1018. package/bundled-test-harness/assets/tooltip-CqwLzRz5.js +0 -134
  1019. package/bundled-test-harness/assets/transform-cards-test-BPhwPFtp.js +0 -341
  1020. package/bundled-test-harness/assets/ts-file-def-preview-test-Bq3zTgw8.js +0 -95
  1021. package/bundled-test-harness/assets/ts-file-def-test-GLswMl7O.js +0 -92
  1022. package/bundled-test-harness/assets/ttf-font-def-test-DQulvUWs.js +0 -206
  1023. package/bundled-test-harness/assets/turn-settling-test-BspmOUQP.js +0 -160
  1024. package/bundled-test-harness/assets/turn-summary-9A8nvC0-.js +0 -1039
  1025. package/bundled-test-harness/assets/unpublish-realm-test-SkYPEhDz.js +0 -102
  1026. package/bundled-test-harness/assets/update-room-skills-test-cTxb-WU6.js +0 -240
  1027. package/bundled-test-harness/assets/use-ai-assistant-test-uaqW1T_A.js +0 -384
  1028. package/bundled-test-harness/assets/user-message-BudkIP-3.js +0 -262
  1029. package/bundled-test-harness/assets/validate-realm-test-DxrGgH9n.js +0 -67
  1030. package/bundled-test-harness/assets/video-metadata-extractor-test-B2pe-Iqa.js +0 -520
  1031. package/bundled-test-harness/assets/view-visually-test-PNon6fUo.js +0 -335
  1032. package/bundled-test-harness/assets/virtual-network-reset-test-uYJLaQHf.js +0 -96
  1033. package/bundled-test-harness/assets/wav-audio-def-test-F4OrFFR4.js +0 -160
  1034. package/bundled-test-harness/assets/webp-image-def-test-B0a_-Vya.js +0 -226
  1035. package/bundled-test-harness/assets/workspace-Cyftysy9.js +0 -440
  1036. package/bundled-test-harness/assets/workspace-a11y-test-sKiPDcbl.js +0 -197
  1037. package/bundled-test-harness/assets/workspace-actions-BuawjFmZ.js +0 -561
  1038. package/bundled-test-harness/assets/workspace-behavior-test-CKa-pb3T.js +0 -338
  1039. package/bundled-test-harness/assets/workspace-delete-multiple-test-Dt2weG5R.js +0 -212
  1040. package/bundled-test-harness/assets/workspace-delete-summary-test-CkqgFqZ8.js +0 -63
  1041. package/bundled-test-harness/assets/workspace-hosting-test-Ci7EEtHP.js +0 -138
  1042. package/bundled-test-harness/assets/workspace-indexing-test-BPVxxY6W.js +0 -71
  1043. package/bundled-test-harness/assets/workspace-test-CWr7vFbg.js +0 -385
  1044. package/bundled-test-harness/assets/workspace-test-INNpQovc.js +0 -51
  1045. package/bundled-test-harness/assets/workspace-timestamp-labels-test-CigQb5wr.js +0 -68
  1046. package/bundled-test-harness/assets/workspace-unit-test-BwVKpuXT.js +0 -122
  1047. package/bundled-test-harness/assets/write-binary-file-test-BKP3gv1k.js +0 -124
  1048. package/bundled-test-harness/assets/write-text-file-test-B6ijTKTa.js +0 -191
  1049. package/bundled-test-harness/assets/zip-archive-test-C-PBzkTn.js +0 -285
  1050. package/bundled-test-harness/assets/zip-file-def-test-FyCzJT-9.js +0 -164
@@ -0,0 +1,1176 @@
1
+ import { s as __toESM } from "./chunk-Rp0pCe6z.js";
2
+ import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
3
+ import { lt as setupRenderingTest } from "./mock-matrix-FjsXmU7-.js";
4
+ import { r as getService } from "./dist-CPfIHBla.js";
5
+ //#region tests/unit/audio-metadata-extractor-test.ts
6
+ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
7
+ function chunkedStream(bytes, chunkSize) {
8
+ let offset = 0;
9
+ return new ReadableStream({ pull(controller) {
10
+ if (offset >= bytes.length) {
11
+ controller.close();
12
+ return;
13
+ }
14
+ let end = Math.min(offset + chunkSize, bytes.length);
15
+ controller.enqueue(bytes.slice(offset, end));
16
+ offset = end;
17
+ } });
18
+ }
19
+ function ascii(text) {
20
+ return [...text].map((c) => c.charCodeAt(0));
21
+ }
22
+ function uint32le(value) {
23
+ return [
24
+ value & 255,
25
+ value >>> 8 & 255,
26
+ value >>> 16 & 255,
27
+ value >>> 24 & 255
28
+ ];
29
+ }
30
+ function uint32be(value) {
31
+ return [
32
+ value >>> 24 & 255,
33
+ value >>> 16 & 255,
34
+ value >>> 8 & 255,
35
+ value & 255
36
+ ];
37
+ }
38
+ function uint16le(value) {
39
+ return [value & 255, value >>> 8 & 255];
40
+ }
41
+ function riffChunk(id, body) {
42
+ let pad = body.length % 2 === 1 ? [0] : [];
43
+ return [
44
+ ...ascii(id),
45
+ ...uint32le(body.length),
46
+ ...body,
47
+ ...pad
48
+ ];
49
+ }
50
+ function buildWav(fmt = {}, infoEntries = []) {
51
+ let channels = fmt.channels ?? 2;
52
+ let sampleRate = fmt.sampleRate ?? 44100;
53
+ let bitsPerSample = fmt.bitsPerSample ?? 16;
54
+ let byteRate = sampleRate * channels * bitsPerSample / 8;
55
+ let blockAlign = channels * bitsPerSample / 8;
56
+ let chunks = [...riffChunk("fmt ", [
57
+ ...uint16le(fmt.formatCode ?? 1),
58
+ ...uint16le(channels),
59
+ ...uint32le(sampleRate),
60
+ ...uint32le(byteRate),
61
+ ...uint16le(blockAlign),
62
+ ...uint16le(bitsPerSample)
63
+ ])];
64
+ if (infoEntries.length > 0) {
65
+ let infoBody = [...ascii("INFO")];
66
+ for (let [id, value] of infoEntries) infoBody.push(...riffChunk(id, [...ascii(value), 0]));
67
+ chunks.push(...riffChunk("LIST", infoBody));
68
+ }
69
+ chunks.push(...riffChunk("data", new Array(64).fill(0)));
70
+ let payload = [...ascii("WAVE"), ...chunks];
71
+ return new Uint8Array([
72
+ ...ascii("RIFF"),
73
+ ...uint32le(payload.length),
74
+ ...payload
75
+ ]);
76
+ }
77
+ function buildFlac(streamInfo = {}, comments, seekPoints = 0) {
78
+ let sampleRate = streamInfo.sampleRate ?? 44100;
79
+ let channels = streamInfo.channels ?? 2;
80
+ let bitsPerSample = streamInfo.bitsPerSample ?? 16;
81
+ let block = new Array(34).fill(0);
82
+ block[10] = sampleRate >>> 12 & 255;
83
+ block[11] = sampleRate >>> 4 & 255;
84
+ block[12] = (sampleRate & 15) << 4 | (channels - 1 & 7) << 1 | bitsPerSample - 1 >>> 4 & 1;
85
+ block[13] = (bitsPerSample - 1 & 15) << 4 | 4;
86
+ block[14] = 0;
87
+ block[15] = 0;
88
+ block[16] = 172;
89
+ block[17] = 68;
90
+ let hasComments = comments !== void 0;
91
+ let out = [
92
+ ...ascii("fLaC"),
93
+ hasComments ? 0 : 128,
94
+ 0,
95
+ 0,
96
+ 34,
97
+ ...block
98
+ ];
99
+ if (seekPoints > 0) {
100
+ let length = seekPoints * 18;
101
+ out.push(3, length >>> 16 & 255, length >>> 8 & 255, length & 255, ...new Array(length).fill(0));
102
+ }
103
+ if (comments) {
104
+ let body = vorbisCommentBody(comments);
105
+ out.push(132, body.length >>> 16 & 255, body.length >>> 8 & 255, body.length & 255, ...body);
106
+ }
107
+ return new Uint8Array(out);
108
+ }
109
+ function vorbisCommentBody(entries) {
110
+ let vendor = ascii("test-vendor");
111
+ let out = [
112
+ ...uint32le(vendor.length),
113
+ ...vendor,
114
+ ...uint32le(entries.length)
115
+ ];
116
+ for (let [key, value] of entries) {
117
+ let entry = ascii(`${key}=${value}`);
118
+ out.push(...uint32le(entry.length), ...entry);
119
+ }
120
+ return out;
121
+ }
122
+ function buildOggPage(payload) {
123
+ return [
124
+ ...ascii("OggS"),
125
+ 0,
126
+ 2,
127
+ ...new Array(8).fill(0),
128
+ ...uint32le(1),
129
+ ...uint32le(0),
130
+ ...uint32le(0),
131
+ 1,
132
+ Math.min(payload.length, 255),
133
+ ...payload
134
+ ];
135
+ }
136
+ function buildOggVorbis(channels = 2, sampleRate = 44100, nominalBitrate = 128e3, comments) {
137
+ let out = buildOggPage([
138
+ 1,
139
+ ...ascii("vorbis"),
140
+ ...uint32le(0),
141
+ channels,
142
+ ...uint32le(sampleRate),
143
+ ...uint32le(0),
144
+ ...uint32le(nominalBitrate),
145
+ ...uint32le(0),
146
+ 0,
147
+ 1
148
+ ]);
149
+ if (comments) out.push(...buildOggPage([
150
+ 3,
151
+ ...ascii("vorbis"),
152
+ ...vorbisCommentBody(comments)
153
+ ]));
154
+ return new Uint8Array(out);
155
+ }
156
+ function buildOggOpus(channels = 2, comments) {
157
+ let out = buildOggPage([
158
+ ...ascii("OpusHead"),
159
+ 1,
160
+ channels,
161
+ ...uint16le(312),
162
+ ...uint32le(48e3),
163
+ ...uint16le(0),
164
+ 0
165
+ ]);
166
+ if (comments) out.push(...buildOggPage([...ascii("OpusTags"), ...vorbisCommentBody(comments)]));
167
+ return new Uint8Array(out);
168
+ }
169
+ function syncsafe(value) {
170
+ return [
171
+ value >>> 21 & 127,
172
+ value >>> 14 & 127,
173
+ value >>> 7 & 127,
174
+ value & 127
175
+ ];
176
+ }
177
+ function buildId3v2(frames, majorVersion = 3) {
178
+ let body = [];
179
+ let append = (values) => {
180
+ for (let value of values) body.push(value);
181
+ };
182
+ for (let [id, payload] of frames) {
183
+ append(ascii(id));
184
+ append(majorVersion >= 4 ? syncsafe(payload.length) : uint32be(payload.length));
185
+ append([0, 0]);
186
+ append(payload);
187
+ }
188
+ body.push(0, 0, 0, 0);
189
+ return new Uint8Array([
190
+ ...ascii("ID3"),
191
+ majorVersion,
192
+ 0,
193
+ 0,
194
+ ...syncsafe(body.length),
195
+ ...body
196
+ ]);
197
+ }
198
+ function latin1Frame(text) {
199
+ return [
200
+ 0,
201
+ ...ascii(text),
202
+ 0
203
+ ];
204
+ }
205
+ function buildMp3Frame(options = {}) {
206
+ let header = [
207
+ 255,
208
+ 251,
209
+ 144,
210
+ 64
211
+ ];
212
+ let body = [];
213
+ if (options.withXing) body.push(...new Array(32).fill(0), ...ascii("Xing"), ...uint32be(1), ...uint32be(1e3));
214
+ return [
215
+ ...header,
216
+ ...body,
217
+ ...new Array(64).fill(0)
218
+ ];
219
+ }
220
+ (0, import_qunit.module)("Unit | audio metadata extractors", function(hooks) {
221
+ setupRenderingTest(hooks);
222
+ let loader;
223
+ let extractWavEncoding;
224
+ let extractWavTags;
225
+ let extractWavFromStream;
226
+ let extractFlacEncoding;
227
+ let extractFlacTags;
228
+ let FLAC_METADATA_WINDOW_BYTES;
229
+ let extractOggEncoding;
230
+ let extractOggTags;
231
+ let extractMp3Encoding;
232
+ let extractMp3Envelope;
233
+ let extractMp3EnvelopeFromStream;
234
+ let StreamingEnvelope;
235
+ let parseId3v2Tags;
236
+ let parseVorbisComments;
237
+ let analyzeDecodedAudio;
238
+ let decodeSkipReason;
239
+ let predictedDecodedBytes;
240
+ let extractAudioWaveform;
241
+ let audioAttributes;
242
+ let extractMidiMetadata;
243
+ hooks.beforeEach(async function() {
244
+ loader = getService("loader-service").loader;
245
+ ({extractWavEncoding, extractWavTags, extractWavFromStream} = await loader.import("@cardstack/base/wav-meta-extractor"));
246
+ ({extractFlacEncoding, extractFlacTags, FLAC_METADATA_WINDOW_BYTES} = await loader.import("@cardstack/base/flac-meta-extractor"));
247
+ ({extractOggEncoding, extractOggTags} = await loader.import("@cardstack/base/ogg-meta-extractor"));
248
+ ({extractMp3Encoding, extractMp3Envelope, extractMp3EnvelopeFromStream} = await loader.import("@cardstack/base/mp3-meta-extractor"));
249
+ ({StreamingEnvelope} = await loader.import("@cardstack/base/streaming-envelope"));
250
+ ({parseId3v2Tags} = await loader.import("@cardstack/base/id3v2-parser"));
251
+ ({parseVorbisComments} = await loader.import("@cardstack/base/vorbis-comment-parser"));
252
+ ({analyzeDecodedAudio, decodeSkipReason, predictedDecodedBytes, extractAudioWaveform} = await loader.import("@cardstack/base/audio-waveform"));
253
+ ({audioAttributes} = await loader.import("@cardstack/base/audio-file-def"));
254
+ ({extractMidiMetadata} = await loader.import("@cardstack/base/midi-meta-extractor"));
255
+ });
256
+ (0, import_qunit.module)("WAV", function() {
257
+ (0, import_qunit.test)("reads the sample layout the fmt chunk states outright", function(assert) {
258
+ let encoding = extractWavEncoding(buildWav({
259
+ channels: 2,
260
+ sampleRate: 48e3,
261
+ bitsPerSample: 24
262
+ }));
263
+ assert.strictEqual(encoding?.container, "WAV");
264
+ assert.strictEqual(encoding?.audioCodec, "PCM");
265
+ assert.strictEqual(encoding?.sampleRateHz, 48e3);
266
+ assert.strictEqual(encoding?.bitDepth, 24);
267
+ assert.strictEqual(encoding?.channels, 2);
268
+ assert.strictEqual(encoding?.channelMode, "stereo");
269
+ assert.false(encoding?.isVariableBitrate, "PCM is constant-rate by definition");
270
+ assert.strictEqual(encoding?.bitrateBps, 48e3 * 2 * 3 * 8);
271
+ });
272
+ (0, import_qunit.test)("names the float and companded format codes", function(assert) {
273
+ assert.strictEqual(extractWavEncoding(buildWav({ formatCode: 3 }))?.audioCodec, "IEEE float");
274
+ assert.strictEqual(extractWavEncoding(buildWav({ formatCode: 7 }))?.audioCodec, "μ-law");
275
+ });
276
+ (0, import_qunit.test)("leaves an unrecognized format code unnamed rather than guessing", function(assert) {
277
+ let encoding = extractWavEncoding(buildWav({ formatCode: 4660 }));
278
+ assert.strictEqual(encoding?.audioCodec, void 0);
279
+ assert.strictEqual(encoding?.sampleRateHz, 44100, "the layout still reads even when the codec does not");
280
+ });
281
+ (0, import_qunit.test)("reads a mono file as mono", function(assert) {
282
+ assert.strictEqual(extractWavEncoding(buildWav({ channels: 1 }))?.channelMode, "mono");
283
+ });
284
+ (0, import_qunit.test)("reads LIST-INFO tags", function(assert) {
285
+ let tags = extractWavTags(buildWav({}, [
286
+ ["INAM", "Field Recording"],
287
+ ["IART", "A Recordist"],
288
+ ["ICRD", "2021-07-04"],
289
+ ["IGNR", "Ambient"]
290
+ ]));
291
+ assert.strictEqual(tags?.trackTitle, "Field Recording");
292
+ assert.strictEqual(tags?.artist, "A Recordist");
293
+ assert.strictEqual(tags?.year, 2021, "a full date yields just its leading year");
294
+ assert.strictEqual(tags?.genre, "Ambient");
295
+ assert.deepEqual(tags?.scheme, "riff-info");
296
+ });
297
+ (0, import_qunit.test)("a WAV with no LIST chunk produces no tags at all", function(assert) {
298
+ assert.strictEqual(extractWavTags(buildWav()), void 0, "a tag block carrying only its scheme is not worth an index row");
299
+ });
300
+ (0, import_qunit.test)("a truncated file yields nothing rather than throwing", function(assert) {
301
+ let short = buildWav().subarray(0, 20);
302
+ assert.strictEqual(extractWavEncoding(short), void 0);
303
+ assert.strictEqual(extractWavTags(short), void 0);
304
+ });
305
+ });
306
+ (0, import_qunit.module)("FLAC", function() {
307
+ (0, import_qunit.test)("reads the sample layout from STREAMINFO", function(assert) {
308
+ let encoding = extractFlacEncoding(buildFlac({
309
+ sampleRate: 96e3,
310
+ channels: 2,
311
+ bitsPerSample: 24
312
+ }));
313
+ assert.strictEqual(encoding?.container, "FLAC");
314
+ assert.strictEqual(encoding?.audioCodec, "FLAC");
315
+ assert.strictEqual(encoding?.sampleRateHz, 96e3);
316
+ assert.strictEqual(encoding?.bitDepth, 24);
317
+ assert.strictEqual(encoding?.channels, 2);
318
+ assert.true(encoding?.isVariableBitrate, "lossless compression has no constant rate to report");
319
+ assert.strictEqual(encoding?.bitrateBps, void 0, "FLAC never states a bitrate, so none is invented");
320
+ });
321
+ (0, import_qunit.test)("reads a 16-bit mono stream", function(assert) {
322
+ let encoding = extractFlacEncoding(buildFlac({
323
+ sampleRate: 22050,
324
+ channels: 1,
325
+ bitsPerSample: 16
326
+ }));
327
+ assert.strictEqual(encoding?.sampleRateHz, 22050);
328
+ assert.strictEqual(encoding?.channels, 1);
329
+ assert.strictEqual(encoding?.bitDepth, 16);
330
+ assert.strictEqual(encoding?.channelMode, "mono");
331
+ });
332
+ (0, import_qunit.test)("reads Vorbis comments from the metadata block", function(assert) {
333
+ let tags = extractFlacTags(buildFlac({}, [
334
+ ["TITLE", "Nocturne"],
335
+ ["ARTIST", "A Pianist"],
336
+ ["ALBUM", "Night Pieces"],
337
+ ["DATE", "1994"],
338
+ ["TRACKNUMBER", "3"]
339
+ ]));
340
+ assert.strictEqual(tags?.trackTitle, "Nocturne");
341
+ assert.strictEqual(tags?.artist, "A Pianist");
342
+ assert.strictEqual(tags?.album, "Night Pieces");
343
+ assert.strictEqual(tags?.year, 1994);
344
+ assert.strictEqual(tags?.track, "3");
345
+ assert.strictEqual(tags?.scheme, "vorbis-comment");
346
+ });
347
+ (0, import_qunit.test)("finds tags behind a seek table, which the old window truncated", function(assert) {
348
+ let bytes = buildFlac({}, [["TITLE", "Behind A Seek Table"], ["ARTIST", "A Pianist"]], 1e3);
349
+ assert.true(bytes.length > 18e3, "the fixture really does push the comment block deep");
350
+ let windowed = bytes.subarray(0, FLAC_METADATA_WINDOW_BYTES);
351
+ assert.strictEqual(extractFlacTags(windowed)?.trackTitle, "Behind A Seek Table", "the window reaches the comment block");
352
+ assert.strictEqual(extractFlacTags(bytes.subarray(0, 256)), void 0, "and the old 256-byte window demonstrably did not");
353
+ });
354
+ (0, import_qunit.test)("a FLAC with no comment block produces no tags", function(assert) {
355
+ assert.strictEqual(extractFlacTags(buildFlac()), void 0);
356
+ });
357
+ (0, import_qunit.test)("a non-FLAC buffer yields nothing rather than throwing", function(assert) {
358
+ let notFlac = new Uint8Array(64).fill(65);
359
+ assert.strictEqual(extractFlacEncoding(notFlac), void 0);
360
+ assert.strictEqual(extractFlacTags(notFlac), void 0);
361
+ });
362
+ });
363
+ (0, import_qunit.module)("Ogg", function() {
364
+ (0, import_qunit.test)("reads the Vorbis identification header", function(assert) {
365
+ let encoding = extractOggEncoding(buildOggVorbis(2, 44100, 16e4));
366
+ assert.strictEqual(encoding?.container, "Ogg");
367
+ assert.strictEqual(encoding?.audioCodec, "Vorbis");
368
+ assert.strictEqual(encoding?.sampleRateHz, 44100);
369
+ assert.strictEqual(encoding?.bitrateBps, 16e4);
370
+ assert.strictEqual(encoding?.channels, 2);
371
+ });
372
+ (0, import_qunit.test)("an undeclared nominal bitrate is omitted, not reported as zero", function(assert) {
373
+ assert.strictEqual(extractOggEncoding(buildOggVorbis(2, 44100, 0))?.bitrateBps, void 0);
374
+ });
375
+ (0, import_qunit.test)("Opus reports the 48 kHz rate it actually decodes to", function(assert) {
376
+ let encoding = extractOggEncoding(buildOggOpus(2));
377
+ assert.strictEqual(encoding?.audioCodec, "Opus");
378
+ assert.strictEqual(encoding?.sampleRateHz, 48e3, "Opus always decodes to 48 kHz whatever it was captured at");
379
+ assert.strictEqual(encoding?.channels, 2);
380
+ });
381
+ (0, import_qunit.test)("reads Vorbis comments from a following page", function(assert) {
382
+ let tags = extractOggTags(buildOggVorbis(2, 44100, 128e3, [["TITLE", "Tape Loop"], ["ARTIST", "A Composer"]]));
383
+ assert.strictEqual(tags?.trackTitle, "Tape Loop");
384
+ assert.strictEqual(tags?.artist, "A Composer");
385
+ });
386
+ (0, import_qunit.test)("reads OpusTags", function(assert) {
387
+ let tags = extractOggTags(buildOggOpus(1, [["TITLE", "Voice Memo"]]));
388
+ assert.strictEqual(tags?.trackTitle, "Voice Memo");
389
+ });
390
+ (0, import_qunit.test)("a non-Ogg buffer yields nothing", function(assert) {
391
+ assert.strictEqual(extractOggEncoding(new Uint8Array(64).fill(65)), void 0);
392
+ });
393
+ });
394
+ (0, import_qunit.module)("MP3", function() {
395
+ (0, import_qunit.test)("reads the frame header and reports a constant rate as constant", function(assert) {
396
+ let encoding = extractMp3Encoding(new Uint8Array(buildMp3Frame()));
397
+ assert.strictEqual(encoding?.container, "MPEG");
398
+ assert.strictEqual(encoding?.audioCodec, "MP3 (MPEG Layer III)");
399
+ assert.strictEqual(encoding?.sampleRateHz, 44100);
400
+ assert.strictEqual(encoding?.bitrateBps, 128e3);
401
+ assert.strictEqual(encoding?.channels, 2);
402
+ assert.strictEqual(encoding?.channelMode, "joint-stereo");
403
+ assert.false(encoding?.isVariableBitrate, "no Xing header means the encoder wrote a constant rate");
404
+ });
405
+ (0, import_qunit.test)("a Xing header marks the bitrate as variable", function(assert) {
406
+ assert.true(extractMp3Encoding(new Uint8Array(buildMp3Frame({ withXing: true })))?.isVariableBitrate);
407
+ });
408
+ (0, import_qunit.test)("never reports a bit depth, which MP3 has no concept of", function(assert) {
409
+ assert.strictEqual(extractMp3Encoding(new Uint8Array(buildMp3Frame()))?.bitDepth, void 0);
410
+ });
411
+ (0, import_qunit.test)("finds the frame past a leading ID3v2 tag", function(assert) {
412
+ let tag = buildId3v2([["TIT2", latin1Frame("Something")]]);
413
+ let bytes = new Uint8Array([...tag, ...buildMp3Frame()]);
414
+ assert.strictEqual(extractMp3Encoding(bytes)?.sampleRateHz, 44100);
415
+ });
416
+ (0, import_qunit.test)("a buffer with no frame sync yields nothing rather than throwing", function(assert) {
417
+ assert.strictEqual(extractMp3Encoding(new Uint8Array(128).fill(65)), void 0);
418
+ });
419
+ });
420
+ (0, import_qunit.module)("ID3v2", function() {
421
+ (0, import_qunit.test)("reads the common v2.3 text frames", function(assert) {
422
+ let tags = parseId3v2Tags(buildId3v2([
423
+ ["TIT2", latin1Frame("Blue Monday")],
424
+ ["TPE1", latin1Frame("A Band")],
425
+ ["TALB", latin1Frame("Power")],
426
+ ["TRCK", latin1Frame("4/12")],
427
+ ["TYER", latin1Frame("1983")],
428
+ ["TCON", latin1Frame("Synthpop")]
429
+ ]));
430
+ assert.strictEqual(tags?.trackTitle, "Blue Monday");
431
+ assert.strictEqual(tags?.artist, "A Band");
432
+ assert.strictEqual(tags?.album, "Power");
433
+ assert.strictEqual(tags?.track, "4/12", "a track number keeps its total rather than being coerced to a number");
434
+ assert.strictEqual(tags?.year, 1983);
435
+ assert.strictEqual(tags?.genre, "Synthpop");
436
+ assert.strictEqual(tags?.scheme, "id3v2");
437
+ });
438
+ (0, import_qunit.test)("accepts the v2.4 recording-date frame", function(assert) {
439
+ let tags = parseId3v2Tags(buildId3v2([["TDRC", latin1Frame("2008-05-13")]], 4));
440
+ assert.strictEqual(tags?.year, 2008);
441
+ });
442
+ (0, import_qunit.test)("decodes a UTF-16 frame with a byte-order mark", function(assert) {
443
+ let text = "Ünicode";
444
+ let payload = [
445
+ 1,
446
+ 255,
447
+ 254
448
+ ];
449
+ for (let index = 0; index < 7; index++) {
450
+ let code = text.charCodeAt(index);
451
+ payload.push(code & 255, code >>> 8 & 255);
452
+ }
453
+ payload.push(0, 0);
454
+ let tags = parseId3v2Tags(buildId3v2([["TIT2", payload]]));
455
+ assert.strictEqual(tags?.trackTitle, text, "a UTF-16 tag reads in full rather than stopping at its first NUL byte");
456
+ });
457
+ (0, import_qunit.test)("a COMM frame skips its language code and description", function(assert) {
458
+ let payload = [
459
+ 0,
460
+ ...ascii("eng"),
461
+ ...ascii("short"),
462
+ 0,
463
+ ...ascii("the actual comment"),
464
+ 0
465
+ ];
466
+ assert.strictEqual(parseId3v2Tags(buildId3v2([["COMM", payload]]))?.comment, "the actual comment");
467
+ });
468
+ (0, import_qunit.test)("a file with no ID3v2 tag yields nothing", function(assert) {
469
+ assert.strictEqual(parseId3v2Tags(new Uint8Array(buildMp3Frame())), void 0);
470
+ });
471
+ (0, import_qunit.test)("an empty tag produces no attribute despite being well-formed", function(assert) {
472
+ assert.strictEqual(parseId3v2Tags(buildId3v2([])), void 0);
473
+ });
474
+ });
475
+ (0, import_qunit.module)("Vorbis comments", function() {
476
+ (0, import_qunit.test)("is case-insensitive about field names", function(assert) {
477
+ let body = new Uint8Array(vorbisCommentBody([["title", "lowercase key"], ["Artist", "Mixed Case Key"]]));
478
+ let parsed = parseVorbisComments(body, 0);
479
+ assert.strictEqual(parsed?.tags?.trackTitle, "lowercase key");
480
+ assert.strictEqual(parsed?.tags?.artist, "Mixed Case Key");
481
+ });
482
+ (0, import_qunit.test)("keeps the first of a repeated key rather than joining them", function(assert) {
483
+ let body = new Uint8Array(vorbisCommentBody([["ARTIST", "First Artist"], ["ARTIST", "Second Artist"]]));
484
+ assert.strictEqual(parseVorbisComments(body, 0)?.tags?.artist, "First Artist", "joining two ARTIST values would invent a credit the file never stated");
485
+ });
486
+ (0, import_qunit.test)("reports the vendor string", function(assert) {
487
+ let body = new Uint8Array(vorbisCommentBody([["TITLE", "x"]]));
488
+ assert.strictEqual(parseVorbisComments(body, 0)?.vendor, "test-vendor");
489
+ });
490
+ (0, import_qunit.test)("ignores keys it has no field for", function(assert) {
491
+ let body = new Uint8Array(vorbisCommentBody([["REPLAYGAIN_TRACK_GAIN", "-6.5 dB"]]));
492
+ assert.strictEqual(parseVorbisComments(body, 0)?.tags, void 0, "application-specific keys do not become fields nobody declared");
493
+ });
494
+ (0, import_qunit.test)("a truncated block yields nothing rather than throwing", function(assert) {
495
+ let body = new Uint8Array(vorbisCommentBody([["TITLE", "Truncated"]]));
496
+ assert.strictEqual(parseVorbisComments(body.subarray(0, 6), 0), void 0);
497
+ });
498
+ (0, import_qunit.test)("an implausible entry count is refused", function(assert) {
499
+ let body = new Uint8Array(vorbisCommentBody([["TITLE", "x"]]));
500
+ let vendorLength = new DataView(body.buffer).getUint32(0, true);
501
+ new DataView(body.buffer).setUint32(4 + vendorLength, 1e5, true);
502
+ assert.strictEqual(parseVorbisComments(body, 0), void 0);
503
+ });
504
+ });
505
+ (0, import_qunit.module)("waveform reduction", function() {
506
+ function fakeAudio(channels, sampleRate = 44100) {
507
+ let length = channels[0]?.length ?? 0;
508
+ return {
509
+ duration: length / sampleRate,
510
+ sampleRate,
511
+ numberOfChannels: channels.length,
512
+ length,
513
+ getChannelData: (index) => channels[index] ?? new Float32Array()
514
+ };
515
+ }
516
+ (0, import_qunit.test)("resamples across the whole signal, not just its opening", function(assert) {
517
+ let samples = new Float32Array(1e3);
518
+ samples.fill(0, 0, 900);
519
+ samples.fill(1, 900, 1e3);
520
+ let result = analyzeDecodedAudio(fakeAudio([samples]), 10);
521
+ let bars = JSON.parse(result.barsJson);
522
+ assert.strictEqual(bars.length, 10);
523
+ assert.strictEqual(bars[0], 0, "the silent opening reads as silent");
524
+ assert.strictEqual(bars[9], 1, "the loud ending is represented, so the envelope is the shape of the whole track");
525
+ });
526
+ (0, import_qunit.test)("every channel contributes, so panned content is not misread", function(assert) {
527
+ let left = new Float32Array(100);
528
+ let right = new Float32Array(100).fill(1);
529
+ let result = analyzeDecodedAudio(fakeAudio([left, right]), 4);
530
+ let bars = JSON.parse(result.barsJson);
531
+ assert.true(bars.every((bar) => bar > 0), "a hard-panned track is not reported as silent");
532
+ });
533
+ (0, import_qunit.test)("reports RMS per bar rather than peak, so quiet stays quiet", function(assert) {
534
+ let quiet = new Float32Array(100).fill(.1);
535
+ let result = analyzeDecodedAudio(fakeAudio([quiet]), 4);
536
+ let bars = JSON.parse(result.barsJson);
537
+ assert.true(bars.every((bar) => Math.abs(bar - .1) < .001), "a bar tracks loudness rather than saturating to the peak");
538
+ });
539
+ (0, import_qunit.test)("reports the overall peak separately from the envelope", function(assert) {
540
+ let samples = new Float32Array(100).fill(.2);
541
+ samples[50] = -.95;
542
+ let result = analyzeDecodedAudio(fakeAudio([samples]), 4);
543
+ assert.strictEqual(result.peakAmplitude, .95, "peak is a magnitude, so a negative sample still counts");
544
+ assert.true(result.rmsAmplitude < .4, "RMS is not dragged to the peak");
545
+ });
546
+ (0, import_qunit.test)("the bar count is fixed regardless of duration", function(assert) {
547
+ let short = analyzeDecodedAudio(fakeAudio([new Float32Array(200).fill(.5)]), 32);
548
+ let long = analyzeDecodedAudio(fakeAudio([new Float32Array(2e5).fill(.5)]), 32);
549
+ assert.strictEqual(short.barCount, 32);
550
+ assert.strictEqual(long.barCount, 32, "a long recording costs no more stored payload than a short one");
551
+ });
552
+ (0, import_qunit.test)("a buffer with fewer samples than bars still produces a bar each", function(assert) {
553
+ let result = analyzeDecodedAudio(fakeAudio([new Float32Array(3).fill(.5)]), 8);
554
+ let bars = JSON.parse(result.barsJson);
555
+ assert.strictEqual(bars.length, 8, "no window is left empty");
556
+ });
557
+ (0, import_qunit.test)("an empty buffer is reported as an empty envelope, not a failure", function(assert) {
558
+ let result = analyzeDecodedAudio(fakeAudio([new Float32Array(0)]), 8);
559
+ assert.strictEqual(result.decodeStatus, "ok");
560
+ assert.strictEqual(result.barsJson, "[]");
561
+ assert.strictEqual(result.barCount, 0);
562
+ });
563
+ });
564
+ (0, import_qunit.module)("attribute assembly", function() {
565
+ (0, import_qunit.test)("wraps rates as quantities and schemes as coded values", function(assert) {
566
+ let attributes = audioAttributes({
567
+ container: "FLAC",
568
+ audioCodec: "FLAC",
569
+ sampleRateHz: 44100,
570
+ bitrateBps: 9e5,
571
+ bitDepth: 16,
572
+ channels: 2,
573
+ channelMode: "stereo",
574
+ isVariableBitrate: true
575
+ }, {
576
+ scheme: "vorbis-comment",
577
+ trackTitle: "Nocturne"
578
+ });
579
+ assert.deepEqual(attributes.encoding?.sampleRate, {
580
+ value: 44100,
581
+ unit: "Hz"
582
+ });
583
+ assert.deepEqual(attributes.encoding?.bitrate, {
584
+ value: 9e5,
585
+ unit: "bps"
586
+ });
587
+ assert.deepEqual(attributes.encoding?.channelMode, {
588
+ code: "stereo",
589
+ scheme: "channel-mode"
590
+ });
591
+ assert.deepEqual(attributes.tags?.scheme, {
592
+ code: "vorbis-comment",
593
+ scheme: "tag-scheme"
594
+ });
595
+ assert.strictEqual(attributes.tags?.trackTitle, "Nocturne");
596
+ });
597
+ (0, import_qunit.test)("a file that revealed nothing adds no attributes at all", function(assert) {
598
+ assert.deepEqual(audioAttributes(void 0, void 0), {});
599
+ });
600
+ (0, import_qunit.test)("a skipped decode is still persisted, because it is not the same as absent", function(assert) {
601
+ let attributes = audioAttributes(void 0, void 0, {
602
+ decodeStatus: "skipped",
603
+ decodeError: "too big"
604
+ });
605
+ assert.strictEqual(attributes.waveform?.decodeStatus, "skipped");
606
+ });
607
+ (0, import_qunit.test)("a false variable-bitrate flag survives assembly", function(assert) {
608
+ let attributes = audioAttributes({ isVariableBitrate: false }, void 0);
609
+ assert.false(attributes.encoding?.isVariableBitrate, "knowing a stream is constant-rate is a fact worth persisting");
610
+ });
611
+ });
612
+ (0, import_qunit.module)("MIDI", function() {
613
+ function vlq(value) {
614
+ let out = [value & 127];
615
+ let rest = value >>> 7;
616
+ while (rest > 0) {
617
+ out.unshift(rest & 127 | 128);
618
+ rest >>>= 7;
619
+ }
620
+ return out;
621
+ }
622
+ function trackChunk(events) {
623
+ let body = [
624
+ ...events,
625
+ 0,
626
+ 255,
627
+ 47,
628
+ 0
629
+ ];
630
+ return [
631
+ ...ascii("MTrk"),
632
+ ...uint32be(body.length),
633
+ ...body
634
+ ];
635
+ }
636
+ function buildMidi(tracks, options = {}) {
637
+ let chunks = tracks.flatMap((events) => trackChunk(events));
638
+ return new Uint8Array([
639
+ ...ascii("MThd"),
640
+ ...uint32be(6),
641
+ ...uint16le(0).reverse(),
642
+ ...uint16le(0).reverse(),
643
+ ...uint16le(0).reverse(),
644
+ ...chunks
645
+ ]).map((byte, index) => {
646
+ let format = options.format ?? 1;
647
+ let division = options.division ?? 480;
648
+ if (index === 8) return format >>> 8 & 255;
649
+ if (index === 9) return format & 255;
650
+ if (index === 10) return tracks.length >>> 8 & 255;
651
+ if (index === 11) return tracks.length & 255;
652
+ if (index === 12) return division >>> 8 & 255;
653
+ if (index === 13) return division & 255;
654
+ return byte;
655
+ });
656
+ }
657
+ function note(channel, pitch, velocity = 64, deltaOn = 0, deltaOff = 480) {
658
+ return [
659
+ ...vlq(deltaOn),
660
+ 144 | channel,
661
+ pitch,
662
+ velocity,
663
+ ...vlq(deltaOff),
664
+ 128 | channel,
665
+ pitch,
666
+ 0
667
+ ];
668
+ }
669
+ function tempoEvent(bpm, delta = 0) {
670
+ let microseconds = Math.round(6e7 / bpm);
671
+ return [
672
+ ...vlq(delta),
673
+ 255,
674
+ 81,
675
+ 3,
676
+ microseconds >>> 16 & 255,
677
+ microseconds >>> 8 & 255,
678
+ microseconds & 255
679
+ ];
680
+ }
681
+ (0, import_qunit.test)("reads the header and counts the notes that actually sound", function(assert) {
682
+ let midi = extractMidiMetadata(buildMidi([[
683
+ ...note(0, 60),
684
+ ...note(0, 64),
685
+ ...note(0, 67)
686
+ ]], {
687
+ format: 0,
688
+ division: 480
689
+ }));
690
+ assert.strictEqual(midi.format, 0);
691
+ assert.strictEqual(midi.ppq, 480);
692
+ assert.strictEqual(midi.noteCount, 3);
693
+ assert.strictEqual(midi.fileTrackCount, 1);
694
+ assert.strictEqual(midi.trackCount, 1);
695
+ });
696
+ (0, import_qunit.test)("a note-on with zero velocity is a note-off, not a second note", function(assert) {
697
+ let events = [
698
+ ...vlq(0),
699
+ 144,
700
+ 60,
701
+ 64,
702
+ ...vlq(480),
703
+ 144,
704
+ 60,
705
+ 0
706
+ ];
707
+ assert.strictEqual(extractMidiMetadata(buildMidi([events])).noteCount, 1);
708
+ });
709
+ (0, import_qunit.test)("distinguishes tracks that sound from tracks the header declares", function(assert) {
710
+ let midi = extractMidiMetadata(buildMidi([tempoEvent(120), [...note(0, 60)]]));
711
+ assert.strictEqual(midi.fileTrackCount, 2);
712
+ assert.strictEqual(midi.trackCount, 1, "the conductor track declares no notes so it does not count as sounding");
713
+ });
714
+ (0, import_qunit.test)("derives duration by walking the tempo map, not by averaging", function(assert) {
715
+ let midi = extractMidiMetadata(buildMidi([[...tempoEvent(120), ...note(0, 60, 64, 0, 480)]], { division: 480 }));
716
+ assert.strictEqual(midi.durationSeconds, .5);
717
+ });
718
+ (0, import_qunit.test)("a tempo change partway through changes the derived duration", function(assert) {
719
+ let events = [
720
+ ...tempoEvent(120),
721
+ ...note(0, 60, 64, 0, 480),
722
+ ...tempoEvent(240),
723
+ ...note(0, 62, 64, 0, 480)
724
+ ];
725
+ let midi = extractMidiMetadata(buildMidi([events], { division: 480 }));
726
+ assert.strictEqual(midi.durationSeconds, .75, "a piece that speeds up is not reported at its opening tempo");
727
+ assert.strictEqual(midi.tempoMap?.length, 2);
728
+ assert.true(midi.tempoMap?.[0]?.startsWith("120 BPM"));
729
+ assert.true(midi.tempoMap?.[1]?.startsWith("240 BPM"));
730
+ });
731
+ (0, import_qunit.test)("reads time and key signatures", function(assert) {
732
+ let events = [
733
+ ...vlq(0),
734
+ 255,
735
+ 88,
736
+ 4,
737
+ 6,
738
+ 3,
739
+ 24,
740
+ 8,
741
+ ...vlq(0),
742
+ 255,
743
+ 89,
744
+ 2,
745
+ 253,
746
+ 1,
747
+ ...note(0, 60)
748
+ ];
749
+ let midi = extractMidiMetadata(buildMidi([events]));
750
+ assert.deepEqual(midi.timeSignatures, ["6/8"]);
751
+ assert.deepEqual(midi.keySignatures, ["C minor"], "a signed accidental count and a minor flag name the key");
752
+ });
753
+ (0, import_qunit.test)("reports the pitch range in note names", function(assert) {
754
+ let midi = extractMidiMetadata(buildMidi([[...note(0, 60), ...note(0, 72)]]));
755
+ assert.strictEqual(midi.pitchRange, "C4–C5", "MIDI note 60 is middle C, conventionally written C4");
756
+ });
757
+ (0, import_qunit.test)("percussion is flagged and kept out of the pitch range", function(assert) {
758
+ let midi = extractMidiMetadata(buildMidi([[
759
+ ...note(0, 60),
760
+ ...note(9, 35),
761
+ ...note(9, 81)
762
+ ]]));
763
+ assert.true(midi.hasPercussion);
764
+ assert.strictEqual(midi.pitchRange, "C4–C4");
765
+ });
766
+ (0, import_qunit.test)("collects program changes excluding the percussion channel", function(assert) {
767
+ let events = [
768
+ ...vlq(0),
769
+ 192,
770
+ 40,
771
+ ...vlq(0),
772
+ 201,
773
+ 16,
774
+ ...note(0, 60)
775
+ ];
776
+ let midi = extractMidiMetadata(buildMidi([events]));
777
+ assert.deepEqual(midi.programs, [40]);
778
+ });
779
+ (0, import_qunit.test)("reports channels as the numbers a musician uses, counting from one", function(assert) {
780
+ let midi = extractMidiMetadata(buildMidi([[...note(0, 60), ...note(3, 64)]]));
781
+ assert.deepEqual(midi.channels, [1, 4]);
782
+ });
783
+ (0, import_qunit.test)("follows running status, which real files rely on", function(assert) {
784
+ let events = [
785
+ ...vlq(0),
786
+ 144,
787
+ 60,
788
+ 64,
789
+ ...vlq(10),
790
+ 62,
791
+ 64,
792
+ ...vlq(10),
793
+ 64,
794
+ 64
795
+ ];
796
+ assert.strictEqual(extractMidiMetadata(buildMidi([events])).noteCount, 3);
797
+ });
798
+ (0, import_qunit.test)("skips a SysEx event without desynchronizing the walk", function(assert) {
799
+ let events = [
800
+ ...vlq(0),
801
+ 240,
802
+ 4,
803
+ 126,
804
+ 127,
805
+ 9,
806
+ 1,
807
+ ...note(0, 60)
808
+ ];
809
+ assert.strictEqual(extractMidiMetadata(buildMidi([events])).noteCount, 1);
810
+ });
811
+ (0, import_qunit.test)("a SMPTE-timed file reads its notes but declares no ppq", function(assert) {
812
+ let midi = extractMidiMetadata(buildMidi([[...note(0, 60)]], { division: 59176 }));
813
+ assert.strictEqual(midi.ppq, void 0);
814
+ assert.strictEqual(midi.durationSeconds, void 0);
815
+ assert.strictEqual(midi.noteCount, 1);
816
+ });
817
+ (0, import_qunit.test)("a non-MIDI file is reported as a content mismatch", function(assert) {
818
+ assert.throws(() => extractMidiMetadata(new Uint8Array(64).fill(65)), /MThd/, "the extractor falls back to the base FileDef rather than inventing metadata");
819
+ });
820
+ (0, import_qunit.test)("a truncated track yields the events it did read", function(assert) {
821
+ let full = buildMidi([[...note(0, 60), ...note(0, 64)]]);
822
+ let truncated = full.subarray(0, full.length - 6);
823
+ let midi = extractMidiMetadata(truncated);
824
+ assert.true(midi.noteCount >= 1, "a partial track still reports what was readable rather than throwing");
825
+ });
826
+ });
827
+ (0, import_qunit.module)("streaming envelope", function() {
828
+ (0, import_qunit.test)("holds its bar count however many units arrive", function(assert) {
829
+ for (let units of [
830
+ 4,
831
+ 100,
832
+ 1e4
833
+ ]) {
834
+ let envelope = new StreamingEnvelope(16);
835
+ for (let index = 0; index < units; index++) envelope.push(.25, 1);
836
+ assert.strictEqual(envelope.bars().length, 16, `${units} units still reduce to 16 bars`);
837
+ }
838
+ });
839
+ (0, import_qunit.test)("places signal by position, not by arrival order", function(assert) {
840
+ let envelope = new StreamingEnvelope(8);
841
+ for (let index = 0; index < 3e3; index++) envelope.push(0, 1);
842
+ for (let index = 0; index < 1e3; index++) envelope.push(1, 1);
843
+ let bars = envelope.bars();
844
+ assert.strictEqual(bars[0], 0, "the silent opening reads as silent");
845
+ assert.strictEqual(bars[7], 1, "the loud ending reaches the final bar rather than being folded away");
846
+ });
847
+ (0, import_qunit.test)("survives many folds without losing the shape", function(assert) {
848
+ let envelope = new StreamingEnvelope(4);
849
+ let total = 1e5;
850
+ for (let index = 0; index < total; index++) envelope.push(index < total / 2 ? 0 : 1, 1);
851
+ let bars = envelope.bars();
852
+ assert.strictEqual(bars[0], 0);
853
+ assert.strictEqual(bars[1], 0);
854
+ assert.strictEqual(bars[3], 1, "the second half is still loud after folding");
855
+ });
856
+ (0, import_qunit.test)("reports the peak it was told about", function(assert) {
857
+ let envelope = new StreamingEnvelope(4);
858
+ envelope.push(.01, 1, .1);
859
+ envelope.push(.81, 1, .9);
860
+ envelope.push(.04, 1, .2);
861
+ assert.strictEqual(envelope.peak, .9);
862
+ });
863
+ (0, import_qunit.test)("an accumulator nothing was pushed to is empty, not zero-filled", function(assert) {
864
+ let envelope = new StreamingEnvelope(8);
865
+ assert.true(envelope.isEmpty);
866
+ assert.deepEqual(envelope.bars(), []);
867
+ });
868
+ });
869
+ (0, import_qunit.module)("MP3 envelope from side info", function() {
870
+ function frameWithGain(gain) {
871
+ let header = [
872
+ 255,
873
+ 251,
874
+ 144,
875
+ 64
876
+ ];
877
+ let body = new Array(413).fill(0);
878
+ let base = 20;
879
+ for (let block = 0; block < 4; block++) {
880
+ let bitOffset = base + block * 59 + 21;
881
+ for (let bit = 0; bit < 8; bit++) {
882
+ let value = gain >> 7 - bit & 1;
883
+ let absolute = bitOffset + bit;
884
+ let byteIndex = absolute >> 3;
885
+ if (value) body[byteIndex] |= 1 << 7 - (absolute & 7);
886
+ }
887
+ }
888
+ return [...header, ...body];
889
+ }
890
+ (0, import_qunit.test)("reads a gain out of every granule of every frame", function(assert) {
891
+ let bytes = new Uint8Array([
892
+ ...frameWithGain(200),
893
+ ...frameWithGain(200),
894
+ ...frameWithGain(200),
895
+ ...frameWithGain(200)
896
+ ]);
897
+ let envelope = extractMp3Envelope(bytes, 8);
898
+ assert.strictEqual(envelope?.granuleCount, 16, "four frames yield sixteen granule gains");
899
+ assert.strictEqual(envelope?.frameCount, 4);
900
+ assert.strictEqual(envelope?.sampleRateHz, 44100);
901
+ });
902
+ (0, import_qunit.test)("a louder passage produces taller bars than a quieter one", function(assert) {
903
+ let quiet = Array.from({ length: 8 }, () => frameWithGain(150)).flat();
904
+ let loud = Array.from({ length: 8 }, () => frameWithGain(210)).flat();
905
+ let bars = extractMp3Envelope(new Uint8Array([...quiet, ...loud]), 4).bars;
906
+ assert.true(bars[0] < bars[3], "the quiet opening reads lower than the loud ending");
907
+ assert.strictEqual(bars[3], 1, "bars are normalized to the loudest bar, so the loudest reaches 1");
908
+ });
909
+ (0, import_qunit.test)("a single transient still leaves the loudest bar at full scale", function(assert) {
910
+ let frames = Array.from({ length: 16 }, (_, index) => frameWithGain(index === 12 ? 230 : 170)).flat();
911
+ let bars = extractMp3Envelope(new Uint8Array(frames), 4).bars;
912
+ assert.strictEqual(Math.max(...bars), 1, "the loudest bar reaches full scale");
913
+ assert.true(bars[3] > bars[0], "the bar holding the transient is the tallest");
914
+ });
915
+ (0, import_qunit.test)("derives a duration from granule count without needing a Xing header", function(assert) {
916
+ let bytes = new Uint8Array(Array.from({ length: 4 }, () => frameWithGain(180)).flat());
917
+ let envelope = extractMp3Envelope(bytes, 8);
918
+ assert.strictEqual(envelope?.durationSeconds, Math.round(16 * 576 * 1e3 / 44100) / 1e3);
919
+ });
920
+ (0, import_qunit.test)("skips a leading ID3v2 tag", function(assert) {
921
+ let tag = buildId3v2([["TIT2", latin1Frame("Tagged")]]);
922
+ let bytes = new Uint8Array([
923
+ ...tag,
924
+ ...frameWithGain(190),
925
+ ...frameWithGain(190)
926
+ ]);
927
+ assert.strictEqual(extractMp3Envelope(bytes, 4)?.granuleCount, 8);
928
+ });
929
+ (0, import_qunit.test)("resynchronizes past a corrupt frame rather than stopping", function(assert) {
930
+ let bytes = new Uint8Array([
931
+ ...frameWithGain(190),
932
+ ...new Array(64).fill(65),
933
+ ...frameWithGain(190)
934
+ ]);
935
+ let envelope = extractMp3Envelope(bytes, 4);
936
+ assert.strictEqual(envelope?.frameCount, 2, "a single corrupt run does not cost the rest of the file");
937
+ });
938
+ (0, import_qunit.test)("a file with no frames yields nothing rather than throwing", function(assert) {
939
+ assert.strictEqual(extractMp3Envelope(new Uint8Array(256).fill(65), 8), void 0);
940
+ });
941
+ (0, import_qunit.test)("the streaming scan agrees with the buffered one", async function(assert) {
942
+ let bytes = new Uint8Array([...Array.from({ length: 6 }, () => frameWithGain(150)).flat(), ...Array.from({ length: 6 }, () => frameWithGain(205)).flat()]);
943
+ let buffered = extractMp3Envelope(bytes, 8);
944
+ for (let chunkSize of [
945
+ 13,
946
+ 417,
947
+ 1e3
948
+ ]) {
949
+ let streamed = await extractMp3EnvelopeFromStream(chunkedStream(bytes, chunkSize), 8);
950
+ assert.deepEqual(streamed?.bars, buffered?.bars, `chunks of ${chunkSize} bytes produce the same envelope`);
951
+ assert.strictEqual(streamed?.granuleCount, buffered?.granuleCount);
952
+ assert.strictEqual(streamed?.frameCount, buffered?.frameCount);
953
+ }
954
+ });
955
+ (0, import_qunit.test)("the streaming scan skips a large ID3v2 tag without buffering it", async function(assert) {
956
+ let tag = buildId3v2([["APIC", new Array(2e5).fill(0)]]);
957
+ let bytes = new Uint8Array([
958
+ ...tag,
959
+ ...frameWithGain(190),
960
+ ...frameWithGain(190)
961
+ ]);
962
+ let streamed = await extractMp3EnvelopeFromStream(chunkedStream(bytes, 4096), 4);
963
+ assert.strictEqual(streamed?.granuleCount, 8);
964
+ });
965
+ });
966
+ (0, import_qunit.module)("WAV single-pass streaming", function() {
967
+ function buildWavWithPcm(frames, options = {}) {
968
+ let sampleRate = options.sampleRate ?? 8e3;
969
+ let channels = options.channels ?? 1;
970
+ let bitsPerSample = 16;
971
+ let byteRate = sampleRate * channels * bitsPerSample / 8;
972
+ let fmtBody = [
973
+ ...uint16le(1),
974
+ ...uint16le(channels),
975
+ ...uint32le(sampleRate),
976
+ ...uint32le(byteRate),
977
+ ...uint16le(channels * bitsPerSample / 8),
978
+ ...uint16le(bitsPerSample)
979
+ ];
980
+ let pcm = [];
981
+ for (let frame of frames) for (let sample of frame) {
982
+ let value = Math.round(Math.max(-1, Math.min(1, sample)) * 32767);
983
+ pcm.push(...uint16le(value < 0 ? value + 65536 : value));
984
+ }
985
+ let infoChunk = [];
986
+ if (options.infoEntries?.length) {
987
+ let infoBody = [...ascii("INFO")];
988
+ for (let [id, value] of options.infoEntries) infoBody.push(...riffChunk(id, [...ascii(value), 0]));
989
+ infoChunk = riffChunk("LIST", infoBody);
990
+ }
991
+ let chunks = [
992
+ ...riffChunk("fmt ", fmtBody),
993
+ ...options.trailingInfo ? [] : infoChunk,
994
+ ...riffChunk("data", pcm),
995
+ ...options.trailingInfo ? infoChunk : []
996
+ ];
997
+ let payload = [...ascii("WAVE"), ...chunks];
998
+ return new Uint8Array([
999
+ ...ascii("RIFF"),
1000
+ ...uint32le(payload.length),
1001
+ ...payload
1002
+ ]);
1003
+ }
1004
+ function silentThenLoud(total) {
1005
+ return Array.from({ length: total }, (_, index) => [index < total / 2 ? 0 : 1]);
1006
+ }
1007
+ (0, import_qunit.test)("derives duration, encoding, and envelope from one pass", async function(assert) {
1008
+ let bytes = buildWavWithPcm(silentThenLoud(8e3), { sampleRate: 8e3 });
1009
+ let result = await extractWavFromStream(bytes, 8);
1010
+ assert.strictEqual(result.duration, 1, "8000 mono frames at 8 kHz is 1 s");
1011
+ assert.strictEqual(result.encoding?.sampleRateHz, 8e3);
1012
+ assert.strictEqual(result.encoding?.bitDepth, 16);
1013
+ assert.strictEqual(result.envelope?.bars.length, 8);
1014
+ });
1015
+ (0, import_qunit.test)("the envelope tracks the real signal", async function(assert) {
1016
+ let bars = (await extractWavFromStream(buildWavWithPcm(silentThenLoud(8e3)), 8)).envelope.bars;
1017
+ assert.strictEqual(bars[0], 0, "the silent half reads as silent");
1018
+ assert.true(bars[7] > .99, "the loud half reaches full scale");
1019
+ });
1020
+ (0, import_qunit.test)("peak and RMS are real amplitudes, needing no normalization", async function(assert) {
1021
+ let frames = Array.from({ length: 4e3 }, () => [.5]);
1022
+ let result = await extractWavFromStream(buildWavWithPcm(frames), 8);
1023
+ assert.true(Math.abs(result.envelope.peak - .5) < .001);
1024
+ assert.true(Math.abs(result.envelope.rms - .5) < .001);
1025
+ });
1026
+ (0, import_qunit.test)("a frame split across stream chunks is not dropped or misread", async function(assert) {
1027
+ let bytes = buildWavWithPcm(silentThenLoud(4e3), { channels: 2 });
1028
+ let whole = await extractWavFromStream(bytes, 8);
1029
+ let chunked = await extractWavFromStream(chunkedStream(bytes, 7), 8);
1030
+ assert.deepEqual(chunked.envelope?.bars, whole.envelope?.bars, "chunking the stream does not change the envelope");
1031
+ assert.strictEqual(chunked.duration, whole.duration);
1032
+ });
1033
+ (0, import_qunit.test)("reads LIST-INFO written before the payload", async function(assert) {
1034
+ let result = await extractWavFromStream(buildWavWithPcm(silentThenLoud(800), { infoEntries: [["INAM", "Leading Tag"]] }), 8);
1035
+ assert.strictEqual(result.tags?.trackTitle, "Leading Tag");
1036
+ });
1037
+ (0, import_qunit.test)("reads LIST-INFO written after the payload", async function(assert) {
1038
+ let result = await extractWavFromStream(buildWavWithPcm(silentThenLoud(800), {
1039
+ infoEntries: [["INAM", "Trailing Tag"]],
1040
+ trailingInfo: true
1041
+ }), 8);
1042
+ assert.strictEqual(result.tags?.trackTitle, "Trailing Tag");
1043
+ });
1044
+ (0, import_qunit.test)("stops folding PCM at the declared data size", async function(assert) {
1045
+ let result = await extractWavFromStream(buildWavWithPcm(Array.from({ length: 800 }, () => [0]), {
1046
+ infoEntries: [["INAM", "x"]],
1047
+ trailingInfo: true
1048
+ }), 4);
1049
+ assert.deepEqual(result.envelope?.bars, [
1050
+ 0,
1051
+ 0,
1052
+ 0,
1053
+ 0
1054
+ ], "a silent file stays silent despite trailing chunk bytes");
1055
+ });
1056
+ (0, import_qunit.test)("a non-WAVE buffer yields no duration rather than throwing", async function(assert) {
1057
+ let result = await extractWavFromStream(new Uint8Array(256).fill(65), 8);
1058
+ assert.strictEqual(result.duration, void 0);
1059
+ assert.strictEqual(result.envelope, void 0);
1060
+ });
1061
+ });
1062
+ (0, import_qunit.module)("decode budget", function() {
1063
+ const MB = 1024 * 1024;
1064
+ function forEncoded(bitrateBps, sampleRateHz, channels, encodedBytes) {
1065
+ return {
1066
+ durationSeconds: encodedBytes * 8 / bitrateBps,
1067
+ sampleRateHz,
1068
+ channels,
1069
+ contentSize: encodedBytes
1070
+ };
1071
+ }
1072
+ (0, import_qunit.test)("predicts decoded size from what the container already stated", function(assert) {
1073
+ assert.strictEqual(predictedDecodedBytes({
1074
+ durationSeconds: 300,
1075
+ sampleRateHz: 44100,
1076
+ channels: 2
1077
+ }), 300 * 44100 * 2 * 4);
1078
+ });
1079
+ (0, import_qunit.test)("admits an ordinary song", function(assert) {
1080
+ assert.strictEqual(decodeSkipReason({
1081
+ durationSeconds: 240,
1082
+ sampleRateHz: 44100,
1083
+ channels: 2
1084
+ }), void 0);
1085
+ });
1086
+ (0, import_qunit.test)("refuses the low-bitrate Opus case the old ceiling admitted", function(assert) {
1087
+ let budget = forEncoded(64e3, 48e3, 2, 16 * MB);
1088
+ assert.true(budget.contentSize <= 16 * MB, "the file is within what the old encoded ceiling allowed");
1089
+ assert.ok(decodeSkipReason(budget), "but it is refused on the decoded size that actually matters");
1090
+ });
1091
+ (0, import_qunit.test)("still admits FLAC of the same encoded size", function(assert) {
1092
+ let budget = forEncoded(705600, 44100, 2, 16 * MB);
1093
+ assert.strictEqual(decodeSkipReason(budget), void 0);
1094
+ });
1095
+ (0, import_qunit.test)("mono costs half as much, so twice as long is allowed", function(assert) {
1096
+ assert.strictEqual(decodeSkipReason({
1097
+ durationSeconds: 700,
1098
+ sampleRateHz: 44100,
1099
+ channels: 1
1100
+ }), void 0, "a long mono recording still fits");
1101
+ assert.ok(decodeSkipReason({
1102
+ durationSeconds: 700,
1103
+ sampleRateHz: 44100,
1104
+ channels: 2
1105
+ }), "the same duration in stereo does not");
1106
+ });
1107
+ (0, import_qunit.test)("the skip reason names the size that caused it", function(assert) {
1108
+ let reason = decodeSkipReason({
1109
+ durationSeconds: 3600,
1110
+ sampleRateHz: 48e3,
1111
+ channels: 2
1112
+ });
1113
+ assert.true(/\d+ MB/.test(reason ?? ""), "an operator can see how far over it was, not just that it was over");
1114
+ });
1115
+ (0, import_qunit.test)("falls back to encoded size when the container said too little", function(assert) {
1116
+ assert.strictEqual(predictedDecodedBytes({ contentSize: 999 * MB }), void 0, "nothing to predict from");
1117
+ assert.ok(decodeSkipReason({ contentSize: 999 * MB }), "the encoded proxy still catches an enormous file");
1118
+ assert.strictEqual(decodeSkipReason({ contentSize: 4 * MB }), void 0, "and lets a small one through");
1119
+ });
1120
+ (0, import_qunit.test)("a zero or missing sample rate is not treated as a prediction", function(assert) {
1121
+ assert.strictEqual(predictedDecodedBytes({
1122
+ durationSeconds: 300,
1123
+ sampleRateHz: 0,
1124
+ channels: 2
1125
+ }), void 0);
1126
+ });
1127
+ });
1128
+ (0, import_qunit.module)("waveform decode (real Web Audio)", function() {
1129
+ function pcmWav(seconds, sampleRate) {
1130
+ let frameCount = Math.round(seconds * sampleRate);
1131
+ let pcm = [];
1132
+ for (let i = 0; i < frameCount; i++) {
1133
+ let value = i < frameCount / 2 ? 0 : Math.round(.5 * 32767);
1134
+ pcm.push(...uint16le(value));
1135
+ }
1136
+ let fmtBody = [
1137
+ ...uint16le(1),
1138
+ ...uint16le(1),
1139
+ ...uint32le(sampleRate),
1140
+ ...uint32le(sampleRate * 2),
1141
+ ...uint16le(2),
1142
+ ...uint16le(16)
1143
+ ];
1144
+ let payload = [
1145
+ ...ascii("WAVE"),
1146
+ ...riffChunk("fmt ", fmtBody),
1147
+ ...riffChunk("data", pcm)
1148
+ ];
1149
+ return new Uint8Array([
1150
+ ...ascii("RIFF"),
1151
+ ...uint32le(payload.length),
1152
+ ...payload
1153
+ ]);
1154
+ }
1155
+ (0, import_qunit.test)("decodes real bytes through the environment Web Audio implementation", async function(assert) {
1156
+ let result = await extractAudioWaveform(pcmWav(.5, 8e3), {
1157
+ barCount: 8,
1158
+ sampleRateHz: 8e3
1159
+ });
1160
+ assert.strictEqual(result.decodeStatus, "ok", `decode succeeds (${result.decodeError ?? "no error"})`);
1161
+ assert.strictEqual(result.barCount, 8);
1162
+ assert.true(Math.abs((result.durationSeconds ?? 0) - .5) < .05, `duration ~0.5s (got ${result.durationSeconds})`);
1163
+ let bars = JSON.parse(result.barsJson ?? "[]");
1164
+ assert.strictEqual(bars.length, 8);
1165
+ assert.true(bars[7] > bars[0], "the loud half reads louder than the silent half");
1166
+ });
1167
+ (0, import_qunit.test)("a stated rate outside the Web Audio band still decodes", async function(assert) {
1168
+ let result = await extractAudioWaveform(pcmWav(.25, 8e3), {
1169
+ barCount: 4,
1170
+ sampleRateHz: 655350
1171
+ });
1172
+ assert.strictEqual(result.decodeStatus, "ok", `decode succeeds (${result.decodeError ?? "no error"})`);
1173
+ });
1174
+ });
1175
+ });
1176
+ //#endregion