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

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 (1058) 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-C4zhhxaZ.js +151 -0
  24. package/bundled-test-harness/assets/aibot-message-BShcljQ9.js +1312 -0
  25. package/bundled-test-harness/assets/app-DiEYqT6T.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-C0RFmHma.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-CVfE1l1V.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-BN21sDpP.js +235 -0
  57. package/bundled-test-harness/assets/card-chooser-test-C9jDiIgM.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-D_30xak6.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-BlsD9Xw4.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-CZUXQKjf.js +1110 -0
  74. package/bundled-test-harness/assets/choreo-D8RcLuoq.js +2 -0
  75. package/bundled-test-harness/assets/choreo-feature-reel-test-DRGloCAJ.js +155 -0
  76. package/bundled-test-harness/assets/choreo-gallery-build-order-test-BR-r7gaw.js +436 -0
  77. package/bundled-test-harness/assets/choreo-gallery-compositor-test-CWRLfcNT.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-WJ7FmjYi.js +133 -0
  80. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-C-yxdVT_.js +42 -0
  81. package/bundled-test-harness/assets/choreo-gallery-drift-test-HX1mK3od.js +620 -0
  82. package/bundled-test-harness/assets/choreo-gallery-escort-test-jZEVk_V4.js +187 -0
  83. package/bundled-test-harness/assets/choreo-gallery-films-test-DLDQzsxb.js +140 -0
  84. package/bundled-test-harness/assets/choreo-gallery-filter-test-BJv8KEeP.js +46 -0
  85. package/bundled-test-harness/assets/choreo-gallery-fold-test-BssKC8A8.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-DTj7yEKp.js +321 -0
  88. package/bundled-test-harness/assets/choreo-gallery-hang-test-BqJLmeFF.js +426 -0
  89. package/bundled-test-harness/assets/choreo-gallery-highlight-test-B1Q7-ICm.js +60 -0
  90. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-7My9lVam.js +370 -0
  91. package/bundled-test-harness/assets/choreo-gallery-interruption-test-BlIAaGrw.js +176 -0
  92. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-C9NnYIP8.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-CwdiZWeI.js +111 -0
  95. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-D55fxwTn.js +127 -0
  96. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-D8Wxv0lb.js +100 -0
  97. package/bundled-test-harness/assets/choreo-gallery-presentation-test-BLoWfp6G.js +157 -0
  98. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-D5XxTBDS.js +145 -0
  99. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-DrHTTvss.js +89 -0
  100. package/bundled-test-harness/assets/choreo-gallery-sheet-test-BFVdnM_b.js +48 -0
  101. package/bundled-test-harness/assets/choreo-gallery-site-test-BhEBHdvI.js +237 -0
  102. package/bundled-test-harness/assets/choreo-gallery-stage-DcKKsdcu.js +256 -0
  103. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-Fcc6SC3F.js +102 -0
  104. package/bundled-test-harness/assets/choreo-gallery-stages-test-Cb-ADpxK.js +35 -0
  105. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-DMJ6C9FW.js +138 -0
  106. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CAjSUdLJ.js +144 -0
  107. package/bundled-test-harness/assets/choreo-gallery-theater-test-B-3IZMj9.js +252 -0
  108. package/bundled-test-harness/assets/choreo-gallery-tuning-test-BVxK5Ry_.js +95 -0
  109. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-uWBH1EKE.js +88 -0
  110. package/bundled-test-harness/assets/choreo-gallery-wires-test-Bo4Sd1Vn.js +148 -0
  111. package/bundled-test-harness/assets/client-telemetry-test-DFM4mML2.js +340 -0
  112. package/bundled-test-harness/assets/clip-DY6N6K67.js +92 -0
  113. package/bundled-test-harness/assets/clip-DzXoPdp-.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-D6ijVvEL.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-CjEsY0uG.js +150 -0
  123. package/bundled-test-harness/assets/computed-test-DtyZGgdc.js +1320 -0
  124. package/bundled-test-harness/assets/container-BYGZImLU.css +5101 -0
  125. package/bundled-test-harness/assets/container-CBZZ8uFw.js +10925 -0
  126. package/bundled-test-harness/assets/content-preview-components-test-BztI4fz-.js +462 -0
  127. package/bundled-test-harness/assets/copy-and-edit-test-Cqw7kcur.js +292 -0
  128. package/bundled-test-harness/assets/copy-card-test-D5m3eVEH.js +218 -0
  129. package/bundled-test-harness/assets/copy-file-to-realm-test-FPY-6Ddm.js +148 -0
  130. package/bundled-test-harness/assets/copy-source-test-9pJD-qey.js +56 -0
  131. package/bundled-test-harness/assets/create-file-test-DjMf88u_.js +1086 -0
  132. package/bundled-test-harness/assets/create-file-test-XbgOqg38.js +464 -0
  133. package/bundled-test-harness/assets/create-listing-modal-test-De7b4vu3.js +273 -0
  134. package/bundled-test-harness/assets/create-listing-pr-request-test-CBtIV0Z8.js +117 -0
  135. package/bundled-test-harness/assets/create-spec-test-4xR0gM7E.js +256 -0
  136. package/bundled-test-harness/assets/create-submission-workflow-test-DQpWrpGT.js +132 -0
  137. package/bundled-test-harness/assets/create-workspace-test-BQAudgpS.js +104 -0
  138. package/bundled-test-harness/assets/credential-fields-test-DXKBdbZD.js +200 -0
  139. package/bundled-test-harness/assets/csv-file-def-test-Cnp4y834.js +102 -0
  140. package/bundled-test-harness/assets/dashboard-CmuOhIYC.js +3628 -0
  141. package/bundled-test-harness/assets/dashboard-CzN49x74.css +2400 -0
  142. package/bundled-test-harness/assets/dashboard-add-workspace-test-T32hWB-g.js +50 -0
  143. package/bundled-test-harness/assets/dashboard-agents-test-BN5maCgQ.js +334 -0
  144. package/bundled-test-harness/assets/dashboard-archive-test-BzwUte_Z.js +128 -0
  145. package/bundled-test-harness/assets/dashboard-delete-test-D2Gcp81V.js +163 -0
  146. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-BgKNIr35.js +71 -0
  147. package/bundled-test-harness/assets/dashboard-duplicate-test-D7JEWylc.js +222 -0
  148. package/bundled-test-harness/assets/dashboard-get-started-test-DOGPzGoA.js +374 -0
  149. package/bundled-test-harness/assets/dashboard-ir2bakJS.js +142 -0
  150. package/bundled-test-harness/assets/dashboard-pinned-cards-test-Bn_P9xJU.js +220 -0
  151. package/bundled-test-harness/assets/dashboard-publish-test-64sGQ0nG.js +70 -0
  152. package/bundled-test-harness/assets/dashboard-reindex-test-DJjYq1ct.js +115 -0
  153. package/bundled-test-harness/assets/dashboard-section-rail-test-ZkAhWu5V.js +169 -0
  154. package/bundled-test-harness/assets/dashboard-state-test-BbkpPB5L.js +162 -0
  155. package/bundled-test-harness/assets/dashboard-test-CBLdPrSt.js +545 -0
  156. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DFT3R1Zx.js +62 -0
  157. package/bundled-test-harness/assets/dashboard-workspace-test-DqBdCFo2.js +537 -0
  158. package/bundled-test-harness/assets/dashboard-workspaces-section-test-CH1HDfxR.js +410 -0
  159. package/bundled-test-harness/assets/data-file-def-preview-test-CNsZwQEJ.js +155 -0
  160. package/bundled-test-harness/assets/date-time-fields-test-CEFaZTnF.js +359 -0
  161. package/bundled-test-harness/assets/debug-message-test-Ck3BfFv3.js +117 -0
  162. package/bundled-test-harness/assets/declared-captures-test-C-0yPRU7.js +879 -0
  163. package/bundled-test-harness/assets/delete-workspace-test-CZOwGy78.js +102 -0
  164. package/bundled-test-harness/assets/diffing-test-BEKI905O.js +210 -0
  165. package/bundled-test-harness/assets/download-file-to-realm-test-C1kAGDll.js +119 -0
  166. package/bundled-test-harness/assets/editor-test-C9x5ZY6g.js +688 -0
  167. package/bundled-test-harness/assets/edits-D76-aanh.js +651 -0
  168. package/bundled-test-harness/assets/email-field-test-LGkrB_2B.js +75 -0
  169. package/bundled-test-harness/assets/enum-field-test-CPyV1J-m.js +935 -0
  170. package/bundled-test-harness/assets/error-display-test-bWuUtfIG.js +343 -0
  171. package/bundled-test-harness/assets/evaluate-module-test-CbS5h8t3.js +91 -0
  172. package/bundled-test-harness/assets/execute-atomic-operations-test-B4Kfco0k.js +113 -0
  173. package/bundled-test-harness/assets/externals-k-2ZBepK.js +4393 -0
  174. package/bundled-test-harness/assets/fallback-banner-live-delete-test-CuFiH1D8.js +207 -0
  175. package/bundled-test-harness/assets/fallback-banner-test-CqSRN7D8.js +225 -0
  176. package/bundled-test-harness/assets/fallback-banner-test-DQkrFE4-.js +53 -0
  177. package/bundled-test-harness/assets/fallback-models-test-BWekNxC0.js +161 -0
  178. package/bundled-test-harness/assets/fetch-card-json-test-DULUqUEu.js +61 -0
  179. package/bundled-test-harness/assets/field-configuration-test-BXZq28xa.js +551 -0
  180. package/bundled-test-harness/assets/field-markdown-domain-test-DdXCifs6.js +616 -0
  181. package/bundled-test-harness/assets/field-markdown-oversize-test-DouPPTHX.js +88 -0
  182. package/bundled-test-harness/assets/field-markdown-primitives-test-DSRGJeyl.js +365 -0
  183. package/bundled-test-harness/assets/field-markdown-specialized-test-DlTYLl_s.js +534 -0
  184. package/bundled-test-harness/assets/field-playground-test-NhS4VvoN.js +894 -0
  185. package/bundled-test-harness/assets/field-support-predicates-test-DWpyT1Qf.js +167 -0
  186. package/bundled-test-harness/assets/file-attachment-test-LwZf-BSY.js +796 -0
  187. package/bundled-test-harness/assets/file-chooser-panel-test-DuAqD9bn.js +153 -0
  188. package/bundled-test-harness/assets/file-chooser-test-CjaXXwpT.js +504 -0
  189. package/bundled-test-harness/assets/file-def-format-templates-test-BDs4OmHq.js +380 -0
  190. package/bundled-test-harness/assets/file-def-live-reload-test-BqTdnq-W.js +124 -0
  191. package/bundled-test-harness/assets/file-def-menu-items-test-DqdINXsD.js +138 -0
  192. package/bundled-test-harness/assets/file-def-navigation-test-BPGr0SQy.js +109 -0
  193. package/bundled-test-harness/assets/file-def-serialization-test-CvjW-FlC.js +89 -0
  194. package/bundled-test-harness/assets/file-def-test-C-Yv_NjS.js +216 -0
  195. package/bundled-test-harness/assets/file-preview-live-reload-test-MzwGwasU.js +310 -0
  196. package/bundled-test-harness/assets/file-resource-primitives-test-D3GmfqNs.js +255 -0
  197. package/bundled-test-harness/assets/file-tree-from-index-test-CfldnUgm.js +96 -0
  198. package/bundled-test-harness/assets/file-tree-test--0ZCPRe9.js +851 -0
  199. package/bundled-test-harness/assets/file-view-model-test-BDIAeBV8.js +346 -0
  200. package/bundled-test-harness/assets/filedef-export-shape-test-B2tgU404.js +61 -0
  201. package/bundled-test-harness/assets/film-Bf73ypzi.js +4074 -0
  202. package/bundled-test-harness/assets/film-C54lhaiU.js +2 -0
  203. package/bundled-test-harness/assets/film-DPcMEHYu.js +13 -0
  204. package/bundled-test-harness/assets/flac-audio-def-test-ByoXMoQ1.js +143 -0
  205. package/bundled-test-harness/assets/font-metadata-extractor-test-hawLTDTG.js +415 -0
  206. package/bundled-test-harness/assets/formatted-aibot-message-test-BahBj3x8.js +109 -0
  207. package/bundled-test-harness/assets/formatted-user-message-test-CodbrU3t.js +43 -0
  208. package/bundled-test-harness/assets/freestyle-test-faQhSciz.js +17 -0
  209. package/bundled-test-harness/assets/full-reindex-realm-test-CE5RJTIC.js +101 -0
  210. package/bundled-test-harness/assets/garbage-collection-test-v-3sev77.js +403 -0
  211. package/bundled-test-harness/assets/general-test-DKZPBtSb.js +923 -0
  212. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-CucWyrkH.js +65 -0
  213. package/bundled-test-harness/assets/generic-file-def-preview-test-_EDRsebi.js +71 -0
  214. package/bundled-test-harness/assets/get-available-realm-identifiers-test-CV023yek.js +47 -0
  215. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test--DOu3DyV.js +47 -0
  216. package/bundled-test-harness/assets/get-default-writable-realm-test-Bic8jl6R.js +54 -0
  217. package/bundled-test-harness/assets/get-published-realms-test-DrA5YcFN.js +71 -0
  218. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-jfU6SIWn.js +54 -0
  219. package/bundled-test-harness/assets/get-relationship-membership-state-test-Ccy2Z7MN.js +1308 -0
  220. package/bundled-test-harness/assets/get-user-system-card-test-Bmq2lmWv.js +67 -0
  221. package/bundled-test-harness/assets/gif-image-def-test-N1mMQC-X.js +188 -0
  222. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BkUDjiTs.js +160 -0
  223. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-DsFWCzTs.js +74 -0
  224. package/bundled-test-harness/assets/gts-file-def-test-BL1jpQ9J.js +100 -0
  225. package/bundled-test-harness/assets/head-format-preview-test-BVCaPQqc.js +158 -0
  226. package/bundled-test-harness/assets/helpers-Ds68JxHe.js +5 -0
  227. package/bundled-test-harness/assets/host-mode-service-B4bisRdR.js +262 -0
  228. package/bundled-test-harness/assets/host-mode-test-BmkN2PCJ.js +831 -0
  229. package/bundled-test-harness/assets/host-submode-test-C6SxQ796.js +1392 -0
  230. package/bundled-test-harness/assets/html-component-test-CNQ9wF0Q.js +65 -0
  231. package/bundled-test-harness/assets/html-def-test-BcaCVVQq.js +160 -0
  232. package/bundled-test-harness/assets/html-meta-extractor-test-BU1hjkTp.js +60 -0
  233. package/bundled-test-harness/assets/hydratable-card-test-CX6MWiti.js +426 -0
  234. package/bundled-test-harness/assets/icon-button-C1zH38Nc.js +67 -0
  235. package/bundled-test-harness/assets/image-metadata-extractor-test-CakSBPZ_.js +1109 -0
  236. package/bundled-test-harness/assets/index-changes-test-D8RtgfyG.js +367 -0
  237. package/bundled-test-harness/assets/index-query-engine-test-BETfoYOK.js +2593 -0
  238. package/bundled-test-harness/assets/index-writer-test-B_bR2fjw.js +3040 -0
  239. package/bundled-test-harness/assets/inspector-test-BwPXJj1S.js +2058 -0
  240. package/bundled-test-harness/assets/instance-filter-matcher-test-BSVCg59b.js +788 -0
  241. package/bundled-test-harness/assets/instantiate-card-test-BVQhZjpq.js +164 -0
  242. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DzQLG41H.js +475 -0
  243. package/bundled-test-harness/assets/interact-submode-setup-C5bKXq73.js +566 -0
  244. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-Cd3dpjhB.js +99 -0
  245. package/bundled-test-harness/assets/invite-user-to-room-test-Brabz1tt.js +142 -0
  246. package/bundled-test-harness/assets/invoke-card-operation-test-C1Q1FUf4.js +333 -0
  247. package/bundled-test-harness/assets/isolated-render-test-BLJfS7BU.js +51 -0
  248. package/bundled-test-harness/assets/job-scoped-doc-cache-test-Bgv5woaB.js +181 -0
  249. package/bundled-test-harness/assets/job-scoped-instance-residency-test-C_bB6KpR.js +103 -0
  250. package/bundled-test-harness/assets/jpg-image-def-test-gdLIKocD.js +697 -0
  251. package/bundled-test-harness/assets/json-file-def-test-CPYMRBY-.js +95 -0
  252. package/bundled-test-harness/assets/key-notices-badge-test-DemslfLw.js +155 -0
  253. package/bundled-test-harness/assets/key-readiness-test-5tq5JycL.js +190 -0
  254. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-BbhDZ2PH.js +398 -0
  255. package/bundled-test-harness/assets/linksto-error-sentinel-test-C2t7fFPi.js +238 -0
  256. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test--U_UvUty.js +354 -0
  257. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-Dj3Xy0ZF.js +303 -0
  258. package/bundled-test-harness/assets/linksto-sentinel-reload-test-D0dK4Jjs.js +197 -0
  259. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test---IYiXok.js +260 -0
  260. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CT04MhES.js +196 -0
  261. package/bundled-test-harness/assets/lint-and-fix-test-aadgx7rX.js +51 -0
  262. package/bundled-test-harness/assets/live-test-BGij_vuc.js +100 -0
  263. package/bundled-test-harness/assets/live-test-CppvValf.js +2 -0
  264. package/bundled-test-harness/assets/load-default-skills-test-Cp2m_ebp.js +74 -0
  265. package/bundled-test-harness/assets/loader-parallel-prefetch-test-vU_26Jqu.js +257 -0
  266. package/bundled-test-harness/assets/loader-test-CTaw8K_B.js +482 -0
  267. package/bundled-test-harness/assets/loading-test-DGGt4qZZ.js +63 -0
  268. package/bundled-test-harness/assets/m4a-audio-def-test-DAiReOXH.js +190 -0
  269. package/bundled-test-harness/assets/main-bXHwJ0CN.js +5 -0
  270. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-CIXq9FqR.js +470 -0
  271. package/bundled-test-harness/assets/markdown-embed-chooser-test-zFGh9WfP.js +334 -0
  272. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-Byn_WFwY.js +447 -0
  273. package/bundled-test-harness/assets/markdown-embed-preview-test-Y3iFMttg.js +368 -0
  274. package/bundled-test-harness/assets/markdown-fallback-test-Br1TPkLZ.js +316 -0
  275. package/bundled-test-harness/assets/markdown-file-def-test-Crm2MAnq.js +380 -0
  276. package/bundled-test-harness/assets/markdown-helpers-test-CZ9Vvywc.js +188 -0
  277. package/bundled-test-harness/assets/markdown-highlighting-test-CFMkoVDl.js +244 -0
  278. package/bundled-test-harness/assets/markdown-preview-lOh-MyqF.js +72 -0
  279. package/bundled-test-harness/assets/markdown-preview-test-B8w0fFIy.js +238 -0
  280. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-aH6HQly1.js +146 -0
  281. package/bundled-test-harness/assets/markdown-skill-search-test-CiNLQs-5.js +80 -0
  282. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-DaA8w1Jj.js +63 -0
  283. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-21GIlf55.js +300 -0
  284. package/bundled-test-harness/assets/matrix-service-personal-realm-test-jn9DUENm.js +125 -0
  285. package/bundled-test-harness/assets/matrix-service-realm-servers-test-eNZVJakl.js +55 -0
  286. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-Cabm8_dY.js +132 -0
  287. package/bundled-test-harness/assets/matrix-service-relogin-test-C77EFgjc.js +59 -0
  288. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-BgM0fPiO.js +35 -0
  289. package/bundled-test-harness/assets/menu-Cl50TSFe.js +3561 -0
  290. package/bundled-test-harness/assets/message-service-subscription-test-CfEqH2jP.js +110 -0
  291. package/bundled-test-harness/assets/message-service-test-DsTzH1In.js +144 -0
  292. package/bundled-test-harness/assets/message-tool-test-C5xVfTtj.js +33 -0
  293. package/bundled-test-harness/assets/midi-audio-def-test-goLRCNCZ.js +182 -0
  294. package/bundled-test-harness/assets/migrate-skill-test-yPCbVfxG.js +161 -0
  295. package/bundled-test-harness/assets/mini-YXjrY_tH.js +1404 -0
  296. package/bundled-test-harness/assets/mini-card-chooser-test-DrllikHB.js +272 -0
  297. package/bundled-test-harness/assets/mini-file-chooser-test-BfqayhmI.js +201 -0
  298. package/bundled-test-harness/assets/mock-matrix-C7BrPS6S.js +2 -0
  299. package/bundled-test-harness/assets/mock-matrix-FjsXmU7-.js +15107 -0
  300. package/bundled-test-harness/assets/modal-BgaZavcs.js +322 -0
  301. package/bundled-test-harness/assets/model-cost-tier-test-BGg-sJML.js +174 -0
  302. package/bundled-test-harness/assets/model-file-extract-test-CjEBupY5.js +206 -0
  303. package/bundled-test-harness/assets/module-transpile-cache-test-XW6DDsmz.js +67 -0
  304. package/bundled-test-harness/assets/monaco-test-DkoRuFiQ.js +100 -0
  305. package/bundled-test-harness/assets/mp3-audio-def-test-v369NNsQ.js +133 -0
  306. package/bundled-test-harness/assets/multiple-stacks-test-CJpYPWdM.js +208 -0
  307. package/bundled-test-harness/assets/nested-query-field-render-test-CfDrBcUN.js +249 -0
  308. package/bundled-test-harness/assets/no-stacks-test-MmsJeLpz.js +48 -0
  309. package/bundled-test-harness/assets/number-field-test-A7B2r0M5.js +184 -0
  310. package/bundled-test-harness/assets/office-file-def-test-BNRvFmCB.js +263 -0
  311. package/bundled-test-harness/assets/office-metadata-extractor-test-zlDoEIEp.js +218 -0
  312. package/bundled-test-harness/assets/office-poster-capture-test-DdFEaOxR.js +203 -0
  313. package/bundled-test-harness/assets/ogg-audio-def-test-kk91BzQY.js +196 -0
  314. package/bundled-test-harness/assets/open-create-listing-modal-test-D1Dl1pov.js +131 -0
  315. package/bundled-test-harness/assets/open-image-in-new-tab-test-DyCmdMyO.js +52 -0
  316. package/bundled-test-harness/assets/open-secure-window-test-dz1vPudF.js +253 -0
  317. package/bundled-test-harness/assets/open-workspace-test-BvTcskzP.js +46 -0
  318. package/bundled-test-harness/assets/operation-lowering-test-omU66bkJ.js +2957 -0
  319. package/bundled-test-harness/assets/operations-invocation-test-BMj42rQe.js +523 -0
  320. package/bundled-test-harness/assets/operations-optimistic-test-KJLyzT8v.js +203 -0
  321. package/bundled-test-harness/assets/operations-query-test-J3HcnaoK.js +459 -0
  322. package/bundled-test-harness/assets/operations-store-reconciliation-test-CkbGBMBQ.js +406 -0
  323. package/bundled-test-harness/assets/operations-test-C7zXXpRW.js +2518 -0
  324. package/bundled-test-harness/assets/operator-mode-acceptance-test-BPolI_RD.js +1195 -0
  325. package/bundled-test-harness/assets/operator-mode-card-chooser-test-DjTQgizt.js +1036 -0
  326. package/bundled-test-harness/assets/operator-mode-links-test-DSEqy5Db.js +797 -0
  327. package/bundled-test-harness/assets/operator-mode-test-CB7BNDNE.js +696 -0
  328. package/bundled-test-harness/assets/operator-mode-ui-test-C1OhF1il.js +1045 -0
  329. package/bundled-test-harness/assets/overlay-D2rQi8lJ.js +427 -0
  330. package/bundled-test-harness/assets/overlay-menu-items-test-CPN31yBJ.js +331 -0
  331. package/bundled-test-harness/assets/overlays-B-qMEPhY.js +2 -0
  332. package/bundled-test-harness/assets/overlays-DSf2je0c.js +75 -0
  333. package/bundled-test-harness/assets/overlays-detached-element-test-C73nMXes.js +56 -0
  334. package/bundled-test-harness/assets/panel-DjrC7DxA.js +15124 -0
  335. package/bundled-test-harness/assets/past-sessions-test-BSIS2Hlq.js +321 -0
  336. package/bundled-test-harness/assets/patch-fields-test-Bp2IE0Jw.js +1014 -0
  337. package/bundled-test-harness/assets/patch-instance-test-DssuRGKP.js +348 -0
  338. package/bundled-test-harness/assets/pdf-file-def-test-Barj9ffD.js +111 -0
  339. package/bundled-test-harness/assets/pdf-metadata-extractor-test-B7KnXcIm.js +130 -0
  340. package/bundled-test-harness/assets/permission-checking-realm-test-BD4O0nen.js +306 -0
  341. package/bundled-test-harness/assets/persist-module-inspector-view-test-BIdbkdPr.js +60 -0
  342. package/bundled-test-harness/assets/persist-scroll-position-test-Bhb7wJiy.js +254 -0
  343. package/bundled-test-harness/assets/phone-number-field-test-C2yuCrXY.js +73 -0
  344. package/bundled-test-harness/assets/pill-menu-test-BIp91YXi.js +60 -0
  345. package/bundled-test-harness/assets/plate-CJq1veVA.js +41 -0
  346. package/bundled-test-harness/assets/plate-CwAvOUfL.js +2 -0
  347. package/bundled-test-harness/assets/player-Digk7omr.js +2 -0
  348. package/bundled-test-harness/assets/player-vsjosoN_.js +82 -0
  349. package/bundled-test-harness/assets/playground-B02e8uqB.js +58 -0
  350. package/bundled-test-harness/assets/plural-field-components-test-C1acuN-A.js +198 -0
  351. package/bundled-test-harness/assets/png-image-def-test-B9QeVo1f.js +266 -0
  352. package/bundled-test-harness/assets/policy-audit-confirmation-test-CeVquvc_.js +155 -0
  353. package/bundled-test-harness/assets/policy-scoped-search-test-SFPiIqR3.js +339 -0
  354. package/bundled-test-harness/assets/prerender-file-extract-test-HSJKAHyO.js +346 -0
  355. package/bundled-test-harness/assets/prerender-html-test-BTAcFCme.js +670 -0
  356. package/bundled-test-harness/assets/prerender-meta-test-Csyz2b21.js +614 -0
  357. package/bundled-test-harness/assets/prerender-module-test-DpTYAbmI.js +409 -0
  358. package/bundled-test-harness/assets/prerender-persistence-block-test-BhIt-7kK.js +124 -0
  359. package/bundled-test-harness/assets/prerender-pre-model-error-test-DxKPQKqx.js +61 -0
  360. package/bundled-test-harness/assets/prerender-serialize-cycle-test-C8V5YWQO.js +134 -0
  361. package/bundled-test-harness/assets/prerendered-html-read-test-Cq7JVGwg.js +191 -0
  362. package/bundled-test-harness/assets/pretui-components-test-Ducr9fLT.css +743 -0
  363. package/bundled-test-harness/assets/pretui-components-test-Hs0uyIUQ.js +992 -0
  364. package/bundled-test-harness/assets/pretui-primitives-CRs8NRm0.js +69 -0
  365. package/bundled-test-harness/assets/preview-format-test-cCqLrfdY.js +103 -0
  366. package/bundled-test-harness/assets/preview-test-BMqJSoR1.js +474 -0
  367. package/bundled-test-harness/assets/process-card-test-578tfDvr.js +94 -0
  368. package/bundled-test-harness/assets/profile-settings-modal-CVnNl7Yu.js +990 -0
  369. package/bundled-test-harness/assets/publish-realm-COoeWexp.js +82 -0
  370. package/bundled-test-harness/assets/publish-realm-test-a5nkx0Ov.js +210 -0
  371. package/bundled-test-harness/assets/query-field-barrier-test-qX3xVPfk.js +113 -0
  372. package/bundled-test-harness/assets/query-field-error-sentinel-test-V6JDPFLX.js +201 -0
  373. package/bundled-test-harness/assets/query-field-membership-status-test-CK7eDf-K.js +323 -0
  374. package/bundled-test-harness/assets/query-field-page-optin-test-B5YBHUvU.js +126 -0
  375. package/bundled-test-harness/assets/query-field-schema-test-D4SjOGlK.js +231 -0
  376. package/bundled-test-harness/assets/query-field-search-throttle-test-BVkm1-D8.js +154 -0
  377. package/bundled-test-harness/assets/query-field-stale-prerender-test-9g7hcD91.js +152 -0
  378. package/bundled-test-harness/assets/query-fields-test-CQYqhzpN.js +535 -0
  379. package/bundled-test-harness/assets/quick-look-test-CE0o6lJ4.js +139 -0
  380. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D0mJorwH.js +91 -0
  381. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-B_F_2GEB.js +45 -0
  382. package/bundled-test-harness/assets/read-source-test-BgJV4B4F.js +67 -0
  383. package/bundled-test-harness/assets/read-text-file-test-DaeLzg4u.js +124 -0
  384. package/bundled-test-harness/assets/realm-C_a9su1j.js +2858 -0
  385. package/bundled-test-harness/assets/realm-api-keys-D5USFOoS.js +2 -0
  386. package/bundled-test-harness/assets/realm-api-keys-m_VOcixC.js +578 -0
  387. package/bundled-test-harness/assets/realm-api-keys-test-BVs7f5Dz.js +109 -0
  388. package/bundled-test-harness/assets/realm-api-keys-test-C_uZnTmq.js +588 -0
  389. package/bundled-test-harness/assets/realm-config-m5eccPW8.js +833 -0
  390. package/bundled-test-harness/assets/realm-config-policy-standing-test-Ber-IXpc.js +290 -0
  391. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-3Xqt5VlM.js +274 -0
  392. package/bundled-test-harness/assets/realm-config-settings-test-CkalhbDF.js +187 -0
  393. package/bundled-test-harness/assets/realm-field-test-B_PUoqnk.js +100 -0
  394. package/bundled-test-harness/assets/realm-indexing-test-8iLjeV_e.js +4380 -0
  395. package/bundled-test-harness/assets/realm-policy-fitted-test-Bptvra0U.js +206 -0
  396. package/bundled-test-harness/assets/realm-policy-test-DwG0qqXE.js +1141 -0
  397. package/bundled-test-harness/assets/realm-querying-test-Dvw26A6Q.js +1067 -0
  398. package/bundled-test-harness/assets/realm-server-form-agnostic-test-DrXQH0UP.js +96 -0
  399. package/bundled-test-harness/assets/realm-server-subscriber-test-Dkj23vQK.js +46 -0
  400. package/bundled-test-harness/assets/realm-service-info-test-CdRlDhj-.js +67 -0
  401. package/bundled-test-harness/assets/realm-test-DGYN48Qx.js +2364 -0
  402. package/bundled-test-harness/assets/realm-token-refresh-test-CEWATL9h.js +153 -0
  403. package/bundled-test-harness/assets/realm-url-tooltip-test-8ZjTNPuy.js +78 -0
  404. package/bundled-test-harness/assets/reasoning-test-BV49AYg2.js +221 -0
  405. package/bundled-test-harness/assets/recent-files-test-Dc6L6Dm4.js +450 -0
  406. package/bundled-test-harness/assets/reindex-realm-test-CFRSt39u.js +117 -0
  407. package/bundled-test-harness/assets/relationship-loading-state-test-FKbtOFUr.js +290 -0
  408. package/bundled-test-harness/assets/remix-card-test-CKGC_Sgq.js +58 -0
  409. package/bundled-test-harness/assets/rendered-markdown-DXiDN91F.js +292 -0
  410. package/bundled-test-harness/assets/rendered-markdown-test-n3MlXmmu.js +587 -0
  411. package/bundled-test-harness/assets/resident-instance-reuse-test-BjdhE6CM.js +82 -0
  412. package/bundled-test-harness/assets/result-tile-o6dtjgX4.js +144 -0
  413. package/bundled-test-harness/assets/rich-markdown-field-test-VXr6l20h.js +1647 -0
  414. package/bundled-test-harness/assets/room-message-test-BrjJ2wMs.js +484 -0
  415. package/bundled-test-harness/assets/run-P_7TsreC.js +4017 -0
  416. package/bundled-test-harness/assets/run-realm-code-DsBUf1si.js +2964 -0
  417. package/bundled-test-harness/assets/run-realm-code-test-cS0DzaKo.js +3844 -0
  418. package/bundled-test-harness/assets/sanitize-module-list-test-CvuOOiUY.js +85 -0
  419. package/bundled-test-harness/assets/save-card-skip-index-wait-test-fpJ1eq32.js +89 -0
  420. package/bundled-test-harness/assets/schema-editor-test-NkKjCgyf.js +785 -0
  421. package/bundled-test-harness/assets/schema-generation-test-Dmg3lWl7.js +28 -0
  422. package/bundled-test-harness/assets/scrolling-test-B0GNYGYc.js +412 -0
  423. package/bundled-test-harness/assets/search-adorn-test-CZebk7_y.js +136 -0
  424. package/bundled-test-harness/assets/search-and-choose-test-Bd4NZUup.js +154 -0
  425. package/bundled-test-harness/assets/search-correlation-id-test-DXKlEO55.js +139 -0
  426. package/bundled-test-harness/assets/search-entries-result-test-QQawA8Fm.js +234 -0
  427. package/bundled-test-harness/assets/search-entries-test-3DlqGPQq.js +1486 -0
  428. package/bundled-test-harness/assets/search-entries-tool-test-D1TvDE9D.js +504 -0
  429. package/bundled-test-harness/assets/search-google-images-test-DqsoQGr1.js +166 -0
  430. package/bundled-test-harness/assets/search-results-DGrNaPxh.js +266 -0
  431. package/bundled-test-harness/assets/search-results-test-CqVHYNRt.js +578 -0
  432. package/bundled-test-harness/assets/search-selection-menu-test-D6bIjKiH.js +108 -0
  433. package/bundled-test-harness/assets/search-sheet-files-test-Bf37TQXo.js +126 -0
  434. package/bundled-test-harness/assets/search-sheet-persistence-test-CV4_XdxR.js +131 -0
  435. package/bundled-test-harness/assets/search-test-Dlb-wg3a.js +2249 -0
  436. package/bundled-test-harness/assets/search-tool-test-BJLgVMoL.js +156 -0
  437. package/bundled-test-harness/assets/searchable-option-test-CcbfMqIL.js +322 -0
  438. package/bundled-test-harness/assets/searchable-search-doc-test-yH9fLGNS.js +1271 -0
  439. package/bundled-test-harness/assets/section-rail-CNFCebtT.js +113 -0
  440. package/bundled-test-harness/assets/section-rail-test-KNJAWWl6.js +256 -0
  441. package/bundled-test-harness/assets/secure-sign-in-Dyljp0Th.js +174 -0
  442. package/bundled-test-harness/assets/secure-sign-in-test-QnqNuTP3.js +373 -0
  443. package/bundled-test-harness/assets/segmented-control-DxJdoJ4Z.js +173 -0
  444. package/bundled-test-harness/assets/select-BiQTg2ts.js +175 -0
  445. package/bundled-test-harness/assets/send-ai-assistant-message-test-CAn7M2dZ.js +52 -0
  446. package/bundled-test-harness/assets/send-bot-trigger-event-test-qBu5E_jy.js +56 -0
  447. package/bundled-test-harness/assets/send-request-via-proxy-test-CLuwLBq_.js +380 -0
  448. package/bundled-test-harness/assets/sending-test-H0AaBSgi.js +659 -0
  449. package/bundled-test-harness/assets/serialization-rri-form-audit-test-hMJukiKt.js +136 -0
  450. package/bundled-test-harness/assets/serialization-test-W5e3wKbz.js +8758 -0
  451. package/bundled-test-harness/assets/set-user-system-card-test-CjgWLkNV.js +59 -0
  452. package/bundled-test-harness/assets/setup-CssMNvui.js +772 -0
  453. package/bundled-test-harness/assets/setup-D8YXvK-p.js +2 -0
  454. package/bundled-test-harness/assets/shared-link-target-reuse-test-D42UO8DC.js +207 -0
  455. package/bundled-test-harness/assets/show-card-test-CHEaS514.js +365 -0
  456. package/bundled-test-harness/assets/signed-capture-link-test-BgEu0F-S.js +132 -0
  457. package/bundled-test-harness/assets/single-stack-test-DYcu_v7Z.js +652 -0
  458. package/bundled-test-harness/assets/skills-test-ChmKhADX.js +648 -0
  459. package/bundled-test-harness/assets/skip-boot-index-guard-test-BzRIncDN.js +46 -0
  460. package/bundled-test-harness/assets/spec-test-BYvFR6Xb.js +1077 -0
  461. package/bundled-test-harness/assets/spinner-Bx9x55NA.js +49 -0
  462. package/bundled-test-harness/assets/src-C1hYFgVl.js +216 -0
  463. package/bundled-test-harness/assets/src-CIlLx7Lu.js +5 -0
  464. package/bundled-test-harness/assets/stick-to-bottom-resize-test-DMHsAG0v.js +56 -0
  465. package/bundled-test-harness/assets/store-add-test-D_9IHQjZ.js +50 -0
  466. package/bundled-test-harness/assets/store-module-rebuild-test-BRGZoLRV.js +454 -0
  467. package/bundled-test-harness/assets/store-search-test-3G8JHuj2.js +175 -0
  468. package/bundled-test-harness/assets/store-test-BiKKDqqW.js +3672 -0
  469. package/bundled-test-harness/assets/structured-theme-test-11TNsgUW.js +377 -0
  470. package/bundled-test-harness/assets/summarize-session-test-CwzD_ZbD.js +172 -0
  471. package/bundled-test-harness/assets/svg-image-def-test-zV6aMK9q.js +167 -0
  472. package/bundled-test-harness/assets/switch-submode-test-DQU2cP5_.js +168 -0
  473. package/bundled-test-harness/assets/sync-openrouter-models-test-xrXVaC2H.js +97 -0
  474. package/bundled-test-harness/assets/test-support-BGl3rthw.js +3 -0
  475. package/bundled-test-harness/assets/test-support-BcBv__98.js +99 -0
  476. package/bundled-test-harness/assets/tests-CmM9imwB.js +3598 -0
  477. package/bundled-test-harness/assets/text-file-def-test-Cyq78UFY.js +94 -0
  478. package/bundled-test-harness/assets/text-input-validator-test-DBj7TaM_.js +156 -0
  479. package/bundled-test-harness/assets/text-suggestion-test-C4XAqWqY.js +340 -0
  480. package/bundled-test-harness/assets/theme-card-test-dVNz4tgU.js +621 -0
  481. package/bundled-test-harness/assets/theme-dashboard-nav-test-DYSn5pqo.js +196 -0
  482. package/bundled-test-harness/assets/theme-scheme-island-test-C1WpkfEP.js +264 -0
  483. package/bundled-test-harness/assets/theme-scoped-css-parity-test-BVluppsE.js +176 -0
  484. package/bundled-test-harness/assets/titles-DCvAhECF.js +52 -0
  485. package/bundled-test-harness/assets/titles-ZPeArtS1.js +2 -0
  486. package/bundled-test-harness/assets/to-device-streaming-test-BJ4J1cXe.js +163 -0
  487. package/bundled-test-harness/assets/token-usage-test-WUf4r4fQ.js +160 -0
  488. package/bundled-test-harness/assets/tools-J_Knr_W6.js +774 -0
  489. package/bundled-test-harness/assets/tools-calling-test-CfqZX0Ed.js +200 -0
  490. package/bundled-test-harness/assets/tools-test-B4x58ZmI.js +1624 -0
  491. package/bundled-test-harness/assets/tools-test-Cvau5219.js +3204 -0
  492. package/bundled-test-harness/assets/tooltip-B0rEgyMW.css +66 -0
  493. package/bundled-test-harness/assets/tooltip-DvUMUgVX.js +195 -0
  494. package/bundled-test-harness/assets/transform-cards-test-CYQbZeD9.js +341 -0
  495. package/bundled-test-harness/assets/ts-file-def-preview-test-m39f8Zio.js +95 -0
  496. package/bundled-test-harness/assets/ts-file-def-test-xIcL5xWe.js +92 -0
  497. package/bundled-test-harness/assets/ttf-font-def-test-ClQ2SzFF.js +206 -0
  498. package/bundled-test-harness/assets/turn-settling-test-DZoL2mRT.js +160 -0
  499. package/bundled-test-harness/assets/turn-summary-Bmt7ZxTS.js +1039 -0
  500. package/bundled-test-harness/assets/unpublish-realm-test-0ToTJczx.js +102 -0
  501. package/bundled-test-harness/assets/update-room-skills-test-o_j8NOUV.js +240 -0
  502. package/bundled-test-harness/assets/use-ai-assistant-test-D7HFpxKJ.js +384 -0
  503. package/bundled-test-harness/assets/user-message-BAOt1hS3.js +262 -0
  504. package/bundled-test-harness/assets/validate-realm-test-e3xIbNLB.js +67 -0
  505. package/bundled-test-harness/assets/video-metadata-extractor-test-D8naLSlg.js +520 -0
  506. package/bundled-test-harness/assets/view-visually-test-BuhGau5E.js +335 -0
  507. package/bundled-test-harness/assets/virtual-network-reset-test-CgaFNGPi.js +96 -0
  508. package/bundled-test-harness/assets/wav-audio-def-test-CWG_UdCh.js +160 -0
  509. package/bundled-test-harness/assets/webp-image-def-test-sN4yw8Zu.js +226 -0
  510. package/bundled-test-harness/assets/workspace-0LfPqbYB.js +445 -0
  511. package/bundled-test-harness/assets/workspace-a11y-test-DQxYDRAP.js +197 -0
  512. package/bundled-test-harness/assets/workspace-actions-jGJSfl8M.js +588 -0
  513. package/bundled-test-harness/assets/workspace-behavior-test-BnF-bmBN.js +338 -0
  514. package/bundled-test-harness/assets/workspace-delete-multiple-test-D-rxPDuT.js +212 -0
  515. package/bundled-test-harness/assets/workspace-delete-summary-test-C2-Mve5R.js +63 -0
  516. package/bundled-test-harness/assets/workspace-hosting-test-BvDKdlOb.js +138 -0
  517. package/bundled-test-harness/assets/workspace-indexing-test-B34T3kqD.js +71 -0
  518. package/bundled-test-harness/assets/workspace-test-CJivgv-m.js +51 -0
  519. package/bundled-test-harness/assets/workspace-test-CuSRpPnQ.js +385 -0
  520. package/bundled-test-harness/assets/workspace-timestamp-labels-test-aWgjdbCp.js +68 -0
  521. package/bundled-test-harness/assets/workspace-unit-test-DHMUf2KT.js +122 -0
  522. package/bundled-test-harness/assets/write-binary-file-test-P-hVQuin.js +124 -0
  523. package/bundled-test-harness/assets/write-text-file-test-fXvJueDd.js +191 -0
  524. package/bundled-test-harness/assets/zip-archive-test-C2P5CUSR.js +285 -0
  525. package/bundled-test-harness/assets/zip-file-def-test-BfJZAmGt.js +164 -0
  526. package/bundled-test-harness/boxel-ui-checksum.txt +1 -1
  527. package/bundled-test-harness/index.html +48 -48
  528. package/bundled-test-harness/tests/index.html +50 -50
  529. package/bundled-types/boxel-ui/helpers/theme-scoped-css.ts +4 -0
  530. package/bundled-types/choreo/choreo.gts +58 -2
  531. package/bundled-types/choreo/compile.ts +5 -0
  532. package/bundled-types/choreo/layout-probe.ts +100 -0
  533. package/bundled-types/choreo/run.ts +99 -4
  534. package/bundled-types/host-app/components/operator-mode/dashboard/get-started.gts +152 -7
  535. package/bundled-types/host-app/components/operator-mode/dashboard/index.gts +2 -0
  536. package/bundled-types/host-app/components/operator-mode/dashboard/workspace.gts +5 -3
  537. package/bundled-types/host-app/components/operator-mode/dashboard-modals/workspace-modals.gts +5 -22
  538. package/bundled-types/host-app/components/operator-mode/host-submode/publishing-realm-popover.gts +1 -1
  539. package/bundled-types/host-app/components/operator-mode/host-submode.gts +111 -37
  540. package/bundled-types/host-app/components/operator-mode/motion/stack-motion.gts +92 -33
  541. package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +1 -0
  542. package/bundled-types/host-app/components/operator-mode/stack-item.gts +2 -2
  543. package/bundled-types/host-app/components/operator-mode/stack.gts +36 -25
  544. package/bundled-types/host-app/components/operator-mode/submode-layout.gts +2 -2
  545. package/bundled-types/host-app/lib/modal-focus-trap.ts +33 -0
  546. package/bundled-types/host-app/lib/workspace-actions.ts +21 -0
  547. package/bundled-types/host-app/services/host-mode-service.ts +39 -0
  548. package/bundled-types/host-app/services/realm.ts +14 -0
  549. package/bundled-types/host-tests/helpers/dashboard.ts +67 -0
  550. package/package.json +1 -1
  551. package/bundled-test-harness/assets/account-switch-failed-test-FytUFiPO.js +0 -45
  552. package/bundled-test-harness/assets/adapter-DvmPwSZv.js +0 -2
  553. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-DN525jiY.js +0 -112
  554. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-q3tKqVJQ.js +0 -130
  555. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DgeXcCyi.js +0 -46
  556. package/bundled-test-harness/assets/ai-assistant-test-lDIGPKFP.js +0 -2223
  557. package/bundled-test-harness/assets/ai-function-generation-test-D5GbLyvL.js +0 -1176
  558. package/bundled-test-harness/assets/ai-module-creation-test-I3-j2beD.js +0 -151
  559. package/bundled-test-harness/assets/aibot-message-Dmsjifs6.js +0 -1312
  560. package/bundled-test-harness/assets/app-BS9_-DhN.js +0 -14146
  561. package/bundled-test-harness/assets/apply-markdown-edit-test-4zlwt0Db.js +0 -230
  562. package/bundled-test-harness/assets/ask-user-picker-Dr-0qpNr.js +0 -370
  563. package/bundled-test-harness/assets/ask-user-picker-test-633AFdmS.js +0 -39
  564. package/bundled-test-harness/assets/assistant-transcript-test-BgRnLvMg.js +0 -57
  565. package/bundled-test-harness/assets/audio-metadata-extractor-test-4xsQqL-0.js +0 -1176
  566. package/bundled-test-harness/assets/authed-fetch-test-663mT5_N.js +0 -73
  567. package/bundled-test-harness/assets/avif-image-def-test-h01BPIJy.js +0 -187
  568. package/bundled-test-harness/assets/basic-test-DiD6T-8Q.js +0 -139
  569. package/bundled-test-harness/assets/binary-upload-dedupe-test-CkjMPO_e.js +0 -308
  570. package/bundled-test-harness/assets/bot-registration-test-CFZHpwdj.js +0 -97
  571. package/bundled-test-harness/assets/box-test-C3pSy5ED.js +0 -50
  572. package/bundled-test-harness/assets/brand-guide-attachments-test-EoC_u7Vc.js +0 -84
  573. package/bundled-test-harness/assets/brand-guide-custom-css-test-Dn3fvblr.js +0 -196
  574. package/bundled-test-harness/assets/brand-guide-edit-test-NeiT3MyK.js +0 -140
  575. package/bundled-test-harness/assets/brand-logo-mark-field-test-C2A1EnBB.js +0 -86
  576. package/bundled-test-harness/assets/broken-link-template-test-CWn6V5zZ.js +0 -192
  577. package/bundled-test-harness/assets/bundled-base-modules-test-D7mLzpsw.js +0 -54
  578. package/bundled-test-harness/assets/bundled-base-oracle-test-I7xCId_k.js +0 -37
  579. package/bundled-test-harness/assets/buried-stack-item-scroll-test-DFBev0h-.js +0 -236
  580. package/bundled-test-harness/assets/button-BeSuhveJ.js +0 -207
  581. package/bundled-test-harness/assets/bxl-cyclic-graph-test-DPykwvvx.js +0 -47
  582. package/bundled-test-harness/assets/bxl-expression-test-LBWJiFb9.js +0 -250
  583. package/bundled-test-harness/assets/bxl-indexing-test-BuZmLk7y.js +0 -212
  584. package/bundled-test-harness/assets/bxl-platform-module-test-BNIvlkCM.js +0 -71
  585. package/bundled-test-harness/assets/can-invoke-test-t-bFIIeX.js +0 -455
  586. package/bundled-test-harness/assets/can-read-realm-test-2Q_MzRT9.js +0 -56
  587. package/bundled-test-harness/assets/cancel-indexing-job-test-QeYxEukn.js +0 -69
  588. package/bundled-test-harness/assets/capture-test-CJmJG8YR.js +0 -360
  589. package/bundled-test-harness/assets/card-api-test-B43I510H.js +0 -198
  590. package/bundled-test-harness/assets/card-basics-test-CBClzP2y.js +0 -5364
  591. package/bundled-test-harness/assets/card-chooser-paging-test-HEVzf6pR.js +0 -235
  592. package/bundled-test-harness/assets/card-chooser-test-GfjBRPFI.js +0 -393
  593. package/bundled-test-harness/assets/card-context-search-results-CoSr4EdS.js +0 -30
  594. package/bundled-test-harness/assets/card-context-search-results-test-BLMlZu9t.js +0 -184
  595. package/bundled-test-harness/assets/card-def-field-def-relationships-test-DEBOzKan.js +0 -562
  596. package/bundled-test-harness/assets/card-def-menu-items-test-88_h8o0D.js +0 -228
  597. package/bundled-test-harness/assets/card-delete-test-DKom1phy.js +0 -466
  598. package/bundled-test-harness/assets/card-error-awaiting-index-test-DEwgFZMP.js +0 -53
  599. package/bundled-test-harness/assets/card-error-r6_cXst9.js +0 -72
  600. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-B7LiY15e.js +0 -219
  601. package/bundled-test-harness/assets/card-playground-test-CgyIJHui.js +0 -1491
  602. package/bundled-test-harness/assets/card-prerender-rPfzpIOU.js +0 -12939
  603. package/bundled-test-harness/assets/card-thunk-error-test-L0pvg4Ce.js +0 -48
  604. package/bundled-test-harness/assets/card-type-service-test-B2dhqxSD.js +0 -161
  605. package/bundled-test-harness/assets/check-correctness-test-DgqaLlCW.js +0 -1093
  606. package/bundled-test-harness/assets/check-domain-availability-test-B0hJHY5l.js +0 -98
  607. package/bundled-test-harness/assets/chip-D01NW3WH.js +0 -44
  608. package/bundled-test-harness/assets/choreo-D2Jl79RU.js +0 -1019
  609. package/bundled-test-harness/assets/choreo-_E8SOEe-.js +0 -2
  610. package/bundled-test-harness/assets/choreo-feature-reel-test-WLjsZDmS.js +0 -155
  611. package/bundled-test-harness/assets/choreo-gallery-build-order-test-6jnS8PsS.js +0 -436
  612. package/bundled-test-harness/assets/choreo-gallery-compositor-test-CbUZsVB6.js +0 -399
  613. package/bundled-test-harness/assets/choreo-gallery-cover-test-CbvAStgk.js +0 -214
  614. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-tdjvUSa6.js +0 -133
  615. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-CsnM3hQK.js +0 -42
  616. package/bundled-test-harness/assets/choreo-gallery-drift-test-DG2LQTa7.js +0 -620
  617. package/bundled-test-harness/assets/choreo-gallery-escort-test-mn3-qXP1.js +0 -187
  618. package/bundled-test-harness/assets/choreo-gallery-films-test-BuktaC0D.js +0 -140
  619. package/bundled-test-harness/assets/choreo-gallery-filter-test-Dd-zpps0.js +0 -46
  620. package/bundled-test-harness/assets/choreo-gallery-fold-test-CWc1ijGc.js +0 -180
  621. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-tk2QmYPU.js +0 -114
  622. package/bundled-test-harness/assets/choreo-gallery-guides-test-DVbf1zM4.js +0 -321
  623. package/bundled-test-harness/assets/choreo-gallery-hang-test-B7EFp2dx.js +0 -426
  624. package/bundled-test-harness/assets/choreo-gallery-highlight-test-BFgbdesP.js +0 -60
  625. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-DJb8FC5R.js +0 -370
  626. package/bundled-test-harness/assets/choreo-gallery-interruption-test-DWyMXo5D.js +0 -176
  627. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-D3b8LsJ6.js +0 -104
  628. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CjjU6Rvn.js +0 -193
  629. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Le_h3QWU.js +0 -111
  630. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-Cp-DlWj4.js +0 -127
  631. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-DayS4GCJ.js +0 -100
  632. package/bundled-test-harness/assets/choreo-gallery-presentation-test-DeAfuFS7.js +0 -157
  633. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BgPWpggq.js +0 -145
  634. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-PzyoMNYv.js +0 -89
  635. package/bundled-test-harness/assets/choreo-gallery-sheet-test-CxaiNBkL.js +0 -48
  636. package/bundled-test-harness/assets/choreo-gallery-site-test-6xtSntS5.js +0 -237
  637. package/bundled-test-harness/assets/choreo-gallery-stage-E6Q5r-zU.js +0 -256
  638. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-C7aWMr9a.js +0 -102
  639. package/bundled-test-harness/assets/choreo-gallery-stages-test-CDWWgC61.js +0 -35
  640. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-Bkp15XJv.js +0 -138
  641. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CcGRi_3O.js +0 -144
  642. package/bundled-test-harness/assets/choreo-gallery-theater-test-Qph5pLT_.js +0 -252
  643. package/bundled-test-harness/assets/choreo-gallery-tuning-test-C4DhFLVA.js +0 -95
  644. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-LK493r1M.js +0 -88
  645. package/bundled-test-harness/assets/choreo-gallery-wires-test-B7SeUCc8.js +0 -148
  646. package/bundled-test-harness/assets/client-telemetry-test-DGmHzAFx.js +0 -340
  647. package/bundled-test-harness/assets/clip-BpYQPVz_.js +0 -2
  648. package/bundled-test-harness/assets/clip-CNaYbIwL.js +0 -92
  649. package/bundled-test-harness/assets/code-block-Cp2CJo5-.js +0 -502
  650. package/bundled-test-harness/assets/code-ref-test-C8JBHDb-.js +0 -163
  651. package/bundled-test-harness/assets/code-submode-availability-test-CzG1Tv6L.js +0 -198
  652. package/bundled-test-harness/assets/code-submode-test-BclVWjm5.js +0 -1839
  653. package/bundled-test-harness/assets/codeblocks-test-CmQlyxN7.js +0 -418
  654. package/bundled-test-harness/assets/codemirror-editor-test-B74H_yn8.js +0 -1512
  655. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bz6VEysU.js +0 -366
  656. package/bundled-test-harness/assets/color-field-test-DMCPQKIP.js +0 -212
  657. package/bundled-test-harness/assets/compaction-test-saQCLBrQ.js +0 -150
  658. package/bundled-test-harness/assets/computed-test-C05HliJC.js +0 -1320
  659. package/bundled-test-harness/assets/container-Cqcwrd-m.js +0 -10857
  660. package/bundled-test-harness/assets/container-h3Wc26qn.css +0 -5097
  661. package/bundled-test-harness/assets/content-preview-components-test-DZPj4_CU.js +0 -462
  662. package/bundled-test-harness/assets/copy-and-edit-test-DiXTQNTF.js +0 -292
  663. package/bundled-test-harness/assets/copy-card-test-ys7GquUY.js +0 -218
  664. package/bundled-test-harness/assets/copy-file-to-realm-test-Gn0Wn4vT.js +0 -148
  665. package/bundled-test-harness/assets/copy-source-test-BTLrOmPm.js +0 -56
  666. package/bundled-test-harness/assets/create-file-test-BCeIW-Rt.js +0 -464
  667. package/bundled-test-harness/assets/create-file-test-DbHQ5JsS.js +0 -1086
  668. package/bundled-test-harness/assets/create-listing-modal-test-CeHc4ter.js +0 -273
  669. package/bundled-test-harness/assets/create-listing-pr-request-test-DXbJNfMh.js +0 -117
  670. package/bundled-test-harness/assets/create-spec-test-BDIZoyHT.js +0 -256
  671. package/bundled-test-harness/assets/create-submission-workflow-test-Bix5J-3A.js +0 -132
  672. package/bundled-test-harness/assets/create-workspace-test-BmNnLHwC.js +0 -104
  673. package/bundled-test-harness/assets/credential-fields-test-NK1F4QWn.js +0 -200
  674. package/bundled-test-harness/assets/csv-file-def-test-BSfs4TTP.js +0 -102
  675. package/bundled-test-harness/assets/dashboard-C4T7ffKY.js +0 -3576
  676. package/bundled-test-harness/assets/dashboard-CFeHuP5-.js +0 -81
  677. package/bundled-test-harness/assets/dashboard-DQlpW-ux.css +0 -2392
  678. package/bundled-test-harness/assets/dashboard-add-workspace-test--rr6objf.js +0 -50
  679. package/bundled-test-harness/assets/dashboard-agents-test-D1y8H4xH.js +0 -334
  680. package/bundled-test-harness/assets/dashboard-archive-test-bN4EQaXv.js +0 -128
  681. package/bundled-test-harness/assets/dashboard-delete-test-BvsASb8B.js +0 -163
  682. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-DEsd5ZzZ.js +0 -71
  683. package/bundled-test-harness/assets/dashboard-duplicate-test-BnR0sTgB.js +0 -222
  684. package/bundled-test-harness/assets/dashboard-get-started-test-DG4uUXLv.js +0 -246
  685. package/bundled-test-harness/assets/dashboard-pinned-cards-test-AoGGVRAS.js +0 -220
  686. package/bundled-test-harness/assets/dashboard-reindex-test-BN9a96Xp.js +0 -115
  687. package/bundled-test-harness/assets/dashboard-section-rail-test-B3OT9V2T.js +0 -169
  688. package/bundled-test-harness/assets/dashboard-state-test-BY0Zqrmj.js +0 -162
  689. package/bundled-test-harness/assets/dashboard-test-C13oNpWt.js +0 -545
  690. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DZIV4x5j.js +0 -62
  691. package/bundled-test-harness/assets/dashboard-workspace-test-CBnOQViI.js +0 -537
  692. package/bundled-test-harness/assets/dashboard-workspaces-section-test-KU8ZVOYp.js +0 -396
  693. package/bundled-test-harness/assets/data-file-def-preview-test-CI5gcdtK.js +0 -155
  694. package/bundled-test-harness/assets/date-time-fields-test-D2CpR_Pb.js +0 -359
  695. package/bundled-test-harness/assets/debug-message-test-Df1kHesw.js +0 -117
  696. package/bundled-test-harness/assets/declared-captures-test-hQ43zuox.js +0 -879
  697. package/bundled-test-harness/assets/delete-workspace-test-BhfMKsix.js +0 -102
  698. package/bundled-test-harness/assets/diffing-test-CHRh55mC.js +0 -210
  699. package/bundled-test-harness/assets/download-file-to-realm-test-CC1HURCi.js +0 -119
  700. package/bundled-test-harness/assets/editor-test-DkeCv28f.js +0 -688
  701. package/bundled-test-harness/assets/edits-BSJqtUXM.js +0 -651
  702. package/bundled-test-harness/assets/email-field-test-DihK0suO.js +0 -75
  703. package/bundled-test-harness/assets/enum-field-test-Gja3bzt5.js +0 -935
  704. package/bundled-test-harness/assets/error-display-test-GhYZu7cp.js +0 -343
  705. package/bundled-test-harness/assets/evaluate-module-test-D_t4CiUq.js +0 -91
  706. package/bundled-test-harness/assets/execute-atomic-operations-test-xtou8Zeg.js +0 -113
  707. package/bundled-test-harness/assets/externals-B02-sD_L.js +0 -4393
  708. package/bundled-test-harness/assets/fallback-banner-live-delete-test-DtxzNXdE.js +0 -207
  709. package/bundled-test-harness/assets/fallback-banner-test-BfmiQ_68.js +0 -53
  710. package/bundled-test-harness/assets/fallback-banner-test-DLtTdmvn.js +0 -225
  711. package/bundled-test-harness/assets/fallback-models-test-BxNJxhfd.js +0 -161
  712. package/bundled-test-harness/assets/fetch-card-json-test-DofKbzvC.js +0 -61
  713. package/bundled-test-harness/assets/field-configuration-test-SUoPaXWy.js +0 -551
  714. package/bundled-test-harness/assets/field-markdown-domain-test-BwtR0dPP.js +0 -616
  715. package/bundled-test-harness/assets/field-markdown-oversize-test-D8UJcBc3.js +0 -88
  716. package/bundled-test-harness/assets/field-markdown-primitives-test-D5_ZdoDO.js +0 -365
  717. package/bundled-test-harness/assets/field-markdown-specialized-test-Dpd5hs04.js +0 -534
  718. package/bundled-test-harness/assets/field-playground-test-CzhYzKGv.js +0 -894
  719. package/bundled-test-harness/assets/field-support-predicates-test-BSvVOFth.js +0 -167
  720. package/bundled-test-harness/assets/file-attachment-test-fM-yFedm.js +0 -796
  721. package/bundled-test-harness/assets/file-chooser-panel-test-CKj8YTdY.js +0 -153
  722. package/bundled-test-harness/assets/file-chooser-test-Bs8jFXqa.js +0 -504
  723. package/bundled-test-harness/assets/file-def-format-templates-test-CxrRoWoD.js +0 -380
  724. package/bundled-test-harness/assets/file-def-live-reload-test-X_8YEkve.js +0 -124
  725. package/bundled-test-harness/assets/file-def-menu-items-test-Dx879o_o.js +0 -138
  726. package/bundled-test-harness/assets/file-def-navigation-test-MMI_EEO1.js +0 -109
  727. package/bundled-test-harness/assets/file-def-serialization-test-B5lguBQD.js +0 -89
  728. package/bundled-test-harness/assets/file-def-test-Di9QWcrj.js +0 -216
  729. package/bundled-test-harness/assets/file-preview-live-reload-test-aqx93A7c.js +0 -310
  730. package/bundled-test-harness/assets/file-resource-primitives-test-a5abpcSB.js +0 -255
  731. package/bundled-test-harness/assets/file-tree-from-index-test-CnruGxJ8.js +0 -96
  732. package/bundled-test-harness/assets/file-tree-test-BCyWDdSE.js +0 -851
  733. package/bundled-test-harness/assets/file-view-model-test-BfpLa01Y.js +0 -346
  734. package/bundled-test-harness/assets/filedef-export-shape-test-CQ9XbrzS.js +0 -61
  735. package/bundled-test-harness/assets/film-CL1zj_bJ.js +0 -2
  736. package/bundled-test-harness/assets/film-Dq_quZ31.js +0 -13
  737. package/bundled-test-harness/assets/film-xbkQa060.js +0 -4074
  738. package/bundled-test-harness/assets/flac-audio-def-test-BmVp9dMx.js +0 -143
  739. package/bundled-test-harness/assets/focus-Dm4wkM72.js +0 -306
  740. package/bundled-test-harness/assets/font-metadata-extractor-test-OWEh9_MS.js +0 -415
  741. package/bundled-test-harness/assets/formatted-aibot-message-test-BpHsWpuV.js +0 -109
  742. package/bundled-test-harness/assets/formatted-user-message-test-DZW5TAr0.js +0 -43
  743. package/bundled-test-harness/assets/freestyle-test-D_uaPU_3.js +0 -17
  744. package/bundled-test-harness/assets/full-reindex-realm-test-C6vHL5kC.js +0 -101
  745. package/bundled-test-harness/assets/garbage-collection-test-D-Ao4t2n.js +0 -403
  746. package/bundled-test-harness/assets/general-test-PSGI8W0z.js +0 -923
  747. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-J-m-0E6W.js +0 -65
  748. package/bundled-test-harness/assets/generic-file-def-preview-test-BAsOhTYU.js +0 -71
  749. package/bundled-test-harness/assets/get-available-realm-identifiers-test-D5PBOr97.js +0 -47
  750. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-NM9UURHE.js +0 -47
  751. package/bundled-test-harness/assets/get-default-writable-realm-test-BxXc9a3J.js +0 -54
  752. package/bundled-test-harness/assets/get-published-realms-test-C8TJEc4-.js +0 -71
  753. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-Dt8CB6lS.js +0 -54
  754. package/bundled-test-harness/assets/get-relationship-membership-state-test-9_8x3myJ.js +0 -1308
  755. package/bundled-test-harness/assets/get-user-system-card-test-k0UO-uba.js +0 -67
  756. package/bundled-test-harness/assets/gif-image-def-test-BWrqPGDX.js +0 -188
  757. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BgG8QI9E.js +0 -160
  758. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-BKOvNyCN.js +0 -74
  759. package/bundled-test-harness/assets/gts-file-def-test-BCRHwDeZ.js +0 -100
  760. package/bundled-test-harness/assets/head-format-preview-test-DnfUhniI.js +0 -158
  761. package/bundled-test-harness/assets/helpers-DklkegO_.js +0 -5
  762. package/bundled-test-harness/assets/host-mode-service-vOfN0smp.js +0 -232
  763. package/bundled-test-harness/assets/host-mode-test-CCCJFz6_.js +0 -831
  764. package/bundled-test-harness/assets/host-submode-test-CtCfbuPA.js +0 -1342
  765. package/bundled-test-harness/assets/html-component-test-CWyhb5ZX.js +0 -65
  766. package/bundled-test-harness/assets/html-def-test-Cb8C2lUx.js +0 -160
  767. package/bundled-test-harness/assets/html-meta-extractor-test-BHT9Rtir.js +0 -60
  768. package/bundled-test-harness/assets/hydratable-card-test-DpgpdesD.js +0 -426
  769. package/bundled-test-harness/assets/icon-button-ABCGVF3C.js +0 -67
  770. package/bundled-test-harness/assets/image-metadata-extractor-test-ClhPTouq.js +0 -1109
  771. package/bundled-test-harness/assets/index-changes-test-CgnVr3LH.js +0 -367
  772. package/bundled-test-harness/assets/index-query-engine-test-CQTwju5_.js +0 -2593
  773. package/bundled-test-harness/assets/index-writer-test-IoVOoZT2.js +0 -3040
  774. package/bundled-test-harness/assets/inspector-test-BN2Ieb77.js +0 -2058
  775. package/bundled-test-harness/assets/instance-filter-matcher-test-Bq-_Sy89.js +0 -788
  776. package/bundled-test-harness/assets/instantiate-card-test-DEeDTzFV.js +0 -164
  777. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DP6kOyJS.js +0 -475
  778. package/bundled-test-harness/assets/interact-submode-setup-B0_cHqH-.js +0 -566
  779. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-9uUD91Pw.js +0 -99
  780. package/bundled-test-harness/assets/invite-user-to-room-test-CcDA45Ac.js +0 -142
  781. package/bundled-test-harness/assets/invoke-card-operation-test-DmUtgueM.js +0 -333
  782. package/bundled-test-harness/assets/isolated-render-test-B2eXNHu6.js +0 -51
  783. package/bundled-test-harness/assets/job-scoped-doc-cache-test-DF9D7cOc.js +0 -181
  784. package/bundled-test-harness/assets/job-scoped-instance-residency-test-CSS8xUU5.js +0 -103
  785. package/bundled-test-harness/assets/jpg-image-def-test-voECMTht.js +0 -697
  786. package/bundled-test-harness/assets/json-file-def-test-8Y4KLjUC.js +0 -95
  787. package/bundled-test-harness/assets/key-notices-badge-test-d1mYqx0e.js +0 -155
  788. package/bundled-test-harness/assets/key-readiness-test-BtCg7PCk.js +0 -190
  789. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CyCMbJnN.js +0 -398
  790. package/bundled-test-harness/assets/linksto-error-sentinel-test-BDW572-v.js +0 -238
  791. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-B4wM97hD.js +0 -354
  792. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-BhJmtJ0_.js +0 -303
  793. package/bundled-test-harness/assets/linksto-sentinel-reload-test-BpBQ5V_i.js +0 -197
  794. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-pkBBl4e9.js +0 -260
  795. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-Bb6wjUdD.js +0 -196
  796. package/bundled-test-harness/assets/lint-and-fix-test-CcMLn-co.js +0 -51
  797. package/bundled-test-harness/assets/live-test-AyBnq7BX.js +0 -2
  798. package/bundled-test-harness/assets/live-test-CgnAcIDw.js +0 -100
  799. package/bundled-test-harness/assets/load-default-skills-test-BIOwtx0Y.js +0 -74
  800. package/bundled-test-harness/assets/loader-parallel-prefetch-test-D5_oRSER.js +0 -257
  801. package/bundled-test-harness/assets/loader-test-DSc_jR1c.js +0 -482
  802. package/bundled-test-harness/assets/loading-test-8pldx7S-.js +0 -63
  803. package/bundled-test-harness/assets/m4a-audio-def-test-BDI5apzM.js +0 -190
  804. package/bundled-test-harness/assets/main-5kHyCkdm.js +0 -5
  805. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-Wud0s7WZ.js +0 -470
  806. package/bundled-test-harness/assets/markdown-embed-chooser-test-DVzzS-0C.js +0 -334
  807. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-B5W_iqsi.js +0 -447
  808. package/bundled-test-harness/assets/markdown-embed-preview-test-CZF_s0fB.js +0 -368
  809. package/bundled-test-harness/assets/markdown-fallback-test-fT6BS4W7.js +0 -316
  810. package/bundled-test-harness/assets/markdown-file-def-test-B1aTzazR.js +0 -380
  811. package/bundled-test-harness/assets/markdown-helpers-test-gNKZf7Mw.js +0 -188
  812. package/bundled-test-harness/assets/markdown-highlighting-test-Du5_CQmD.js +0 -244
  813. package/bundled-test-harness/assets/markdown-preview-h-_aJhRc.js +0 -72
  814. package/bundled-test-harness/assets/markdown-preview-test-DJvoVsXw.js +0 -238
  815. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-VwJi3Paj.js +0 -146
  816. package/bundled-test-harness/assets/markdown-skill-search-test-ysCdf0xM.js +0 -80
  817. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-K2JuMy36.js +0 -63
  818. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-CkdL_-os.js +0 -300
  819. package/bundled-test-harness/assets/matrix-service-personal-realm-test-Dy1DultK.js +0 -125
  820. package/bundled-test-harness/assets/matrix-service-realm-servers-test-DHDDKuEg.js +0 -55
  821. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-DcTbZpMl.js +0 -132
  822. package/bundled-test-harness/assets/matrix-service-relogin-test-D3NQktoa.js +0 -59
  823. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-6CAflWOA.js +0 -35
  824. package/bundled-test-harness/assets/menu-kUSaJIPq.js +0 -3562
  825. package/bundled-test-harness/assets/message-service-subscription-test-DaQdgDWi.js +0 -110
  826. package/bundled-test-harness/assets/message-service-test-BsGEgM_m.js +0 -144
  827. package/bundled-test-harness/assets/message-tool-test-BB_4kw1V.js +0 -33
  828. package/bundled-test-harness/assets/midi-audio-def-test-BbbkFjqf.js +0 -182
  829. package/bundled-test-harness/assets/migrate-skill-test-X9xImDuq.js +0 -161
  830. package/bundled-test-harness/assets/mini-AwF31elJ.js +0 -1404
  831. package/bundled-test-harness/assets/mini-card-chooser-test-BZtrEiWu.js +0 -272
  832. package/bundled-test-harness/assets/mini-file-chooser-test-MIHW3kCI.js +0 -201
  833. package/bundled-test-harness/assets/mock-matrix-Dd8k0DNa.js +0 -15107
  834. package/bundled-test-harness/assets/mock-matrix-DhPN_34j.js +0 -2
  835. package/bundled-test-harness/assets/modal-LTh3_oHK.js +0 -322
  836. package/bundled-test-harness/assets/model-cost-tier-test-h1IkU9mp.js +0 -174
  837. package/bundled-test-harness/assets/model-file-extract-test-ntSo0wZF.js +0 -206
  838. package/bundled-test-harness/assets/module-transpile-cache-test-CDeRaaeP.js +0 -67
  839. package/bundled-test-harness/assets/monaco-test-C0Fa744D.js +0 -100
  840. package/bundled-test-harness/assets/mp3-audio-def-test-B4j4qR9H.js +0 -133
  841. package/bundled-test-harness/assets/multiple-stacks-test-BhA25ywL.js +0 -208
  842. package/bundled-test-harness/assets/nested-query-field-render-test-S9Y8YNKB.js +0 -249
  843. package/bundled-test-harness/assets/no-stacks-test-B7VciWyg.js +0 -48
  844. package/bundled-test-harness/assets/number-field-test-CS74lDPN.js +0 -184
  845. package/bundled-test-harness/assets/office-file-def-test-2cKc1pmd.js +0 -263
  846. package/bundled-test-harness/assets/office-metadata-extractor-test-DC8Fo-OW.js +0 -218
  847. package/bundled-test-harness/assets/office-poster-capture-test-Ba0_5UrT.js +0 -203
  848. package/bundled-test-harness/assets/ogg-audio-def-test-CIPQ1d4w.js +0 -196
  849. package/bundled-test-harness/assets/open-create-listing-modal-test-bmQkY5Zl.js +0 -131
  850. package/bundled-test-harness/assets/open-image-in-new-tab-test-DBD7_vMH.js +0 -52
  851. package/bundled-test-harness/assets/open-secure-window-test-BgeuYAqz.js +0 -253
  852. package/bundled-test-harness/assets/open-workspace-test-DRHGljV0.js +0 -46
  853. package/bundled-test-harness/assets/operation-lowering-test-CH1c0pSH.js +0 -2957
  854. package/bundled-test-harness/assets/operations-invocation-test-B1YkCLrv.js +0 -523
  855. package/bundled-test-harness/assets/operations-optimistic-test-DAbtOwsC.js +0 -203
  856. package/bundled-test-harness/assets/operations-query-test-9p1ZIDe-.js +0 -459
  857. package/bundled-test-harness/assets/operations-store-reconciliation-test-D0EQh3w2.js +0 -406
  858. package/bundled-test-harness/assets/operations-test-BQhlrfe3.js +0 -2518
  859. package/bundled-test-harness/assets/operator-mode-acceptance-test-DtHnonEb.js +0 -1195
  860. package/bundled-test-harness/assets/operator-mode-card-chooser-test-DQUxZxaq.js +0 -1036
  861. package/bundled-test-harness/assets/operator-mode-links-test-BJ26HllS.js +0 -797
  862. package/bundled-test-harness/assets/operator-mode-test-DIPDI0qt.js +0 -696
  863. package/bundled-test-harness/assets/operator-mode-ui-test-CfA-fAh4.js +0 -1045
  864. package/bundled-test-harness/assets/overlay-DecPh3nt.js +0 -123
  865. package/bundled-test-harness/assets/overlay-menu-items-test-C6XqjLtu.js +0 -331
  866. package/bundled-test-harness/assets/overlays-Ctp8ePzZ.js +0 -75
  867. package/bundled-test-harness/assets/overlays-CzWpSg5T.js +0 -2
  868. package/bundled-test-harness/assets/overlays-detached-element-test-DvL_8Bb5.js +0 -56
  869. package/bundled-test-harness/assets/panel-CImumikB.js +0 -15124
  870. package/bundled-test-harness/assets/past-sessions-test-N6riGN_I.js +0 -321
  871. package/bundled-test-harness/assets/patch-fields-test-D30_-KwQ.js +0 -1014
  872. package/bundled-test-harness/assets/patch-instance-test-C5rGscZq.js +0 -348
  873. package/bundled-test-harness/assets/pdf-file-def-test-DtiqGRvZ.js +0 -111
  874. package/bundled-test-harness/assets/pdf-metadata-extractor-test-FU02KmdV.js +0 -130
  875. package/bundled-test-harness/assets/permission-checking-realm-test-DqdNJDwU.js +0 -306
  876. package/bundled-test-harness/assets/persist-module-inspector-view-test-BHOAgPVy.js +0 -60
  877. package/bundled-test-harness/assets/persist-scroll-position-test-qtmS518r.js +0 -254
  878. package/bundled-test-harness/assets/phone-number-field-test-DhdaM7uL.js +0 -73
  879. package/bundled-test-harness/assets/pill-menu-test-C9Mrrepl.js +0 -60
  880. package/bundled-test-harness/assets/plate-9n-sXyCw.js +0 -41
  881. package/bundled-test-harness/assets/plate-BnZcAk-_.js +0 -2
  882. package/bundled-test-harness/assets/player-Cu5b4LEJ.js +0 -82
  883. package/bundled-test-harness/assets/player-unk2mkxV.js +0 -2
  884. package/bundled-test-harness/assets/playground-BwA8wFGK.js +0 -58
  885. package/bundled-test-harness/assets/plural-field-components-test-CFNQKETg.js +0 -198
  886. package/bundled-test-harness/assets/png-image-def-test-DG5Vhlqb.js +0 -266
  887. package/bundled-test-harness/assets/policy-audit-confirmation-test-yfKU47LR.js +0 -155
  888. package/bundled-test-harness/assets/policy-scoped-search-test-BjQRDYqR.js +0 -339
  889. package/bundled-test-harness/assets/prerender-file-extract-test-CEU4SaAZ.js +0 -346
  890. package/bundled-test-harness/assets/prerender-html-test-CGB3ClCS.js +0 -670
  891. package/bundled-test-harness/assets/prerender-meta-test-xqc4fW_0.js +0 -614
  892. package/bundled-test-harness/assets/prerender-module-test-CI1TmZw-.js +0 -409
  893. package/bundled-test-harness/assets/prerender-persistence-block-test-Da0dJO_N.js +0 -124
  894. package/bundled-test-harness/assets/prerender-pre-model-error-test-BVLyhk8R.js +0 -61
  895. package/bundled-test-harness/assets/prerender-serialize-cycle-test-glJFfxHU.js +0 -134
  896. package/bundled-test-harness/assets/prerendered-html-read-test-Mp4L0VHQ.js +0 -191
  897. package/bundled-test-harness/assets/pretui-components-test-BBpA9UnA.js +0 -991
  898. package/bundled-test-harness/assets/pretui-components-test-BqFq7rw_.css +0 -730
  899. package/bundled-test-harness/assets/preview-format-test-C55Bwcur.js +0 -103
  900. package/bundled-test-harness/assets/preview-test-CTAhRGU8.js +0 -474
  901. package/bundled-test-harness/assets/process-card-test-UjqpuxB7.js +0 -94
  902. package/bundled-test-harness/assets/profile-settings-modal-C8bCgTMK.js +0 -989
  903. package/bundled-test-harness/assets/publish-realm-ixUB4FPK.js +0 -82
  904. package/bundled-test-harness/assets/publish-realm-test-CrrsdL4W.js +0 -210
  905. package/bundled-test-harness/assets/query-field-barrier-test-DjivFE93.js +0 -113
  906. package/bundled-test-harness/assets/query-field-error-sentinel-test-0HwnV4Mw.js +0 -201
  907. package/bundled-test-harness/assets/query-field-membership-status-test-C8yTTBkc.js +0 -323
  908. package/bundled-test-harness/assets/query-field-page-optin-test-D4l_GcII.js +0 -126
  909. package/bundled-test-harness/assets/query-field-schema-test-DDbcNNm5.js +0 -231
  910. package/bundled-test-harness/assets/query-field-search-throttle-test-CXp50Ax0.js +0 -154
  911. package/bundled-test-harness/assets/query-field-stale-prerender-test-DErzt-Cv.js +0 -152
  912. package/bundled-test-harness/assets/query-fields-test-Dz67fdSl.js +0 -535
  913. package/bundled-test-harness/assets/quick-look-test-B1ijDsh_.js +0 -139
  914. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-DJxZ16H_.js +0 -91
  915. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-BoRQkZ8c.js +0 -45
  916. package/bundled-test-harness/assets/read-source-test-Bl-NjchO.js +0 -67
  917. package/bundled-test-harness/assets/read-text-file-test-CP37CZoo.js +0 -124
  918. package/bundled-test-harness/assets/realm-CaK5mkT-.js +0 -2852
  919. package/bundled-test-harness/assets/realm-api-keys-BNUFWbGR.js +0 -579
  920. package/bundled-test-harness/assets/realm-api-keys-CkshxhXC.js +0 -2
  921. package/bundled-test-harness/assets/realm-api-keys-test-BP8xifjn.js +0 -109
  922. package/bundled-test-harness/assets/realm-api-keys-test-CwdK9YXp.js +0 -588
  923. package/bundled-test-harness/assets/realm-config-iKwE3Htp.js +0 -833
  924. package/bundled-test-harness/assets/realm-config-policy-standing-test-BgVEIDnB.js +0 -290
  925. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-BoJoKzmX.js +0 -274
  926. package/bundled-test-harness/assets/realm-config-settings-test-Kxw-GHye.js +0 -187
  927. package/bundled-test-harness/assets/realm-field-test-CdGOxrFb.js +0 -100
  928. package/bundled-test-harness/assets/realm-indexing-test-CHtsBV2b.js +0 -4380
  929. package/bundled-test-harness/assets/realm-policy-fitted-test--DhNZSdC.js +0 -206
  930. package/bundled-test-harness/assets/realm-policy-test-D7714iVa.js +0 -1141
  931. package/bundled-test-harness/assets/realm-querying-test-Cj1ekZ0H.js +0 -1067
  932. package/bundled-test-harness/assets/realm-server-form-agnostic-test-CZFPNJfD.js +0 -96
  933. package/bundled-test-harness/assets/realm-server-subscriber-test-C86WmBp0.js +0 -46
  934. package/bundled-test-harness/assets/realm-service-info-test-CdgcwKDR.js +0 -67
  935. package/bundled-test-harness/assets/realm-test-DPoLsvKz.js +0 -2364
  936. package/bundled-test-harness/assets/realm-token-refresh-test-Ch35Siwi.js +0 -153
  937. package/bundled-test-harness/assets/realm-url-tooltip-test-x8xWOENK.js +0 -78
  938. package/bundled-test-harness/assets/reasoning-test-BxpE8Jvf.js +0 -221
  939. package/bundled-test-harness/assets/recent-files-test-DTmEzPLq.js +0 -450
  940. package/bundled-test-harness/assets/reindex-realm-test-BQ8KULn4.js +0 -117
  941. package/bundled-test-harness/assets/relationship-loading-state-test-BJoArPWf.js +0 -290
  942. package/bundled-test-harness/assets/remix-card-test-DsTA1KoG.js +0 -58
  943. package/bundled-test-harness/assets/rendered-markdown-DvukulDO.js +0 -292
  944. package/bundled-test-harness/assets/rendered-markdown-test-DxGptXSV.js +0 -587
  945. package/bundled-test-harness/assets/resident-instance-reuse-test-ZWnVu8uj.js +0 -82
  946. package/bundled-test-harness/assets/result-tile-CPyI6Vmv.js +0 -144
  947. package/bundled-test-harness/assets/rich-markdown-field-test-CdygoXIO.js +0 -1647
  948. package/bundled-test-harness/assets/room-message-test-D3NfMqH0.js +0 -484
  949. package/bundled-test-harness/assets/run-D_Px28eF.js +0 -3956
  950. package/bundled-test-harness/assets/run-realm-code-qWCZxmJ7.js +0 -2964
  951. package/bundled-test-harness/assets/run-realm-code-test-UzyeEJq6.js +0 -3844
  952. package/bundled-test-harness/assets/sanitize-module-list-test-Babq44bP.js +0 -85
  953. package/bundled-test-harness/assets/save-card-skip-index-wait-test-BcELXlQ_.js +0 -89
  954. package/bundled-test-harness/assets/schema-editor-test-CEvruZbt.js +0 -785
  955. package/bundled-test-harness/assets/schema-generation-test-hYAMdCrn.js +0 -28
  956. package/bundled-test-harness/assets/scrolling-test-DVIsh-_1.js +0 -412
  957. package/bundled-test-harness/assets/search-adorn-test-CkVhqFd0.js +0 -136
  958. package/bundled-test-harness/assets/search-and-choose-test-DUhOB3FV.js +0 -154
  959. package/bundled-test-harness/assets/search-correlation-id-test-Drn4r26N.js +0 -139
  960. package/bundled-test-harness/assets/search-entries-result-test-DTCRJ_wc.js +0 -234
  961. package/bundled-test-harness/assets/search-entries-test-CE0B47pw.js +0 -1486
  962. package/bundled-test-harness/assets/search-entries-tool-test-C4aG0ckM.js +0 -504
  963. package/bundled-test-harness/assets/search-google-images-test-LyhcB2f3.js +0 -166
  964. package/bundled-test-harness/assets/search-results-D4pSne0x.js +0 -266
  965. package/bundled-test-harness/assets/search-results-test-CRZHhqhn.js +0 -578
  966. package/bundled-test-harness/assets/search-selection-menu-test-B7Y3E_nj.js +0 -108
  967. package/bundled-test-harness/assets/search-sheet-files-test-C2y534g8.js +0 -126
  968. package/bundled-test-harness/assets/search-sheet-persistence-test-DePC59Bk.js +0 -131
  969. package/bundled-test-harness/assets/search-test-Dy8NxFkU.js +0 -2249
  970. package/bundled-test-harness/assets/search-tool-test-lctDaMH3.js +0 -156
  971. package/bundled-test-harness/assets/searchable-option-test-CE64M8oM.js +0 -322
  972. package/bundled-test-harness/assets/searchable-search-doc-test-C6u3mVvT.js +0 -1271
  973. package/bundled-test-harness/assets/section-rail-B_UQX00B.js +0 -113
  974. package/bundled-test-harness/assets/section-rail-test-DIda7MIw.js +0 -256
  975. package/bundled-test-harness/assets/secure-sign-in-CqqqfQG8.js +0 -174
  976. package/bundled-test-harness/assets/secure-sign-in-test-DimbVr_W.js +0 -373
  977. package/bundled-test-harness/assets/segmented-control-iePxSdTS.js +0 -173
  978. package/bundled-test-harness/assets/select-tNs6_xwW.js +0 -175
  979. package/bundled-test-harness/assets/send-ai-assistant-message-test-2GVrMF9Z.js +0 -52
  980. package/bundled-test-harness/assets/send-bot-trigger-event-test-B_3dKfGN.js +0 -56
  981. package/bundled-test-harness/assets/send-request-via-proxy-test-_clNWyYc.js +0 -380
  982. package/bundled-test-harness/assets/sending-test-DCPFXUVg.js +0 -659
  983. package/bundled-test-harness/assets/serialization-rri-form-audit-test-BI0zCs8Y.js +0 -136
  984. package/bundled-test-harness/assets/serialization-test-bjdtVlZL.js +0 -8758
  985. package/bundled-test-harness/assets/set-user-system-card-test-BUv1vL08.js +0 -59
  986. package/bundled-test-harness/assets/setup-BW1mmC7C.js +0 -772
  987. package/bundled-test-harness/assets/setup-DsIcFT-T.js +0 -2
  988. package/bundled-test-harness/assets/shared-link-target-reuse-test-9NeJEjkb.js +0 -207
  989. package/bundled-test-harness/assets/show-card-test-mfyLwusD.js +0 -365
  990. package/bundled-test-harness/assets/signed-capture-link-test-BOtKNCAM.js +0 -132
  991. package/bundled-test-harness/assets/single-stack-test-B4MGjaLk.js +0 -652
  992. package/bundled-test-harness/assets/skills-test-BuP-Yzk1.js +0 -648
  993. package/bundled-test-harness/assets/skip-boot-index-guard-test-Cmrx2-K7.js +0 -46
  994. package/bundled-test-harness/assets/spec-test-BhZDdhVQ.js +0 -1077
  995. package/bundled-test-harness/assets/spinner-CpIBUG9m.js +0 -49
  996. package/bundled-test-harness/assets/src-DGHttmW-.js +0 -216
  997. package/bundled-test-harness/assets/src-DaNDSbp7.js +0 -5
  998. package/bundled-test-harness/assets/stick-to-bottom-resize-test-Dpy3OVum.js +0 -56
  999. package/bundled-test-harness/assets/store-add-test-_IYS8o74.js +0 -50
  1000. package/bundled-test-harness/assets/store-module-rebuild-test-B5VMaICy.js +0 -454
  1001. package/bundled-test-harness/assets/store-search-test-C2VZabrH.js +0 -175
  1002. package/bundled-test-harness/assets/store-test-D6PObxoD.js +0 -3672
  1003. package/bundled-test-harness/assets/structured-theme-test-BHjVeMf-.js +0 -377
  1004. package/bundled-test-harness/assets/summarize-session-test-BFtTuhe0.js +0 -172
  1005. package/bundled-test-harness/assets/svg-image-def-test-BL6lkWUX.js +0 -167
  1006. package/bundled-test-harness/assets/switch-submode-test-6Uv3bZMl.js +0 -168
  1007. package/bundled-test-harness/assets/sync-openrouter-models-test-Dp9E05tL.js +0 -97
  1008. package/bundled-test-harness/assets/test-support-DYm8XZ0E.js +0 -3
  1009. package/bundled-test-harness/assets/test-support-DfnhiIMV.js +0 -99
  1010. package/bundled-test-harness/assets/tests-CZk0Iag2.js +0 -3596
  1011. package/bundled-test-harness/assets/text-file-def-test-CHdC0yIU.js +0 -94
  1012. package/bundled-test-harness/assets/text-input-validator-test-B9ZR8XPU.js +0 -156
  1013. package/bundled-test-harness/assets/text-suggestion-test-CGLspKFQ.js +0 -340
  1014. package/bundled-test-harness/assets/theme-card-test-CXZvSEvG.js +0 -621
  1015. package/bundled-test-harness/assets/theme-dashboard-nav-test-CkEE0ILk.js +0 -196
  1016. package/bundled-test-harness/assets/theme-scheme-island-test-URXTjipF.js +0 -264
  1017. package/bundled-test-harness/assets/titles-C6enAdIv.js +0 -2
  1018. package/bundled-test-harness/assets/titles-Dft1HoUT.js +0 -52
  1019. package/bundled-test-harness/assets/to-device-streaming-test-D33ZOc9o.js +0 -163
  1020. package/bundled-test-harness/assets/token-usage-test-BHQlU4J4.js +0 -160
  1021. package/bundled-test-harness/assets/tools-CrudqfS3.js +0 -774
  1022. package/bundled-test-harness/assets/tools-calling-test-jo7IREau.js +0 -200
  1023. package/bundled-test-harness/assets/tools-test-D1wMfUa0.js +0 -1624
  1024. package/bundled-test-harness/assets/tools-test-Dn1LYsXp.js +0 -3204
  1025. package/bundled-test-harness/assets/tooltip-8Wyz4IIn.css +0 -68
  1026. package/bundled-test-harness/assets/tooltip-CqwLzRz5.js +0 -134
  1027. package/bundled-test-harness/assets/transform-cards-test-BPhwPFtp.js +0 -341
  1028. package/bundled-test-harness/assets/ts-file-def-preview-test-Bq3zTgw8.js +0 -95
  1029. package/bundled-test-harness/assets/ts-file-def-test-GLswMl7O.js +0 -92
  1030. package/bundled-test-harness/assets/ttf-font-def-test-DQulvUWs.js +0 -206
  1031. package/bundled-test-harness/assets/turn-settling-test-BspmOUQP.js +0 -160
  1032. package/bundled-test-harness/assets/turn-summary-9A8nvC0-.js +0 -1039
  1033. package/bundled-test-harness/assets/unpublish-realm-test-SkYPEhDz.js +0 -102
  1034. package/bundled-test-harness/assets/update-room-skills-test-cTxb-WU6.js +0 -240
  1035. package/bundled-test-harness/assets/use-ai-assistant-test-uaqW1T_A.js +0 -384
  1036. package/bundled-test-harness/assets/user-message-BudkIP-3.js +0 -262
  1037. package/bundled-test-harness/assets/validate-realm-test-DxrGgH9n.js +0 -67
  1038. package/bundled-test-harness/assets/video-metadata-extractor-test-B2pe-Iqa.js +0 -520
  1039. package/bundled-test-harness/assets/view-visually-test-PNon6fUo.js +0 -335
  1040. package/bundled-test-harness/assets/virtual-network-reset-test-uYJLaQHf.js +0 -96
  1041. package/bundled-test-harness/assets/wav-audio-def-test-F4OrFFR4.js +0 -160
  1042. package/bundled-test-harness/assets/webp-image-def-test-B0a_-Vya.js +0 -226
  1043. package/bundled-test-harness/assets/workspace-Cyftysy9.js +0 -440
  1044. package/bundled-test-harness/assets/workspace-a11y-test-sKiPDcbl.js +0 -197
  1045. package/bundled-test-harness/assets/workspace-actions-BuawjFmZ.js +0 -561
  1046. package/bundled-test-harness/assets/workspace-behavior-test-CKa-pb3T.js +0 -338
  1047. package/bundled-test-harness/assets/workspace-delete-multiple-test-Dt2weG5R.js +0 -212
  1048. package/bundled-test-harness/assets/workspace-delete-summary-test-CkqgFqZ8.js +0 -63
  1049. package/bundled-test-harness/assets/workspace-hosting-test-Ci7EEtHP.js +0 -138
  1050. package/bundled-test-harness/assets/workspace-indexing-test-BPVxxY6W.js +0 -71
  1051. package/bundled-test-harness/assets/workspace-test-CWr7vFbg.js +0 -385
  1052. package/bundled-test-harness/assets/workspace-test-INNpQovc.js +0 -51
  1053. package/bundled-test-harness/assets/workspace-timestamp-labels-test-CigQb5wr.js +0 -68
  1054. package/bundled-test-harness/assets/workspace-unit-test-BwVKpuXT.js +0 -122
  1055. package/bundled-test-harness/assets/write-binary-file-test-BKP3gv1k.js +0 -124
  1056. package/bundled-test-harness/assets/write-text-file-test-B6ijTKTa.js +0 -191
  1057. package/bundled-test-harness/assets/zip-archive-test-C-PBzkTn.js +0 -285
  1058. 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