@cardstack/boxel-cli 0.13.0-unstable.4 → 0.13.0-unstable.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-realms/pretui/components/doc-report.gts +2 -2
- package/bundled-realms/pretui/components/doc-report.usage.gts +3 -3
- package/bundled-realms/pretui/components/form-field.md +1 -1
- package/bundled-realms/pretui/components/icon-button.md +1 -1
- package/bundled-realms/pretui/components/popup.md +1 -1
- package/bundled-realms/pretui/components/switch.gts +13 -0
- package/bundled-realms/pretui/components/switch.md +5 -3
- package/bundled-realms/pretui/components/theme-frame.gts +49 -22
- package/bundled-realms/pretui/components/tooltip.gts +141 -42
- package/bundled-realms/pretui/components/tooltip.md +10 -12
- package/bundled-realms/pretui/components/tooltip.usage.gts +3 -5
- package/bundled-realms/pretui/docs/structure.md +1 -1
- package/bundled-realms/pretui/internal/overlay.gts +4 -2
- package/bundled-realms/pretui/pretui-css.gts +6 -2
- package/bundled-realms/pretui/theme-scoped-css.gts +262 -0
- package/bundled-test-harness/assets/account-switch-failed-test-DwAZq6Sc.js +45 -0
- package/bundled-test-harness/assets/adapter-C_6pnsx1.js +2 -0
- package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-zMYtJWBv.js +112 -0
- package/bundled-test-harness/assets/ai-assistant-create-workspace-test-CwhAV-Ow.js +130 -0
- package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DNgclkGJ.js +46 -0
- package/bundled-test-harness/assets/ai-assistant-test-DGYFiRTb.js +2223 -0
- package/bundled-test-harness/assets/ai-function-generation-test-Dj6WzKkh.js +1176 -0
- package/bundled-test-harness/assets/ai-module-creation-test-EsOoJpQ1.js +151 -0
- package/bundled-test-harness/assets/aibot-message-uGaCPn5o.js +1312 -0
- package/bundled-test-harness/assets/app-pIzBYfiZ.js +14146 -0
- package/bundled-test-harness/assets/apply-markdown-edit-test-CPhfeg1i.js +230 -0
- package/bundled-test-harness/assets/ask-user-picker-NVRkhKwt.js +370 -0
- package/bundled-test-harness/assets/ask-user-picker-test-SsZqFm9W.js +39 -0
- package/bundled-test-harness/assets/assistant-transcript-test-DesuBCIB.js +57 -0
- package/bundled-test-harness/assets/audio-metadata-extractor-test-8JM6oZXG.js +1176 -0
- package/bundled-test-harness/assets/authed-fetch-test-yPTMe-9V.js +73 -0
- package/bundled-test-harness/assets/avif-image-def-test-Kyknj908.js +187 -0
- package/bundled-test-harness/assets/basic-test-D9OrrMaq.js +139 -0
- package/bundled-test-harness/assets/binary-upload-dedupe-test-Dnxlbbu6.js +308 -0
- package/bundled-test-harness/assets/bot-registration-test-Bk2lTaCW.js +97 -0
- package/bundled-test-harness/assets/box-test-BbV9sMyU.js +50 -0
- package/bundled-test-harness/assets/brand-guide-attachments-test-z4wTsKbI.js +84 -0
- package/bundled-test-harness/assets/brand-guide-custom-css-test-BlSJE8xo.js +196 -0
- package/bundled-test-harness/assets/brand-guide-edit-test-DJ1OQ6IB.js +140 -0
- package/bundled-test-harness/assets/brand-logo-mark-field-test-ux7eetkO.js +86 -0
- package/bundled-test-harness/assets/broken-link-template-test-CqB3MWyw.js +192 -0
- package/bundled-test-harness/assets/bundled-base-modules-test-B2oNLZSJ.js +54 -0
- package/bundled-test-harness/assets/bundled-base-oracle-test-DelPfFjn.js +37 -0
- package/bundled-test-harness/assets/buried-stack-item-scroll-test-Ixsl1tS0.js +236 -0
- package/bundled-test-harness/assets/button-BvYQm_A1.js +141 -0
- package/bundled-test-harness/assets/bxl-cyclic-graph-test-p23WCLRW.js +47 -0
- package/bundled-test-harness/assets/bxl-expression-test-CVTQYT_C.js +250 -0
- package/bundled-test-harness/assets/bxl-indexing-test-D_A7X2sr.js +212 -0
- package/bundled-test-harness/assets/bxl-platform-module-test-Cltfyybp.js +71 -0
- package/bundled-test-harness/assets/can-invoke-test-DJi7jMaU.js +455 -0
- package/bundled-test-harness/assets/can-read-realm-test-CIz6WX_K.js +56 -0
- package/bundled-test-harness/assets/cancel-indexing-job-test-0LlrOgYK.js +69 -0
- package/bundled-test-harness/assets/capture-test-diHIWmh0.js +360 -0
- package/bundled-test-harness/assets/card-api-test-Ci9b0ghP.js +198 -0
- package/bundled-test-harness/assets/card-basics-test-RKQoQWZD.js +5364 -0
- package/bundled-test-harness/assets/card-chooser-paging-test-BoUyFMEw.js +235 -0
- package/bundled-test-harness/assets/card-chooser-test-7ZwhxxkH.js +393 -0
- package/bundled-test-harness/assets/card-context-search-results-KmkXJbmC.js +30 -0
- package/bundled-test-harness/assets/card-context-search-results-test-CpMr8OlX.js +184 -0
- package/bundled-test-harness/assets/card-def-field-def-relationships-test-ByPl5n55.js +562 -0
- package/bundled-test-harness/assets/card-def-menu-items-test-ohuHc0b4.js +228 -0
- package/bundled-test-harness/assets/card-delete-test-Be971b-V.js +466 -0
- package/bundled-test-harness/assets/card-error-3q1o3i0e.js +72 -0
- package/bundled-test-harness/assets/card-error-awaiting-index-test-DPgYKfbF.js +53 -0
- package/bundled-test-harness/assets/card-info-thumbnail-picker-test-CVfeJyjt.js +219 -0
- package/bundled-test-harness/assets/card-playground-test-D-7bi4PQ.js +1491 -0
- package/bundled-test-harness/assets/card-prerender-DemTfK_a.js +12939 -0
- package/bundled-test-harness/assets/card-thunk-error-test-DCBh1vRT.js +48 -0
- package/bundled-test-harness/assets/card-type-service-test-DXPrfVYk.js +161 -0
- package/bundled-test-harness/assets/check-correctness-test-DjE7r1X2.js +1093 -0
- package/bundled-test-harness/assets/check-domain-availability-test-U10xSKbY.js +98 -0
- package/bundled-test-harness/assets/chip-0r_r9SC8.js +44 -0
- package/bundled-test-harness/assets/choreo-Ci5dG5fv.js +2 -0
- package/bundled-test-harness/assets/choreo-D1K9RyjM.js +1031 -0
- package/bundled-test-harness/assets/choreo-feature-reel-test-vzmW-SFd.js +155 -0
- package/bundled-test-harness/assets/choreo-gallery-build-order-test-J6n0_PKm.js +436 -0
- package/bundled-test-harness/assets/choreo-gallery-compositor-test-DSi1N9bi.js +399 -0
- package/bundled-test-harness/assets/choreo-gallery-cover-test-BT05gNKC.js +214 -0
- package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-BIuLOZH6.js +133 -0
- package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-ClGjpnj6.js +42 -0
- package/bundled-test-harness/assets/choreo-gallery-drift-test-OjxMXV0Y.js +620 -0
- package/bundled-test-harness/assets/choreo-gallery-escort-test-D6VL4FfT.js +187 -0
- package/bundled-test-harness/assets/choreo-gallery-films-test-DBcDHGx8.js +140 -0
- package/bundled-test-harness/assets/choreo-gallery-filter-test-BUghtJZe.js +46 -0
- package/bundled-test-harness/assets/choreo-gallery-fold-test-0D9-_h_I.js +180 -0
- package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-DS41eNNV.js +114 -0
- package/bundled-test-harness/assets/choreo-gallery-guides-test-CZnaxUNJ.js +321 -0
- package/bundled-test-harness/assets/choreo-gallery-hang-test-WFvsJ-MJ.js +426 -0
- package/bundled-test-harness/assets/choreo-gallery-highlight-test-Dn0hYPLC.js +60 -0
- package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-C5WvS67s.js +370 -0
- package/bundled-test-harness/assets/choreo-gallery-interruption-test-CgT9RKTe.js +176 -0
- package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-BZgqbTJd.js +104 -0
- package/bundled-test-harness/assets/choreo-gallery-navigation-test-CWzXkvbW.js +193 -0
- package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Dt71t4CU.js +111 -0
- package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-B_rDq4em.js +127 -0
- package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-j_cZ9cAM.js +100 -0
- package/bundled-test-harness/assets/choreo-gallery-presentation-test-CIFKR65J.js +157 -0
- package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BvRCiCvB.js +145 -0
- package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-DgO2MBzU.js +89 -0
- package/bundled-test-harness/assets/choreo-gallery-sheet-test-BntUKT_P.js +48 -0
- package/bundled-test-harness/assets/choreo-gallery-site-test-CvSE6Jyq.js +237 -0
- package/bundled-test-harness/assets/choreo-gallery-stage-Dj6tFzon.js +256 -0
- package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-CkDrAPA8.js +102 -0
- package/bundled-test-harness/assets/choreo-gallery-stages-test-DHUmzoRW.js +35 -0
- package/bundled-test-harness/assets/choreo-gallery-subdivision-test-BZ9-cDFh.js +138 -0
- package/bundled-test-harness/assets/choreo-gallery-table-plan-test-7uP6mZpo.js +144 -0
- package/bundled-test-harness/assets/choreo-gallery-theater-test-DgEue9FD.js +252 -0
- package/bundled-test-harness/assets/choreo-gallery-tuning-test-CfPx5iCp.js +95 -0
- package/bundled-test-harness/assets/choreo-gallery-widget-room-test-o9T2EFKq.js +88 -0
- package/bundled-test-harness/assets/choreo-gallery-wires-test-73JLkxn6.js +148 -0
- package/bundled-test-harness/assets/client-telemetry-test-DFM4mML2.js +340 -0
- package/bundled-test-harness/assets/clip-CsRtHZiN.js +92 -0
- package/bundled-test-harness/assets/clip-CycGr0Lf.js +2 -0
- package/bundled-test-harness/assets/code-block-DRE8KQZQ.js +502 -0
- package/bundled-test-harness/assets/code-ref-test-CDcqE8_C.js +163 -0
- package/bundled-test-harness/assets/code-submode-availability-test-DPTqZYYm.js +198 -0
- package/bundled-test-harness/assets/code-submode-test-AHV4mzJ4.js +1839 -0
- package/bundled-test-harness/assets/codeblocks-test-D9pbJMK8.js +418 -0
- package/bundled-test-harness/assets/codemirror-editor-test-BeAMVivu.js +1512 -0
- package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bnb7_KUT.js +366 -0
- package/bundled-test-harness/assets/color-field-test-CR6gGEqE.js +212 -0
- package/bundled-test-harness/assets/compaction-test-BSqAGv4g.js +150 -0
- package/bundled-test-harness/assets/computed-test-DtyZGgdc.js +1320 -0
- package/bundled-test-harness/assets/container-CEslVSTe.js +10884 -0
- package/bundled-test-harness/assets/content-preview-components-test-BztI4fz-.js +462 -0
- package/bundled-test-harness/assets/copy-and-edit-test-Cqw7kcur.js +292 -0
- package/bundled-test-harness/assets/copy-card-test-D5m3eVEH.js +218 -0
- package/bundled-test-harness/assets/copy-file-to-realm-test-FPY-6Ddm.js +148 -0
- package/bundled-test-harness/assets/copy-source-test-9pJD-qey.js +56 -0
- package/bundled-test-harness/assets/create-file-test-DjMf88u_.js +1086 -0
- package/bundled-test-harness/assets/create-file-test-XbgOqg38.js +464 -0
- package/bundled-test-harness/assets/create-listing-modal-test-DyGlGMWu.js +273 -0
- package/bundled-test-harness/assets/create-listing-pr-request-test-CBtIV0Z8.js +117 -0
- package/bundled-test-harness/assets/create-spec-test-4xR0gM7E.js +256 -0
- package/bundled-test-harness/assets/create-submission-workflow-test-DQpWrpGT.js +132 -0
- package/bundled-test-harness/assets/create-workspace-test-BQAudgpS.js +104 -0
- package/bundled-test-harness/assets/credential-fields-test-DXKBdbZD.js +200 -0
- package/bundled-test-harness/assets/csv-file-def-test-Cnp4y834.js +102 -0
- package/bundled-test-harness/assets/dashboard-CmuOhIYC.js +3628 -0
- package/bundled-test-harness/assets/dashboard-CzN49x74.css +2400 -0
- package/bundled-test-harness/assets/dashboard-add-workspace-test-T32hWB-g.js +50 -0
- package/bundled-test-harness/assets/dashboard-agents-test-BN5maCgQ.js +334 -0
- package/bundled-test-harness/assets/dashboard-archive-test-BzwUte_Z.js +128 -0
- package/bundled-test-harness/assets/dashboard-delete-test-D2Gcp81V.js +163 -0
- package/bundled-test-harness/assets/dashboard-duplicate-offer-test-BgKNIr35.js +71 -0
- package/bundled-test-harness/assets/dashboard-duplicate-test-D7JEWylc.js +222 -0
- package/bundled-test-harness/assets/dashboard-get-started-test-DOGPzGoA.js +374 -0
- package/bundled-test-harness/assets/dashboard-ir2bakJS.js +142 -0
- package/bundled-test-harness/assets/dashboard-pinned-cards-test-Bn_P9xJU.js +220 -0
- package/bundled-test-harness/assets/dashboard-publish-test-64sGQ0nG.js +70 -0
- package/bundled-test-harness/assets/dashboard-reindex-test-DJjYq1ct.js +115 -0
- package/bundled-test-harness/assets/dashboard-section-rail-test-ZkAhWu5V.js +169 -0
- package/bundled-test-harness/assets/dashboard-state-test-BbkpPB5L.js +162 -0
- package/bundled-test-harness/assets/dashboard-test-CBLdPrSt.js +545 -0
- package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DFT3R1Zx.js +62 -0
- package/bundled-test-harness/assets/dashboard-workspace-test-DqBdCFo2.js +537 -0
- package/bundled-test-harness/assets/dashboard-workspaces-section-test-CH1HDfxR.js +410 -0
- package/bundled-test-harness/assets/data-file-def-preview-test-CNsZwQEJ.js +155 -0
- package/bundled-test-harness/assets/date-time-fields-test-CEFaZTnF.js +359 -0
- package/bundled-test-harness/assets/debug-message-test-0hv0RwE_.js +117 -0
- package/bundled-test-harness/assets/declared-captures-test-C-0yPRU7.js +879 -0
- package/bundled-test-harness/assets/delete-workspace-test-CZOwGy78.js +102 -0
- package/bundled-test-harness/assets/diffing-test-BEKI905O.js +210 -0
- package/bundled-test-harness/assets/download-file-to-realm-test-C1kAGDll.js +119 -0
- package/bundled-test-harness/assets/editor-test-C9x5ZY6g.js +688 -0
- package/bundled-test-harness/assets/edits-D76-aanh.js +651 -0
- package/bundled-test-harness/assets/email-field-test-LGkrB_2B.js +75 -0
- package/bundled-test-harness/assets/enum-field-test-CPyV1J-m.js +935 -0
- package/bundled-test-harness/assets/error-display-test-bWuUtfIG.js +343 -0
- package/bundled-test-harness/assets/evaluate-module-test-CbS5h8t3.js +91 -0
- package/bundled-test-harness/assets/execute-atomic-operations-test-B4Kfco0k.js +113 -0
- package/bundled-test-harness/assets/externals-CDQm-Lm7.js +4393 -0
- package/bundled-test-harness/assets/fallback-banner-live-delete-test-DQSiTzvj.js +207 -0
- package/bundled-test-harness/assets/fallback-banner-test-CJFKLpOy.js +225 -0
- package/bundled-test-harness/assets/fallback-banner-test-DQkrFE4-.js +53 -0
- package/bundled-test-harness/assets/fallback-models-test-CiWfmxaB.js +161 -0
- package/bundled-test-harness/assets/fetch-card-json-test-DULUqUEu.js +61 -0
- package/bundled-test-harness/assets/field-configuration-test-BXZq28xa.js +551 -0
- package/bundled-test-harness/assets/field-markdown-domain-test-DdXCifs6.js +616 -0
- package/bundled-test-harness/assets/field-markdown-oversize-test-DouPPTHX.js +88 -0
- package/bundled-test-harness/assets/field-markdown-primitives-test-DSRGJeyl.js +365 -0
- package/bundled-test-harness/assets/field-markdown-specialized-test-DlTYLl_s.js +534 -0
- package/bundled-test-harness/assets/field-playground-test-NhS4VvoN.js +894 -0
- package/bundled-test-harness/assets/field-support-predicates-test-DWpyT1Qf.js +167 -0
- package/bundled-test-harness/assets/file-attachment-test-m72-VerW.js +796 -0
- package/bundled-test-harness/assets/file-chooser-panel-test-DuAqD9bn.js +153 -0
- package/bundled-test-harness/assets/file-chooser-test-CjaXXwpT.js +504 -0
- package/bundled-test-harness/assets/file-def-format-templates-test-BDs4OmHq.js +380 -0
- package/bundled-test-harness/assets/file-def-live-reload-test-BqTdnq-W.js +124 -0
- package/bundled-test-harness/assets/file-def-menu-items-test-DqdINXsD.js +138 -0
- package/bundled-test-harness/assets/file-def-navigation-test-BPGr0SQy.js +109 -0
- package/bundled-test-harness/assets/file-def-serialization-test-CvjW-FlC.js +89 -0
- package/bundled-test-harness/assets/file-def-test-C-Yv_NjS.js +216 -0
- package/bundled-test-harness/assets/file-preview-live-reload-test-MzwGwasU.js +310 -0
- package/bundled-test-harness/assets/file-resource-primitives-test-D3GmfqNs.js +255 -0
- package/bundled-test-harness/assets/file-tree-from-index-test-CfldnUgm.js +96 -0
- package/bundled-test-harness/assets/file-tree-test--0ZCPRe9.js +851 -0
- package/bundled-test-harness/assets/file-view-model-test-BDIAeBV8.js +346 -0
- package/bundled-test-harness/assets/filedef-export-shape-test-B2tgU404.js +61 -0
- package/bundled-test-harness/assets/film-D1E-odYG.js +13 -0
- package/bundled-test-harness/assets/film-D25Y0ED6.js +2 -0
- package/bundled-test-harness/assets/film-D97U-ydx.js +4074 -0
- package/bundled-test-harness/assets/flac-audio-def-test-ByoXMoQ1.js +143 -0
- package/bundled-test-harness/assets/font-metadata-extractor-test-hawLTDTG.js +415 -0
- package/bundled-test-harness/assets/formatted-aibot-message-test-Bdx_-Ktn.js +109 -0
- package/bundled-test-harness/assets/formatted-user-message-test-CodbrU3t.js +43 -0
- package/bundled-test-harness/assets/freestyle-test-faQhSciz.js +17 -0
- package/bundled-test-harness/assets/full-reindex-realm-test-CE5RJTIC.js +101 -0
- package/bundled-test-harness/assets/garbage-collection-test-v-3sev77.js +403 -0
- package/bundled-test-harness/assets/general-test-DQuxDvXK.js +923 -0
- package/bundled-test-harness/assets/generate-example-cards-one-shot-test-CucWyrkH.js +65 -0
- package/bundled-test-harness/assets/generic-file-def-preview-test-_EDRsebi.js +71 -0
- package/bundled-test-harness/assets/get-available-realm-identifiers-test-CV023yek.js +47 -0
- package/bundled-test-harness/assets/get-catalog-realm-identifiers-test--DOu3DyV.js +47 -0
- package/bundled-test-harness/assets/get-default-writable-realm-test-Bic8jl6R.js +54 -0
- package/bundled-test-harness/assets/get-published-realms-test-DrA5YcFN.js +71 -0
- package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-jfU6SIWn.js +54 -0
- package/bundled-test-harness/assets/get-relationship-membership-state-test-Ccy2Z7MN.js +1308 -0
- package/bundled-test-harness/assets/get-user-system-card-test-Bmq2lmWv.js +67 -0
- package/bundled-test-harness/assets/gif-image-def-test-N1mMQC-X.js +188 -0
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-DzPKH76g.js +160 -0
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-D9mlcQuN.js +74 -0
- package/bundled-test-harness/assets/gts-file-def-test-BL1jpQ9J.js +100 -0
- package/bundled-test-harness/assets/head-format-preview-test-BVCaPQqc.js +158 -0
- package/bundled-test-harness/assets/helpers-Ds68JxHe.js +5 -0
- package/bundled-test-harness/assets/host-mode-service-B4bisRdR.js +262 -0
- package/bundled-test-harness/assets/host-mode-test-BmkN2PCJ.js +831 -0
- package/bundled-test-harness/assets/host-submode-test-C6SxQ796.js +1392 -0
- package/bundled-test-harness/assets/html-component-test-CNQ9wF0Q.js +65 -0
- package/bundled-test-harness/assets/html-def-test-BcaCVVQq.js +160 -0
- package/bundled-test-harness/assets/html-meta-extractor-test-BU1hjkTp.js +60 -0
- package/bundled-test-harness/assets/hydratable-card-test-CX6MWiti.js +426 -0
- package/bundled-test-harness/assets/icon-button-C1zH38Nc.js +67 -0
- package/bundled-test-harness/assets/image-metadata-extractor-test-CakSBPZ_.js +1109 -0
- package/bundled-test-harness/assets/index-changes-test-D8RtgfyG.js +367 -0
- package/bundled-test-harness/assets/index-query-engine-test-BOvxkx07.js +2593 -0
- package/bundled-test-harness/assets/index-writer-test-B_bR2fjw.js +3040 -0
- package/bundled-test-harness/assets/inspector-test-BwPXJj1S.js +2058 -0
- package/bundled-test-harness/assets/instance-filter-matcher-test-COAlkUed.js +788 -0
- package/bundled-test-harness/assets/instantiate-card-test-BVQhZjpq.js +164 -0
- package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DzQLG41H.js +475 -0
- package/bundled-test-harness/assets/interact-submode-setup-C5bKXq73.js +566 -0
- package/bundled-test-harness/assets/invalidate-realm-identifiers-test-Cd3dpjhB.js +99 -0
- package/bundled-test-harness/assets/invite-user-to-room-test-Brabz1tt.js +142 -0
- package/bundled-test-harness/assets/invoke-card-operation-test-C1Q1FUf4.js +333 -0
- package/bundled-test-harness/assets/isolated-render-test-BLJfS7BU.js +51 -0
- package/bundled-test-harness/assets/job-scoped-doc-cache-test-Bgv5woaB.js +181 -0
- package/bundled-test-harness/assets/job-scoped-instance-residency-test-C_bB6KpR.js +103 -0
- package/bundled-test-harness/assets/jpg-image-def-test-gdLIKocD.js +697 -0
- package/bundled-test-harness/assets/json-file-def-test-CPYMRBY-.js +95 -0
- package/bundled-test-harness/assets/key-notices-badge-test-DemslfLw.js +155 -0
- package/bundled-test-harness/assets/key-readiness-test-5tq5JycL.js +190 -0
- package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-BbhDZ2PH.js +398 -0
- package/bundled-test-harness/assets/linksto-error-sentinel-test-C2t7fFPi.js +238 -0
- package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test--U_UvUty.js +354 -0
- package/bundled-test-harness/assets/linksto-many-per-slot-access-test-Dj3Xy0ZF.js +303 -0
- package/bundled-test-harness/assets/linksto-sentinel-reload-test-D0dK4Jjs.js +197 -0
- package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test---IYiXok.js +260 -0
- package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CT04MhES.js +196 -0
- package/bundled-test-harness/assets/lint-and-fix-test-aadgx7rX.js +51 -0
- package/bundled-test-harness/assets/live-test-BGij_vuc.js +100 -0
- package/bundled-test-harness/assets/live-test-CppvValf.js +2 -0
- package/bundled-test-harness/assets/load-default-skills-test-Cp2m_ebp.js +74 -0
- package/bundled-test-harness/assets/loader-parallel-prefetch-test-vU_26Jqu.js +257 -0
- package/bundled-test-harness/assets/loader-test-CTaw8K_B.js +482 -0
- package/bundled-test-harness/assets/loading-test-DGGt4qZZ.js +63 -0
- package/bundled-test-harness/assets/m4a-audio-def-test-DAiReOXH.js +190 -0
- package/bundled-test-harness/assets/main-DUKPWRts.js +5 -0
- package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-CIXq9FqR.js +470 -0
- package/bundled-test-harness/assets/markdown-embed-chooser-test-zFGh9WfP.js +334 -0
- package/bundled-test-harness/assets/markdown-embed-preview-pane-test-Byn_WFwY.js +447 -0
- package/bundled-test-harness/assets/markdown-embed-preview-test-Y3iFMttg.js +368 -0
- package/bundled-test-harness/assets/markdown-fallback-test-Br1TPkLZ.js +316 -0
- package/bundled-test-harness/assets/markdown-file-def-test-Crm2MAnq.js +380 -0
- package/bundled-test-harness/assets/markdown-helpers-test-CZ9Vvywc.js +188 -0
- package/bundled-test-harness/assets/markdown-highlighting-test-CFMkoVDl.js +244 -0
- package/bundled-test-harness/assets/markdown-preview-Df5fp1SY.js +72 -0
- package/bundled-test-harness/assets/markdown-preview-test-DDaPzsVs.js +238 -0
- package/bundled-test-harness/assets/markdown-skill-frontmatter-test-aH6HQly1.js +146 -0
- package/bundled-test-harness/assets/markdown-skill-search-test-CiNLQs-5.js +80 -0
- package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-DaA8w1Jj.js +63 -0
- package/bundled-test-harness/assets/matrix-service-boot-assembly-test-21GIlf55.js +300 -0
- package/bundled-test-harness/assets/matrix-service-personal-realm-test-jn9DUENm.js +125 -0
- package/bundled-test-harness/assets/matrix-service-realm-servers-test-eNZVJakl.js +55 -0
- package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-Cabm8_dY.js +132 -0
- package/bundled-test-harness/assets/matrix-service-relogin-test-C77EFgjc.js +59 -0
- package/bundled-test-harness/assets/matrix-service-sliding-sync-test-BgM0fPiO.js +35 -0
- package/bundled-test-harness/assets/menu-Cl50TSFe.js +3561 -0
- package/bundled-test-harness/assets/message-service-subscription-test-CfEqH2jP.js +110 -0
- package/bundled-test-harness/assets/message-service-test-DsTzH1In.js +144 -0
- package/bundled-test-harness/assets/message-tool-test-C5xVfTtj.js +33 -0
- package/bundled-test-harness/assets/midi-audio-def-test-goLRCNCZ.js +182 -0
- package/bundled-test-harness/assets/migrate-skill-test-yPCbVfxG.js +161 -0
- package/bundled-test-harness/assets/mini-YXjrY_tH.js +1404 -0
- package/bundled-test-harness/assets/mini-card-chooser-test-DrllikHB.js +272 -0
- package/bundled-test-harness/assets/mini-file-chooser-test-BfqayhmI.js +201 -0
- package/bundled-test-harness/assets/mock-matrix-C7BrPS6S.js +2 -0
- package/bundled-test-harness/assets/mock-matrix-FjsXmU7-.js +15107 -0
- package/bundled-test-harness/assets/modal-BgaZavcs.js +322 -0
- package/bundled-test-harness/assets/model-cost-tier-test-CZlu1zww.js +174 -0
- package/bundled-test-harness/assets/model-file-extract-test-CjEBupY5.js +206 -0
- package/bundled-test-harness/assets/module-transpile-cache-test-XW6DDsmz.js +67 -0
- package/bundled-test-harness/assets/monaco-test-DkoRuFiQ.js +100 -0
- package/bundled-test-harness/assets/mp3-audio-def-test-v369NNsQ.js +133 -0
- package/bundled-test-harness/assets/multiple-stacks-test-CJpYPWdM.js +208 -0
- package/bundled-test-harness/assets/nested-query-field-render-test-CfDrBcUN.js +249 -0
- package/bundled-test-harness/assets/no-stacks-test-MmsJeLpz.js +48 -0
- package/bundled-test-harness/assets/number-field-test-A7B2r0M5.js +184 -0
- package/bundled-test-harness/assets/office-file-def-test-BNRvFmCB.js +263 -0
- package/bundled-test-harness/assets/office-metadata-extractor-test-zlDoEIEp.js +218 -0
- package/bundled-test-harness/assets/office-poster-capture-test-DdFEaOxR.js +203 -0
- package/bundled-test-harness/assets/ogg-audio-def-test-kk91BzQY.js +196 -0
- package/bundled-test-harness/assets/open-create-listing-modal-test-D1Dl1pov.js +131 -0
- package/bundled-test-harness/assets/open-image-in-new-tab-test-DyCmdMyO.js +52 -0
- package/bundled-test-harness/assets/open-secure-window-test-dz1vPudF.js +253 -0
- package/bundled-test-harness/assets/open-workspace-test-BvTcskzP.js +46 -0
- package/bundled-test-harness/assets/operation-lowering-test-CKkamOQt.js +2957 -0
- package/bundled-test-harness/assets/operations-invocation-test-BMj42rQe.js +523 -0
- package/bundled-test-harness/assets/operations-optimistic-test-KJLyzT8v.js +203 -0
- package/bundled-test-harness/assets/operations-query-test-J3HcnaoK.js +459 -0
- package/bundled-test-harness/assets/operations-store-reconciliation-test-CkbGBMBQ.js +406 -0
- package/bundled-test-harness/assets/operations-test-C7zXXpRW.js +2518 -0
- package/bundled-test-harness/assets/operator-mode-acceptance-test-BPolI_RD.js +1195 -0
- package/bundled-test-harness/assets/operator-mode-card-chooser-test-CQ1v8med.js +1036 -0
- package/bundled-test-harness/assets/operator-mode-links-test-BMHEauS3.js +797 -0
- package/bundled-test-harness/assets/operator-mode-test-blL_JVF8.js +696 -0
- package/bundled-test-harness/assets/operator-mode-ui-test-BG6I7-Hc.js +1045 -0
- package/bundled-test-harness/assets/overlay-D2rQi8lJ.js +427 -0
- package/bundled-test-harness/assets/overlay-menu-items-test-D-zmRQQ0.js +331 -0
- package/bundled-test-harness/assets/overlays-COinwHCP.js +2 -0
- package/bundled-test-harness/assets/overlays-detached-element-test-C73nMXes.js +56 -0
- package/bundled-test-harness/assets/overlays-nTqcu69K.js +75 -0
- package/bundled-test-harness/assets/panel-D9SEMehG.js +15124 -0
- package/bundled-test-harness/assets/past-sessions-test-De9N4wVX.js +321 -0
- package/bundled-test-harness/assets/patch-fields-test-Bp2IE0Jw.js +1014 -0
- package/bundled-test-harness/assets/patch-instance-test-DssuRGKP.js +348 -0
- package/bundled-test-harness/assets/pdf-file-def-test-Barj9ffD.js +111 -0
- package/bundled-test-harness/assets/pdf-metadata-extractor-test-B7KnXcIm.js +130 -0
- package/bundled-test-harness/assets/permission-checking-realm-test-OBzvhDB_.js +306 -0
- package/bundled-test-harness/assets/persist-module-inspector-view-test-BIdbkdPr.js +60 -0
- package/bundled-test-harness/assets/persist-scroll-position-test-Bhb7wJiy.js +254 -0
- package/bundled-test-harness/assets/phone-number-field-test-C2yuCrXY.js +73 -0
- package/bundled-test-harness/assets/pill-menu-test-BIp91YXi.js +60 -0
- package/bundled-test-harness/assets/plate-DAr_pvwC.js +41 -0
- package/bundled-test-harness/assets/plate-DeoQd99m.js +2 -0
- package/bundled-test-harness/assets/player-BvXGBItd.js +2 -0
- package/bundled-test-harness/assets/player-CAVQUyKk.js +82 -0
- package/bundled-test-harness/assets/playground-B02e8uqB.js +58 -0
- package/bundled-test-harness/assets/plural-field-components-test-C1acuN-A.js +198 -0
- package/bundled-test-harness/assets/png-image-def-test-B9QeVo1f.js +266 -0
- package/bundled-test-harness/assets/policy-audit-confirmation-test-CeVquvc_.js +155 -0
- package/bundled-test-harness/assets/policy-scoped-search-test-SFPiIqR3.js +339 -0
- package/bundled-test-harness/assets/prerender-file-extract-test-HSJKAHyO.js +346 -0
- package/bundled-test-harness/assets/prerender-html-test-BTAcFCme.js +670 -0
- package/bundled-test-harness/assets/prerender-meta-test-Csyz2b21.js +614 -0
- package/bundled-test-harness/assets/prerender-module-test-DpTYAbmI.js +409 -0
- package/bundled-test-harness/assets/prerender-persistence-block-test-BhIt-7kK.js +124 -0
- package/bundled-test-harness/assets/prerender-pre-model-error-test-DxKPQKqx.js +61 -0
- package/bundled-test-harness/assets/prerender-serialize-cycle-test-C8V5YWQO.js +134 -0
- package/bundled-test-harness/assets/prerendered-html-read-test-Cq7JVGwg.js +191 -0
- package/bundled-test-harness/assets/pretui-components-test-Ducr9fLT.css +743 -0
- package/bundled-test-harness/assets/pretui-components-test-Hs0uyIUQ.js +992 -0
- package/bundled-test-harness/assets/pretui-primitives-CRs8NRm0.js +69 -0
- package/bundled-test-harness/assets/preview-format-test-cCqLrfdY.js +103 -0
- package/bundled-test-harness/assets/preview-test-BMqJSoR1.js +474 -0
- package/bundled-test-harness/assets/process-card-test-578tfDvr.js +94 -0
- package/bundled-test-harness/assets/profile-settings-modal-CVnNl7Yu.js +990 -0
- package/bundled-test-harness/assets/publish-realm-COoeWexp.js +82 -0
- package/bundled-test-harness/assets/publish-realm-test-a5nkx0Ov.js +210 -0
- package/bundled-test-harness/assets/query-field-barrier-test-qX3xVPfk.js +113 -0
- package/bundled-test-harness/assets/query-field-error-sentinel-test-V6JDPFLX.js +201 -0
- package/bundled-test-harness/assets/query-field-membership-status-test-CK7eDf-K.js +323 -0
- package/bundled-test-harness/assets/query-field-page-optin-test-B5YBHUvU.js +126 -0
- package/bundled-test-harness/assets/query-field-schema-test-D4SjOGlK.js +231 -0
- package/bundled-test-harness/assets/query-field-search-throttle-test-BVkm1-D8.js +154 -0
- package/bundled-test-harness/assets/query-field-stale-prerender-test-9g7hcD91.js +152 -0
- package/bundled-test-harness/assets/query-fields-test-CQYqhzpN.js +535 -0
- package/bundled-test-harness/assets/quick-look-test-icQwb1NJ.js +139 -0
- package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D0mJorwH.js +91 -0
- package/bundled-test-harness/assets/read-file-for-ai-assistant-test-B_F_2GEB.js +45 -0
- package/bundled-test-harness/assets/read-source-test-BgJV4B4F.js +67 -0
- package/bundled-test-harness/assets/read-text-file-test-DaeLzg4u.js +124 -0
- package/bundled-test-harness/assets/realm-C_a9su1j.js +2858 -0
- package/bundled-test-harness/assets/realm-api-keys-D5USFOoS.js +2 -0
- package/bundled-test-harness/assets/realm-api-keys-m_VOcixC.js +578 -0
- package/bundled-test-harness/assets/realm-api-keys-test-C_uZnTmq.js +588 -0
- package/bundled-test-harness/assets/realm-api-keys-test-gtJ8XZCE.js +109 -0
- package/bundled-test-harness/assets/realm-config-m5eccPW8.js +833 -0
- package/bundled-test-harness/assets/realm-config-policy-standing-test-CXJ4ZMde.js +290 -0
- package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-DoEunShH.js +274 -0
- package/bundled-test-harness/assets/realm-config-settings-test-BYi9i4O6.js +187 -0
- package/bundled-test-harness/assets/realm-field-test-B_PUoqnk.js +100 -0
- package/bundled-test-harness/assets/realm-indexing-test-8iLjeV_e.js +4380 -0
- package/bundled-test-harness/assets/realm-policy-fitted-test-Bptvra0U.js +206 -0
- package/bundled-test-harness/assets/realm-policy-test-DwG0qqXE.js +1141 -0
- package/bundled-test-harness/assets/realm-querying-test-Dvw26A6Q.js +1067 -0
- package/bundled-test-harness/assets/realm-server-form-agnostic-test-DrXQH0UP.js +96 -0
- package/bundled-test-harness/assets/realm-server-subscriber-test-Dkj23vQK.js +46 -0
- package/bundled-test-harness/assets/realm-service-info-test-CdRlDhj-.js +67 -0
- package/bundled-test-harness/assets/realm-test-DGYN48Qx.js +2364 -0
- package/bundled-test-harness/assets/realm-token-refresh-test-CEWATL9h.js +153 -0
- package/bundled-test-harness/assets/realm-url-tooltip-test-8ZjTNPuy.js +78 -0
- package/bundled-test-harness/assets/reasoning-test-WUx-4agu.js +221 -0
- package/bundled-test-harness/assets/recent-files-test-Dc6L6Dm4.js +450 -0
- package/bundled-test-harness/assets/reindex-realm-test-CFRSt39u.js +117 -0
- package/bundled-test-harness/assets/relationship-loading-state-test-FKbtOFUr.js +290 -0
- package/bundled-test-harness/assets/remix-card-test-CKGC_Sgq.js +58 -0
- package/bundled-test-harness/assets/rendered-markdown-B_jWmDrK.js +292 -0
- package/bundled-test-harness/assets/rendered-markdown-test-sdWhU0NA.js +587 -0
- package/bundled-test-harness/assets/resident-instance-reuse-test-BjdhE6CM.js +82 -0
- package/bundled-test-harness/assets/result-tile-o6dtjgX4.js +144 -0
- package/bundled-test-harness/assets/rich-markdown-field-test-VXr6l20h.js +1647 -0
- package/bundled-test-harness/assets/room-message-test-BYNhZ39n.js +484 -0
- package/bundled-test-harness/assets/run-FzaqmBEl.js +3959 -0
- package/bundled-test-harness/assets/run-realm-code-DsBUf1si.js +2964 -0
- package/bundled-test-harness/assets/run-realm-code-test-cS0DzaKo.js +3844 -0
- package/bundled-test-harness/assets/sanitize-module-list-test-CvuOOiUY.js +85 -0
- package/bundled-test-harness/assets/save-card-skip-index-wait-test-fpJ1eq32.js +89 -0
- package/bundled-test-harness/assets/schema-editor-test-NkKjCgyf.js +785 -0
- package/bundled-test-harness/assets/schema-generation-test-Dmg3lWl7.js +28 -0
- package/bundled-test-harness/assets/scrolling-test-Dd4gv_fj.js +412 -0
- package/bundled-test-harness/assets/search-adorn-test-CZebk7_y.js +136 -0
- package/bundled-test-harness/assets/search-and-choose-test-Bd4NZUup.js +154 -0
- package/bundled-test-harness/assets/search-correlation-id-test-DXKlEO55.js +139 -0
- package/bundled-test-harness/assets/search-entries-result-test-QQawA8Fm.js +234 -0
- package/bundled-test-harness/assets/search-entries-test-3DlqGPQq.js +1486 -0
- package/bundled-test-harness/assets/search-entries-tool-test-D1TvDE9D.js +504 -0
- package/bundled-test-harness/assets/search-google-images-test-DqsoQGr1.js +166 -0
- package/bundled-test-harness/assets/search-results-DGrNaPxh.js +266 -0
- package/bundled-test-harness/assets/search-results-test-CqVHYNRt.js +578 -0
- package/bundled-test-harness/assets/search-selection-menu-test-D6bIjKiH.js +108 -0
- package/bundled-test-harness/assets/search-sheet-files-test-Bf37TQXo.js +126 -0
- package/bundled-test-harness/assets/search-sheet-persistence-test-CV4_XdxR.js +131 -0
- package/bundled-test-harness/assets/search-test-Dlb-wg3a.js +2249 -0
- package/bundled-test-harness/assets/search-tool-test-BJLgVMoL.js +156 -0
- package/bundled-test-harness/assets/searchable-option-test-eJaIPH_L.js +322 -0
- package/bundled-test-harness/assets/searchable-search-doc-test-yH9fLGNS.js +1271 -0
- package/bundled-test-harness/assets/section-rail-CNFCebtT.js +113 -0
- package/bundled-test-harness/assets/section-rail-test-KNJAWWl6.js +256 -0
- package/bundled-test-harness/assets/secure-sign-in-Dyljp0Th.js +174 -0
- package/bundled-test-harness/assets/secure-sign-in-test-QnqNuTP3.js +373 -0
- package/bundled-test-harness/assets/segmented-control-DxJdoJ4Z.js +173 -0
- package/bundled-test-harness/assets/select-BiQTg2ts.js +175 -0
- package/bundled-test-harness/assets/send-ai-assistant-message-test-CAn7M2dZ.js +52 -0
- package/bundled-test-harness/assets/send-bot-trigger-event-test-qBu5E_jy.js +56 -0
- package/bundled-test-harness/assets/send-request-via-proxy-test-CLuwLBq_.js +380 -0
- package/bundled-test-harness/assets/sending-test-Dt9Dh2wW.js +659 -0
- package/bundled-test-harness/assets/serialization-rri-form-audit-test-hMJukiKt.js +136 -0
- package/bundled-test-harness/assets/serialization-test-W5e3wKbz.js +8758 -0
- package/bundled-test-harness/assets/set-user-system-card-test-CjgWLkNV.js +59 -0
- package/bundled-test-harness/assets/setup-CssMNvui.js +772 -0
- package/bundled-test-harness/assets/setup-D8YXvK-p.js +2 -0
- package/bundled-test-harness/assets/shared-link-target-reuse-test-D42UO8DC.js +207 -0
- package/bundled-test-harness/assets/show-card-test-CHEaS514.js +365 -0
- package/bundled-test-harness/assets/signed-capture-link-test-BgEu0F-S.js +132 -0
- package/bundled-test-harness/assets/single-stack-test-DYcu_v7Z.js +652 -0
- package/bundled-test-harness/assets/skills-test-BP8QNesE.js +648 -0
- package/bundled-test-harness/assets/skip-boot-index-guard-test-BzRIncDN.js +46 -0
- package/bundled-test-harness/assets/spec-test-BYvFR6Xb.js +1077 -0
- package/bundled-test-harness/assets/spinner-Bx9x55NA.js +49 -0
- package/bundled-test-harness/assets/src-LqENIikj.js +5 -0
- package/bundled-test-harness/assets/src-a4d10Hra.js +216 -0
- package/bundled-test-harness/assets/stick-to-bottom-resize-test-BBLiCR3X.js +56 -0
- package/bundled-test-harness/assets/store-add-test-D_9IHQjZ.js +50 -0
- package/bundled-test-harness/assets/store-module-rebuild-test-BRGZoLRV.js +454 -0
- package/bundled-test-harness/assets/store-search-test-3G8JHuj2.js +175 -0
- package/bundled-test-harness/assets/store-test-Dd4WQp7L.js +3672 -0
- package/bundled-test-harness/assets/structured-theme-test-11TNsgUW.js +377 -0
- package/bundled-test-harness/assets/summarize-session-test-CwzD_ZbD.js +172 -0
- package/bundled-test-harness/assets/svg-image-def-test-zV6aMK9q.js +167 -0
- package/bundled-test-harness/assets/switch-submode-test-DQU2cP5_.js +168 -0
- package/bundled-test-harness/assets/sync-openrouter-models-test-xrXVaC2H.js +97 -0
- package/bundled-test-harness/assets/test-support-QTh6wGxu.js +3 -0
- package/bundled-test-harness/assets/test-support-Tr-PYFgc.js +99 -0
- package/bundled-test-harness/assets/tests-zLlwPutr.js +3598 -0
- package/bundled-test-harness/assets/text-file-def-test-Cyq78UFY.js +94 -0
- package/bundled-test-harness/assets/text-input-validator-test-C1uDVZU7.js +156 -0
- package/bundled-test-harness/assets/text-suggestion-test-C4XAqWqY.js +340 -0
- package/bundled-test-harness/assets/theme-card-test-dVNz4tgU.js +621 -0
- package/bundled-test-harness/assets/theme-dashboard-nav-test-DYSn5pqo.js +196 -0
- package/bundled-test-harness/assets/theme-scheme-island-test-C1WpkfEP.js +264 -0
- package/bundled-test-harness/assets/theme-scoped-css-parity-test-BVluppsE.js +176 -0
- package/bundled-test-harness/assets/titles-0a1luoTq.js +52 -0
- package/bundled-test-harness/assets/titles-DKHNLVwC.js +2 -0
- package/bundled-test-harness/assets/to-device-streaming-test-3A6jI0_r.js +163 -0
- package/bundled-test-harness/assets/token-usage-test-33ovcqPk.js +160 -0
- package/bundled-test-harness/assets/tools-J_Knr_W6.js +774 -0
- package/bundled-test-harness/assets/tools-calling-test-CfqZX0Ed.js +200 -0
- package/bundled-test-harness/assets/tools-test-B4x58ZmI.js +1624 -0
- package/bundled-test-harness/assets/tools-test-DtUQp5ez.js +3204 -0
- package/bundled-test-harness/assets/tooltip-B0rEgyMW.css +66 -0
- package/bundled-test-harness/assets/tooltip-DvUMUgVX.js +195 -0
- package/bundled-test-harness/assets/transform-cards-test-CYQbZeD9.js +341 -0
- package/bundled-test-harness/assets/ts-file-def-preview-test-m39f8Zio.js +95 -0
- package/bundled-test-harness/assets/ts-file-def-test-xIcL5xWe.js +92 -0
- package/bundled-test-harness/assets/ttf-font-def-test-ClQ2SzFF.js +206 -0
- package/bundled-test-harness/assets/turn-settling-test-DqYk312r.js +160 -0
- package/bundled-test-harness/assets/turn-summary-Bmt7ZxTS.js +1039 -0
- package/bundled-test-harness/assets/unpublish-realm-test-0ToTJczx.js +102 -0
- package/bundled-test-harness/assets/update-room-skills-test-o_j8NOUV.js +240 -0
- package/bundled-test-harness/assets/use-ai-assistant-test-D7HFpxKJ.js +384 -0
- package/bundled-test-harness/assets/user-message-BAOt1hS3.js +262 -0
- package/bundled-test-harness/assets/validate-realm-test-e3xIbNLB.js +67 -0
- package/bundled-test-harness/assets/video-metadata-extractor-test-D8naLSlg.js +520 -0
- package/bundled-test-harness/assets/view-visually-test-BuhGau5E.js +335 -0
- package/bundled-test-harness/assets/virtual-network-reset-test-CgaFNGPi.js +96 -0
- package/bundled-test-harness/assets/wav-audio-def-test-CWG_UdCh.js +160 -0
- package/bundled-test-harness/assets/webp-image-def-test-sN4yw8Zu.js +226 -0
- package/bundled-test-harness/assets/workspace-0LfPqbYB.js +445 -0
- package/bundled-test-harness/assets/workspace-a11y-test-DQxYDRAP.js +197 -0
- package/bundled-test-harness/assets/workspace-actions-jGJSfl8M.js +588 -0
- package/bundled-test-harness/assets/workspace-behavior-test-BnF-bmBN.js +338 -0
- package/bundled-test-harness/assets/workspace-delete-multiple-test-D-rxPDuT.js +212 -0
- package/bundled-test-harness/assets/workspace-delete-summary-test-C2-Mve5R.js +63 -0
- package/bundled-test-harness/assets/workspace-hosting-test-BvDKdlOb.js +138 -0
- package/bundled-test-harness/assets/workspace-indexing-test-B34T3kqD.js +71 -0
- package/bundled-test-harness/assets/workspace-test-CJivgv-m.js +51 -0
- package/bundled-test-harness/assets/workspace-test-CuSRpPnQ.js +385 -0
- package/bundled-test-harness/assets/workspace-timestamp-labels-test-aWgjdbCp.js +68 -0
- package/bundled-test-harness/assets/workspace-unit-test-DHMUf2KT.js +122 -0
- package/bundled-test-harness/assets/write-binary-file-test-P-hVQuin.js +124 -0
- package/bundled-test-harness/assets/write-text-file-test-fXvJueDd.js +191 -0
- package/bundled-test-harness/assets/zip-archive-test-C2P5CUSR.js +285 -0
- package/bundled-test-harness/assets/zip-file-def-test-BfJZAmGt.js +164 -0
- package/bundled-test-harness/boxel-ui-checksum.txt +1 -1
- package/bundled-test-harness/index.html +47 -47
- package/bundled-test-harness/tests/index.html +49 -49
- package/bundled-types/boxel-ui/helpers/theme-scoped-css.ts +4 -0
- package/bundled-types/choreo/choreo.gts +13 -1
- package/bundled-types/choreo/run.ts +19 -0
- package/bundled-types/host-app/components/operator-mode/dashboard/get-started.gts +152 -7
- package/bundled-types/host-app/components/operator-mode/dashboard/index.gts +2 -0
- package/bundled-types/host-app/components/operator-mode/dashboard/workspace.gts +5 -3
- package/bundled-types/host-app/components/operator-mode/dashboard-modals/workspace-modals.gts +5 -22
- package/bundled-types/host-app/components/operator-mode/host-submode/publishing-realm-popover.gts +1 -1
- package/bundled-types/host-app/components/operator-mode/host-submode.gts +111 -37
- package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +1 -0
- package/bundled-types/host-app/lib/modal-focus-trap.ts +33 -0
- package/bundled-types/host-app/lib/workspace-actions.ts +21 -0
- package/bundled-types/host-app/services/host-mode-service.ts +39 -0
- package/bundled-types/host-app/services/realm.ts +14 -0
- package/bundled-types/host-tests/helpers/dashboard.ts +67 -0
- package/package.json +1 -1
- package/bundled-test-harness/assets/account-switch-failed-test-FytUFiPO.js +0 -45
- package/bundled-test-harness/assets/adapter-DvmPwSZv.js +0 -2
- package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-DN525jiY.js +0 -112
- package/bundled-test-harness/assets/ai-assistant-create-workspace-test-q3tKqVJQ.js +0 -130
- package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DgeXcCyi.js +0 -46
- package/bundled-test-harness/assets/ai-assistant-test-lDIGPKFP.js +0 -2223
- package/bundled-test-harness/assets/ai-function-generation-test-D5GbLyvL.js +0 -1176
- package/bundled-test-harness/assets/ai-module-creation-test-I3-j2beD.js +0 -151
- package/bundled-test-harness/assets/aibot-message-Dmsjifs6.js +0 -1312
- package/bundled-test-harness/assets/app-BS9_-DhN.js +0 -14146
- package/bundled-test-harness/assets/apply-markdown-edit-test-4zlwt0Db.js +0 -230
- package/bundled-test-harness/assets/ask-user-picker-Dr-0qpNr.js +0 -370
- package/bundled-test-harness/assets/ask-user-picker-test-633AFdmS.js +0 -39
- package/bundled-test-harness/assets/assistant-transcript-test-BgRnLvMg.js +0 -57
- package/bundled-test-harness/assets/audio-metadata-extractor-test-4xsQqL-0.js +0 -1176
- package/bundled-test-harness/assets/authed-fetch-test-663mT5_N.js +0 -73
- package/bundled-test-harness/assets/avif-image-def-test-h01BPIJy.js +0 -187
- package/bundled-test-harness/assets/basic-test-DiD6T-8Q.js +0 -139
- package/bundled-test-harness/assets/binary-upload-dedupe-test-CkjMPO_e.js +0 -308
- package/bundled-test-harness/assets/bot-registration-test-CFZHpwdj.js +0 -97
- package/bundled-test-harness/assets/box-test-C3pSy5ED.js +0 -50
- package/bundled-test-harness/assets/brand-guide-attachments-test-EoC_u7Vc.js +0 -84
- package/bundled-test-harness/assets/brand-guide-custom-css-test-Dn3fvblr.js +0 -196
- package/bundled-test-harness/assets/brand-guide-edit-test-NeiT3MyK.js +0 -140
- package/bundled-test-harness/assets/brand-logo-mark-field-test-C2A1EnBB.js +0 -86
- package/bundled-test-harness/assets/broken-link-template-test-CWn6V5zZ.js +0 -192
- package/bundled-test-harness/assets/bundled-base-modules-test-D7mLzpsw.js +0 -54
- package/bundled-test-harness/assets/bundled-base-oracle-test-I7xCId_k.js +0 -37
- package/bundled-test-harness/assets/buried-stack-item-scroll-test-DFBev0h-.js +0 -236
- package/bundled-test-harness/assets/button-BeSuhveJ.js +0 -207
- package/bundled-test-harness/assets/bxl-cyclic-graph-test-DPykwvvx.js +0 -47
- package/bundled-test-harness/assets/bxl-expression-test-LBWJiFb9.js +0 -250
- package/bundled-test-harness/assets/bxl-indexing-test-BuZmLk7y.js +0 -212
- package/bundled-test-harness/assets/bxl-platform-module-test-BNIvlkCM.js +0 -71
- package/bundled-test-harness/assets/can-invoke-test-t-bFIIeX.js +0 -455
- package/bundled-test-harness/assets/can-read-realm-test-2Q_MzRT9.js +0 -56
- package/bundled-test-harness/assets/cancel-indexing-job-test-QeYxEukn.js +0 -69
- package/bundled-test-harness/assets/capture-test-CJmJG8YR.js +0 -360
- package/bundled-test-harness/assets/card-api-test-B43I510H.js +0 -198
- package/bundled-test-harness/assets/card-basics-test-CBClzP2y.js +0 -5364
- package/bundled-test-harness/assets/card-chooser-paging-test-HEVzf6pR.js +0 -235
- package/bundled-test-harness/assets/card-chooser-test-GfjBRPFI.js +0 -393
- package/bundled-test-harness/assets/card-context-search-results-CoSr4EdS.js +0 -30
- package/bundled-test-harness/assets/card-context-search-results-test-BLMlZu9t.js +0 -184
- package/bundled-test-harness/assets/card-def-field-def-relationships-test-DEBOzKan.js +0 -562
- package/bundled-test-harness/assets/card-def-menu-items-test-88_h8o0D.js +0 -228
- package/bundled-test-harness/assets/card-delete-test-DKom1phy.js +0 -466
- package/bundled-test-harness/assets/card-error-awaiting-index-test-DEwgFZMP.js +0 -53
- package/bundled-test-harness/assets/card-error-r6_cXst9.js +0 -72
- package/bundled-test-harness/assets/card-info-thumbnail-picker-test-B7LiY15e.js +0 -219
- package/bundled-test-harness/assets/card-playground-test-CgyIJHui.js +0 -1491
- package/bundled-test-harness/assets/card-prerender-rPfzpIOU.js +0 -12939
- package/bundled-test-harness/assets/card-thunk-error-test-L0pvg4Ce.js +0 -48
- package/bundled-test-harness/assets/card-type-service-test-B2dhqxSD.js +0 -161
- package/bundled-test-harness/assets/check-correctness-test-DgqaLlCW.js +0 -1093
- package/bundled-test-harness/assets/check-domain-availability-test-B0hJHY5l.js +0 -98
- package/bundled-test-harness/assets/chip-D01NW3WH.js +0 -44
- package/bundled-test-harness/assets/choreo-D2Jl79RU.js +0 -1019
- package/bundled-test-harness/assets/choreo-_E8SOEe-.js +0 -2
- package/bundled-test-harness/assets/choreo-feature-reel-test-WLjsZDmS.js +0 -155
- package/bundled-test-harness/assets/choreo-gallery-build-order-test-6jnS8PsS.js +0 -436
- package/bundled-test-harness/assets/choreo-gallery-compositor-test-CbUZsVB6.js +0 -399
- package/bundled-test-harness/assets/choreo-gallery-cover-test-CbvAStgk.js +0 -214
- package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-tdjvUSa6.js +0 -133
- package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-CsnM3hQK.js +0 -42
- package/bundled-test-harness/assets/choreo-gallery-drift-test-DG2LQTa7.js +0 -620
- package/bundled-test-harness/assets/choreo-gallery-escort-test-mn3-qXP1.js +0 -187
- package/bundled-test-harness/assets/choreo-gallery-films-test-BuktaC0D.js +0 -140
- package/bundled-test-harness/assets/choreo-gallery-filter-test-Dd-zpps0.js +0 -46
- package/bundled-test-harness/assets/choreo-gallery-fold-test-CWc1ijGc.js +0 -180
- package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-tk2QmYPU.js +0 -114
- package/bundled-test-harness/assets/choreo-gallery-guides-test-DVbf1zM4.js +0 -321
- package/bundled-test-harness/assets/choreo-gallery-hang-test-B7EFp2dx.js +0 -426
- package/bundled-test-harness/assets/choreo-gallery-highlight-test-BFgbdesP.js +0 -60
- package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-DJb8FC5R.js +0 -370
- package/bundled-test-harness/assets/choreo-gallery-interruption-test-DWyMXo5D.js +0 -176
- package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-D3b8LsJ6.js +0 -104
- package/bundled-test-harness/assets/choreo-gallery-navigation-test-CjjU6Rvn.js +0 -193
- package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Le_h3QWU.js +0 -111
- package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-Cp-DlWj4.js +0 -127
- package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-DayS4GCJ.js +0 -100
- package/bundled-test-harness/assets/choreo-gallery-presentation-test-DeAfuFS7.js +0 -157
- package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BgPWpggq.js +0 -145
- package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-PzyoMNYv.js +0 -89
- package/bundled-test-harness/assets/choreo-gallery-sheet-test-CxaiNBkL.js +0 -48
- package/bundled-test-harness/assets/choreo-gallery-site-test-6xtSntS5.js +0 -237
- package/bundled-test-harness/assets/choreo-gallery-stage-E6Q5r-zU.js +0 -256
- package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-C7aWMr9a.js +0 -102
- package/bundled-test-harness/assets/choreo-gallery-stages-test-CDWWgC61.js +0 -35
- package/bundled-test-harness/assets/choreo-gallery-subdivision-test-Bkp15XJv.js +0 -138
- package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CcGRi_3O.js +0 -144
- package/bundled-test-harness/assets/choreo-gallery-theater-test-Qph5pLT_.js +0 -252
- package/bundled-test-harness/assets/choreo-gallery-tuning-test-C4DhFLVA.js +0 -95
- package/bundled-test-harness/assets/choreo-gallery-widget-room-test-LK493r1M.js +0 -88
- package/bundled-test-harness/assets/choreo-gallery-wires-test-B7SeUCc8.js +0 -148
- package/bundled-test-harness/assets/client-telemetry-test-DGmHzAFx.js +0 -340
- package/bundled-test-harness/assets/clip-BpYQPVz_.js +0 -2
- package/bundled-test-harness/assets/clip-CNaYbIwL.js +0 -92
- package/bundled-test-harness/assets/code-block-Cp2CJo5-.js +0 -502
- package/bundled-test-harness/assets/code-ref-test-C8JBHDb-.js +0 -163
- package/bundled-test-harness/assets/code-submode-availability-test-CzG1Tv6L.js +0 -198
- package/bundled-test-harness/assets/code-submode-test-BclVWjm5.js +0 -1839
- package/bundled-test-harness/assets/codeblocks-test-CmQlyxN7.js +0 -418
- package/bundled-test-harness/assets/codemirror-editor-test-B74H_yn8.js +0 -1512
- package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bz6VEysU.js +0 -366
- package/bundled-test-harness/assets/color-field-test-DMCPQKIP.js +0 -212
- package/bundled-test-harness/assets/compaction-test-saQCLBrQ.js +0 -150
- package/bundled-test-harness/assets/computed-test-C05HliJC.js +0 -1320
- package/bundled-test-harness/assets/container-Cqcwrd-m.js +0 -10857
- package/bundled-test-harness/assets/content-preview-components-test-DZPj4_CU.js +0 -462
- package/bundled-test-harness/assets/copy-and-edit-test-DiXTQNTF.js +0 -292
- package/bundled-test-harness/assets/copy-card-test-ys7GquUY.js +0 -218
- package/bundled-test-harness/assets/copy-file-to-realm-test-Gn0Wn4vT.js +0 -148
- package/bundled-test-harness/assets/copy-source-test-BTLrOmPm.js +0 -56
- package/bundled-test-harness/assets/create-file-test-BCeIW-Rt.js +0 -464
- package/bundled-test-harness/assets/create-file-test-DbHQ5JsS.js +0 -1086
- package/bundled-test-harness/assets/create-listing-modal-test-CeHc4ter.js +0 -273
- package/bundled-test-harness/assets/create-listing-pr-request-test-DXbJNfMh.js +0 -117
- package/bundled-test-harness/assets/create-spec-test-BDIZoyHT.js +0 -256
- package/bundled-test-harness/assets/create-submission-workflow-test-Bix5J-3A.js +0 -132
- package/bundled-test-harness/assets/create-workspace-test-BmNnLHwC.js +0 -104
- package/bundled-test-harness/assets/credential-fields-test-NK1F4QWn.js +0 -200
- package/bundled-test-harness/assets/csv-file-def-test-BSfs4TTP.js +0 -102
- package/bundled-test-harness/assets/dashboard-C4T7ffKY.js +0 -3576
- package/bundled-test-harness/assets/dashboard-CFeHuP5-.js +0 -81
- package/bundled-test-harness/assets/dashboard-DQlpW-ux.css +0 -2392
- package/bundled-test-harness/assets/dashboard-add-workspace-test--rr6objf.js +0 -50
- package/bundled-test-harness/assets/dashboard-agents-test-D1y8H4xH.js +0 -334
- package/bundled-test-harness/assets/dashboard-archive-test-bN4EQaXv.js +0 -128
- package/bundled-test-harness/assets/dashboard-delete-test-BvsASb8B.js +0 -163
- package/bundled-test-harness/assets/dashboard-duplicate-offer-test-DEsd5ZzZ.js +0 -71
- package/bundled-test-harness/assets/dashboard-duplicate-test-BnR0sTgB.js +0 -222
- package/bundled-test-harness/assets/dashboard-get-started-test-DG4uUXLv.js +0 -246
- package/bundled-test-harness/assets/dashboard-pinned-cards-test-AoGGVRAS.js +0 -220
- package/bundled-test-harness/assets/dashboard-reindex-test-BN9a96Xp.js +0 -115
- package/bundled-test-harness/assets/dashboard-section-rail-test-B3OT9V2T.js +0 -169
- package/bundled-test-harness/assets/dashboard-state-test-BY0Zqrmj.js +0 -162
- package/bundled-test-harness/assets/dashboard-test-C13oNpWt.js +0 -545
- package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DZIV4x5j.js +0 -62
- package/bundled-test-harness/assets/dashboard-workspace-test-CBnOQViI.js +0 -537
- package/bundled-test-harness/assets/dashboard-workspaces-section-test-KU8ZVOYp.js +0 -396
- package/bundled-test-harness/assets/data-file-def-preview-test-CI5gcdtK.js +0 -155
- package/bundled-test-harness/assets/date-time-fields-test-D2CpR_Pb.js +0 -359
- package/bundled-test-harness/assets/debug-message-test-Df1kHesw.js +0 -117
- package/bundled-test-harness/assets/declared-captures-test-hQ43zuox.js +0 -879
- package/bundled-test-harness/assets/delete-workspace-test-BhfMKsix.js +0 -102
- package/bundled-test-harness/assets/diffing-test-CHRh55mC.js +0 -210
- package/bundled-test-harness/assets/download-file-to-realm-test-CC1HURCi.js +0 -119
- package/bundled-test-harness/assets/editor-test-DkeCv28f.js +0 -688
- package/bundled-test-harness/assets/edits-BSJqtUXM.js +0 -651
- package/bundled-test-harness/assets/email-field-test-DihK0suO.js +0 -75
- package/bundled-test-harness/assets/enum-field-test-Gja3bzt5.js +0 -935
- package/bundled-test-harness/assets/error-display-test-GhYZu7cp.js +0 -343
- package/bundled-test-harness/assets/evaluate-module-test-D_t4CiUq.js +0 -91
- package/bundled-test-harness/assets/execute-atomic-operations-test-xtou8Zeg.js +0 -113
- package/bundled-test-harness/assets/externals-B02-sD_L.js +0 -4393
- package/bundled-test-harness/assets/fallback-banner-live-delete-test-DtxzNXdE.js +0 -207
- package/bundled-test-harness/assets/fallback-banner-test-BfmiQ_68.js +0 -53
- package/bundled-test-harness/assets/fallback-banner-test-DLtTdmvn.js +0 -225
- package/bundled-test-harness/assets/fallback-models-test-BxNJxhfd.js +0 -161
- package/bundled-test-harness/assets/fetch-card-json-test-DofKbzvC.js +0 -61
- package/bundled-test-harness/assets/field-configuration-test-SUoPaXWy.js +0 -551
- package/bundled-test-harness/assets/field-markdown-domain-test-BwtR0dPP.js +0 -616
- package/bundled-test-harness/assets/field-markdown-oversize-test-D8UJcBc3.js +0 -88
- package/bundled-test-harness/assets/field-markdown-primitives-test-D5_ZdoDO.js +0 -365
- package/bundled-test-harness/assets/field-markdown-specialized-test-Dpd5hs04.js +0 -534
- package/bundled-test-harness/assets/field-playground-test-CzhYzKGv.js +0 -894
- package/bundled-test-harness/assets/field-support-predicates-test-BSvVOFth.js +0 -167
- package/bundled-test-harness/assets/file-attachment-test-fM-yFedm.js +0 -796
- package/bundled-test-harness/assets/file-chooser-panel-test-CKj8YTdY.js +0 -153
- package/bundled-test-harness/assets/file-chooser-test-Bs8jFXqa.js +0 -504
- package/bundled-test-harness/assets/file-def-format-templates-test-CxrRoWoD.js +0 -380
- package/bundled-test-harness/assets/file-def-live-reload-test-X_8YEkve.js +0 -124
- package/bundled-test-harness/assets/file-def-menu-items-test-Dx879o_o.js +0 -138
- package/bundled-test-harness/assets/file-def-navigation-test-MMI_EEO1.js +0 -109
- package/bundled-test-harness/assets/file-def-serialization-test-B5lguBQD.js +0 -89
- package/bundled-test-harness/assets/file-def-test-Di9QWcrj.js +0 -216
- package/bundled-test-harness/assets/file-preview-live-reload-test-aqx93A7c.js +0 -310
- package/bundled-test-harness/assets/file-resource-primitives-test-a5abpcSB.js +0 -255
- package/bundled-test-harness/assets/file-tree-from-index-test-CnruGxJ8.js +0 -96
- package/bundled-test-harness/assets/file-tree-test-BCyWDdSE.js +0 -851
- package/bundled-test-harness/assets/file-view-model-test-BfpLa01Y.js +0 -346
- package/bundled-test-harness/assets/filedef-export-shape-test-CQ9XbrzS.js +0 -61
- package/bundled-test-harness/assets/film-CL1zj_bJ.js +0 -2
- package/bundled-test-harness/assets/film-Dq_quZ31.js +0 -13
- package/bundled-test-harness/assets/film-xbkQa060.js +0 -4074
- package/bundled-test-harness/assets/flac-audio-def-test-BmVp9dMx.js +0 -143
- package/bundled-test-harness/assets/focus-Dm4wkM72.js +0 -306
- package/bundled-test-harness/assets/font-metadata-extractor-test-OWEh9_MS.js +0 -415
- package/bundled-test-harness/assets/formatted-aibot-message-test-BpHsWpuV.js +0 -109
- package/bundled-test-harness/assets/formatted-user-message-test-DZW5TAr0.js +0 -43
- package/bundled-test-harness/assets/freestyle-test-D_uaPU_3.js +0 -17
- package/bundled-test-harness/assets/full-reindex-realm-test-C6vHL5kC.js +0 -101
- package/bundled-test-harness/assets/garbage-collection-test-D-Ao4t2n.js +0 -403
- package/bundled-test-harness/assets/general-test-PSGI8W0z.js +0 -923
- package/bundled-test-harness/assets/generate-example-cards-one-shot-test-J-m-0E6W.js +0 -65
- package/bundled-test-harness/assets/generic-file-def-preview-test-BAsOhTYU.js +0 -71
- package/bundled-test-harness/assets/get-available-realm-identifiers-test-D5PBOr97.js +0 -47
- package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-NM9UURHE.js +0 -47
- package/bundled-test-harness/assets/get-default-writable-realm-test-BxXc9a3J.js +0 -54
- package/bundled-test-harness/assets/get-published-realms-test-C8TJEc4-.js +0 -71
- package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-Dt8CB6lS.js +0 -54
- package/bundled-test-harness/assets/get-relationship-membership-state-test-9_8x3myJ.js +0 -1308
- package/bundled-test-harness/assets/get-user-system-card-test-k0UO-uba.js +0 -67
- package/bundled-test-harness/assets/gif-image-def-test-BWrqPGDX.js +0 -188
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BgG8QI9E.js +0 -160
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-BKOvNyCN.js +0 -74
- package/bundled-test-harness/assets/gts-file-def-test-BCRHwDeZ.js +0 -100
- package/bundled-test-harness/assets/head-format-preview-test-DnfUhniI.js +0 -158
- package/bundled-test-harness/assets/helpers-DklkegO_.js +0 -5
- package/bundled-test-harness/assets/host-mode-service-vOfN0smp.js +0 -232
- package/bundled-test-harness/assets/host-mode-test-CCCJFz6_.js +0 -831
- package/bundled-test-harness/assets/host-submode-test-CtCfbuPA.js +0 -1342
- package/bundled-test-harness/assets/html-component-test-CWyhb5ZX.js +0 -65
- package/bundled-test-harness/assets/html-def-test-Cb8C2lUx.js +0 -160
- package/bundled-test-harness/assets/html-meta-extractor-test-BHT9Rtir.js +0 -60
- package/bundled-test-harness/assets/hydratable-card-test-DpgpdesD.js +0 -426
- package/bundled-test-harness/assets/icon-button-ABCGVF3C.js +0 -67
- package/bundled-test-harness/assets/image-metadata-extractor-test-ClhPTouq.js +0 -1109
- package/bundled-test-harness/assets/index-changes-test-CgnVr3LH.js +0 -367
- package/bundled-test-harness/assets/index-query-engine-test-CQTwju5_.js +0 -2593
- package/bundled-test-harness/assets/index-writer-test-IoVOoZT2.js +0 -3040
- package/bundled-test-harness/assets/inspector-test-BN2Ieb77.js +0 -2058
- package/bundled-test-harness/assets/instance-filter-matcher-test-Bq-_Sy89.js +0 -788
- package/bundled-test-harness/assets/instantiate-card-test-DEeDTzFV.js +0 -164
- package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DP6kOyJS.js +0 -475
- package/bundled-test-harness/assets/interact-submode-setup-B0_cHqH-.js +0 -566
- package/bundled-test-harness/assets/invalidate-realm-identifiers-test-9uUD91Pw.js +0 -99
- package/bundled-test-harness/assets/invite-user-to-room-test-CcDA45Ac.js +0 -142
- package/bundled-test-harness/assets/invoke-card-operation-test-DmUtgueM.js +0 -333
- package/bundled-test-harness/assets/isolated-render-test-B2eXNHu6.js +0 -51
- package/bundled-test-harness/assets/job-scoped-doc-cache-test-DF9D7cOc.js +0 -181
- package/bundled-test-harness/assets/job-scoped-instance-residency-test-CSS8xUU5.js +0 -103
- package/bundled-test-harness/assets/jpg-image-def-test-voECMTht.js +0 -697
- package/bundled-test-harness/assets/json-file-def-test-8Y4KLjUC.js +0 -95
- package/bundled-test-harness/assets/key-notices-badge-test-d1mYqx0e.js +0 -155
- package/bundled-test-harness/assets/key-readiness-test-BtCg7PCk.js +0 -190
- package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CyCMbJnN.js +0 -398
- package/bundled-test-harness/assets/linksto-error-sentinel-test-BDW572-v.js +0 -238
- package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-B4wM97hD.js +0 -354
- package/bundled-test-harness/assets/linksto-many-per-slot-access-test-BhJmtJ0_.js +0 -303
- package/bundled-test-harness/assets/linksto-sentinel-reload-test-BpBQ5V_i.js +0 -197
- package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-pkBBl4e9.js +0 -260
- package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-Bb6wjUdD.js +0 -196
- package/bundled-test-harness/assets/lint-and-fix-test-CcMLn-co.js +0 -51
- package/bundled-test-harness/assets/live-test-AyBnq7BX.js +0 -2
- package/bundled-test-harness/assets/live-test-CgnAcIDw.js +0 -100
- package/bundled-test-harness/assets/load-default-skills-test-BIOwtx0Y.js +0 -74
- package/bundled-test-harness/assets/loader-parallel-prefetch-test-D5_oRSER.js +0 -257
- package/bundled-test-harness/assets/loader-test-DSc_jR1c.js +0 -482
- package/bundled-test-harness/assets/loading-test-8pldx7S-.js +0 -63
- package/bundled-test-harness/assets/m4a-audio-def-test-BDI5apzM.js +0 -190
- package/bundled-test-harness/assets/main-5kHyCkdm.js +0 -5
- package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-Wud0s7WZ.js +0 -470
- package/bundled-test-harness/assets/markdown-embed-chooser-test-DVzzS-0C.js +0 -334
- package/bundled-test-harness/assets/markdown-embed-preview-pane-test-B5W_iqsi.js +0 -447
- package/bundled-test-harness/assets/markdown-embed-preview-test-CZF_s0fB.js +0 -368
- package/bundled-test-harness/assets/markdown-fallback-test-fT6BS4W7.js +0 -316
- package/bundled-test-harness/assets/markdown-file-def-test-B1aTzazR.js +0 -380
- package/bundled-test-harness/assets/markdown-helpers-test-gNKZf7Mw.js +0 -188
- package/bundled-test-harness/assets/markdown-highlighting-test-Du5_CQmD.js +0 -244
- package/bundled-test-harness/assets/markdown-preview-h-_aJhRc.js +0 -72
- package/bundled-test-harness/assets/markdown-preview-test-DJvoVsXw.js +0 -238
- package/bundled-test-harness/assets/markdown-skill-frontmatter-test-VwJi3Paj.js +0 -146
- package/bundled-test-harness/assets/markdown-skill-search-test-ysCdf0xM.js +0 -80
- package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-K2JuMy36.js +0 -63
- package/bundled-test-harness/assets/matrix-service-boot-assembly-test-CkdL_-os.js +0 -300
- package/bundled-test-harness/assets/matrix-service-personal-realm-test-Dy1DultK.js +0 -125
- package/bundled-test-harness/assets/matrix-service-realm-servers-test-DHDDKuEg.js +0 -55
- package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-DcTbZpMl.js +0 -132
- package/bundled-test-harness/assets/matrix-service-relogin-test-D3NQktoa.js +0 -59
- package/bundled-test-harness/assets/matrix-service-sliding-sync-test-6CAflWOA.js +0 -35
- package/bundled-test-harness/assets/menu-kUSaJIPq.js +0 -3562
- package/bundled-test-harness/assets/message-service-subscription-test-DaQdgDWi.js +0 -110
- package/bundled-test-harness/assets/message-service-test-BsGEgM_m.js +0 -144
- package/bundled-test-harness/assets/message-tool-test-BB_4kw1V.js +0 -33
- package/bundled-test-harness/assets/midi-audio-def-test-BbbkFjqf.js +0 -182
- package/bundled-test-harness/assets/migrate-skill-test-X9xImDuq.js +0 -161
- package/bundled-test-harness/assets/mini-AwF31elJ.js +0 -1404
- package/bundled-test-harness/assets/mini-card-chooser-test-BZtrEiWu.js +0 -272
- package/bundled-test-harness/assets/mini-file-chooser-test-MIHW3kCI.js +0 -201
- package/bundled-test-harness/assets/mock-matrix-Dd8k0DNa.js +0 -15107
- package/bundled-test-harness/assets/mock-matrix-DhPN_34j.js +0 -2
- package/bundled-test-harness/assets/modal-LTh3_oHK.js +0 -322
- package/bundled-test-harness/assets/model-cost-tier-test-h1IkU9mp.js +0 -174
- package/bundled-test-harness/assets/model-file-extract-test-ntSo0wZF.js +0 -206
- package/bundled-test-harness/assets/module-transpile-cache-test-CDeRaaeP.js +0 -67
- package/bundled-test-harness/assets/monaco-test-C0Fa744D.js +0 -100
- package/bundled-test-harness/assets/mp3-audio-def-test-B4j4qR9H.js +0 -133
- package/bundled-test-harness/assets/multiple-stacks-test-BhA25ywL.js +0 -208
- package/bundled-test-harness/assets/nested-query-field-render-test-S9Y8YNKB.js +0 -249
- package/bundled-test-harness/assets/no-stacks-test-B7VciWyg.js +0 -48
- package/bundled-test-harness/assets/number-field-test-CS74lDPN.js +0 -184
- package/bundled-test-harness/assets/office-file-def-test-2cKc1pmd.js +0 -263
- package/bundled-test-harness/assets/office-metadata-extractor-test-DC8Fo-OW.js +0 -218
- package/bundled-test-harness/assets/office-poster-capture-test-Ba0_5UrT.js +0 -203
- package/bundled-test-harness/assets/ogg-audio-def-test-CIPQ1d4w.js +0 -196
- package/bundled-test-harness/assets/open-create-listing-modal-test-bmQkY5Zl.js +0 -131
- package/bundled-test-harness/assets/open-image-in-new-tab-test-DBD7_vMH.js +0 -52
- package/bundled-test-harness/assets/open-secure-window-test-BgeuYAqz.js +0 -253
- package/bundled-test-harness/assets/open-workspace-test-DRHGljV0.js +0 -46
- package/bundled-test-harness/assets/operation-lowering-test-CH1c0pSH.js +0 -2957
- package/bundled-test-harness/assets/operations-invocation-test-B1YkCLrv.js +0 -523
- package/bundled-test-harness/assets/operations-optimistic-test-DAbtOwsC.js +0 -203
- package/bundled-test-harness/assets/operations-query-test-9p1ZIDe-.js +0 -459
- package/bundled-test-harness/assets/operations-store-reconciliation-test-D0EQh3w2.js +0 -406
- package/bundled-test-harness/assets/operations-test-BQhlrfe3.js +0 -2518
- package/bundled-test-harness/assets/operator-mode-acceptance-test-DtHnonEb.js +0 -1195
- package/bundled-test-harness/assets/operator-mode-card-chooser-test-DQUxZxaq.js +0 -1036
- package/bundled-test-harness/assets/operator-mode-links-test-BJ26HllS.js +0 -797
- package/bundled-test-harness/assets/operator-mode-test-DIPDI0qt.js +0 -696
- package/bundled-test-harness/assets/operator-mode-ui-test-CfA-fAh4.js +0 -1045
- package/bundled-test-harness/assets/overlay-DecPh3nt.js +0 -123
- package/bundled-test-harness/assets/overlay-menu-items-test-C6XqjLtu.js +0 -331
- package/bundled-test-harness/assets/overlays-Ctp8ePzZ.js +0 -75
- package/bundled-test-harness/assets/overlays-CzWpSg5T.js +0 -2
- package/bundled-test-harness/assets/overlays-detached-element-test-DvL_8Bb5.js +0 -56
- package/bundled-test-harness/assets/panel-CImumikB.js +0 -15124
- package/bundled-test-harness/assets/past-sessions-test-N6riGN_I.js +0 -321
- package/bundled-test-harness/assets/patch-fields-test-D30_-KwQ.js +0 -1014
- package/bundled-test-harness/assets/patch-instance-test-C5rGscZq.js +0 -348
- package/bundled-test-harness/assets/pdf-file-def-test-DtiqGRvZ.js +0 -111
- package/bundled-test-harness/assets/pdf-metadata-extractor-test-FU02KmdV.js +0 -130
- package/bundled-test-harness/assets/permission-checking-realm-test-DqdNJDwU.js +0 -306
- package/bundled-test-harness/assets/persist-module-inspector-view-test-BHOAgPVy.js +0 -60
- package/bundled-test-harness/assets/persist-scroll-position-test-qtmS518r.js +0 -254
- package/bundled-test-harness/assets/phone-number-field-test-DhdaM7uL.js +0 -73
- package/bundled-test-harness/assets/pill-menu-test-C9Mrrepl.js +0 -60
- package/bundled-test-harness/assets/plate-9n-sXyCw.js +0 -41
- package/bundled-test-harness/assets/plate-BnZcAk-_.js +0 -2
- package/bundled-test-harness/assets/player-Cu5b4LEJ.js +0 -82
- package/bundled-test-harness/assets/player-unk2mkxV.js +0 -2
- package/bundled-test-harness/assets/playground-BwA8wFGK.js +0 -58
- package/bundled-test-harness/assets/plural-field-components-test-CFNQKETg.js +0 -198
- package/bundled-test-harness/assets/png-image-def-test-DG5Vhlqb.js +0 -266
- package/bundled-test-harness/assets/policy-audit-confirmation-test-yfKU47LR.js +0 -155
- package/bundled-test-harness/assets/policy-scoped-search-test-BjQRDYqR.js +0 -339
- package/bundled-test-harness/assets/prerender-file-extract-test-CEU4SaAZ.js +0 -346
- package/bundled-test-harness/assets/prerender-html-test-CGB3ClCS.js +0 -670
- package/bundled-test-harness/assets/prerender-meta-test-xqc4fW_0.js +0 -614
- package/bundled-test-harness/assets/prerender-module-test-CI1TmZw-.js +0 -409
- package/bundled-test-harness/assets/prerender-persistence-block-test-Da0dJO_N.js +0 -124
- package/bundled-test-harness/assets/prerender-pre-model-error-test-BVLyhk8R.js +0 -61
- package/bundled-test-harness/assets/prerender-serialize-cycle-test-glJFfxHU.js +0 -134
- package/bundled-test-harness/assets/prerendered-html-read-test-Mp4L0VHQ.js +0 -191
- package/bundled-test-harness/assets/pretui-components-test-BBpA9UnA.js +0 -991
- package/bundled-test-harness/assets/pretui-components-test-BqFq7rw_.css +0 -730
- package/bundled-test-harness/assets/preview-format-test-C55Bwcur.js +0 -103
- package/bundled-test-harness/assets/preview-test-CTAhRGU8.js +0 -474
- package/bundled-test-harness/assets/process-card-test-UjqpuxB7.js +0 -94
- package/bundled-test-harness/assets/profile-settings-modal-C8bCgTMK.js +0 -989
- package/bundled-test-harness/assets/publish-realm-ixUB4FPK.js +0 -82
- package/bundled-test-harness/assets/publish-realm-test-CrrsdL4W.js +0 -210
- package/bundled-test-harness/assets/query-field-barrier-test-DjivFE93.js +0 -113
- package/bundled-test-harness/assets/query-field-error-sentinel-test-0HwnV4Mw.js +0 -201
- package/bundled-test-harness/assets/query-field-membership-status-test-C8yTTBkc.js +0 -323
- package/bundled-test-harness/assets/query-field-page-optin-test-D4l_GcII.js +0 -126
- package/bundled-test-harness/assets/query-field-schema-test-DDbcNNm5.js +0 -231
- package/bundled-test-harness/assets/query-field-search-throttle-test-CXp50Ax0.js +0 -154
- package/bundled-test-harness/assets/query-field-stale-prerender-test-DErzt-Cv.js +0 -152
- package/bundled-test-harness/assets/query-fields-test-Dz67fdSl.js +0 -535
- package/bundled-test-harness/assets/quick-look-test-B1ijDsh_.js +0 -139
- package/bundled-test-harness/assets/read-card-for-ai-assistant-test-DJxZ16H_.js +0 -91
- package/bundled-test-harness/assets/read-file-for-ai-assistant-test-BoRQkZ8c.js +0 -45
- package/bundled-test-harness/assets/read-source-test-Bl-NjchO.js +0 -67
- package/bundled-test-harness/assets/read-text-file-test-CP37CZoo.js +0 -124
- package/bundled-test-harness/assets/realm-CaK5mkT-.js +0 -2852
- package/bundled-test-harness/assets/realm-api-keys-BNUFWbGR.js +0 -579
- package/bundled-test-harness/assets/realm-api-keys-CkshxhXC.js +0 -2
- package/bundled-test-harness/assets/realm-api-keys-test-BP8xifjn.js +0 -109
- package/bundled-test-harness/assets/realm-api-keys-test-CwdK9YXp.js +0 -588
- package/bundled-test-harness/assets/realm-config-iKwE3Htp.js +0 -833
- package/bundled-test-harness/assets/realm-config-policy-standing-test-BgVEIDnB.js +0 -290
- package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-BoJoKzmX.js +0 -274
- package/bundled-test-harness/assets/realm-config-settings-test-Kxw-GHye.js +0 -187
- package/bundled-test-harness/assets/realm-field-test-CdGOxrFb.js +0 -100
- package/bundled-test-harness/assets/realm-indexing-test-CHtsBV2b.js +0 -4380
- package/bundled-test-harness/assets/realm-policy-fitted-test--DhNZSdC.js +0 -206
- package/bundled-test-harness/assets/realm-policy-test-D7714iVa.js +0 -1141
- package/bundled-test-harness/assets/realm-querying-test-Cj1ekZ0H.js +0 -1067
- package/bundled-test-harness/assets/realm-server-form-agnostic-test-CZFPNJfD.js +0 -96
- package/bundled-test-harness/assets/realm-server-subscriber-test-C86WmBp0.js +0 -46
- package/bundled-test-harness/assets/realm-service-info-test-CdgcwKDR.js +0 -67
- package/bundled-test-harness/assets/realm-test-DPoLsvKz.js +0 -2364
- package/bundled-test-harness/assets/realm-token-refresh-test-Ch35Siwi.js +0 -153
- package/bundled-test-harness/assets/realm-url-tooltip-test-x8xWOENK.js +0 -78
- package/bundled-test-harness/assets/reasoning-test-BxpE8Jvf.js +0 -221
- package/bundled-test-harness/assets/recent-files-test-DTmEzPLq.js +0 -450
- package/bundled-test-harness/assets/reindex-realm-test-BQ8KULn4.js +0 -117
- package/bundled-test-harness/assets/relationship-loading-state-test-BJoArPWf.js +0 -290
- package/bundled-test-harness/assets/remix-card-test-DsTA1KoG.js +0 -58
- package/bundled-test-harness/assets/rendered-markdown-DvukulDO.js +0 -292
- package/bundled-test-harness/assets/rendered-markdown-test-DxGptXSV.js +0 -587
- package/bundled-test-harness/assets/resident-instance-reuse-test-ZWnVu8uj.js +0 -82
- package/bundled-test-harness/assets/result-tile-CPyI6Vmv.js +0 -144
- package/bundled-test-harness/assets/rich-markdown-field-test-CdygoXIO.js +0 -1647
- package/bundled-test-harness/assets/room-message-test-D3NfMqH0.js +0 -484
- package/bundled-test-harness/assets/run-D_Px28eF.js +0 -3956
- package/bundled-test-harness/assets/run-realm-code-qWCZxmJ7.js +0 -2964
- package/bundled-test-harness/assets/run-realm-code-test-UzyeEJq6.js +0 -3844
- package/bundled-test-harness/assets/sanitize-module-list-test-Babq44bP.js +0 -85
- package/bundled-test-harness/assets/save-card-skip-index-wait-test-BcELXlQ_.js +0 -89
- package/bundled-test-harness/assets/schema-editor-test-CEvruZbt.js +0 -785
- package/bundled-test-harness/assets/schema-generation-test-hYAMdCrn.js +0 -28
- package/bundled-test-harness/assets/scrolling-test-DVIsh-_1.js +0 -412
- package/bundled-test-harness/assets/search-adorn-test-CkVhqFd0.js +0 -136
- package/bundled-test-harness/assets/search-and-choose-test-DUhOB3FV.js +0 -154
- package/bundled-test-harness/assets/search-correlation-id-test-Drn4r26N.js +0 -139
- package/bundled-test-harness/assets/search-entries-result-test-DTCRJ_wc.js +0 -234
- package/bundled-test-harness/assets/search-entries-test-CE0B47pw.js +0 -1486
- package/bundled-test-harness/assets/search-entries-tool-test-C4aG0ckM.js +0 -504
- package/bundled-test-harness/assets/search-google-images-test-LyhcB2f3.js +0 -166
- package/bundled-test-harness/assets/search-results-D4pSne0x.js +0 -266
- package/bundled-test-harness/assets/search-results-test-CRZHhqhn.js +0 -578
- package/bundled-test-harness/assets/search-selection-menu-test-B7Y3E_nj.js +0 -108
- package/bundled-test-harness/assets/search-sheet-files-test-C2y534g8.js +0 -126
- package/bundled-test-harness/assets/search-sheet-persistence-test-DePC59Bk.js +0 -131
- package/bundled-test-harness/assets/search-test-Dy8NxFkU.js +0 -2249
- package/bundled-test-harness/assets/search-tool-test-lctDaMH3.js +0 -156
- package/bundled-test-harness/assets/searchable-option-test-CE64M8oM.js +0 -322
- package/bundled-test-harness/assets/searchable-search-doc-test-C6u3mVvT.js +0 -1271
- package/bundled-test-harness/assets/section-rail-B_UQX00B.js +0 -113
- package/bundled-test-harness/assets/section-rail-test-DIda7MIw.js +0 -256
- package/bundled-test-harness/assets/secure-sign-in-CqqqfQG8.js +0 -174
- package/bundled-test-harness/assets/secure-sign-in-test-DimbVr_W.js +0 -373
- package/bundled-test-harness/assets/segmented-control-iePxSdTS.js +0 -173
- package/bundled-test-harness/assets/select-tNs6_xwW.js +0 -175
- package/bundled-test-harness/assets/send-ai-assistant-message-test-2GVrMF9Z.js +0 -52
- package/bundled-test-harness/assets/send-bot-trigger-event-test-B_3dKfGN.js +0 -56
- package/bundled-test-harness/assets/send-request-via-proxy-test-_clNWyYc.js +0 -380
- package/bundled-test-harness/assets/sending-test-DCPFXUVg.js +0 -659
- package/bundled-test-harness/assets/serialization-rri-form-audit-test-BI0zCs8Y.js +0 -136
- package/bundled-test-harness/assets/serialization-test-bjdtVlZL.js +0 -8758
- package/bundled-test-harness/assets/set-user-system-card-test-BUv1vL08.js +0 -59
- package/bundled-test-harness/assets/setup-BW1mmC7C.js +0 -772
- package/bundled-test-harness/assets/setup-DsIcFT-T.js +0 -2
- package/bundled-test-harness/assets/shared-link-target-reuse-test-9NeJEjkb.js +0 -207
- package/bundled-test-harness/assets/show-card-test-mfyLwusD.js +0 -365
- package/bundled-test-harness/assets/signed-capture-link-test-BOtKNCAM.js +0 -132
- package/bundled-test-harness/assets/single-stack-test-B4MGjaLk.js +0 -652
- package/bundled-test-harness/assets/skills-test-BuP-Yzk1.js +0 -648
- package/bundled-test-harness/assets/skip-boot-index-guard-test-Cmrx2-K7.js +0 -46
- package/bundled-test-harness/assets/spec-test-BhZDdhVQ.js +0 -1077
- package/bundled-test-harness/assets/spinner-CpIBUG9m.js +0 -49
- package/bundled-test-harness/assets/src-DGHttmW-.js +0 -216
- package/bundled-test-harness/assets/src-DaNDSbp7.js +0 -5
- package/bundled-test-harness/assets/stick-to-bottom-resize-test-Dpy3OVum.js +0 -56
- package/bundled-test-harness/assets/store-add-test-_IYS8o74.js +0 -50
- package/bundled-test-harness/assets/store-module-rebuild-test-B5VMaICy.js +0 -454
- package/bundled-test-harness/assets/store-search-test-C2VZabrH.js +0 -175
- package/bundled-test-harness/assets/store-test-D6PObxoD.js +0 -3672
- package/bundled-test-harness/assets/structured-theme-test-BHjVeMf-.js +0 -377
- package/bundled-test-harness/assets/summarize-session-test-BFtTuhe0.js +0 -172
- package/bundled-test-harness/assets/svg-image-def-test-BL6lkWUX.js +0 -167
- package/bundled-test-harness/assets/switch-submode-test-6Uv3bZMl.js +0 -168
- package/bundled-test-harness/assets/sync-openrouter-models-test-Dp9E05tL.js +0 -97
- package/bundled-test-harness/assets/test-support-DYm8XZ0E.js +0 -3
- package/bundled-test-harness/assets/test-support-DfnhiIMV.js +0 -99
- package/bundled-test-harness/assets/tests-CZk0Iag2.js +0 -3596
- package/bundled-test-harness/assets/text-file-def-test-CHdC0yIU.js +0 -94
- package/bundled-test-harness/assets/text-input-validator-test-B9ZR8XPU.js +0 -156
- package/bundled-test-harness/assets/text-suggestion-test-CGLspKFQ.js +0 -340
- package/bundled-test-harness/assets/theme-card-test-CXZvSEvG.js +0 -621
- package/bundled-test-harness/assets/theme-dashboard-nav-test-CkEE0ILk.js +0 -196
- package/bundled-test-harness/assets/theme-scheme-island-test-URXTjipF.js +0 -264
- package/bundled-test-harness/assets/titles-C6enAdIv.js +0 -2
- package/bundled-test-harness/assets/titles-Dft1HoUT.js +0 -52
- package/bundled-test-harness/assets/to-device-streaming-test-D33ZOc9o.js +0 -163
- package/bundled-test-harness/assets/token-usage-test-BHQlU4J4.js +0 -160
- package/bundled-test-harness/assets/tools-CrudqfS3.js +0 -774
- package/bundled-test-harness/assets/tools-calling-test-jo7IREau.js +0 -200
- package/bundled-test-harness/assets/tools-test-D1wMfUa0.js +0 -1624
- package/bundled-test-harness/assets/tools-test-Dn1LYsXp.js +0 -3204
- package/bundled-test-harness/assets/tooltip-8Wyz4IIn.css +0 -68
- package/bundled-test-harness/assets/tooltip-CqwLzRz5.js +0 -134
- package/bundled-test-harness/assets/transform-cards-test-BPhwPFtp.js +0 -341
- package/bundled-test-harness/assets/ts-file-def-preview-test-Bq3zTgw8.js +0 -95
- package/bundled-test-harness/assets/ts-file-def-test-GLswMl7O.js +0 -92
- package/bundled-test-harness/assets/ttf-font-def-test-DQulvUWs.js +0 -206
- package/bundled-test-harness/assets/turn-settling-test-BspmOUQP.js +0 -160
- package/bundled-test-harness/assets/turn-summary-9A8nvC0-.js +0 -1039
- package/bundled-test-harness/assets/unpublish-realm-test-SkYPEhDz.js +0 -102
- package/bundled-test-harness/assets/update-room-skills-test-cTxb-WU6.js +0 -240
- package/bundled-test-harness/assets/use-ai-assistant-test-uaqW1T_A.js +0 -384
- package/bundled-test-harness/assets/user-message-BudkIP-3.js +0 -262
- package/bundled-test-harness/assets/validate-realm-test-DxrGgH9n.js +0 -67
- package/bundled-test-harness/assets/video-metadata-extractor-test-B2pe-Iqa.js +0 -520
- package/bundled-test-harness/assets/view-visually-test-PNon6fUo.js +0 -335
- package/bundled-test-harness/assets/virtual-network-reset-test-uYJLaQHf.js +0 -96
- package/bundled-test-harness/assets/wav-audio-def-test-F4OrFFR4.js +0 -160
- package/bundled-test-harness/assets/webp-image-def-test-B0a_-Vya.js +0 -226
- package/bundled-test-harness/assets/workspace-Cyftysy9.js +0 -440
- package/bundled-test-harness/assets/workspace-a11y-test-sKiPDcbl.js +0 -197
- package/bundled-test-harness/assets/workspace-actions-BuawjFmZ.js +0 -561
- package/bundled-test-harness/assets/workspace-behavior-test-CKa-pb3T.js +0 -338
- package/bundled-test-harness/assets/workspace-delete-multiple-test-Dt2weG5R.js +0 -212
- package/bundled-test-harness/assets/workspace-delete-summary-test-CkqgFqZ8.js +0 -63
- package/bundled-test-harness/assets/workspace-hosting-test-Ci7EEtHP.js +0 -138
- package/bundled-test-harness/assets/workspace-indexing-test-BPVxxY6W.js +0 -71
- package/bundled-test-harness/assets/workspace-test-CWr7vFbg.js +0 -385
- package/bundled-test-harness/assets/workspace-test-INNpQovc.js +0 -51
- package/bundled-test-harness/assets/workspace-timestamp-labels-test-CigQb5wr.js +0 -68
- package/bundled-test-harness/assets/workspace-unit-test-BwVKpuXT.js +0 -122
- package/bundled-test-harness/assets/write-binary-file-test-BKP3gv1k.js +0 -124
- package/bundled-test-harness/assets/write-text-file-test-B6ijTKTa.js +0 -191
- package/bundled-test-harness/assets/zip-archive-test-C-PBzkTn.js +0 -285
- package/bundled-test-harness/assets/zip-file-def-test-FyCzJT-9.js +0 -164
|
@@ -0,0 +1,1093 @@
|
|
|
1
|
+
import { s as __toESM } from "./chunk-Rp0pCe6z.js";
|
|
2
|
+
import { Br as testRealmURL, Zr as delay, c as hasExecutableExtension } from "./runtime-common-BTaLJEw-.js";
|
|
3
|
+
import { t as config } from "./environment-DIUJgBKt.js";
|
|
4
|
+
import { M as waitUntil } from "./dist-BOAdzfkP.js";
|
|
5
|
+
import { t as CheckCorrectnessTool } from "./check-correctness-UcmAxEhS.js";
|
|
6
|
+
import { t as PatchCardInstanceTool } from "./patch-card-instance-_uyQMYb9.js";
|
|
7
|
+
import { t as RunRealmCodeTool } from "./run-realm-code-DsBUf1si.js";
|
|
8
|
+
import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
|
|
9
|
+
import { F as setupLocalIndexing, L as setupRealmCacheTeardown, P as setupIntegrationTestRealm, Z as withCachedRealmSetup, h as createPrerenderAuth, lt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-FjsXmU7-.js";
|
|
10
|
+
import { r as getService } from "./dist-CPfIHBla.js";
|
|
11
|
+
//#region tests/integration/tools/check-correctness-test.gts
|
|
12
|
+
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
13
|
+
function petDocument(name, hasError) {
|
|
14
|
+
return JSON.stringify({ data: {
|
|
15
|
+
type: "card",
|
|
16
|
+
attributes: {
|
|
17
|
+
name,
|
|
18
|
+
hasError
|
|
19
|
+
},
|
|
20
|
+
meta: { adoptsFrom: {
|
|
21
|
+
module: "../pet",
|
|
22
|
+
name: "Pet"
|
|
23
|
+
} }
|
|
24
|
+
} }, null, 2);
|
|
25
|
+
}
|
|
26
|
+
function ticketDocument(overrides = {}) {
|
|
27
|
+
return JSON.stringify({ data: {
|
|
28
|
+
type: "card",
|
|
29
|
+
attributes: overrides.attributes ?? {
|
|
30
|
+
status: "New",
|
|
31
|
+
timers: [{
|
|
32
|
+
label: "First response",
|
|
33
|
+
hours: 4
|
|
34
|
+
}]
|
|
35
|
+
},
|
|
36
|
+
relationships: overrides.relationships ?? { customer: { links: { self: "../Pet/billy" } } },
|
|
37
|
+
meta: {
|
|
38
|
+
adoptsFrom: {
|
|
39
|
+
module: "../ticket",
|
|
40
|
+
name: "Ticket"
|
|
41
|
+
},
|
|
42
|
+
...overrides.metaFields ? { fields: overrides.metaFields } : {}
|
|
43
|
+
}
|
|
44
|
+
} }, null, 2);
|
|
45
|
+
}
|
|
46
|
+
function milestoneModule(template) {
|
|
47
|
+
return `import { contains, field, CardDef, Component } from '@cardstack/base/card-api';
|
|
48
|
+
import StringField from '@cardstack/base/string';
|
|
49
|
+
import DateField from '@cardstack/base/date';
|
|
50
|
+
${template.includes("isoDay") ? `
|
|
51
|
+
function isoDay(value: unknown) {
|
|
52
|
+
return new Date(value + 'T12:00:00Z').toISOString();
|
|
53
|
+
}
|
|
54
|
+
` : ""}
|
|
55
|
+
export class Milestone extends CardDef {
|
|
56
|
+
static displayName = 'Milestone';
|
|
57
|
+
@field title = contains(StringField);
|
|
58
|
+
@field date = contains(DateField);
|
|
59
|
+
static isolated = class Isolated extends Component<typeof this> {
|
|
60
|
+
<template>
|
|
61
|
+
${template}
|
|
62
|
+
</template>
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
`;
|
|
66
|
+
}
|
|
67
|
+
function milestoneDocument(title) {
|
|
68
|
+
return { data: {
|
|
69
|
+
type: "card",
|
|
70
|
+
attributes: {
|
|
71
|
+
title,
|
|
72
|
+
date: "2026-11-08"
|
|
73
|
+
},
|
|
74
|
+
meta: { adoptsFrom: {
|
|
75
|
+
module: "../milestone",
|
|
76
|
+
name: "Milestone"
|
|
77
|
+
} }
|
|
78
|
+
} };
|
|
79
|
+
}
|
|
80
|
+
function mountPrerenderEndpoints() {
|
|
81
|
+
let localIndexer = getService("local-indexer");
|
|
82
|
+
let realmServerURL = getService("realm-server").url;
|
|
83
|
+
let renderedCards = [];
|
|
84
|
+
getService("network").virtualNetwork.mount(async (request) => {
|
|
85
|
+
let { origin, pathname } = new URL(request.url);
|
|
86
|
+
if (origin !== realmServerURL.origin || pathname !== "/_prerender-module" && pathname !== "/_prerender-card") return null;
|
|
87
|
+
let { realm, url } = (await request.json()).data.attributes;
|
|
88
|
+
let args = {
|
|
89
|
+
affinityType: "realm",
|
|
90
|
+
affinityValue: realm,
|
|
91
|
+
realm,
|
|
92
|
+
url,
|
|
93
|
+
auth: createPrerenderAuth("@testuser:localhost", {})
|
|
94
|
+
};
|
|
95
|
+
let attributes;
|
|
96
|
+
if (pathname === "/_prerender-module") attributes = await localIndexer.prerenderer.prerenderModule(args);
|
|
97
|
+
else {
|
|
98
|
+
renderedCards.push(url);
|
|
99
|
+
attributes = (await localIndexer.prerenderer.prerenderVisit({
|
|
100
|
+
...args,
|
|
101
|
+
renderOptions: { cardRender: true }
|
|
102
|
+
})).card;
|
|
103
|
+
}
|
|
104
|
+
return new Response(JSON.stringify({ data: {
|
|
105
|
+
type: "prerender-result",
|
|
106
|
+
id: url,
|
|
107
|
+
attributes
|
|
108
|
+
} }), {
|
|
109
|
+
status: 201,
|
|
110
|
+
headers: { "content-type": "application/vnd.api+json" }
|
|
111
|
+
});
|
|
112
|
+
}, { prepend: true });
|
|
113
|
+
return renderedCards;
|
|
114
|
+
}
|
|
115
|
+
function serveUnrenderedInstances(prefix) {
|
|
116
|
+
getService("network").virtualNetwork.mount(async (request) => {
|
|
117
|
+
if (!request.url.startsWith(prefix) || request.headers.get("x-boxel-link-shape") !== "links-only") return null;
|
|
118
|
+
return new Response(JSON.stringify({ data: {
|
|
119
|
+
type: "card",
|
|
120
|
+
id: request.url,
|
|
121
|
+
attributes: {},
|
|
122
|
+
meta: {
|
|
123
|
+
adoptsFrom: {
|
|
124
|
+
module: "../milestone",
|
|
125
|
+
name: "Milestone"
|
|
126
|
+
},
|
|
127
|
+
generation: 1e6
|
|
128
|
+
}
|
|
129
|
+
} }), { headers: { "content-type": "application/vnd.card+json" } });
|
|
130
|
+
}, { prepend: true });
|
|
131
|
+
}
|
|
132
|
+
function announceRendersWithIndexEvents() {
|
|
133
|
+
let messageService = getService("message-service");
|
|
134
|
+
let renders = { announced: 0 };
|
|
135
|
+
messageService.subscribe(testRealmURL, (event) => {
|
|
136
|
+
if (event.eventName !== "index" || event.indexType !== "incremental" || event.generation === void 0) return;
|
|
137
|
+
let generation = event.generation;
|
|
138
|
+
let invalidations = event.invalidations.map((href) => hasExecutableExtension(href) ? href : `${href}.json`);
|
|
139
|
+
Promise.resolve().then(() => {
|
|
140
|
+
messageService.relayRealmEvent({
|
|
141
|
+
eventName: "prerender_html",
|
|
142
|
+
invalidations,
|
|
143
|
+
generation,
|
|
144
|
+
realmURL: testRealmURL
|
|
145
|
+
});
|
|
146
|
+
renders.announced++;
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
return renders;
|
|
150
|
+
}
|
|
151
|
+
function overwriteScript(path, content) {
|
|
152
|
+
let p = JSON.stringify(path);
|
|
153
|
+
return `await realm.fs.replace(${p}, await realm.fs.readText(${p}), ${JSON.stringify(content)});`;
|
|
154
|
+
}
|
|
155
|
+
function writeTextScript(path, content) {
|
|
156
|
+
return `await realm.fs.writeText(${JSON.stringify(path)}, ${JSON.stringify(content)});`;
|
|
157
|
+
}
|
|
158
|
+
(0, import_qunit.module)("Integration | tools | check-correctness", function(hooks) {
|
|
159
|
+
setupRenderingTest(hooks);
|
|
160
|
+
setupLocalIndexing(hooks);
|
|
161
|
+
let mockMatrixUtils = setupMockMatrix(hooks, {
|
|
162
|
+
autostart: true,
|
|
163
|
+
loggedInAs: "@testuser:localhost",
|
|
164
|
+
activeRealms: [testRealmURL]
|
|
165
|
+
});
|
|
166
|
+
setupRealmCacheTeardown(hooks);
|
|
167
|
+
let testRealm;
|
|
168
|
+
hooks.beforeEach(async function() {
|
|
169
|
+
await withCachedRealmSetup(async () => {
|
|
170
|
+
({realm: testRealm} = await setupIntegrationTestRealm({
|
|
171
|
+
mockMatrixUtils,
|
|
172
|
+
contents: {
|
|
173
|
+
"milestone.gts": milestoneModule("<h1>{{@model.title}}</h1>"),
|
|
174
|
+
"Milestone/launch.json": milestoneDocument("Product launch"),
|
|
175
|
+
"pet.gts": `
|
|
176
|
+
import { contains, field, CardDef } from "@cardstack/base/card-api";
|
|
177
|
+
import StringField from "@cardstack/base/string";
|
|
178
|
+
import BooleanField from "@cardstack/base/boolean";
|
|
179
|
+
export class Pet extends CardDef {
|
|
180
|
+
static displayName = 'Pet';
|
|
181
|
+
@field name = contains(StringField);
|
|
182
|
+
@field hasError = contains(BooleanField);
|
|
183
|
+
@field boom = contains(StringField, {
|
|
184
|
+
computeVia: function (this: Pet) {
|
|
185
|
+
if (this.hasError) {
|
|
186
|
+
throw new Error('Name cannot be "Bill"');
|
|
187
|
+
}
|
|
188
|
+
return 'ok';
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
`,
|
|
193
|
+
"ticket.gts": `
|
|
194
|
+
import { contains, containsMany, field, linksTo, linksToMany, CardDef, FieldDef } from "@cardstack/base/card-api";
|
|
195
|
+
import { FileDef } from "@cardstack/base/file-api";
|
|
196
|
+
import StringField from "@cardstack/base/string";
|
|
197
|
+
import NumberField from "@cardstack/base/number";
|
|
198
|
+
import enumField from "@cardstack/base/enum";
|
|
199
|
+
import { Pet } from "./pet";
|
|
200
|
+
const StatusField = enumField(StringField, {
|
|
201
|
+
options: ['New', 'Open', 'Pending', 'Resolved'],
|
|
202
|
+
});
|
|
203
|
+
export class SlaTimerField extends FieldDef {
|
|
204
|
+
static displayName = 'SlaTimer';
|
|
205
|
+
@field label = contains(StringField);
|
|
206
|
+
@field hours = contains(NumberField);
|
|
207
|
+
}
|
|
208
|
+
export class TicketItemField extends FieldDef {
|
|
209
|
+
static displayName = 'TicketItem';
|
|
210
|
+
@field label = contains(StringField);
|
|
211
|
+
}
|
|
212
|
+
export class AssignedItemField extends TicketItemField {
|
|
213
|
+
static displayName = 'AssignedItem';
|
|
214
|
+
@field assignee = linksTo(Pet);
|
|
215
|
+
}
|
|
216
|
+
export class Ticket extends CardDef {
|
|
217
|
+
static displayName = 'Ticket';
|
|
218
|
+
@field status = contains(StatusField);
|
|
219
|
+
@field customer = linksTo(Pet);
|
|
220
|
+
@field reference = linksTo(CardDef);
|
|
221
|
+
@field attachment = linksTo(FileDef);
|
|
222
|
+
@field watchers = linksToMany(Pet);
|
|
223
|
+
@field timers = containsMany(SlaTimerField);
|
|
224
|
+
@field items = containsMany(TicketItemField);
|
|
225
|
+
}
|
|
226
|
+
`,
|
|
227
|
+
"Ticket/t1.json": { data: {
|
|
228
|
+
type: "card",
|
|
229
|
+
attributes: {
|
|
230
|
+
status: "New",
|
|
231
|
+
timers: [{
|
|
232
|
+
label: "First response",
|
|
233
|
+
hours: 4
|
|
234
|
+
}]
|
|
235
|
+
},
|
|
236
|
+
relationships: { customer: { links: { self: "../Pet/billy" } } },
|
|
237
|
+
meta: { adoptsFrom: {
|
|
238
|
+
module: "../ticket",
|
|
239
|
+
name: "Ticket"
|
|
240
|
+
} }
|
|
241
|
+
} },
|
|
242
|
+
"ticket-notes.txt": "Ticket notes",
|
|
243
|
+
"Pet/gone.json": { data: {
|
|
244
|
+
type: "card",
|
|
245
|
+
attributes: {
|
|
246
|
+
name: "Gone",
|
|
247
|
+
hasError: false
|
|
248
|
+
},
|
|
249
|
+
meta: { adoptsFrom: {
|
|
250
|
+
module: "../pet",
|
|
251
|
+
name: "Pet"
|
|
252
|
+
} }
|
|
253
|
+
} },
|
|
254
|
+
"settings.json": {
|
|
255
|
+
type: "module",
|
|
256
|
+
meta: { version: 1 },
|
|
257
|
+
attributes: { enabled: true }
|
|
258
|
+
},
|
|
259
|
+
"Pet/billy.json": { data: {
|
|
260
|
+
type: "card",
|
|
261
|
+
attributes: {
|
|
262
|
+
name: "Billy",
|
|
263
|
+
hasError: false
|
|
264
|
+
},
|
|
265
|
+
meta: { adoptsFrom: {
|
|
266
|
+
module: "../pet",
|
|
267
|
+
name: "Pet"
|
|
268
|
+
} }
|
|
269
|
+
} }
|
|
270
|
+
}
|
|
271
|
+
}));
|
|
272
|
+
});
|
|
273
|
+
let realmService = getService("realm");
|
|
274
|
+
getService("message-service").register();
|
|
275
|
+
await realmService.login(testRealmURL);
|
|
276
|
+
});
|
|
277
|
+
(0, import_qunit.test)("reports card instance correctness when PatchCardInstanceTool is used", async function(assert) {
|
|
278
|
+
let toolService = getService("tool-service");
|
|
279
|
+
let store = getService("store");
|
|
280
|
+
let { Pet } = await getService("loader-service").loader.import(`${testRealmURL}pet`);
|
|
281
|
+
let cardId = `${testRealmURL}Pet/billy`;
|
|
282
|
+
store.addReference(cardId);
|
|
283
|
+
await store.waitForCardLoad(cardId);
|
|
284
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
285
|
+
let runRealmCodeCommand = new RunRealmCodeTool(toolService.toolContext);
|
|
286
|
+
let roomId = "!room:example.com";
|
|
287
|
+
let firstResult = await command.execute({
|
|
288
|
+
targetType: "card",
|
|
289
|
+
targetRef: cardId,
|
|
290
|
+
roomId
|
|
291
|
+
});
|
|
292
|
+
assert.true(firstResult.correct, "initial run reports no errors");
|
|
293
|
+
assert.deepEqual(firstResult.warnings, [], "initial run reports no warnings");
|
|
294
|
+
await new PatchCardInstanceTool(toolService.toolContext, { cardType: Pet }).execute({
|
|
295
|
+
cardId,
|
|
296
|
+
patch: { attributes: {
|
|
297
|
+
name: "Bill",
|
|
298
|
+
hasError: true
|
|
299
|
+
} },
|
|
300
|
+
roomId
|
|
301
|
+
});
|
|
302
|
+
let secondResult = await command.execute({
|
|
303
|
+
targetType: "card",
|
|
304
|
+
targetRef: cardId,
|
|
305
|
+
roomId
|
|
306
|
+
});
|
|
307
|
+
assert.false(secondResult.correct, "second run reports errors after invalid change");
|
|
308
|
+
assert.ok(secondResult.errors.some((e) => e.includes("Name cannot be \"Bill\"")), "reports the validation error from the card constructor");
|
|
309
|
+
let revertResult = await runRealmCodeCommand.execute({
|
|
310
|
+
realm: testRealmURL,
|
|
311
|
+
roomId,
|
|
312
|
+
code: overwriteScript("Pet/billy.json", petDocument("Billy", false))
|
|
313
|
+
});
|
|
314
|
+
assert.strictEqual(revertResult.files[0]?.status, "saved", "revert write is saved");
|
|
315
|
+
let thirdResult = await command.execute({
|
|
316
|
+
targetType: "card",
|
|
317
|
+
targetRef: cardId,
|
|
318
|
+
roomId
|
|
319
|
+
});
|
|
320
|
+
assert.true(thirdResult.correct, "third run reports no errors");
|
|
321
|
+
assert.deepEqual(thirdResult.warnings, [], "third run reports no warnings");
|
|
322
|
+
});
|
|
323
|
+
(0, import_qunit.test)("reports card instance correctness when RunRealmCodeTool is used", async function(assert) {
|
|
324
|
+
let toolService = getService("tool-service");
|
|
325
|
+
let store = getService("store");
|
|
326
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
327
|
+
let runRealmCodeCommand = new RunRealmCodeTool(toolService.toolContext);
|
|
328
|
+
let cardId = `${testRealmURL}Pet/billy`;
|
|
329
|
+
let roomId = "!room:example.com";
|
|
330
|
+
store.addReference(cardId);
|
|
331
|
+
await store.waitForCardLoad(cardId);
|
|
332
|
+
let firstResult = await command.execute({
|
|
333
|
+
targetType: "card",
|
|
334
|
+
targetRef: cardId,
|
|
335
|
+
roomId
|
|
336
|
+
});
|
|
337
|
+
assert.true(firstResult.correct, "initial run reports no errors");
|
|
338
|
+
await runRealmCodeCommand.execute({
|
|
339
|
+
realm: testRealmURL,
|
|
340
|
+
roomId,
|
|
341
|
+
code: overwriteScript("Pet/billy.json", petDocument("Bill", true))
|
|
342
|
+
});
|
|
343
|
+
let secondResult = await command.execute({
|
|
344
|
+
targetType: "card",
|
|
345
|
+
targetRef: cardId,
|
|
346
|
+
roomId
|
|
347
|
+
});
|
|
348
|
+
assert.false(secondResult.correct, "second run reports errors");
|
|
349
|
+
assert.ok(secondResult.errors.some((e) => e.includes("Name cannot be \"Bill\"")), "reports the validation error from the card constructor");
|
|
350
|
+
let revertResult = await runRealmCodeCommand.execute({
|
|
351
|
+
realm: testRealmURL,
|
|
352
|
+
roomId,
|
|
353
|
+
code: overwriteScript("Pet/billy.json", petDocument("Billy", false))
|
|
354
|
+
});
|
|
355
|
+
assert.strictEqual(revertResult.files[0]?.status, "saved", "revert write is saved");
|
|
356
|
+
let thirdResult = await command.execute({
|
|
357
|
+
targetType: "card",
|
|
358
|
+
targetRef: cardId,
|
|
359
|
+
roomId
|
|
360
|
+
});
|
|
361
|
+
assert.true(thirdResult.correct, "third run reports no errors");
|
|
362
|
+
});
|
|
363
|
+
async function targetFields(targets) {
|
|
364
|
+
let { CorrectnessTargetField } = await getService("loader-service").loader.import("@cardstack/base/command");
|
|
365
|
+
return targets.map((target) => new CorrectnessTargetField(target));
|
|
366
|
+
}
|
|
367
|
+
(0, import_qunit.test)("checks several targets in one call and names the one that fails", async function(assert) {
|
|
368
|
+
let toolService = getService("tool-service");
|
|
369
|
+
let roomId = "!room:example.com";
|
|
370
|
+
await new RunRealmCodeTool(toolService.toolContext).execute({
|
|
371
|
+
realm: testRealmURL,
|
|
372
|
+
roomId,
|
|
373
|
+
code: writeTextScript("Pet/bill.json", petDocument("Bill", true))
|
|
374
|
+
});
|
|
375
|
+
let result = await new CheckCorrectnessTool(toolService.toolContext).execute({
|
|
376
|
+
roomId,
|
|
377
|
+
targets: await targetFields([
|
|
378
|
+
{
|
|
379
|
+
type: "card",
|
|
380
|
+
ref: `${testRealmURL}Pet/billy`
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
type: "card",
|
|
384
|
+
ref: `${testRealmURL}Pet/bill`
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
type: "file",
|
|
388
|
+
ref: `${testRealmURL}ticket-notes.txt`
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
type: "file",
|
|
392
|
+
ref: `${testRealmURL}settings.json`
|
|
393
|
+
}
|
|
394
|
+
])
|
|
395
|
+
});
|
|
396
|
+
assert.false(result.correct, "the check fails");
|
|
397
|
+
assert.strictEqual(result.checkedCount, 4, "every target was checked");
|
|
398
|
+
assert.strictEqual(result.passedCount, 3, "the other three passed");
|
|
399
|
+
assert.deepEqual(result.targetResults.map((entry) => entry.targetRef), [`${testRealmURL}Pet/bill`], "only the failing card has an entry");
|
|
400
|
+
assert.ok(result.targetResults[0]?.errors.some((error) => error.includes("Name cannot be \"Bill\"")), "with its error");
|
|
401
|
+
assert.ok(result.errors.some((error) => error.includes("Name cannot be \"Bill\"")), "the error is also among the result’s errors");
|
|
402
|
+
});
|
|
403
|
+
(0, import_qunit.test)("a check of several targets settles each target on its own", async function(assert) {
|
|
404
|
+
let toolService = getService("tool-service");
|
|
405
|
+
let environmentService = getService("environment-service");
|
|
406
|
+
let roomId = "!room:example.com";
|
|
407
|
+
let originalMaxSize = environmentService.fileSizeLimitBytes;
|
|
408
|
+
environmentService.fileSizeLimitBytes = 20;
|
|
409
|
+
try {
|
|
410
|
+
await assert.rejects(new RunRealmCodeTool(toolService.toolContext).execute({
|
|
411
|
+
realm: testRealmURL,
|
|
412
|
+
roomId,
|
|
413
|
+
code: writeTextScript("notes.txt", "x".repeat(21))
|
|
414
|
+
}), "the oversized write is refused");
|
|
415
|
+
let result = await new CheckCorrectnessTool(toolService.toolContext).execute({
|
|
416
|
+
roomId,
|
|
417
|
+
targets: await targetFields([{
|
|
418
|
+
type: "file",
|
|
419
|
+
ref: `${testRealmURL}notes.txt`
|
|
420
|
+
}, {
|
|
421
|
+
type: "card",
|
|
422
|
+
ref: `${testRealmURL}Pet/billy`
|
|
423
|
+
}])
|
|
424
|
+
});
|
|
425
|
+
assert.deepEqual(result.targetResults.map((entry) => entry.targetRef), [`${testRealmURL}notes.txt`], "the size limit fails only the oversized file");
|
|
426
|
+
assert.ok(result.targetResults[0]?.errors[0]?.includes("exceeds maximum allowed size (20 bytes)"), "with the size limit error");
|
|
427
|
+
assert.strictEqual(result.passedCount, 1, "the card is still checked");
|
|
428
|
+
} finally {
|
|
429
|
+
environmentService.fileSizeLimitBytes = originalMaxSize;
|
|
430
|
+
}
|
|
431
|
+
});
|
|
432
|
+
(0, import_qunit.test)("a one-target check answers as it always has", async function(assert) {
|
|
433
|
+
let result = await new CheckCorrectnessTool(getService("tool-service").toolContext).execute({
|
|
434
|
+
targetType: "card",
|
|
435
|
+
targetRef: `${testRealmURL}Pet/billy`,
|
|
436
|
+
roomId: "!room:example.com"
|
|
437
|
+
});
|
|
438
|
+
assert.true(result.correct);
|
|
439
|
+
assert.deepEqual(result.targetResults, [], "no per-target entries");
|
|
440
|
+
assert.notOk(result.checkedCount, "no counts");
|
|
441
|
+
});
|
|
442
|
+
(0, import_qunit.test)("a check of many targets gets more time", async function(assert) {
|
|
443
|
+
let cards = Array.from({ length: 20 }, (_, n) => ({
|
|
444
|
+
type: "card",
|
|
445
|
+
ref: `${testRealmURL}Pet/${n}`
|
|
446
|
+
}));
|
|
447
|
+
assert.strictEqual(CheckCorrectnessTool.extraExecuteTimeMsFor({ targets: cards.slice(0, 8) }), 0, "one round fits the standard timeout");
|
|
448
|
+
assert.strictEqual(CheckCorrectnessTool.extraExecuteTimeMsFor({ targets: [...cards, {
|
|
449
|
+
type: "file",
|
|
450
|
+
ref: `${testRealmURL}pet.gts`
|
|
451
|
+
}] }), 3 * config.cardRenderTimeout, "three cards rounds and one module round: three more render timeouts");
|
|
452
|
+
assert.strictEqual(CheckCorrectnessTool.extraExecuteTimeMsFor({
|
|
453
|
+
targetType: "card",
|
|
454
|
+
targetRef: `${testRealmURL}Pet/billy`
|
|
455
|
+
}), 0, "a one-target check needs no more");
|
|
456
|
+
});
|
|
457
|
+
(0, import_qunit.test)("skips correctness checks for empty files", async function(assert) {
|
|
458
|
+
let toolService = getService("tool-service");
|
|
459
|
+
let runRealmCodeCommand = new RunRealmCodeTool(toolService.toolContext);
|
|
460
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
461
|
+
let roomId = "!room:example.com";
|
|
462
|
+
let emptyFileUrl = `${testRealmURL}empty.gts`;
|
|
463
|
+
let cardService = getService("card-service");
|
|
464
|
+
await runRealmCodeCommand.execute({
|
|
465
|
+
realm: testRealmURL,
|
|
466
|
+
roomId,
|
|
467
|
+
code: writeTextScript("empty.gts", "")
|
|
468
|
+
});
|
|
469
|
+
await waitUntil(async () => {
|
|
470
|
+
let { status, content } = await cardService.getSource(new URL(emptyFileUrl));
|
|
471
|
+
return status === 200 && content.trim() === "";
|
|
472
|
+
});
|
|
473
|
+
let result = await command.execute({
|
|
474
|
+
targetType: "file",
|
|
475
|
+
targetRef: emptyFileUrl,
|
|
476
|
+
roomId
|
|
477
|
+
});
|
|
478
|
+
assert.true(result.correct, "empty file reports as correct");
|
|
479
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
480
|
+
});
|
|
481
|
+
(0, import_qunit.test)("checks a module file named by a prefix-form identifier", async function(assert) {
|
|
482
|
+
let toolService = getService("tool-service");
|
|
483
|
+
let { virtualNetwork } = getService("network");
|
|
484
|
+
let testRealmPrefix = "@test/correctness-realm/";
|
|
485
|
+
virtualNetwork.addRealmMapping(testRealmPrefix, testRealmURL);
|
|
486
|
+
try {
|
|
487
|
+
await getService("card-service").saveSource(new URL(`${testRealmURL}prefixed-empty.gts`), "", "create-file");
|
|
488
|
+
let result = await new CheckCorrectnessTool(toolService.toolContext).execute({
|
|
489
|
+
targetType: "file",
|
|
490
|
+
targetRef: `${testRealmPrefix}prefixed-empty.gts`,
|
|
491
|
+
roomId: "!room:example.com"
|
|
492
|
+
});
|
|
493
|
+
assert.deepEqual(result.errors, [], "the module and its realm are found from the prefix-form identifier");
|
|
494
|
+
assert.true(result.correct, "the empty module reports as correct");
|
|
495
|
+
} finally {
|
|
496
|
+
virtualNetwork.removeRealmMapping(testRealmPrefix);
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
async function checkMilestoneEdit(template, afterWrite) {
|
|
500
|
+
let toolService = getService("tool-service");
|
|
501
|
+
let roomId = "!room:example.com";
|
|
502
|
+
await new RunRealmCodeTool(toolService.toolContext).execute({
|
|
503
|
+
realm: testRealmURL,
|
|
504
|
+
roomId,
|
|
505
|
+
code: overwriteScript("milestone.gts", milestoneModule(template))
|
|
506
|
+
});
|
|
507
|
+
await afterWrite?.();
|
|
508
|
+
return await new CheckCorrectnessTool(toolService.toolContext).execute({
|
|
509
|
+
targetType: "file",
|
|
510
|
+
targetRef: `${testRealmURL}milestone.gts`,
|
|
511
|
+
roomId
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
(0, import_qunit.test)("reports an instance whose render a module edit breaks", async function(assert) {
|
|
515
|
+
mountPrerenderEndpoints();
|
|
516
|
+
announceRendersWithIndexEvents();
|
|
517
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>");
|
|
518
|
+
assert.false(result.correct, "the broken render fails the check");
|
|
519
|
+
assert.strictEqual(result.errors.length, 1, "one error");
|
|
520
|
+
assert.ok(result.errors[0].startsWith(`${testRealmURL}Milestone/launch: `), `the error names the instance: ${result.errors[0]}`);
|
|
521
|
+
assert.ok(result.errors[0].includes("Invalid time value"), "the error carries the render error message");
|
|
522
|
+
assert.ok(result.errors[0].endsWith("(an instance of the edited module; the cause may be the edit or this card's own data)"), "the error says the cause may be the edit or the instance");
|
|
523
|
+
});
|
|
524
|
+
(0, import_qunit.test)("passes a module edit whose instances render", async function(assert) {
|
|
525
|
+
let renderedCards = mountPrerenderEndpoints();
|
|
526
|
+
announceRendersWithIndexEvents();
|
|
527
|
+
let result = await checkMilestoneEdit("<h2>{{@model.title}}</h2>");
|
|
528
|
+
assert.deepEqual(renderedCards, [], "the check renders nothing itself once the render job has");
|
|
529
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
530
|
+
assert.deepEqual(result.warnings, [], "the instance was rendered again, so it was checked");
|
|
531
|
+
assert.true(result.correct, "the edit passes");
|
|
532
|
+
});
|
|
533
|
+
(0, import_qunit.test)("checks an instance whose name holds a dot", async function(assert) {
|
|
534
|
+
mountPrerenderEndpoints();
|
|
535
|
+
await testRealm.write("Milestone/v1.2.json", JSON.stringify(milestoneDocument("Version 1.2")));
|
|
536
|
+
announceRendersWithIndexEvents();
|
|
537
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>");
|
|
538
|
+
assert.false(result.correct, "the broken render fails the check");
|
|
539
|
+
assert.ok(result.errors.some((error) => error.startsWith(`${testRealmURL}Milestone/v1.2: `)), `the instance named with a dot is checked: ${result.errors.join("; ")}`);
|
|
540
|
+
});
|
|
541
|
+
(0, import_qunit.test)("reads an instance's document without fetching its source", async function(assert) {
|
|
542
|
+
mountPrerenderEndpoints();
|
|
543
|
+
let renders = announceRendersWithIndexEvents();
|
|
544
|
+
let announcedBefore = renders.announced;
|
|
545
|
+
let cardURL = `${testRealmURL}Milestone/launch`;
|
|
546
|
+
let reads = {
|
|
547
|
+
source: 0,
|
|
548
|
+
document: 0
|
|
549
|
+
};
|
|
550
|
+
let result = await checkMilestoneEdit("<h2>{{@model.title}}</h2>", async () => {
|
|
551
|
+
await waitUntil(() => renders.announced > announcedBefore, { timeout: 1e4 });
|
|
552
|
+
getService("network").virtualNetwork.mount(async (request) => {
|
|
553
|
+
let accept = request.headers.get("Accept") ?? "";
|
|
554
|
+
if (request.url === `${cardURL}.json` && accept.includes("source")) reads.source++;
|
|
555
|
+
else if (request.url === cardURL && accept.includes("card+json")) reads.document++;
|
|
556
|
+
return null;
|
|
557
|
+
}, { prepend: true });
|
|
558
|
+
});
|
|
559
|
+
assert.true(result.correct, "the edit passes");
|
|
560
|
+
assert.strictEqual(reads.source, 0, "the instance's source is not read");
|
|
561
|
+
assert.ok(reads.document >= 1, "the instance's document is read");
|
|
562
|
+
assert.ok(reads.document <= 2, `the instance's document is read at most twice (${reads.document})`);
|
|
563
|
+
});
|
|
564
|
+
(0, import_qunit.test)("renders an instance itself when the render job has not reached it", async function(assert) {
|
|
565
|
+
getService("tool-service").__setWaitsForTesting({ renderJobWaitMs: 100 });
|
|
566
|
+
let renderedCards = mountPrerenderEndpoints();
|
|
567
|
+
let cardURL = `${testRealmURL}Milestone/launch`;
|
|
568
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>", async () => serveUnrenderedInstances(`${testRealmURL}Milestone/`));
|
|
569
|
+
assert.deepEqual(renderedCards, [`${cardURL}.json`], "the check renders the instance");
|
|
570
|
+
assert.false(result.correct, "the broken render fails the check");
|
|
571
|
+
assert.strictEqual(result.errors.length, 1, "one error");
|
|
572
|
+
assert.ok(result.errors[0].startsWith(`${cardURL}: `), `the error names the instance: ${result.errors[0]}`);
|
|
573
|
+
assert.ok(result.errors[0].includes("Invalid time value"), "the error carries the render error message");
|
|
574
|
+
assert.deepEqual(result.warnings, [], "the instance was checked");
|
|
575
|
+
});
|
|
576
|
+
(0, import_qunit.test)("renders at most three instances itself and says the rest were not checked", async function(assert) {
|
|
577
|
+
getService("tool-service").__setWaitsForTesting({ renderJobWaitMs: 100 });
|
|
578
|
+
let renderedCards = mountPrerenderEndpoints();
|
|
579
|
+
let files = /* @__PURE__ */ new Map();
|
|
580
|
+
for (let name of "abcd") files.set(`Milestone/${name}.json`, JSON.stringify(milestoneDocument(`Milestone ${name}`)));
|
|
581
|
+
await testRealm.writeMany(files);
|
|
582
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>", async () => serveUnrenderedInstances(`${testRealmURL}Milestone/`));
|
|
583
|
+
assert.strictEqual(renderedCards.length, 3, "three instances are rendered");
|
|
584
|
+
assert.strictEqual(result.errors.length, 3, "each rendered one fails");
|
|
585
|
+
assert.strictEqual(result.warnings.length, 2, "the two it did not render are named");
|
|
586
|
+
for (let warning of result.warnings) assert.ok(warning.endsWith(": not checked, because the indexer had not rendered it with the edited module yet, and a check renders at most 3 instances itself"), warning);
|
|
587
|
+
assert.false(result.correct, "the check fails");
|
|
588
|
+
});
|
|
589
|
+
(0, import_qunit.test)("says an instance whose render request fails was not checked", async function(assert) {
|
|
590
|
+
getService("tool-service").__setWaitsForTesting({ renderJobWaitMs: 100 });
|
|
591
|
+
mountPrerenderEndpoints();
|
|
592
|
+
let realmServerURL = getService("realm-server").url;
|
|
593
|
+
getService("network").virtualNetwork.mount(async (request) => new URL(request.url).origin === realmServerURL.origin && new URL(request.url).pathname === "/_prerender-card" ? new Response("{}", { status: 500 }) : null, { prepend: true });
|
|
594
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>", async () => serveUnrenderedInstances(`${testRealmURL}Milestone/`));
|
|
595
|
+
assert.deepEqual(result.errors, [], "the failed render is not an error");
|
|
596
|
+
assert.deepEqual(result.warnings, [`${testRealmURL}Milestone/launch: not checked, because rendering it failed`], "the instance is named as not checked");
|
|
597
|
+
assert.true(result.correct, "the check passes");
|
|
598
|
+
});
|
|
599
|
+
(0, import_qunit.test)("does not check an instance deleted after the module write", async function(assert) {
|
|
600
|
+
mountPrerenderEndpoints();
|
|
601
|
+
announceRendersWithIndexEvents();
|
|
602
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>", async () => {
|
|
603
|
+
await testRealm.delete("Milestone/launch.json");
|
|
604
|
+
});
|
|
605
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
606
|
+
assert.deepEqual(result.warnings, [], "the check does not wait on the deleted instance");
|
|
607
|
+
assert.true(result.correct, "the edit passes");
|
|
608
|
+
});
|
|
609
|
+
(0, import_qunit.test)("passes a module edit with no instances", async function(assert) {
|
|
610
|
+
let toolService = getService("tool-service");
|
|
611
|
+
mountPrerenderEndpoints();
|
|
612
|
+
announceRendersWithIndexEvents();
|
|
613
|
+
let roomId = "!room:example.com";
|
|
614
|
+
await new RunRealmCodeTool(toolService.toolContext).execute({
|
|
615
|
+
realm: testRealmURL,
|
|
616
|
+
roomId,
|
|
617
|
+
code: writeTextScript("listing.gts", milestoneModule("<h1>{{@model.title}}</h1>").replace(/Milestone/g, "Listing"))
|
|
618
|
+
});
|
|
619
|
+
let result = await new CheckCorrectnessTool(toolService.toolContext).execute({
|
|
620
|
+
targetType: "file",
|
|
621
|
+
targetRef: `${testRealmURL}listing.gts`,
|
|
622
|
+
roomId
|
|
623
|
+
});
|
|
624
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
625
|
+
assert.deepEqual(result.warnings, [], "no warnings are reported");
|
|
626
|
+
assert.true(result.correct, "the module passes");
|
|
627
|
+
});
|
|
628
|
+
(0, import_qunit.test)("checks the instances open in the workspace first", async function(assert) {
|
|
629
|
+
mountPrerenderEndpoints();
|
|
630
|
+
announceRendersWithIndexEvents();
|
|
631
|
+
let files = /* @__PURE__ */ new Map();
|
|
632
|
+
for (let name of "abcdefghij") files.set(`Milestone/${name}.json`, JSON.stringify(milestoneDocument("2026-11-08")));
|
|
633
|
+
files.set("Milestone/z-open.json", JSON.stringify(milestoneDocument("Open milestone")));
|
|
634
|
+
await testRealm.writeMany(files);
|
|
635
|
+
let openCardId = `${testRealmURL}Milestone/z-open`;
|
|
636
|
+
getService("operator-mode-state-service").restore({ stacks: [[{
|
|
637
|
+
id: openCardId,
|
|
638
|
+
format: "isolated"
|
|
639
|
+
}]] });
|
|
640
|
+
let result = await checkMilestoneEdit("<h1>{{isoDay @model.title}}</h1>");
|
|
641
|
+
assert.false(result.correct, "the open instance fails the check");
|
|
642
|
+
assert.deepEqual(result.errors.map((error) => error.split(": ")[0]), [openCardId], "the open instance is checked and is the only one that fails");
|
|
643
|
+
});
|
|
644
|
+
(0, import_qunit.test)("reports errors in the order the instances are ranked", async function(assert) {
|
|
645
|
+
mountPrerenderEndpoints();
|
|
646
|
+
let openCardURL = `${testRealmURL}Milestone/z-open`;
|
|
647
|
+
await testRealm.write("Milestone/z-open.json", JSON.stringify(milestoneDocument("Open milestone")));
|
|
648
|
+
let renders = announceRendersWithIndexEvents();
|
|
649
|
+
let announcedBefore = renders.announced;
|
|
650
|
+
getService("operator-mode-state-service").restore({ stacks: [[{
|
|
651
|
+
id: openCardURL,
|
|
652
|
+
format: "isolated"
|
|
653
|
+
}]] });
|
|
654
|
+
let laterGeneration = 1e6;
|
|
655
|
+
let renderedLater = false;
|
|
656
|
+
let document = () => ({
|
|
657
|
+
data: {
|
|
658
|
+
type: "card",
|
|
659
|
+
id: openCardURL,
|
|
660
|
+
attributes: {},
|
|
661
|
+
meta: {
|
|
662
|
+
adoptsFrom: {
|
|
663
|
+
module: "../milestone",
|
|
664
|
+
name: "Milestone"
|
|
665
|
+
},
|
|
666
|
+
generation: laterGeneration
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
...renderedLater ? { meta: { renderError: {
|
|
670
|
+
status: 500,
|
|
671
|
+
message: "Invalid time value"
|
|
672
|
+
} } } : {}
|
|
673
|
+
});
|
|
674
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>", async () => {
|
|
675
|
+
await waitUntil(() => renders.announced > announcedBefore, { timeout: 1e4 });
|
|
676
|
+
getService("network").virtualNetwork.mount(async (request) => {
|
|
677
|
+
if (request.url !== openCardURL || !request.headers.get("Accept")?.includes("card+json")) return null;
|
|
678
|
+
let response = new Response(JSON.stringify(document()), { headers: { "content-type": "application/vnd.card+json" } });
|
|
679
|
+
if (!renderedLater) setTimeout(() => {
|
|
680
|
+
renderedLater = true;
|
|
681
|
+
getService("message-service").relayRealmEvent({
|
|
682
|
+
eventName: "prerender_html",
|
|
683
|
+
invalidations: [`${openCardURL}.json`],
|
|
684
|
+
generation: laterGeneration,
|
|
685
|
+
realmURL: testRealmURL
|
|
686
|
+
});
|
|
687
|
+
}, 100);
|
|
688
|
+
return response;
|
|
689
|
+
}, { prepend: true });
|
|
690
|
+
});
|
|
691
|
+
assert.deepEqual(result.errors.map((error) => error.split(": ")[0]), [openCardURL, `${testRealmURL}Milestone/launch`], "the open instance is reported first");
|
|
692
|
+
});
|
|
693
|
+
(0, import_qunit.test)("does not report an instance whose document cannot be read", async function(assert) {
|
|
694
|
+
mountPrerenderEndpoints();
|
|
695
|
+
let renders = announceRendersWithIndexEvents();
|
|
696
|
+
let announcedBefore = renders.announced;
|
|
697
|
+
let cardURL = `${testRealmURL}Milestone/launch`;
|
|
698
|
+
let result = await checkMilestoneEdit("<h1>{{@model.title}}</h1><p>{{isoDay @model.date}}</p>", async () => {
|
|
699
|
+
await waitUntil(() => renders.announced > announcedBefore, { timeout: 1e4 });
|
|
700
|
+
getService("network").virtualNetwork.mount(async (request) => request.url === cardURL && request.headers.get("Accept")?.includes("card+json") ? new Response("{}", { status: 500 }) : null, { prepend: true });
|
|
701
|
+
});
|
|
702
|
+
assert.deepEqual(result.errors, [], "the failed read is not an error");
|
|
703
|
+
assert.true(result.correct, "the check passes");
|
|
704
|
+
});
|
|
705
|
+
(0, import_qunit.test)("waits for the render of an instance indexed again after the module write", async function(assert) {
|
|
706
|
+
mountPrerenderEndpoints();
|
|
707
|
+
let renders = announceRendersWithIndexEvents();
|
|
708
|
+
let announcedBefore = renders.announced;
|
|
709
|
+
let cardURL = `${testRealmURL}Milestone/launch`;
|
|
710
|
+
let laterGeneration = 1e6;
|
|
711
|
+
let renderedLater = false;
|
|
712
|
+
let document = () => ({
|
|
713
|
+
data: {
|
|
714
|
+
type: "card",
|
|
715
|
+
id: cardURL,
|
|
716
|
+
attributes: {},
|
|
717
|
+
meta: {
|
|
718
|
+
adoptsFrom: {
|
|
719
|
+
module: "../milestone",
|
|
720
|
+
name: "Milestone"
|
|
721
|
+
},
|
|
722
|
+
generation: laterGeneration
|
|
723
|
+
}
|
|
724
|
+
},
|
|
725
|
+
...renderedLater ? { meta: { renderError: {
|
|
726
|
+
status: 500,
|
|
727
|
+
message: "Invalid time value"
|
|
728
|
+
} } } : {}
|
|
729
|
+
});
|
|
730
|
+
let result = await checkMilestoneEdit("<h2>{{@model.title}}</h2>", async () => {
|
|
731
|
+
await waitUntil(() => renders.announced > announcedBefore, { timeout: 1e4 });
|
|
732
|
+
getService("network").virtualNetwork.mount(async (request) => {
|
|
733
|
+
if (request.url !== cardURL || !request.headers.get("Accept")?.includes("card+json")) return null;
|
|
734
|
+
let response = new Response(JSON.stringify(document()), { headers: { "content-type": "application/vnd.card+json" } });
|
|
735
|
+
if (!renderedLater) setTimeout(() => {
|
|
736
|
+
renderedLater = true;
|
|
737
|
+
getService("message-service").relayRealmEvent({
|
|
738
|
+
eventName: "prerender_html",
|
|
739
|
+
invalidations: [`${cardURL}.json`],
|
|
740
|
+
generation: laterGeneration,
|
|
741
|
+
realmURL: testRealmURL
|
|
742
|
+
});
|
|
743
|
+
}, 100);
|
|
744
|
+
return response;
|
|
745
|
+
}, { prepend: true });
|
|
746
|
+
});
|
|
747
|
+
assert.deepEqual(result.errors, [`${cardURL}: Invalid time value (an instance of the edited module; the cause may be the edit or this card's own data)`], "the error from the later render is reported");
|
|
748
|
+
assert.false(result.correct, "the check fails");
|
|
749
|
+
});
|
|
750
|
+
(0, import_qunit.test)("a render wait counts only renders at or past each file's generation", async function(assert) {
|
|
751
|
+
let toolService = getService("tool-service");
|
|
752
|
+
let messageService = getService("message-service");
|
|
753
|
+
toolService.trackAiAssistantCardRequest({
|
|
754
|
+
action: "test",
|
|
755
|
+
roomId: "!room:example.com",
|
|
756
|
+
fileUrl: `${testRealmURL}milestone.gts`
|
|
757
|
+
});
|
|
758
|
+
let a = `${testRealmURL}Milestone/a.json`;
|
|
759
|
+
let b = `${testRealmURL}Milestone/b.json`;
|
|
760
|
+
let announce = (generation, invalidations) => messageService.relayRealmEvent({
|
|
761
|
+
eventName: "prerender_html",
|
|
762
|
+
invalidations,
|
|
763
|
+
generation,
|
|
764
|
+
realmURL: testRealmURL
|
|
765
|
+
});
|
|
766
|
+
let wait = async (files, timeoutMs) => [...await toolService.waitForRenderedHTML(testRealmURL, new Map(files), timeoutMs)];
|
|
767
|
+
announce(4, [a]);
|
|
768
|
+
assert.deepEqual(await wait([[a, 5]], 50), [], "a render below the file's generation does not count");
|
|
769
|
+
announce(5, [a]);
|
|
770
|
+
let start = Date.now();
|
|
771
|
+
assert.deepEqual(await wait([[a, 5]], 1e4), [a], "a render at the file's generation counts");
|
|
772
|
+
assert.ok(Date.now() - start < 1e3, "a wait already satisfied returns at once");
|
|
773
|
+
assert.deepEqual(await wait([[a, 5], [b, 5]], 50), [a], "a wait that times out returns the files rendered so far");
|
|
774
|
+
let waiting = wait([[b, 6]], 1e4);
|
|
775
|
+
announce(6, [b]);
|
|
776
|
+
assert.deepEqual(await waiting, [b], "a render announced during the wait ends it");
|
|
777
|
+
});
|
|
778
|
+
(0, import_qunit.test)("a realm's render watch ends once its module write's time is up and no wait holds it", async function(assert) {
|
|
779
|
+
let toolService = getService("tool-service");
|
|
780
|
+
let messageService = getService("message-service");
|
|
781
|
+
toolService.__setWaitsForTesting({ renderedHTMLWatchMs: 50 });
|
|
782
|
+
let a = `${testRealmURL}Milestone/a.json`;
|
|
783
|
+
let trackModuleWrite = () => toolService.trackAiAssistantCardRequest({
|
|
784
|
+
action: "test",
|
|
785
|
+
roomId: "!room:example.com",
|
|
786
|
+
fileUrl: `${testRealmURL}milestone.gts`
|
|
787
|
+
});
|
|
788
|
+
let announce = () => messageService.relayRealmEvent({
|
|
789
|
+
eventName: "prerender_html",
|
|
790
|
+
invalidations: [a],
|
|
791
|
+
generation: 1,
|
|
792
|
+
realmURL: testRealmURL
|
|
793
|
+
});
|
|
794
|
+
let wait = async () => [...await toolService.waitForRenderedHTML(testRealmURL, new Map([[a, 1]]), 1e4)];
|
|
795
|
+
trackModuleWrite();
|
|
796
|
+
await delay(150);
|
|
797
|
+
announce();
|
|
798
|
+
assert.deepEqual(await wait(), [], "a render announced after the write's time is up is not recorded");
|
|
799
|
+
trackModuleWrite();
|
|
800
|
+
let waiting = wait();
|
|
801
|
+
await delay(150);
|
|
802
|
+
announce();
|
|
803
|
+
assert.deepEqual(await waiting, [a], "a wait under way keeps the watch past the write's time");
|
|
804
|
+
assert.deepEqual(await wait(), [], "the watch ends with the last wait on it");
|
|
805
|
+
});
|
|
806
|
+
(0, import_qunit.test)("a wait that a newer write to its target replaces leaves the newer write tracked", async function(assert) {
|
|
807
|
+
let toolService = getService("tool-service");
|
|
808
|
+
let roomId = "!room:example.com";
|
|
809
|
+
let fileUrl = `${testRealmURL}milestone.gts`;
|
|
810
|
+
toolService.trackAiAssistantCardRequest({
|
|
811
|
+
action: "test",
|
|
812
|
+
roomId,
|
|
813
|
+
fileUrl
|
|
814
|
+
});
|
|
815
|
+
let first = toolService.waitForInvalidationAfterAIAssistantRequest(roomId, fileUrl, 1e4);
|
|
816
|
+
let clientRequestId = toolService.trackAiAssistantCardRequest({
|
|
817
|
+
action: "test",
|
|
818
|
+
roomId,
|
|
819
|
+
fileUrl
|
|
820
|
+
});
|
|
821
|
+
assert.strictEqual(await first, void 0, "the replaced wait ends without an index event");
|
|
822
|
+
let second = toolService.waitForInvalidationAfterAIAssistantRequest(roomId, fileUrl, 1e4);
|
|
823
|
+
getService("message-service").relayRealmEvent({
|
|
824
|
+
eventName: "index",
|
|
825
|
+
indexType: "incremental",
|
|
826
|
+
invalidations: [],
|
|
827
|
+
generation: 7,
|
|
828
|
+
clientRequestId,
|
|
829
|
+
realmURL: testRealmURL
|
|
830
|
+
});
|
|
831
|
+
assert.deepEqual(await second, {
|
|
832
|
+
invalidations: [],
|
|
833
|
+
generation: 7
|
|
834
|
+
}, "the newer write's wait gets its index event");
|
|
835
|
+
});
|
|
836
|
+
(0, import_qunit.test)("does not treat ordinary JSON configuration as a malformed card", async function(assert) {
|
|
837
|
+
let result = await new CheckCorrectnessTool(getService("tool-service").toolContext).execute({
|
|
838
|
+
targetType: "file",
|
|
839
|
+
targetRef: `${testRealmURL}settings.json`,
|
|
840
|
+
roomId: "!room:example.com"
|
|
841
|
+
});
|
|
842
|
+
assert.true(result.correct, "ordinary JSON is not treated as a card");
|
|
843
|
+
assert.deepEqual(result.errors, [], "no card-document errors are reported");
|
|
844
|
+
});
|
|
845
|
+
(0, import_qunit.test)("reports size limit errors for file writes", async function(assert) {
|
|
846
|
+
let toolService = getService("tool-service");
|
|
847
|
+
let environmentService = getService("environment-service");
|
|
848
|
+
let runRealmCodeCommand = new RunRealmCodeTool(toolService.toolContext);
|
|
849
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
850
|
+
let roomId = "!room:example.com";
|
|
851
|
+
let fileUrl = `${testRealmURL}notes.txt`;
|
|
852
|
+
let originalMaxSize = environmentService.fileSizeLimitBytes;
|
|
853
|
+
environmentService.fileSizeLimitBytes = 20;
|
|
854
|
+
try {
|
|
855
|
+
await assert.rejects(runRealmCodeCommand.execute({
|
|
856
|
+
realm: testRealmURL,
|
|
857
|
+
roomId,
|
|
858
|
+
code: writeTextScript("notes.txt", "x".repeat(21))
|
|
859
|
+
}), "the oversized write is refused");
|
|
860
|
+
let result = await command.execute({
|
|
861
|
+
targetType: "file",
|
|
862
|
+
targetRef: fileUrl,
|
|
863
|
+
roomId
|
|
864
|
+
});
|
|
865
|
+
assert.false(result.correct, "size limit error reports incorrect");
|
|
866
|
+
assert.ok(result.errors[0]?.includes("exceeds maximum allowed size (20 bytes)"), "error mentions size limit");
|
|
867
|
+
} finally {
|
|
868
|
+
environmentService.fileSizeLimitBytes = originalMaxSize;
|
|
869
|
+
}
|
|
870
|
+
});
|
|
871
|
+
(0, import_qunit.test)("reports size limit errors for card writes via PatchCardInstanceTool", async function(assert) {
|
|
872
|
+
let toolService = getService("tool-service");
|
|
873
|
+
let environmentService = getService("environment-service");
|
|
874
|
+
let loader = getService("loader-service").loader;
|
|
875
|
+
let store = getService("store");
|
|
876
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
877
|
+
let roomId = "!room:example.com";
|
|
878
|
+
let { Pet } = await loader.import(`${testRealmURL}pet`);
|
|
879
|
+
let cardId = `${testRealmURL}Pet/billy`;
|
|
880
|
+
store.addReference(cardId);
|
|
881
|
+
await store.waitForCardLoad(cardId);
|
|
882
|
+
let originalMaxSize = environmentService.cardSizeLimitBytes;
|
|
883
|
+
environmentService.cardSizeLimitBytes = 1e3;
|
|
884
|
+
try {
|
|
885
|
+
await new PatchCardInstanceTool(toolService.toolContext, { cardType: Pet }).execute({
|
|
886
|
+
cardId,
|
|
887
|
+
patch: { attributes: { name: "x".repeat(2e3) } },
|
|
888
|
+
roomId
|
|
889
|
+
});
|
|
890
|
+
let result = await command.execute({
|
|
891
|
+
targetType: "card",
|
|
892
|
+
targetRef: cardId,
|
|
893
|
+
roomId
|
|
894
|
+
});
|
|
895
|
+
assert.false(result.correct, "size limit error reports incorrect");
|
|
896
|
+
assert.ok(result.errors[0]?.includes("exceeds maximum allowed size (1000 bytes)"), "error mentions size limit");
|
|
897
|
+
} finally {
|
|
898
|
+
environmentService.cardSizeLimitBytes = originalMaxSize;
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
async function checkTicket(overrides) {
|
|
902
|
+
let toolService = getService("tool-service");
|
|
903
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
904
|
+
let roomId = "!room:example.com";
|
|
905
|
+
if (overrides) await new RunRealmCodeTool(toolService.toolContext).execute({
|
|
906
|
+
realm: testRealmURL,
|
|
907
|
+
roomId,
|
|
908
|
+
code: overwriteScript("Ticket/t1.json", ticketDocument(overrides))
|
|
909
|
+
});
|
|
910
|
+
return command.execute({
|
|
911
|
+
targetType: "file",
|
|
912
|
+
targetRef: `${testRealmURL}Ticket/t1.json`,
|
|
913
|
+
roomId
|
|
914
|
+
});
|
|
915
|
+
}
|
|
916
|
+
(0, import_qunit.test)("a valid instance passes with no warnings", async function(assert) {
|
|
917
|
+
let result = await checkTicket();
|
|
918
|
+
assert.true(result.correct, "valid instance is correct");
|
|
919
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
920
|
+
assert.deepEqual(result.warnings, [], "no warnings are reported");
|
|
921
|
+
});
|
|
922
|
+
(0, import_qunit.test)("warns about attributes and relationships the card type does not declare", async function(assert) {
|
|
923
|
+
let result = await checkTicket({
|
|
924
|
+
attributes: {
|
|
925
|
+
status: "New",
|
|
926
|
+
responseTimer: { hours: 4 },
|
|
927
|
+
resolutionTimer: { hours: 24 }
|
|
928
|
+
},
|
|
929
|
+
relationships: { requester: { links: { self: "../Pet/billy" } } }
|
|
930
|
+
});
|
|
931
|
+
assert.true(result.correct, "undeclared fields do not fail the check");
|
|
932
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
933
|
+
assert.strictEqual(result.warnings.length, 3, "three warnings");
|
|
934
|
+
assert.ok(result.warnings.some((w) => w.includes("\"responseTimer\" is not a field of Ticket")), "warns about the undeclared responseTimer attribute");
|
|
935
|
+
assert.ok(result.warnings.some((w) => w.includes("\"resolutionTimer\" is not a field of Ticket")), "warns about the undeclared resolutionTimer attribute");
|
|
936
|
+
assert.ok(result.warnings.some((w) => w.includes("relationships.requester") && w.includes("\"requester\" is not a field of Ticket")), "warns about the undeclared requester relationship");
|
|
937
|
+
});
|
|
938
|
+
(0, import_qunit.test)("warns about an enum value outside the allowed options (card target)", async function(assert) {
|
|
939
|
+
let toolService = getService("tool-service");
|
|
940
|
+
let runRealmCodeCommand = new RunRealmCodeTool(toolService.toolContext);
|
|
941
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
942
|
+
let roomId = "!room:example.com";
|
|
943
|
+
let cardId = `${testRealmURL}Ticket/t1`;
|
|
944
|
+
await runRealmCodeCommand.execute({
|
|
945
|
+
realm: testRealmURL,
|
|
946
|
+
roomId,
|
|
947
|
+
code: overwriteScript("Ticket/t1.json", ticketDocument({ attributes: { status: "open" } }))
|
|
948
|
+
});
|
|
949
|
+
let result = await command.execute({
|
|
950
|
+
targetType: "card",
|
|
951
|
+
targetRef: cardId,
|
|
952
|
+
roomId
|
|
953
|
+
});
|
|
954
|
+
assert.true(result.correct, "an out-of-range enum value does not fail the check");
|
|
955
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
956
|
+
assert.strictEqual(result.warnings.length, 1, "one warning");
|
|
957
|
+
assert.ok(result.warnings[0].includes("\"status\" value \"open\" is not one of the allowed options"), "warning names the field and the rejected value");
|
|
958
|
+
assert.ok(result.warnings[0].includes("\"New\", \"Open\", \"Pending\", \"Resolved\""), "warning lists the allowed options");
|
|
959
|
+
});
|
|
960
|
+
(0, import_qunit.test)("warns about values written in the wrong bucket", async function(assert) {
|
|
961
|
+
let result = await checkTicket({
|
|
962
|
+
attributes: {
|
|
963
|
+
customer: { links: { self: "../Pet/billy" } },
|
|
964
|
+
watchers: [{ links: { self: "../Pet/billy" } }]
|
|
965
|
+
},
|
|
966
|
+
relationships: { status: { links: { self: null } } }
|
|
967
|
+
});
|
|
968
|
+
assert.true(result.correct, "bucket mismatches do not fail the check");
|
|
969
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
970
|
+
assert.ok(result.warnings.some((w) => w.includes("\"customer\" is a linksTo relationship of Ticket but was written under \"attributes\"")), "warns about the relationship written under attributes");
|
|
971
|
+
assert.ok(result.warnings.some((w) => w.includes("\"status\" is a contains attribute of Ticket but was written under \"relationships\"")), "warns about the attribute written under relationships");
|
|
972
|
+
assert.ok(result.warnings.some((w) => w.includes("\"watchers\" is a linksToMany relationship of Ticket but was written under \"attributes\"") && w.includes("\"watchers.0\": { \"links\"")), "tells the AI to move a linksToMany as indexed keys");
|
|
973
|
+
});
|
|
974
|
+
(0, import_qunit.test)("warns about a relationship link whose target does not exist", async function(assert) {
|
|
975
|
+
let result = await checkTicket({ relationships: { customer: { links: { self: "../Pet/missing" } } } });
|
|
976
|
+
assert.true(result.correct, "a dangling link does not fail the check");
|
|
977
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
978
|
+
assert.strictEqual(result.warnings.length, 1, "one warning");
|
|
979
|
+
assert.ok(result.warnings[0].includes(`"customer" links to ${testRealmURL}Pet/missing, which does not exist`), "warning names the field and the resolved target");
|
|
980
|
+
});
|
|
981
|
+
(0, import_qunit.test)("does not flag a prefix-form link to a card that exists", async function(assert) {
|
|
982
|
+
let result = await checkTicket({ relationships: {
|
|
983
|
+
customer: { links: { self: "../Pet/billy" } },
|
|
984
|
+
reference: { links: { self: "@cardstack/base/cards/welcome-to-boxel" } }
|
|
985
|
+
} });
|
|
986
|
+
assert.true(result.correct, "the instance is correct");
|
|
987
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
988
|
+
assert.deepEqual(result.warnings, [], "the prefix-form link resolves to an existing card");
|
|
989
|
+
});
|
|
990
|
+
(0, import_qunit.test)("checks a link to a file as a file", async function(assert) {
|
|
991
|
+
let result = await checkTicket({ relationships: {
|
|
992
|
+
customer: { links: { self: "../Pet/billy" } },
|
|
993
|
+
attachment: { links: { self: "../ticket-notes.txt" } }
|
|
994
|
+
} });
|
|
995
|
+
assert.true(result.correct, "the instance is correct");
|
|
996
|
+
assert.deepEqual(result.warnings, [], "an existing file target is not reported as missing");
|
|
997
|
+
result = await checkTicket({ relationships: {
|
|
998
|
+
customer: { links: { self: "../Pet/billy" } },
|
|
999
|
+
attachment: { links: { self: "../missing.txt" } }
|
|
1000
|
+
} });
|
|
1001
|
+
assert.deepEqual(result.warnings.map((w) => w.replace(/^.*?: /, "")), [`"attachment" links to ${testRealmURL}missing.txt, which does not exist; create it or correct the link`], "a missing file target is reported");
|
|
1002
|
+
});
|
|
1003
|
+
(0, import_qunit.test)("warns about a link to a card deleted after it was loaded", async function(assert) {
|
|
1004
|
+
let goneId = `${testRealmURL}Pet/gone`;
|
|
1005
|
+
await getService("store").get(goneId);
|
|
1006
|
+
await testRealm.delete("Pet/gone.json");
|
|
1007
|
+
let result = await checkTicket({ relationships: { customer: { links: { self: "../Pet/gone" } } } });
|
|
1008
|
+
assert.true(result.correct, "a dangling link does not fail the check");
|
|
1009
|
+
assert.strictEqual(result.warnings.length, 1, "one warning");
|
|
1010
|
+
assert.ok(result.warnings[0].includes(`"customer" links to ${goneId}, which does not exist`), "the deleted target is reported even though the store loaded it");
|
|
1011
|
+
});
|
|
1012
|
+
(0, import_qunit.test)("follows links given as relationship data", async function(assert) {
|
|
1013
|
+
let result = await checkTicket({ relationships: {
|
|
1014
|
+
customer: { data: {
|
|
1015
|
+
type: "card",
|
|
1016
|
+
id: "../Pet/missing"
|
|
1017
|
+
} },
|
|
1018
|
+
watchers: { data: [{
|
|
1019
|
+
type: "card",
|
|
1020
|
+
id: "../Pet/billy"
|
|
1021
|
+
}, {
|
|
1022
|
+
type: "card",
|
|
1023
|
+
id: "../Pet/nobody"
|
|
1024
|
+
}] }
|
|
1025
|
+
} });
|
|
1026
|
+
assert.true(result.correct, "dangling links do not fail the check");
|
|
1027
|
+
assert.deepEqual(result.warnings.map((w) => w.replace(/^.*?: /, "")), [`"customer" links to ${testRealmURL}Pet/missing, which does not exist; create it or correct the link`, `"watchers.1" links to ${testRealmURL}Pet/nobody, which does not exist; create it or correct the link`], "targets named by data.id and by a data array are checked");
|
|
1028
|
+
});
|
|
1029
|
+
(0, import_qunit.test)("does not judge a relationship inside a polymorphic element", async function(assert) {
|
|
1030
|
+
let result = await checkTicket({
|
|
1031
|
+
attributes: {
|
|
1032
|
+
status: "New",
|
|
1033
|
+
items: [{ label: "Escalation" }]
|
|
1034
|
+
},
|
|
1035
|
+
relationships: {
|
|
1036
|
+
customer: { links: { self: "../Pet/billy" } },
|
|
1037
|
+
"items.0.assignee": { links: { self: "../Pet/billy" } }
|
|
1038
|
+
},
|
|
1039
|
+
metaFields: { items: [{ adoptsFrom: {
|
|
1040
|
+
module: "../ticket",
|
|
1041
|
+
name: "AssignedItemField"
|
|
1042
|
+
} }] }
|
|
1043
|
+
});
|
|
1044
|
+
assert.true(result.correct, "the instance is correct");
|
|
1045
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
1046
|
+
assert.deepEqual(result.warnings, [], "a field declared only on the element subtype is not reported");
|
|
1047
|
+
});
|
|
1048
|
+
(0, import_qunit.test)("warns about an undeclared key inside a compound containsMany field", async function(assert) {
|
|
1049
|
+
let result = await checkTicket({ attributes: {
|
|
1050
|
+
status: "New",
|
|
1051
|
+
timers: [{
|
|
1052
|
+
label: "First response",
|
|
1053
|
+
minutes: 5
|
|
1054
|
+
}]
|
|
1055
|
+
} });
|
|
1056
|
+
assert.true(result.correct, "the undeclared nested key does not fail the check");
|
|
1057
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
1058
|
+
assert.strictEqual(result.warnings.length, 1, "one warning");
|
|
1059
|
+
assert.ok(result.warnings[0].includes("\"timers.0.minutes\" is not a field of SlaTimer"), "warning names the nested path and the field type");
|
|
1060
|
+
});
|
|
1061
|
+
(0, import_qunit.test)("warns about a value written to a computed field", async function(assert) {
|
|
1062
|
+
let toolService = getService("tool-service");
|
|
1063
|
+
let runRealmCodeCommand = new RunRealmCodeTool(toolService.toolContext);
|
|
1064
|
+
let command = new CheckCorrectnessTool(toolService.toolContext);
|
|
1065
|
+
let roomId = "!room:example.com";
|
|
1066
|
+
await runRealmCodeCommand.execute({
|
|
1067
|
+
realm: testRealmURL,
|
|
1068
|
+
roomId,
|
|
1069
|
+
code: overwriteScript("Pet/billy.json", JSON.stringify({ data: {
|
|
1070
|
+
type: "card",
|
|
1071
|
+
attributes: {
|
|
1072
|
+
name: "Billy",
|
|
1073
|
+
hasError: false,
|
|
1074
|
+
boom: "written"
|
|
1075
|
+
},
|
|
1076
|
+
meta: { adoptsFrom: {
|
|
1077
|
+
module: "../pet",
|
|
1078
|
+
name: "Pet"
|
|
1079
|
+
} }
|
|
1080
|
+
} }, null, 2))
|
|
1081
|
+
});
|
|
1082
|
+
let result = await command.execute({
|
|
1083
|
+
targetType: "file",
|
|
1084
|
+
targetRef: `${testRealmURL}Pet/billy.json`,
|
|
1085
|
+
roomId
|
|
1086
|
+
});
|
|
1087
|
+
assert.true(result.correct, "a computed-field write does not fail the check");
|
|
1088
|
+
assert.deepEqual(result.errors, [], "no errors are reported");
|
|
1089
|
+
assert.strictEqual(result.warnings.length, 1, "one warning");
|
|
1090
|
+
assert.ok(result.warnings[0].includes("\"boom\" is a computed field of Pet"), "warning names the computed field");
|
|
1091
|
+
});
|
|
1092
|
+
});
|
|
1093
|
+
//#endregion
|