@cardstack/boxel-cli 0.3.2-unstable.57 → 0.3.2-unstable.59
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/base/Skill/catalog-listing.json +4 -4
- package/bundled-test-harness/assets/adapter-C8oDflNN.js +2 -0
- package/bundled-test-harness/assets/{add-field-to-card-definition-DfhKgXwU.js → add-field-to-card-definition-DIn1q610.js} +4 -4
- package/bundled-test-harness/assets/{add-field-to-card-definition-command-test-DZ5aHO5u.js → add-field-to-card-definition-command-test-Cs670972.js} +4 -4
- package/bundled-test-harness/assets/{add-workspace-CF8hudO-.js → add-workspace-2tmitSxr.js} +1 -1
- package/bundled-test-harness/assets/{add-workspace-test-Bsp2RzrC.js → add-workspace-test-BviDAUBK.js} +4 -4
- package/bundled-test-harness/assets/{ai-assistant-DhQ5Av3a.js → ai-assistant-B5fp2iOz.js} +6 -6
- package/bundled-test-harness/assets/{ai-assistant-test-B26Ldt2R.js → ai-assistant-test-jPV29jEw.js} +4 -4
- package/bundled-test-harness/assets/{ai-function-generation-test-DAs-k3E0.js → ai-function-generation-test-QRPcE9tQ.js} +2 -2
- package/bundled-test-harness/assets/{ai-module-creation-test-DCpXhgX9.js → ai-module-creation-test-DyuyfnkY.js} +4 -4
- package/bundled-test-harness/assets/{aibot-message-u1AS8TgO.js → aibot-message-Dwxp5hTW.js} +3 -3
- package/bundled-test-harness/assets/{app-DcsRpi3o.js → app-CgP2IpNG.js} +88 -95
- package/bundled-test-harness/assets/{apply-markdown-edit-EE9Dig7d.js → apply-markdown-edit-CT7UXlCm.js} +3 -3
- package/bundled-test-harness/assets/{apply-markdown-edit-test-CBS86j6J.js → apply-markdown-edit-test-C6bcaj3a.js} +4 -4
- package/bundled-test-harness/assets/{apply-search-replace-block--A0vAbcL.js → apply-search-replace-block-S2ZTkuTA.js} +2 -2
- package/bundled-test-harness/assets/{apply-search-replace-block-test-Dfl0NCGW.js → apply-search-replace-block-test-BSwC4J9g.js} +3 -3
- package/bundled-test-harness/assets/{auth-error-guard-D-J3k0XW.js → auth-error-guard-ChgYDxcf.js} +1 -1
- package/bundled-test-harness/assets/{auth-error-guard-test-BAniwx-L.js → auth-error-guard-test-Bvu8E7Wy.js} +2 -2
- package/bundled-test-harness/assets/{authed-fetch-BcnzoMtW.js → authed-fetch-D83Ohr_b.js} +1 -1
- package/bundled-test-harness/assets/{authed-fetch-test-MGmzZCvR.js → authed-fetch-test-CfF-IBHI.js} +5 -5
- package/bundled-test-harness/assets/{avif-image-def-test-DQpFGHxK.js → avif-image-def-test-B9L2z0nR.js} +2 -2
- package/bundled-test-harness/assets/{base-realm-DN9FnoVH.js → base-realm-43wjttN2.js} +1 -1
- package/bundled-test-harness/assets/{base-realm-BLFwclgP.js → base-realm-CJ5x9iyX.js} +1 -1
- package/bundled-test-harness/assets/{basic-test-DJafJYrR.js → basic-test-B64a5zCK.js} +2 -2
- package/bundled-test-harness/assets/{bfm-card-references-test-D8wgrXAi.js → bfm-card-references-test-cLQVLpth.js} +1 -1
- package/bundled-test-harness/assets/{binary-upload-dedupe-test-BxAvQQ_x.js → binary-upload-dedupe-test-By7Y1iQ3.js} +5 -5
- package/bundled-test-harness/assets/{bot-registration-test-qIW16T3W.js → bot-registration-test-DOjf0P1R.js} +5 -5
- package/bundled-test-harness/assets/{box-test-SQF1g3tI.js → box-test-Cd1-RcXg.js} +2 -2
- package/bundled-test-harness/assets/{brand-guide-attachments-test-E60jyMxm.js → brand-guide-attachments-test-DxRqP8fo.js} +4 -4
- package/bundled-test-harness/assets/{brand-guide-custom-css-test-jy-_JQ46.js → brand-guide-custom-css-test-DBpZiHzJ.js} +4 -4
- package/bundled-test-harness/assets/{brand-logo-mark-field-test-UOcZ4HQ7.js → brand-logo-mark-field-test-61k4e5Om.js} +4 -4
- package/bundled-test-harness/assets/{broken-link-template-test-gyzbZwiR.js → broken-link-template-test-A1P4flQ5.js} +2 -2
- package/bundled-test-harness/assets/{browser-queue-5NBIU7iB.js → browser-queue-CiAZHYMs.js} +2 -2
- package/bundled-test-harness/assets/{cached-fetch-test-Cw-5Vd4D.js → cached-fetch-test-ByQ-5OQI.js} +1 -1
- package/bundled-test-harness/assets/{can-read-realm-PLgMdr8o.js → can-read-realm-BTFZdy1x.js} +1 -1
- package/bundled-test-harness/assets/{can-read-realm-test-BreVMREJ.js → can-read-realm-test-VFLHJdEv.js} +5 -5
- package/bundled-test-harness/assets/{cancel-indexing-job-B5M2Ds06.js → cancel-indexing-job-kp_C8Xl-.js} +1 -1
- package/bundled-test-harness/assets/{cancel-indexing-job-test-BfE5StwQ.js → cancel-indexing-job-test-n3Os4ZaX.js} +5 -5
- package/bundled-test-harness/assets/{card-api-test-DyvKjxrW.js → card-api-test-DvNfLv3V.js} +4 -4
- package/bundled-test-harness/assets/{card-basics-test-CWfgRiAu.js → card-basics-test-CKzZuFdw.js} +5 -5
- package/bundled-test-harness/assets/{card-catalog-test-DYDlHFmr.js → card-catalog-test-JFvkVHED.js} +4 -4
- package/bundled-test-harness/assets/{card-copy-test-DVqpYVyy.js → card-copy-test-iwrFA72s.js} +4 -4
- package/bundled-test-harness/assets/{card-def-field-def-relationships-test-NhqiCH3n.js → card-def-field-def-relationships-test-D5s2RH5t.js} +5 -5
- package/bundled-test-harness/assets/{card-def-menu-items-test-CUMX4z7E.js → card-def-menu-items-test-XcmkT4NF.js} +2 -2
- package/bundled-test-harness/assets/{card-delete-test-B9uDbxXH.js → card-delete-test-jtAOHk1Y.js} +4 -4
- package/bundled-test-harness/assets/{card-directory-name-test-CrTvfxUK.js → card-directory-name-test-veQEp5FJ.js} +1 -1
- package/bundled-test-harness/assets/{card-error-detail-D5KZVMx1.js → card-error-detail-DHgMOVGe.js} +3 -3
- package/bundled-test-harness/assets/{card-playground-test-qw2VzkcC.js → card-playground-test-P7Ed0tO4.js} +3 -3
- package/bundled-test-harness/assets/{card-prerender-BLzXmZFI.js → card-prerender-DXG8cQEv.js} +5 -5
- package/bundled-test-harness/assets/{card-renderer-DYf5wKRG.js → card-renderer-D1areYZe.js} +1 -1
- package/bundled-test-harness/assets/{card-search-adorn-test-Zy3KLCXy.js → card-search-adorn-test-BX0-IJHB.js} +3 -3
- package/bundled-test-harness/assets/{card-search-query-builder-test-CFzY3Vo_.js → card-search-query-builder-test-D01uixke.js} +2 -2
- package/bundled-test-harness/assets/{card-search-selection-menu-test-BOUWbtSu.js → card-search-selection-menu-test-DMTeZFmW.js} +2 -2
- package/bundled-test-harness/assets/{card-service-DaexcI99.js → card-service-DSv98Ql7.js} +1 -1
- package/bundled-test-harness/assets/{check-correctness-DUitsZZH.js → check-correctness-BIfYUT39.js} +2 -2
- package/bundled-test-harness/assets/{check-correctness-test-DXILbQCc.js → check-correctness-test-D7QB1GTo.js} +6 -6
- package/bundled-test-harness/assets/{code-equality-assertion-2tVgNXpX.js → code-equality-assertion-C-2g5YGf.js} +2 -2
- package/bundled-test-harness/assets/{code-patches-test-Bo16nji_.js → code-patches-test-DaV4Mon_.js} +3 -3
- package/bundled-test-harness/assets/{code-patching-test-BAOMyP_X.js → code-patching-test-CcbWlImN.js} +2 -2
- package/bundled-test-harness/assets/{code-ref-test-DkH-Hg9w.js → code-ref-test-8Yj8gbww.js} +2 -2
- package/bundled-test-harness/assets/{code-semantics-service-test-DpPro60m.js → code-semantics-service-test-C3srTfDz.js} +1 -1
- package/bundled-test-harness/assets/{code-submode-test-BJKzfCnA.js → code-submode-test-BUhjvWtB.js} +3 -3
- package/bundled-test-harness/assets/{codeblocks-test-9HDQV8Tk.js → codeblocks-test-3zAp0_GA.js} +5 -5
- package/bundled-test-harness/assets/{codemirror-editor-test-CzGCCbkG.js → codemirror-editor-test-WojU4k2h.js} +1 -1
- package/bundled-test-harness/assets/{color-field-test-DNfSOpDL.js → color-field-test-yESUakoE.js} +3 -3
- package/bundled-test-harness/assets/{commands-K_bsu_Og.js → commands-CBDBujm_.js} +176 -986
- package/bundled-test-harness/assets/{commands-calling-test-BrbvuP2e.js → commands-calling-test-DJTl0EbL.js} +4 -4
- package/bundled-test-harness/assets/{commands-test-BTr6bsOn.js → commands-test-DW2gupNS.js} +9 -9
- package/bundled-test-harness/assets/{commands-test-JVW86un6.js → commands-test-DjLnuojW.js} +5 -5
- package/bundled-test-harness/assets/{computed-test-DRTA-65U.js → computed-test-0n5g8Ez5.js} +4 -4
- package/bundled-test-harness/assets/{container-CdKkJ4UR.js → container-D8y7fmir.js} +25 -25
- package/bundled-test-harness/assets/{convert-to-class-name-test-mNQiPfY2.js → convert-to-class-name-test-DSIflIV2.js} +1 -1
- package/bundled-test-harness/assets/{copy-and-edit-DjhRJze1.js → copy-and-edit-B8M2rwoL.js} +3 -3
- package/bundled-test-harness/assets/{copy-and-edit-test-C26Vx0mc.js → copy-and-edit-test-BuK1ZHr-.js} +4 -4
- package/bundled-test-harness/assets/{copy-card-VdjJuaCY.js → copy-card-JGCXNcjb.js} +1 -1
- package/bundled-test-harness/assets/{copy-card-test-DarxpxoR.js → copy-card-test-DnDC4_7J.js} +5 -5
- package/bundled-test-harness/assets/{copy-card-to-stack-DPflgmTL.js → copy-card-to-stack-Cnj8p8tc.js} +3 -3
- package/bundled-test-harness/assets/{copy-file-to-realm-test-Drd30dk6.js → copy-file-to-realm-test-CFd_3Iff.js} +3 -3
- package/bundled-test-harness/assets/{copy-source-BcR0va5z.js → copy-source-CSrG5lS7.js} +1 -1
- package/bundled-test-harness/assets/{copy-source-test-D0jFpi4w.js → copy-source-test-38yUGJor.js} +4 -4
- package/bundled-test-harness/assets/{create-ai-assistant-room-BP5kNTW7.js → create-ai-assistant-room-7LllE6Lq.js} +2 -2
- package/bundled-test-harness/assets/{create-file-modal-BjlBImt1.js → create-file-modal-_y7nscSl.js} +4 -4
- package/bundled-test-harness/assets/{create-file-test-DI43enJq.js → create-file-test-B2oem0-V.js} +2 -2
- package/bundled-test-harness/assets/{create-file-test-CoPnYED8.js → create-file-test-BHk00RtD.js} +2 -2
- package/bundled-test-harness/assets/{create-listing-modal-test-CAS43KMd.js → create-listing-modal-test-L-71-Uo2.js} +5 -5
- package/bundled-test-harness/assets/{create-listing-pr-request-BPLDcJgw.js → create-listing-pr-request-CZaLsHhE.js} +4 -4
- package/bundled-test-harness/assets/{create-listing-pr-request-test-CwIlzlfu.js → create-listing-pr-request-test-OGzk4Q2E.js} +5 -5
- package/bundled-test-harness/assets/{create-spec-test-CWtYAh8d.js → create-spec-test-BsM7VKuH.js} +4 -4
- package/bundled-test-harness/assets/{create-specs-HhFVojRg.js → create-specs-t7sWc_xt.js} +6 -6
- package/bundled-test-harness/assets/{csv-file-def-test-Di6EPsOu.js → csv-file-def-test-BhJalhE-.js} +2 -2
- package/bundled-test-harness/assets/{date-time-fields-test-Xl1mWopb.js → date-time-fields-test-Cs5T6Xk1.js} +3 -3
- package/bundled-test-harness/assets/{debounce-qj19N2vf.js → debounce-CwTDsmN-.js} +1 -1
- package/bundled-test-harness/assets/{debug-message-test-CvrpWGqM.js → debug-message-test-WlHe7pJF.js} +5 -5
- package/bundled-test-harness/assets/{diffing-test-BMMObLNW.js → diffing-test-DO54USSm.js} +1 -1
- package/bundled-test-harness/assets/{editor-test-C7G17Dk4.js → editor-test-DChC9LuR.js} +2 -2
- package/bundled-test-harness/assets/{email-field-test-CM8lBha1.js → email-field-test-DWIFSfZ-.js} +4 -4
- package/bundled-test-harness/assets/{enum-field-test-CHaO6N_F.js → enum-field-test-BUc6l4us.js} +4 -4
- package/bundled-test-harness/assets/{error-display-test-sO0QyguB.js → error-display-test-CHSE6h6Z.js} +2 -2
- package/bundled-test-harness/assets/{evaluate-module-bUPiIcDs.js → evaluate-module-C6_gzn5_.js} +1 -1
- package/bundled-test-harness/assets/{evaluate-module-test-DfnjIPLN.js → evaluate-module-test-Caa5n0B9.js} +3 -3
- package/bundled-test-harness/assets/{execute-atomic-operations-DwSarfVd.js → execute-atomic-operations-CC3N-5N4.js} +1 -1
- package/bundled-test-harness/assets/{execute-atomic-operations-test-BrkebMvJ.js → execute-atomic-operations-test-CT060oDk.js} +6 -6
- package/bundled-test-harness/assets/{externals-SS6OJwxu.js → externals-Do1fVZ4j.js} +2 -2
- package/bundled-test-harness/assets/{fallback-banner-test-CxswlAy1.js → fallback-banner-test-CmxysrDn.js} +5 -5
- package/bundled-test-harness/assets/{fallback-banner-test-BiQr1ZkY.js → fallback-banner-test-DJ4cO8PB.js} +1 -1
- package/bundled-test-harness/assets/{fallback-models-test-CnHb76im.js → fallback-models-test-r5upJFeA.js} +5 -5
- package/bundled-test-harness/assets/{fetch-card-json-DxiiGiFw.js → fetch-card-json-B-C1HlJO.js} +1 -1
- package/bundled-test-harness/assets/{fetch-card-json-test-B9s3ygQi.js → fetch-card-json-test-Di1wmvy5.js} +5 -5
- package/bundled-test-harness/assets/{fetcher-test-Byj1ySkx.js → fetcher-test-DjzNl_7F.js} +1 -1
- package/bundled-test-harness/assets/{field-configuration-test-98SGHHs3.js → field-configuration-test-C3vr-HhG.js} +4 -4
- package/bundled-test-harness/assets/{field-markdown-domain-test-cZLg8V4G.js → field-markdown-domain-test-DG2U4qIm.js} +4 -4
- package/bundled-test-harness/assets/{field-markdown-primitives-test-DNNlWeW2.js → field-markdown-primitives-test-Bay2v8nT.js} +3 -3
- package/bundled-test-harness/assets/{field-markdown-specialized-test-BNK65c-g.js → field-markdown-specialized-test-Bl0Sl4sc.js} +4 -4
- package/bundled-test-harness/assets/{field-playground-test-CzaQ2nm5.js → field-playground-test-Bcjfws4m.js} +3 -3
- package/bundled-test-harness/assets/{field-support-predicates-test-DCHJ4jVG.js → field-support-predicates-test-DYTqOGvv.js} +3 -3
- package/bundled-test-harness/assets/{field-test-helpers-BQf_mGjC.js → field-test-helpers-DYSfSGdh.js} +2 -2
- package/bundled-test-harness/assets/{file-CBX_fzjQ.js → file-Dkzzhwoy.js} +1 -1
- package/bundled-test-harness/assets/{file-attachment-test-8S_Am_sT.js → file-attachment-test-6ypDRDS7.js} +5 -5
- package/bundled-test-harness/assets/{file-chooser-test-DwyCe7A1.js → file-chooser-test-mtmcHTFP.js} +3 -3
- package/bundled-test-harness/assets/{file-def-attributes-extractor-KRDLPav1.js → file-def-attributes-extractor-DGMrcc_b.js} +1 -1
- package/bundled-test-harness/assets/{file-def-live-reload-test-Dy5nXWf8.js → file-def-live-reload-test-CX1-lOv6.js} +2 -2
- package/bundled-test-harness/assets/{file-def-manager-CC2L49rL.js → file-def-manager-DNHII2oj.js} +1 -1
- package/bundled-test-harness/assets/{file-def-manager-canonicalize-test-CDN4paGB.js → file-def-manager-canonicalize-test-i_7UVakF.js} +2 -2
- package/bundled-test-harness/assets/{file-def-menu-items-test-Cx-oynAB.js → file-def-menu-items-test-Dw458iku.js} +2 -2
- package/bundled-test-harness/assets/{file-def-navigation-test-hBA-P_K4.js → file-def-navigation-test-B3Ztr1Rd.js} +2 -2
- package/bundled-test-harness/assets/{file-def-serialization-test-CgzTp7-l.js → file-def-serialization-test-C_gV8AkU.js} +3 -3
- package/bundled-test-harness/assets/{file-def-test-1aOtf07s.js → file-def-test-vXXJmtxX.js} +2 -2
- package/bundled-test-harness/assets/{file-tree-test-By0I-LWa.js → file-tree-test-BJCiw9jm.js} +3 -3
- package/bundled-test-harness/assets/{flac-audio-def-test-B_U0BYqp.js → flac-audio-def-test-BX3SE1vW.js} +2 -2
- package/bundled-test-harness/assets/{formatted-aibot-message-test-DRggFVzN.js → formatted-aibot-message-test-DyqUz2nt.js} +4 -4
- package/bundled-test-harness/assets/{formatted-user-message-test-D0hCVV-p.js → formatted-user-message-test-aqAzqvBP.js} +1 -1
- package/bundled-test-harness/assets/{freestyle-test-BNWR5_tb.js → freestyle-test-CLRrZkAE.js} +1 -1
- package/bundled-test-harness/assets/{full-reindex-realm-jKZdNKYy.js → full-reindex-realm-DbD6GuJ5.js} +1 -1
- package/bundled-test-harness/assets/{full-reindex-realm-test-CvdTNv7H.js → full-reindex-realm-test-ClqPVQ0c.js} +5 -5
- package/bundled-test-harness/assets/{garbage-collection-test-BA_DevRy.js → garbage-collection-test-Ba2dD3qS.js} +4 -4
- package/bundled-test-harness/assets/{gc-card-store-CSykK7YD.js → gc-card-store-Cyaw1ZoD.js} +1 -1
- package/bundled-test-harness/assets/{general-test-DqXUp9Lj.js → general-test-D0zhs14K.js} +5 -5
- package/bundled-test-harness/assets/{generate-example-cards-VfsHLFeC.js → generate-example-cards-DSnMgnoE.js} +4 -4
- package/bundled-test-harness/assets/{generate-example-cards-one-shot-test-DICYWk96.js → generate-example-cards-one-shot-test-fSAdGJeT.js} +4 -4
- package/bundled-test-harness/assets/{get-available-realm-identifiers-DxAmtnsW.js → get-available-realm-identifiers-B_Bjav4V.js} +1 -1
- package/bundled-test-harness/assets/{get-available-realm-identifiers-test-D2fiOMAn.js → get-available-realm-identifiers-test-BXMUW65I.js} +5 -5
- package/bundled-test-harness/assets/{get-catalog-realm-identifiers-C4aO6u4l.js → get-catalog-realm-identifiers-Bd_kaIut.js} +1 -1
- package/bundled-test-harness/assets/{get-catalog-realm-identifiers-test-DuLrS_KE.js → get-catalog-realm-identifiers-test-DKEq6Zcq.js} +5 -5
- package/bundled-test-harness/assets/{get-default-writable-realm-2nH1mW2Y.js → get-default-writable-realm-DfHmEQ8g.js} +1 -1
- package/bundled-test-harness/assets/{get-default-writable-realm-test-B3Ab4veP.js → get-default-writable-realm-test-Dp4nBIRP.js} +5 -5
- package/bundled-test-harness/assets/{get-realm-of-resource-identifier-Bf7VL5Td.js → get-realm-of-resource-identifier-DR1Hzxmh.js} +2 -2
- package/bundled-test-harness/assets/{get-realm-of-resource-identifier-test-Db3KeI60.js → get-realm-of-resource-identifier-test-DYNnMgD-.js} +5 -5
- package/bundled-test-harness/assets/{get-relationship-membership-state-test-CnjYNJCL.js → get-relationship-membership-state-test-k9EUNWeq.js} +3 -3
- package/bundled-test-harness/assets/{get-type-refs-from-filter-test-BIHvwwfZ.js → get-type-refs-from-filter-test-BPuivF-v.js} +1 -1
- package/bundled-test-harness/assets/{get-user-system-card-BOOBnEqc.js → get-user-system-card-CSByuPXh.js} +1 -1
- package/bundled-test-harness/assets/{get-user-system-card-test-BDADm7_V.js → get-user-system-card-test-DSHv00O7.js} +5 -5
- package/bundled-test-harness/assets/{gif-image-def-test-n-mgX5hB.js → gif-image-def-test-LuDSr5Kz.js} +2 -2
- package/bundled-test-harness/assets/{gts-file-def-test-y7YGPABO.js → gts-file-def-test-bS3ML062.js} +2 -2
- package/bundled-test-harness/assets/{head-format-preview-test-DYvtL4hi.js → head-format-preview-test-B8IPh71E.js} +2 -2
- package/bundled-test-harness/assets/{helpers-CggYK0qv.js → helpers-D_JZYUOQ.js} +1 -1
- package/bundled-test-harness/assets/{helpers-DfbN22AQ.js → helpers-wSIq-bau.js} +4 -4
- package/bundled-test-harness/assets/{host-base-command-BGdgn4Q-.js → host-base-command-BMsZcn1D.js} +1 -1
- package/bundled-test-harness/assets/{host-mode-service-C_b8xNVT.js → host-mode-service-B4CEe5xJ.js} +1 -1
- package/bundled-test-harness/assets/{host-mode-test-DQvboQ87.js → host-mode-test-D44nXoQZ.js} +3 -3
- package/bundled-test-harness/assets/{host-submode-test-c1MsNS2b.js → host-submode-test-CefkXg9F.js} +3 -3
- package/bundled-test-harness/assets/{index-query-engine-test-eH_3mn90.js → index-query-engine-test-DJnDqmfK.js} +4 -4
- package/bundled-test-harness/assets/{index-writer-test-QByWRKMy.js → index-writer-test-BcrCMj37.js} +3 -3
- package/bundled-test-harness/assets/{inspector-test-B_Sm8pUM.js → inspector-test-D4iMBlbL.js} +2 -2
- package/bundled-test-harness/assets/{instance-filter-matcher-test-fzP4DEnI.js → instance-filter-matcher-test-CYT6N3hN.js} +4 -4
- package/bundled-test-harness/assets/{instantiate-card-B54BHVHk.js → instantiate-card-CJrMFAO_.js} +1 -1
- package/bundled-test-harness/assets/{instantiate-card-test-Db0XT9hX.js → instantiate-card-test-j1JS5lDe.js} +3 -3
- package/bundled-test-harness/assets/{interact-submode-creation-and-permissions-test-DL6Z036Q.js → interact-submode-creation-and-permissions-test-B-aXzOh6.js} +4 -4
- package/bundled-test-harness/assets/{interact-submode-setup-Duzpi-nO.js → interact-submode-setup-VMwOUl3u.js} +2 -2
- package/bundled-test-harness/assets/{interact-submode-test-D0XU9rs9.js → interact-submode-test-D5lNNXdq.js} +3 -3
- package/bundled-test-harness/assets/{invalidate-realm-identifiers-CYvEl7qB.js → invalidate-realm-identifiers-B_NYbRkp.js} +1 -1
- package/bundled-test-harness/assets/{invalidate-realm-identifiers-test-D8u2iQsm.js → invalidate-realm-identifiers-test-71Ze8eGV.js} +5 -5
- package/bundled-test-harness/assets/{invite-user-to-room-DIfcHmnZ.js → invite-user-to-room-By6L6O7g.js} +1 -1
- package/bundled-test-harness/assets/{invite-user-to-room-test-DAUx3CF_.js → invite-user-to-room-test-UfjsvwVp.js} +4 -4
- package/bundled-test-harness/assets/{isolated-render-BtFI3iLX.js → isolated-render-B0Uwpy0n.js} +1 -1
- package/bundled-test-harness/assets/{isolated-render-test-BKIY0Z-R.js → isolated-render-test-C2IL-Fz3.js} +2 -2
- package/bundled-test-harness/assets/{item-button-Cp_gpgDE.js → item-button-6g7XYj56.js} +3 -3
- package/bundled-test-harness/assets/{job-priority-header-test-DXH8n4cK.js → job-priority-header-test-C3FfKLPP.js} +2 -2
- package/bundled-test-harness/assets/{jpg-image-def-test-B9pYXUVH.js → jpg-image-def-test-BTBk9lk5.js} +2 -2
- package/bundled-test-harness/assets/{json-file-def-test-e--2bZ90.js → json-file-def-test-BpU_Eidn.js} +2 -2
- package/bundled-test-harness/assets/{linksto-broken-link-placeholder-test-DcxyxYLw.js → linksto-broken-link-placeholder-test-qZeqQ1gt.js} +4 -4
- package/bundled-test-harness/assets/{linksto-error-sentinel-test-CFHbZman.js → linksto-error-sentinel-test-BaV3I8Xx.js} +3 -3
- package/bundled-test-harness/assets/{linksto-many-broken-link-placeholder-test-DRUtCxRW.js → linksto-many-broken-link-placeholder-test-BvJi1vCb.js} +4 -4
- package/bundled-test-harness/assets/{linksto-many-per-slot-access-test-DmcpOYtI.js → linksto-many-per-slot-access-test-CK60Cugk.js} +3 -3
- package/bundled-test-harness/assets/{linksto-sentinel-roundtrip-test-De2WpcBM.js → linksto-sentinel-roundtrip-test-BWxdEO9D.js} +3 -3
- package/bundled-test-harness/assets/{linksto-singular-js-access-contract-test-BW2F4t11.js → linksto-singular-js-access-contract-test-CIsLhqR2.js} +3 -3
- package/bundled-test-harness/assets/{lint-and-fix-V56pAd1n.js → lint-and-fix-BMQ1syM6.js} +2 -2
- package/bundled-test-harness/assets/{live-prerendered-search-CJDEXx90.js → live-prerendered-search-jZe3I16p.js} +4 -4
- package/bundled-test-harness/assets/live-test-CF_R5WGr.js +2 -0
- package/bundled-test-harness/assets/{live-test-NY_7CFNs.js → live-test-jO7lXuyB.js} +7 -7
- package/bundled-test-harness/assets/{loader-icon-error-test-Ce84hpJz.js → loader-icon-error-test-N4JYZuTx.js} +1 -1
- package/bundled-test-harness/assets/{loader-parallel-prefetch-test-DpFZ_p-0.js → loader-parallel-prefetch-test-DteeG7mU.js} +2 -2
- package/bundled-test-harness/assets/{loader-retry-test-D0ED2P-U.js → loader-retry-test-DYVgpS_I.js} +1 -1
- package/bundled-test-harness/assets/{loader-test-D5fmU9Xr.js → loader-test-DLI8JIx-.js} +2 -2
- package/bundled-test-harness/assets/{loading-test-Bfsq9yyP.js → loading-test-D4ZBtRYf.js} +3 -3
- package/bundled-test-harness/assets/{m4a-audio-def-test-TwnddwIE.js → m4a-audio-def-test-BKqGO-CW.js} +2 -2
- package/bundled-test-harness/assets/{main-Bor2cxrd.js → main-BjBdsiQT.js} +1 -1
- package/bundled-test-harness/assets/{markdown-fallback-test-DGdixi-5.js → markdown-fallback-test-BBj80dZZ.js} +3 -3
- package/bundled-test-harness/assets/{markdown-file-def-test-BCuMd2tt.js → markdown-file-def-test-BnMF5rQF.js} +2 -2
- package/bundled-test-harness/assets/{markdown-helpers-test-Dn3M0V2T.js → markdown-helpers-test-DnuuSLfS.js} +2 -2
- package/bundled-test-harness/assets/{markdown-highlighting-test-CWvnSbdW.js → markdown-highlighting-test-CWRp2Rce.js} +3 -3
- package/bundled-test-harness/assets/{markdown-preview-test-DRhhjytd.js → markdown-preview-test-Bf5OqKGf.js} +4 -4
- package/bundled-test-harness/assets/{markdown-preview-EFDbxJUh.js → markdown-preview-yYHtwNeI.js} +2 -2
- package/bundled-test-harness/assets/{matrix-service-sliding-sync-test-BVXe_s0E.js → matrix-service-sliding-sync-test-CdEy3ASW.js} +3 -3
- package/bundled-test-harness/assets/{message-service-subscription-test-xk49SHWl.js → message-service-subscription-test-pGz_7rz3.js} +3 -3
- package/bundled-test-harness/assets/{mock-matrix-DNf0qi20.js → mock-matrix-D7JHfFtT.js} +1 -1
- package/bundled-test-harness/assets/{mock-matrix-B7-Yjk1q.js → mock-matrix-DqDbNhEj.js} +7 -7
- package/bundled-test-harness/assets/{module-syntax-Djv9Dl9A.js → module-syntax-nniSljxW.js} +1 -1
- package/bundled-test-harness/assets/{module-transpile-cache-test-BZucpTCB.js → module-transpile-cache-test-D0M-fPxs.js} +2 -2
- package/bundled-test-harness/assets/{mp3-audio-def-test-RK_LaVFM.js → mp3-audio-def-test-CxeRk1bl.js} +2 -2
- package/bundled-test-harness/assets/{number-field-test-DTBe27-g.js → number-field-test-gjAGDy6P.js} +3 -3
- package/bundled-test-harness/assets/{ogg-audio-def-test-MX84g6Gg.js → ogg-audio-def-test-B6Ww3Ixr.js} +2 -2
- package/bundled-test-harness/assets/{one-shot-llm-request-DygEVhwY.js → one-shot-llm-request-Cmtn_WRk.js} +5 -5
- package/bundled-test-harness/assets/{open-ai-assistant-room-DyI9Osk8.js → open-ai-assistant-room-DtydafHF.js} +1 -1
- package/bundled-test-harness/assets/{open-create-listing-modal-B_BmJftu.js → open-create-listing-modal-DFq_N8TO.js} +2 -2
- package/bundled-test-harness/assets/{open-create-listing-modal-test-6MyQhXSU.js → open-create-listing-modal-test-uN58T3rI.js} +4 -4
- package/bundled-test-harness/assets/{open-workspace-DkBqfXKN.js → open-workspace-DRfx-nzh.js} +1 -1
- package/bundled-test-harness/assets/{open-workspace-test-dsRMCj7i.js → open-workspace-test-DXVsvBFJ.js} +4 -4
- package/bundled-test-harness/assets/{operator-mode-acceptance-test-C5GXSsmz.js → operator-mode-acceptance-test-BxIq2xSS.js} +4 -4
- package/bundled-test-harness/assets/{operator-mode-card-catalog-test-DaKnyy41.js → operator-mode-card-catalog-test-xFYx9_ng.js} +5 -5
- package/bundled-test-harness/assets/{operator-mode-links-test-lnjsXbN1.js → operator-mode-links-test-qhXWmz-S.js} +5 -5
- package/bundled-test-harness/assets/{operator-mode-state-service-test-CEyCnXsp.js → operator-mode-state-service-test-BdA_uvaY.js} +2 -2
- package/bundled-test-harness/assets/{operator-mode-test-56NtKCnB.js → operator-mode-test-D3EyTwq3.js} +5 -5
- package/bundled-test-harness/assets/{operator-mode-ui-test-BrNtGTWI.js → operator-mode-ui-test-CSrk6Q0A.js} +5 -5
- package/bundled-test-harness/assets/{overlay-menu-items-test-B2xpBLe2.js → overlay-menu-items-test-CuqqLsQT.js} +4 -4
- package/bundled-test-harness/assets/{panel-FWXvJYHW.js → panel-C2rtbx32.js} +10 -10
- package/bundled-test-harness/assets/{past-sessions-test-C3owclyz.js → past-sessions-test-B9SCbbXz.js} +5 -5
- package/bundled-test-harness/assets/{patch-card-instance-DKSTQ2Eb.js → patch-card-instance-BgWqjUFi.js} +2 -2
- package/bundled-test-harness/assets/{patch-code-CSBFGIXZ.js → patch-code-BksUYDfB.js} +6 -6
- package/bundled-test-harness/assets/{patch-code-test-B2H2CGl2.js → patch-code-test-CcFr9pDb.js} +5 -5
- package/bundled-test-harness/assets/{patch-fields-M84xrupT.js → patch-fields-CnL9_mBJ.js} +2 -2
- package/bundled-test-harness/assets/{patch-fields-test-PSdSxQEB.js → patch-fields-test-BW1gzcJM.js} +4 -4
- package/bundled-test-harness/assets/{patch-instance-test-D6osmVEp.js → patch-instance-test-DKqA9gQ6.js} +4 -4
- package/bundled-test-harness/assets/{persist-module-inspector-view-C8j_zhAt.js → persist-module-inspector-view-DJJZQppZ.js} +1 -1
- package/bundled-test-harness/assets/{persist-module-inspector-view-test-CjOnNnXZ.js → persist-module-inspector-view-test-D1eKBUkt.js} +5 -5
- package/bundled-test-harness/assets/{phone-number-field-test-CydScvJz.js → phone-number-field-test-D1is5RWv.js} +4 -4
- package/bundled-test-harness/assets/{plan-install-test-BRHg4HjL.js → plan-install-test-DB-PrjPR.js} +1 -1
- package/bundled-test-harness/assets/{playground-Dx4gQbY3.js → playground-B0iQV7dU.js} +2 -2
- package/bundled-test-harness/assets/{png-image-def-test-Ddxb0URN.js → png-image-def-test-DnOsJGs6.js} +2 -2
- package/bundled-test-harness/assets/{prerender-fetch-headers-qvzyCKjm.js → prerender-fetch-headers-BIKTWBSv.js} +1 -1
- package/bundled-test-harness/assets/{prerender-file-extract-test-B1yHPkAJ.js → prerender-file-extract-test-DhOLozj2.js} +2 -2
- package/bundled-test-harness/assets/{prerender-html-test-CzH4x1kc.js → prerender-html-test-DKVhQZA9.js} +2 -2
- package/bundled-test-harness/assets/{prerender-meta-test-Ccw0DQlE.js → prerender-meta-test-CnRNyqSz.js} +2 -2
- package/bundled-test-harness/assets/{prerender-module-test-738ExYbY.js → prerender-module-test-D163QcrZ.js} +2 -2
- package/bundled-test-harness/assets/{prerendered-card-search-test-RYZzTGXj.js → prerendered-card-search-test-DX-8yabJ.js} +4 -4
- package/bundled-test-harness/assets/{preview-format-DsWxdEhq.js → preview-format-snitJHQF.js} +3 -3
- package/bundled-test-harness/assets/{preview-format-test-evn_uUJr.js → preview-format-test-H7bnpdlC.js} +4 -4
- package/bundled-test-harness/assets/{preview-test-BxdG0eHo.js → preview-test-B7u6uWJR.js} +4 -4
- package/bundled-test-harness/assets/{qs-test-DmA8Etoi.js → qs-test-COb0mre6.js} +1 -1
- package/bundled-test-harness/assets/{query-builder-CdZqyMwT.js → query-builder-QKqna_9C.js} +1 -1
- package/bundled-test-harness/assets/{query-field-barrier-test-DA1kcLR0.js → query-field-barrier-test-Cypj-MhK.js} +4 -4
- package/bundled-test-harness/assets/{query-field-error-sentinel-test-ByyEWqCo.js → query-field-error-sentinel-test-Dnqn8TdN.js} +4 -4
- package/bundled-test-harness/assets/{query-field-normalization-test-Bgbi_51u.js → query-field-normalization-test-B7D8SHBP.js} +1 -1
- package/bundled-test-harness/assets/{query-field-schema-test-Bsskmo54.js → query-field-schema-test-DIYY3-c8.js} +3 -3
- package/bundled-test-harness/assets/{query-fields-test-BE96Vi9g.js → query-fields-test-k-VBF9PE.js} +3 -3
- package/bundled-test-harness/assets/{queue-test-tiY1ywnP.js → queue-test-B_74vXZE.js} +3 -3
- package/bundled-test-harness/assets/{read-card-for-ai-assistant-CdcgayNl.js → read-card-for-ai-assistant-BfSsTYj2.js} +2 -2
- package/bundled-test-harness/assets/{read-card-for-ai-assistant-test-DqgidZgp.js → read-card-for-ai-assistant-test-SyL9F_La.js} +4 -4
- package/bundled-test-harness/assets/{read-file-for-ai-assistant-CRy_nsMY.js → read-file-for-ai-assistant-AEVCUknz.js} +1 -1
- package/bundled-test-harness/assets/{read-file-for-ai-assistant-test-2GNDAHYO.js → read-file-for-ai-assistant-test-nLPp49U2.js} +4 -4
- package/bundled-test-harness/assets/{read-source-BjarqWPc.js → read-source-C2sP8K8Z.js} +2 -2
- package/bundled-test-harness/assets/{read-source-test-J_0DA5-Z.js → read-source-test-DBELJkhN.js} +4 -4
- package/bundled-test-harness/assets/{read-text-file-DcNZ5WyP.js → read-text-file-CACAhnsS.js} +1 -1
- package/bundled-test-harness/assets/{read-text-file-test-DYXrQjjo.js → read-text-file-test-CP1JuWlX.js} +4 -4
- package/bundled-test-harness/assets/{realm-TrRQcvne.js → realm-Dr4iygv_.js} +2 -2
- package/bundled-test-harness/assets/{realm-field-test-DWk3eyM5.js → realm-field-test-Cice2mYk.js} +4 -4
- package/bundled-test-harness/assets/{realm-index-card-id-test-DGRfegwe.js → realm-index-card-id-test-BzpozdWc.js} +1 -1
- package/bundled-test-harness/assets/{realm-indexing-test-Dacd_v-o.js → realm-indexing-test-C0YSXziR.js} +4 -4
- package/bundled-test-harness/assets/{realm-paths-test-CmX-ohTC.js → realm-paths-test-DV_g07rF.js} +1 -1
- package/bundled-test-harness/assets/{realm-querying-test-PrFnam40.js → realm-querying-test-B526abM0.js} +2 -2
- package/bundled-test-harness/assets/{realm-test-BEC9kS2u.js → realm-test-D8UN5X-w.js} +4 -4
- package/bundled-test-harness/assets/{reasoning-test-CKUAM1PP.js → reasoning-test-ClIOvdkX.js} +5 -5
- package/bundled-test-harness/assets/{recent-files-test-BQnupf2h.js → recent-files-test-C2J_dJUD.js} +2 -2
- package/bundled-test-harness/assets/{reindex-realm-H_WSVV8S.js → reindex-realm-C6fVI3zx.js} +1 -1
- package/bundled-test-harness/assets/{reindex-realm-test-B_lAlgmN.js → reindex-realm-test-DMphy1g6.js} +5 -5
- package/bundled-test-harness/assets/{relationship-loading-state-test-KN_1YWsk.js → relationship-loading-state-test-BWrZdLlZ.js} +3 -3
- package/bundled-test-harness/assets/{render-component-D1hfd-Ye.js → render-component-BII_KnyK.js} +1 -1
- package/bundled-test-harness/assets/{render-component-UJivgB7-.js → render-component-g_fhz2dX.js} +1 -1
- package/bundled-test-harness/assets/{render-error-DhmbPkQe.js → render-error-BS8ObrlR.js} +1 -1
- package/bundled-test-harness/assets/{render-error-test-BFK0aacW.js → render-error-test-BUAJJlUi.js} +1 -1
- package/bundled-test-harness/assets/{render-service-DJTSpXwH.js → render-service-tD9jJXUM.js} +2 -2
- package/bundled-test-harness/assets/{render-service-test-DJ4-WSUt.js → render-service-test-BKkCjErY.js} +2 -2
- package/bundled-test-harness/assets/{rendered-markdown-CtDl90fb.js → rendered-markdown-ColekGTF.js} +2 -2
- package/bundled-test-harness/assets/{rendered-markdown-test-B6NIZ9CV.js → rendered-markdown-test-B4CWIo02.js} +4 -4
- package/bundled-test-harness/assets/{rich-markdown-field-test-1O22gpZe.js → rich-markdown-field-test-B5u6D3Nk.js} +4 -4
- package/bundled-test-harness/assets/{room-message-test-tTvTm3D2.js → room-message-test-0eJSqQfu.js} +4 -4
- package/bundled-test-harness/assets/{runtime-common-C4VFkqFL.js → runtime-common-C7uLt5dN.js} +1 -1
- package/bundled-test-harness/assets/{sanitize-module-list-B_rgb68b.js → sanitize-module-list-AEPGKeo5.js} +4 -4
- package/bundled-test-harness/assets/{sanitize-module-list-test-C7Lr24Go.js → sanitize-module-list-test-rH6OqjKh.js} +5 -5
- package/bundled-test-harness/assets/{save-card-BC8zB2ly.js → save-card-DTRPVUI4.js} +2 -2
- package/bundled-test-harness/assets/{schema-editor-test-Dptqev7u.js → schema-editor-test-DH4MLFCD.js} +3 -3
- package/bundled-test-harness/assets/{schema-generation-test-D2KWt7Pv.js → schema-generation-test-BZMkX7VA.js} +3 -3
- package/bundled-test-harness/assets/{scrolling-test-DLKscVU_.js → scrolling-test-CFTyLG8X.js} +6 -6
- package/bundled-test-harness/assets/{search-DWY9zh2s.js → search-CZA7dEFS.js} +1 -1
- package/bundled-test-harness/assets/{search-and-choose-DnPumZQn.js → search-and-choose-BeBlVt7F.js} +4 -4
- package/bundled-test-harness/assets/{search-and-choose-test-BN1veYUt.js → search-and-choose-test-CcbVyp4c.js} +5 -5
- package/bundled-test-harness/assets/{search-cache-key-CSNMyR3o.js → search-cache-key-DrGejP2z.js} +1 -1
- package/bundled-test-harness/assets/{search-cache-key-test-CiLIwrHc.js → search-cache-key-test-BYt46iNT.js} +1 -1
- package/bundled-test-harness/assets/search-cards-CJtCe5m9.js +2 -0
- package/bundled-test-harness/assets/{search-cards-9Q2YJt5w.js → search-cards-SZdPvkdH.js} +2 -2
- package/bundled-test-harness/assets/{search-command-test-CbgNNENx.js → search-command-test-BRIJPr54.js} +3 -3
- package/bundled-test-harness/assets/{search-correlation-id-test-D3kMjxyB.js → search-correlation-id-test-B298Tfux.js} +2 -2
- package/bundled-test-harness/assets/{search-data-tBubQy1V.js → search-data-DqLTfst9.js} +1 -1
- package/bundled-test-harness/assets/{search-data-test-CJPFgMgm.js → search-data-test-DHV2Fd4S.js} +5 -5
- package/bundled-test-harness/assets/{search-google-images--4TnEd5v.js → search-google-images-DNAUMy6E.js} +2 -2
- package/bundled-test-harness/assets/{search-google-images-test-Izl8K73I.js → search-google-images-test-CNrazllP.js} +4 -4
- package/bundled-test-harness/assets/{search-in-flight-key-mBwT-GaC.js → search-in-flight-key-CkNzMiOD.js} +1 -1
- package/bundled-test-harness/assets/{search-in-flight-key-test-hH6KJW_h.js → search-in-flight-key-test-Dy3bU2c1.js} +1 -1
- package/bundled-test-harness/assets/{search-replace-block-parsing-FmIF3zsm.js → search-replace-block-parsing-CNxbJ4s9.js} +1 -1
- package/bundled-test-harness/assets/{search-result-header-CqxT6aTO.js → search-result-header-UauOyqjs.js} +1 -1
- package/bundled-test-harness/assets/{search-test-DcrFvXwI.js → search-test-DL1-gD-G.js} +5 -5
- package/bundled-test-harness/assets/{send-ai-assistant-message-BuBd8Mx-.js → send-ai-assistant-message-DP_3ppA-.js} +2 -2
- package/bundled-test-harness/assets/{send-ai-assistant-message-test-DWXRa3Y-.js → send-ai-assistant-message-test-CyEkQ5pD.js} +4 -4
- package/bundled-test-harness/assets/{send-bot-trigger-event-Cg-bm0R3.js → send-bot-trigger-event-Bb1z75GO.js} +2 -2
- package/bundled-test-harness/assets/{send-bot-trigger-event-test-CYGIA6ym.js → send-bot-trigger-event-test-CAsK28m-.js} +4 -4
- package/bundled-test-harness/assets/{send-request-via-proxy-CYiIpEJW.js → send-request-via-proxy-BLX5A-HL.js} +1 -1
- package/bundled-test-harness/assets/{send-request-via-proxy-test-cpFVaT41.js → send-request-via-proxy-test-DpMlRvPv.js} +5 -5
- package/bundled-test-harness/assets/{sending-test-Buf-KS5F.js → sending-test-BOeGYcTU.js} +5 -5
- package/bundled-test-harness/assets/{serialization-test-DJAK7xTz.js → serialization-test-gY2QQVxS.js} +5 -5
- package/bundled-test-harness/assets/{set-user-system-card-pThrh9fY.js → set-user-system-card-Db6rI-Qt.js} +1 -1
- package/bundled-test-harness/assets/{set-user-system-card-test-CAlvXhB5.js → set-user-system-card-test-BE3y5GNK.js} +4 -4
- package/bundled-test-harness/assets/{setup-DWTRm6-M.js → setup-B8O9JQKq.js} +2 -2
- package/bundled-test-harness/assets/{setup-C1J8MUEX.js → setup-BMqGUBDK.js} +1 -1
- package/bundled-test-harness/assets/{show-card-BEv8y5hM.js → show-card-CVJLnzLa.js} +2 -2
- package/bundled-test-harness/assets/{show-card-test-Bl8Oe_gX.js → show-card-test-BfJNnWMy.js} +5 -5
- package/bundled-test-harness/assets/{show-file-BKi5V96q.js → show-file-CyRiY_6z.js} +2 -2
- package/bundled-test-harness/assets/{skills-test-CDEG5JeR.js → skills-test-CqhnZxBi.js} +6 -6
- package/bundled-test-harness/assets/{spec-test-jvPRUjMN.js → spec-test-BUKNn_1q.js} +4 -4
- package/bundled-test-harness/assets/{stack-item-D6iC0SmX.js → stack-item-Bn9IwoUX.js} +1 -1
- package/bundled-test-harness/assets/{store-Dxz_gmhp.js → store-Di6ANQV5.js} +8 -8
- package/bundled-test-harness/assets/{store-add-ByTnK3u8.js → store-add-DeDtbGwk.js} +1 -1
- package/bundled-test-harness/assets/{store-add-test-Bm4HrP9c.js → store-add-test-BR1M-IDR.js} +5 -5
- package/bundled-test-harness/assets/{store-test-Bj4IuwQu.js → store-test-DaqI-HRh.js} +6 -6
- package/bundled-test-harness/assets/{summarize-session-500WHol8.js → summarize-session-CqSvkuVZ.js} +2 -2
- package/bundled-test-harness/assets/{summarize-session-test-cRvpu5lJ.js → summarize-session-test-BMg54JGF.js} +5 -5
- package/bundled-test-harness/assets/{svg-image-def-test-DQ8Ql3EL.js → svg-image-def-test-xNyIKRPV.js} +2 -2
- package/bundled-test-harness/assets/{switch-submode-kOf_nFi3.js → switch-submode-BwkCfnCZ.js} +3 -3
- package/bundled-test-harness/assets/{switch-submode-test-C2Y4oqpm.js → switch-submode-test-BKvpODUD.js} +5 -5
- package/bundled-test-harness/assets/{tests-B6EJFQkW.js → tests-x4_eRjiT.js} +243 -243
- package/bundled-test-harness/assets/{text-file-def-test-B6-yCZvN.js → text-file-def-test-CsXiyVfI.js} +2 -2
- package/bundled-test-harness/assets/{text-input-validator-test-DLg_kvR2.js → text-input-validator-test-D4s_laO7.js} +5 -5
- package/bundled-test-harness/assets/{text-suggestion-BxrzygIw.js → text-suggestion-CFhIq7-u.js} +1 -1
- package/bundled-test-harness/assets/{text-suggestion-test-5KxZro39.js → text-suggestion-test-CkLf1xuS.js} +3 -3
- package/bundled-test-harness/assets/{theme-card-test-hb6jQ87w.js → theme-card-test-D-6L6OfD.js} +2 -2
- package/bundled-test-harness/assets/{transform-cards-CrMkw0yw.js → transform-cards-D-jCQJ4T.js} +5 -5
- package/bundled-test-harness/assets/{transform-cards-test-DkqQcVZp.js → transform-cards-test-CRZF2gqZ.js} +6 -6
- package/bundled-test-harness/assets/{ts-file-def-test-CI7L_bvT.js → ts-file-def-test-CDo6ojCf.js} +2 -2
- package/bundled-test-harness/assets/{unregister-bot-B2kj8JBx.js → unregister-bot-D7FI7Oro.js} +1 -1
- package/bundled-test-harness/assets/{update-room-skills-test-D9O4Kn29.js → update-room-skills-test-BnSgVFwT.js} +5 -5
- package/bundled-test-harness/assets/{url-test-BpgeOWil.js → url-test-CK-HB0qu.js} +1 -1
- package/bundled-test-harness/assets/{use-ai-assistant-test-BP46uIwZ.js → use-ai-assistant-test-BuJXEP8H.js} +5 -5
- package/bundled-test-harness/assets/{utils-Cy0QY7GC.js → utils-C7xS5xXC.js} +1 -1
- package/bundled-test-harness/assets/{validate-realm-BB87lhM0.js → validate-realm-BbA9USE1.js} +3 -3
- package/bundled-test-harness/assets/{validate-realm-test-BUqQjz2C.js → validate-realm-test-Cx7MOtS8.js} +5 -5
- package/bundled-test-harness/assets/{wav-audio-def-test-1TPCWe08.js → wav-audio-def-test-DIo2GzQL.js} +2 -2
- package/bundled-test-harness/assets/{webp-image-def-test-CVGCY-QM.js → webp-image-def-test-BQsV0_De.js} +2 -2
- package/bundled-test-harness/assets/{workspace-BryQJQE7.js → workspace-D0smc8vv.js} +1 -1
- package/bundled-test-harness/assets/{workspace-chooser-delete-test-CtyIvufo.js → workspace-chooser-delete-test-peDXmnQf.js} +2 -2
- package/bundled-test-harness/assets/{workspace-chooser-test-C49u0Z6H.js → workspace-chooser-test-DS2RtTEF.js} +3 -3
- package/bundled-test-harness/assets/{workspace-delete-multiple-test-SO2KO-Rz.js → workspace-delete-multiple-test-DTbjRSzN.js} +3 -3
- package/bundled-test-harness/assets/{workspace-delete-summary-test-DsHrKsgn.js → workspace-delete-summary-test-B--ink4m.js} +1 -1
- package/bundled-test-harness/assets/{write-binary-file-DU-i8suO.js → write-binary-file-B3j05J3o.js} +2 -2
- package/bundled-test-harness/assets/{write-binary-file-test-CFjBRsVy.js → write-binary-file-test-A3TQ5lFn.js} +4 -4
- package/bundled-test-harness/assets/{write-text-file-z03Li_VD.js → write-text-file-C5LYv8hi.js} +2 -2
- package/bundled-test-harness/assets/{write-text-file-test-D7wxiOYm.js → write-text-file-test-D_rjNDsT.js} +4 -4
- package/bundled-test-harness/index.html +108 -108
- package/bundled-test-harness/tests/index.html +111 -111
- package/bundled-types/host-app/commands/index.ts +0 -42
- package/bundled-types/host-app/commands/screenshot-card.ts +10 -5
- package/package.json +5 -3
- package/bundled-test-harness/assets/adapter-CYIVugqe.js +0 -2
- package/bundled-test-harness/assets/live-test-Ly6rXYrE.js +0 -2
- package/bundled-test-harness/assets/search-cards-CEkx06L6.js +0 -2
- package/bundled-types/host-app/commands/listing-action-init.ts +0 -105
- package/bundled-types/host-app/commands/listing-create.ts +0 -663
- package/bundled-types/host-app/commands/listing-generate-example.ts +0 -92
- package/bundled-types/host-app/commands/listing-install.ts +0 -241
- package/bundled-types/host-app/commands/listing-remix.ts +0 -149
- package/bundled-types/host-app/commands/listing-update-specs.ts +0 -116
- package/bundled-types/host-app/commands/listing-use.ts +0 -108
|
@@ -1,75 +1,74 @@
|
|
|
1
1
|
import { r as __exportAll } from "./chunk-CGdGNDIi.js";
|
|
2
2
|
import { r as initializeDeferredDecorator, t as decorateFieldV2 } from "./runtime-CYyqkz5q-z3Y1hsJm.js";
|
|
3
|
-
import { Ai as
|
|
4
|
-
import { j as join } from "./dompurify-runtime-DnZEeRZb.js";
|
|
3
|
+
import { Ai as realmURL, Ei as isBaseInstance, It as SupportedMimeType, O as toBranchName, Sr as isCardInstance, ar as basicMappings, hr as getClass, jr as moduleFrom, or as generateJsonSchemaForCardType, ua as rri, vi as baseRealm, vr as identifyCard, w as ensureExtension, zn as DEFAULT_CODING_LLM } from "./runtime-common-C7uLt5dN.js";
|
|
5
4
|
import { i as v4 } from "./esm-browser-BEW1xlQc.js";
|
|
6
5
|
import { r as service } from "./service-DJ87xpDt.js";
|
|
7
|
-
import { t as HostBaseCommand } from "./host-base-command-
|
|
8
|
-
import { n as write_text_file_exports, t as WriteTextFileCommand } from "./write-text-file-
|
|
9
|
-
import { n as add_field_to_card_definition_exports, t as AddFieldToCardDefinitionCommand } from "./add-field-to-card-definition-
|
|
10
|
-
import { n as create_ai_assistant_room_exports, t as CreateAiAssistantRoomCommand } from "./create-ai-assistant-room-
|
|
11
|
-
import { n as open_ai_assistant_room_exports, t as OpenAiAssistantRoomCommand } from "./open-ai-assistant-room-
|
|
12
|
-
import { c as get_events_from_room_exports, i as utils_exports, n as send_ai_assistant_message_exports, s as GetEventsFromRoomCommand, t as SendAiAssistantMessageCommand } from "./send-ai-assistant-message-
|
|
13
|
-
import { i as set_active_llm_exports, n as ai_assistant_exports, r as SetActiveLLMCommand, t as UseAiAssistantCommand } from "./ai-assistant-
|
|
14
|
-
import { d as UpdateRoomSkillsCommand, f as update_room_skills_exports } from "./card-prerender-
|
|
15
|
-
import { i as get_card_exports, n as apply_markdown_edit_exports, r as GetCardCommand, t as ApplyMarkdownEditCommand } from "./apply-markdown-edit-
|
|
16
|
-
import { n as patch_fields_exports, t as PatchFieldsCommand } from "./patch-fields-
|
|
17
|
-
import { n as send_request_via_proxy_exports, t as SendRequestViaProxyCommand } from "./send-request-via-proxy-
|
|
18
|
-
import { n as apply_search_replace_block_exports, t as ApplySearchReplaceBlockCommand } from "./apply-search-replace-block
|
|
19
|
-
import { n as authed_fetch_exports, t as AuthedFetchCommand } from "./authed-fetch-
|
|
20
|
-
import { n as send_bot_trigger_event_exports, t as SendBotTriggerEventCommand } from "./send-bot-trigger-event-
|
|
21
|
-
import { n as create_listing_pr_request_exports, t as CreateListingPRRequestCommand } from "./create-listing-pr-request-
|
|
22
|
-
import { n as can_read_realm_exports, t as CanReadRealmCommand } from "./can-read-realm-
|
|
23
|
-
import { n as cancel_indexing_job_exports, t as CancelIndexingJobCommand } from "./cancel-indexing-job-
|
|
24
|
-
import { n as check_correctness_exports, t as CheckCorrectnessCommand } from "./check-correctness-
|
|
25
|
-
import { n as copy_card_exports, t as CopyCardToRealmCommand } from "./copy-card-
|
|
26
|
-
import { n as copy_and_edit_exports, t as CopyAndEditCommand } from "./copy-and-edit-
|
|
6
|
+
import { t as HostBaseCommand } from "./host-base-command-BMsZcn1D.js";
|
|
7
|
+
import { n as write_text_file_exports, t as WriteTextFileCommand } from "./write-text-file-C5LYv8hi.js";
|
|
8
|
+
import { n as add_field_to_card_definition_exports, t as AddFieldToCardDefinitionCommand } from "./add-field-to-card-definition-DIn1q610.js";
|
|
9
|
+
import { n as create_ai_assistant_room_exports, t as CreateAiAssistantRoomCommand } from "./create-ai-assistant-room-7LllE6Lq.js";
|
|
10
|
+
import { n as open_ai_assistant_room_exports, t as OpenAiAssistantRoomCommand } from "./open-ai-assistant-room-DtydafHF.js";
|
|
11
|
+
import { c as get_events_from_room_exports, i as utils_exports, n as send_ai_assistant_message_exports, s as GetEventsFromRoomCommand, t as SendAiAssistantMessageCommand } from "./send-ai-assistant-message-DP_3ppA-.js";
|
|
12
|
+
import { i as set_active_llm_exports, n as ai_assistant_exports, r as SetActiveLLMCommand, t as UseAiAssistantCommand } from "./ai-assistant-B5fp2iOz.js";
|
|
13
|
+
import { d as UpdateRoomSkillsCommand, f as update_room_skills_exports } from "./card-prerender-DXG8cQEv.js";
|
|
14
|
+
import { i as get_card_exports, n as apply_markdown_edit_exports, r as GetCardCommand, t as ApplyMarkdownEditCommand } from "./apply-markdown-edit-CT7UXlCm.js";
|
|
15
|
+
import { n as patch_fields_exports, t as PatchFieldsCommand } from "./patch-fields-CnL9_mBJ.js";
|
|
16
|
+
import { n as send_request_via_proxy_exports, t as SendRequestViaProxyCommand } from "./send-request-via-proxy-BLX5A-HL.js";
|
|
17
|
+
import { n as apply_search_replace_block_exports, t as ApplySearchReplaceBlockCommand } from "./apply-search-replace-block-S2ZTkuTA.js";
|
|
18
|
+
import { n as authed_fetch_exports, t as AuthedFetchCommand } from "./authed-fetch-D83Ohr_b.js";
|
|
19
|
+
import { n as send_bot_trigger_event_exports, t as SendBotTriggerEventCommand } from "./send-bot-trigger-event-Bb1z75GO.js";
|
|
20
|
+
import { n as create_listing_pr_request_exports, t as CreateListingPRRequestCommand } from "./create-listing-pr-request-CZaLsHhE.js";
|
|
21
|
+
import { n as can_read_realm_exports, t as CanReadRealmCommand } from "./can-read-realm-BTFZdy1x.js";
|
|
22
|
+
import { n as cancel_indexing_job_exports, t as CancelIndexingJobCommand } from "./cancel-indexing-job-kp_C8Xl-.js";
|
|
23
|
+
import { n as check_correctness_exports, t as CheckCorrectnessCommand } from "./check-correctness-BIfYUT39.js";
|
|
24
|
+
import { n as copy_card_exports, t as CopyCardToRealmCommand } from "./copy-card-JGCXNcjb.js";
|
|
25
|
+
import { n as copy_and_edit_exports, t as CopyAndEditCommand } from "./copy-and-edit-B8M2rwoL.js";
|
|
27
26
|
import { t as isTesting } from "./runtime-BSthmflw.js";
|
|
28
|
-
import { n as copy_card_to_stack_exports, t as CopyCardToStackCommand } from "./copy-card-to-stack-
|
|
29
|
-
import { i as copy_file_to_realm_exports, n as show_file_exports, r as CopyFileToRealmCommand, t as ShowFileCommand } from "./show-file-
|
|
30
|
-
import { n as copy_source_exports, t as CopySourceCommand } from "./copy-source-
|
|
31
|
-
import {
|
|
32
|
-
import { a as skillCardURL,
|
|
33
|
-
import { n as one_shot_llm_request_exports, t as OneShotLlmRequestCommand } from "./one-shot-llm-request-
|
|
34
|
-
import { n as read_source_exports, t as ReadSourceCommand } from "./read-source-
|
|
35
|
-
import { n as read_text_file_exports, t as ReadTextFileCommand } from "./read-text-file-
|
|
36
|
-
import { n as patch_card_instance_exports, t as PatchCardInstanceCommand } from "./patch-card-instance-
|
|
37
|
-
import { n as evaluate_module_exports, t as EvaluateModuleCommand } from "./evaluate-module-
|
|
38
|
-
import { n as execute_atomic_operations_exports, t as ExecuteAtomicOperationsCommand } from "./execute-atomic-operations-
|
|
39
|
-
import { n as fetch_card_json_exports, t as FetchCardJsonCommand } from "./fetch-card-json-
|
|
40
|
-
import { n as full_reindex_realm_exports, t as FullReindexRealmCommand } from "./full-reindex-realm-
|
|
41
|
-
import { a as ONE_SHOT_SYSTEM_PROMPT, c as parseExamplePayloadFromOutput, i as generate_example_cards_exports,
|
|
42
|
-
import { n as write_binary_file_exports, t as WriteBinaryFileCommand } from "./write-binary-file-
|
|
43
|
-
import { n as get_available_realm_identifiers_exports, t as GetAvailableRealmIdentifiersCommand } from "./get-available-realm-identifiers-
|
|
44
|
-
import { n as get_catalog_realm_identifiers_exports, t as GetCatalogRealmIdentifiersCommand } from "./get-catalog-realm-identifiers-
|
|
45
|
-
import { n as get_default_writable_realm_exports, t as GetDefaultWritableRealmCommand } from "./get-default-writable-realm-
|
|
46
|
-
import { n as get_realm_of_resource_identifier_exports, t as GetRealmOfResourceIdentifierCommand } from "./get-realm-of-resource-identifier-
|
|
47
|
-
import { n as get_user_system_card_exports, t as GetUserSystemCardCommand } from "./get-user-system-card-
|
|
48
|
-
import { n as instantiate_card_exports, t as InstantiateCardCommand } from "./instantiate-card-
|
|
49
|
-
import { n as invalidate_realm_identifiers_exports, t as InvalidateRealmIdentifiersCommand } from "./invalidate-realm-identifiers-
|
|
50
|
-
import { n as invite_user_to_room_exports, t as InviteUserToRoomCommand } from "./invite-user-to-room-
|
|
51
|
-
import { n as lint_and_fix_exports, t as LintAndFixCommand } from "./lint-and-fix-
|
|
52
|
-
import { n as switch_submode_exports, t as SwitchSubmodeCommand } from "./switch-submode-
|
|
53
|
-
import { n as
|
|
54
|
-
import { n as
|
|
55
|
-
import { n as
|
|
56
|
-
import { n as
|
|
57
|
-
import { n as
|
|
58
|
-
import { n as
|
|
59
|
-
import { n as
|
|
60
|
-
import { n as
|
|
61
|
-
import { n as
|
|
62
|
-
import { n as
|
|
63
|
-
import { n as
|
|
64
|
-
import { n as
|
|
65
|
-
import { n as
|
|
66
|
-
import { n as
|
|
67
|
-
import {
|
|
68
|
-
import { n as
|
|
69
|
-
import { n as
|
|
70
|
-
import { n as
|
|
71
|
-
import { n as
|
|
72
|
-
import { n as
|
|
27
|
+
import { n as copy_card_to_stack_exports, t as CopyCardToStackCommand } from "./copy-card-to-stack-Cnj8p8tc.js";
|
|
28
|
+
import { i as copy_file_to_realm_exports, n as show_file_exports, r as CopyFileToRealmCommand, t as ShowFileCommand } from "./show-file-CyRiY_6z.js";
|
|
29
|
+
import { n as copy_source_exports, t as CopySourceCommand } from "./copy-source-CSrG5lS7.js";
|
|
30
|
+
import { i as generate_readme_spec_exports, n as create_specs_exports, r as GenerateReadmeSpecCommand, t as CreateSpecCommand } from "./create-specs-t7sWc_xt.js";
|
|
31
|
+
import { a as skillCardURL, r as devSkillId } from "./utils-C7xS5xXC.js";
|
|
32
|
+
import { n as one_shot_llm_request_exports, t as OneShotLlmRequestCommand } from "./one-shot-llm-request-Cmtn_WRk.js";
|
|
33
|
+
import { n as read_source_exports, t as ReadSourceCommand } from "./read-source-C2sP8K8Z.js";
|
|
34
|
+
import { n as read_text_file_exports, t as ReadTextFileCommand } from "./read-text-file-CACAhnsS.js";
|
|
35
|
+
import { n as patch_card_instance_exports, t as PatchCardInstanceCommand } from "./patch-card-instance-BgWqjUFi.js";
|
|
36
|
+
import { n as evaluate_module_exports, t as EvaluateModuleCommand } from "./evaluate-module-C6_gzn5_.js";
|
|
37
|
+
import { n as execute_atomic_operations_exports, t as ExecuteAtomicOperationsCommand } from "./execute-atomic-operations-CC3N-5N4.js";
|
|
38
|
+
import { n as fetch_card_json_exports, t as FetchCardJsonCommand } from "./fetch-card-json-B-C1HlJO.js";
|
|
39
|
+
import { n as full_reindex_realm_exports, t as FullReindexRealmCommand } from "./full-reindex-realm-DbD6GuJ5.js";
|
|
40
|
+
import { a as ONE_SHOT_SYSTEM_PROMPT, c as parseExamplePayloadFromOutput, i as generate_example_cards_exports, o as buildAttachedFileURLs, r as createExampleInstanceFromPayload, s as buildExamplePrompt, t as GenerateExampleCardsCommand } from "./generate-example-cards-DSnMgnoE.js";
|
|
41
|
+
import { n as write_binary_file_exports, t as WriteBinaryFileCommand } from "./write-binary-file-B3j05J3o.js";
|
|
42
|
+
import { n as get_available_realm_identifiers_exports, t as GetAvailableRealmIdentifiersCommand } from "./get-available-realm-identifiers-B_Bjav4V.js";
|
|
43
|
+
import { n as get_catalog_realm_identifiers_exports, t as GetCatalogRealmIdentifiersCommand } from "./get-catalog-realm-identifiers-Bd_kaIut.js";
|
|
44
|
+
import { n as get_default_writable_realm_exports, t as GetDefaultWritableRealmCommand } from "./get-default-writable-realm-DfHmEQ8g.js";
|
|
45
|
+
import { n as get_realm_of_resource_identifier_exports, t as GetRealmOfResourceIdentifierCommand } from "./get-realm-of-resource-identifier-DR1Hzxmh.js";
|
|
46
|
+
import { n as get_user_system_card_exports, t as GetUserSystemCardCommand } from "./get-user-system-card-CSByuPXh.js";
|
|
47
|
+
import { n as instantiate_card_exports, t as InstantiateCardCommand } from "./instantiate-card-CJrMFAO_.js";
|
|
48
|
+
import { n as invalidate_realm_identifiers_exports, t as InvalidateRealmIdentifiersCommand } from "./invalidate-realm-identifiers-B_NYbRkp.js";
|
|
49
|
+
import { n as invite_user_to_room_exports, t as InviteUserToRoomCommand } from "./invite-user-to-room-By6L6O7g.js";
|
|
50
|
+
import { n as lint_and_fix_exports, t as LintAndFixCommand } from "./lint-and-fix-BMQ1syM6.js";
|
|
51
|
+
import { n as switch_submode_exports, t as SwitchSubmodeCommand } from "./switch-submode-BwkCfnCZ.js";
|
|
52
|
+
import { n as open_create_listing_modal_exports, t as OpenCreateListingModalCommand } from "./open-create-listing-modal-DFq_N8TO.js";
|
|
53
|
+
import { n as open_workspace_exports, t as OpenWorkspaceCommand } from "./open-workspace-DRfx-nzh.js";
|
|
54
|
+
import { n as patch_code_exports, t as PatchCodeCommand } from "./patch-code-BksUYDfB.js";
|
|
55
|
+
import { n as persist_module_inspector_view_exports, t as PersistModuleInspectorViewCommand } from "./persist-module-inspector-view-DJJZQppZ.js";
|
|
56
|
+
import { n as show_card_exports, t as ShowCardCommand } from "./show-card-CVJLnzLa.js";
|
|
57
|
+
import { n as preview_format_exports, t as PreviewFormatCommand } from "./preview-format-snitJHQF.js";
|
|
58
|
+
import { n as read_card_for_ai_assistant_exports, t as ReadCardForAssistantCommand } from "./read-card-for-ai-assistant-BfSsTYj2.js";
|
|
59
|
+
import { n as read_file_for_ai_assistant_exports, t as ReadFileForAssistantCommand } from "./read-file-for-ai-assistant-AEVCUknz.js";
|
|
60
|
+
import { i as register_bot_exports, n as unregister_bot_exports, r as RegisterBotCommand, t as UnregisterBotCommand } from "./unregister-bot-D7FI7Oro.js";
|
|
61
|
+
import { n as reindex_realm_exports, t as ReindexRealmCommand } from "./reindex-realm-C6fVI3zx.js";
|
|
62
|
+
import { n as sanitize_module_list_exports, t as SanitizeModuleListCommand } from "./sanitize-module-list-AEPGKeo5.js";
|
|
63
|
+
import { n as save_card_exports, t as SaveCardCommand } from "./save-card-DTRPVUI4.js";
|
|
64
|
+
import { n as SearchCardsByTypeAndTitleCommand, r as search_cards_exports, t as SearchCardsByQueryCommand } from "./search-cards-SZdPvkdH.js";
|
|
65
|
+
import { n as search_and_choose_exports, t as SearchAndChooseCommand } from "./search-and-choose-BeBlVt7F.js";
|
|
66
|
+
import { n as search_google_images_exports, t as SearchGoogleImagesCommand } from "./search-google-images-DNAUMy6E.js";
|
|
67
|
+
import { n as set_user_system_card_exports, t as SetUserSystemCardCommand } from "./set-user-system-card-Db6rI-Qt.js";
|
|
68
|
+
import { n as store_add_exports, t as StoreAddCommand } from "./store-add-DeDtbGwk.js";
|
|
69
|
+
import { n as summarize_session_exports, t as SummarizeSessionCommand } from "./summarize-session-CqSvkuVZ.js";
|
|
70
|
+
import { n as transform_cards_exports, t as TransformCardsCommand } from "./transform-cards-D-jCQJ4T.js";
|
|
71
|
+
import { n as validate_realm_exports, t as ValidateRealmCommand } from "./validate-realm-BbA9USE1.js";
|
|
73
72
|
//#region app/commands/ask-ai.ts
|
|
74
73
|
var ask_ai_exports = /* @__PURE__ */ __exportAll({ default: () => AskAiCommand });
|
|
75
74
|
var AskAiCommand = class extends HostBaseCommand {
|
|
@@ -596,905 +595,6 @@ var ListingActionBuildCommand = class extends HostBaseCommand {
|
|
|
596
595
|
}
|
|
597
596
|
};
|
|
598
597
|
//#endregion
|
|
599
|
-
//#region app/commands/listing-action-init.ts
|
|
600
|
-
var listing_action_init_exports = /* @__PURE__ */ __exportAll({ default: () => ListingActionInitCommand });
|
|
601
|
-
var ListingActionInitCommand = class extends HostBaseCommand {
|
|
602
|
-
constructor(..._args) {
|
|
603
|
-
super(..._args);
|
|
604
|
-
this.description = "Catalog listing use command";
|
|
605
|
-
this.requireInputFields = ["actionType", "listing"];
|
|
606
|
-
}
|
|
607
|
-
async getInputType() {
|
|
608
|
-
const { ListingActionInput } = await this.loadCommandModule();
|
|
609
|
-
return ListingActionInput;
|
|
610
|
-
}
|
|
611
|
-
async run(input) {
|
|
612
|
-
let { realm: realmUrl, actionType, listing: listingInput, attachedCard } = input;
|
|
613
|
-
const listing = listingInput;
|
|
614
|
-
let roomName = "";
|
|
615
|
-
switch (actionType) {
|
|
616
|
-
case "remix":
|
|
617
|
-
roomName = `Remix of ${listing.name}`;
|
|
618
|
-
break;
|
|
619
|
-
case "use":
|
|
620
|
-
roomName = `Use of ${listing.name}`;
|
|
621
|
-
break;
|
|
622
|
-
case "install":
|
|
623
|
-
roomName = `Install of ${listing.name}`;
|
|
624
|
-
break;
|
|
625
|
-
case "create":
|
|
626
|
-
roomName = `Create Listing`;
|
|
627
|
-
break;
|
|
628
|
-
default: throw new Error(`Invalid listing action type: ${actionType}`);
|
|
629
|
-
}
|
|
630
|
-
const { roomId } = await new CreateAiAssistantRoomCommand(this.commandContext).execute({ name: roomName });
|
|
631
|
-
const listingSkillCardId = skillCardURL("catalog-listing");
|
|
632
|
-
if (listingSkillCardId) await new UpdateRoomSkillsCommand(this.commandContext).execute({
|
|
633
|
-
roomId,
|
|
634
|
-
skillCardIdsToActivate: [listingSkillCardId]
|
|
635
|
-
});
|
|
636
|
-
let prompt = `I would like to create a new listing`;
|
|
637
|
-
if (actionType !== "create") prompt = `I would like to ${actionType} this ${listing.name} under the following realm: ${realmUrl}`;
|
|
638
|
-
let openCardIds = [];
|
|
639
|
-
if (actionType === "create") openCardIds = [attachedCard.id];
|
|
640
|
-
else openCardIds = [listing.id];
|
|
641
|
-
if (roomId) {
|
|
642
|
-
await new SetActiveLLMCommand(this.commandContext).execute({
|
|
643
|
-
roomId,
|
|
644
|
-
model: DEFAULT_REMIX_LLM
|
|
645
|
-
});
|
|
646
|
-
await new SendAiAssistantMessageCommand(this.commandContext).execute({
|
|
647
|
-
roomId,
|
|
648
|
-
prompt,
|
|
649
|
-
openCardIds,
|
|
650
|
-
attachedCards: actionType === "create" ? [attachedCard] : [listing]
|
|
651
|
-
});
|
|
652
|
-
await new OpenAiAssistantRoomCommand(this.commandContext).execute({ roomId });
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
|
-
};
|
|
656
|
-
//#endregion
|
|
657
|
-
//#region app/commands/listing-create.ts
|
|
658
|
-
var listing_create_exports = /* @__PURE__ */ __exportAll({ default: () => ListingCreateCommand });
|
|
659
|
-
var BASE_CARD_API_MODULE = "https://cardstack.com/base/card-api";
|
|
660
|
-
var BASE_SKILL_MODULE = "https://cardstack.com/base/skill";
|
|
661
|
-
var listingSubClass = {
|
|
662
|
-
card: "CardListing",
|
|
663
|
-
skill: "SkillListing",
|
|
664
|
-
theme: "ThemeListing",
|
|
665
|
-
field: "FieldListing",
|
|
666
|
-
component: "ComponentListing"
|
|
667
|
-
};
|
|
668
|
-
var ListingCreateCommand = class extends HostBaseCommand {
|
|
669
|
-
constructor(..._args) {
|
|
670
|
-
super(..._args);
|
|
671
|
-
this.#moduleContentsService = (initializeDeferredDecorator(this, "moduleContentsService"), void 0);
|
|
672
|
-
this.description = "Create a catalog listing for a card, field, skill, theme, or component";
|
|
673
|
-
this.requireInputFields = ["codeRef", "targetRealm"];
|
|
674
|
-
}
|
|
675
|
-
static {
|
|
676
|
-
decorateFieldV2(this.prototype, "moduleContentsService", [service]);
|
|
677
|
-
}
|
|
678
|
-
#moduleContentsService;
|
|
679
|
-
static {
|
|
680
|
-
this.actionVerb = "Create";
|
|
681
|
-
}
|
|
682
|
-
async getCatalogRealm() {
|
|
683
|
-
const { realmIdentifiers } = await new GetCatalogRealmIdentifiersCommand(this.commandContext).execute();
|
|
684
|
-
let catalogRealm = realmIdentifiers.find((realm) => realm.endsWith("/catalog/"));
|
|
685
|
-
if (!catalogRealm) throw new Error("Catalog realm not found. No available realm URL ends with /catalog/");
|
|
686
|
-
return catalogRealm;
|
|
687
|
-
}
|
|
688
|
-
async getInputType() {
|
|
689
|
-
const { ListingCreateInput } = await this.loadCommandModule();
|
|
690
|
-
return ListingCreateInput;
|
|
691
|
-
}
|
|
692
|
-
async sanitizeModuleList(modulesToCreate) {
|
|
693
|
-
const { moduleIdentifiers } = await new SanitizeModuleListCommand(this.commandContext).execute({ moduleIdentifiers: Array.from(modulesToCreate) });
|
|
694
|
-
return moduleIdentifiers;
|
|
695
|
-
}
|
|
696
|
-
async run(input) {
|
|
697
|
-
let { openCardIds, codeRef, targetRealm } = input;
|
|
698
|
-
if (!codeRef) throw new Error("codeRef is required");
|
|
699
|
-
if (!isResolvedCodeRef(codeRef)) throw new Error("codeRef must be a ResolvedCodeRef with module and name");
|
|
700
|
-
if (!targetRealm) throw new Error("Target Realm is required");
|
|
701
|
-
let listingType = await this.guessListingType(codeRef);
|
|
702
|
-
const catalogRealm = await this.getCatalogRealm();
|
|
703
|
-
let relationships = {};
|
|
704
|
-
if (openCardIds && openCardIds.length > 0) openCardIds.forEach((id, index) => {
|
|
705
|
-
relationships[`examples.${index}`] = { links: { self: id } };
|
|
706
|
-
});
|
|
707
|
-
const listingDoc = { data: {
|
|
708
|
-
type: "card",
|
|
709
|
-
relationships,
|
|
710
|
-
meta: { adoptsFrom: {
|
|
711
|
-
module: rri(`${catalogRealm}catalog-app/listing/listing`),
|
|
712
|
-
name: listingSubClass[listingType]
|
|
713
|
-
} }
|
|
714
|
-
} };
|
|
715
|
-
const listing = await new StoreAddCommand(this.commandContext).execute({
|
|
716
|
-
document: listingDoc,
|
|
717
|
-
realm: targetRealm
|
|
718
|
-
});
|
|
719
|
-
const commandModule = await this.loadCommandModule();
|
|
720
|
-
const listingCard = listing;
|
|
721
|
-
const firstOpenCardId = openCardIds?.[0];
|
|
722
|
-
const backgroundTasks = [
|
|
723
|
-
{
|
|
724
|
-
name: "autoPatchName",
|
|
725
|
-
promise: this.autoPatchName(listingCard, codeRef)
|
|
726
|
-
},
|
|
727
|
-
{
|
|
728
|
-
name: "autoPatchSummary",
|
|
729
|
-
promise: this.autoPatchSummary(listingCard, codeRef)
|
|
730
|
-
},
|
|
731
|
-
{
|
|
732
|
-
name: "autoLinkTag",
|
|
733
|
-
promise: this.autoLinkTag(listingCard, codeRef)
|
|
734
|
-
},
|
|
735
|
-
{
|
|
736
|
-
name: "autoLinkCategory",
|
|
737
|
-
promise: this.autoLinkCategory(listingCard, codeRef)
|
|
738
|
-
},
|
|
739
|
-
{
|
|
740
|
-
name: "autoLinkLicense",
|
|
741
|
-
promise: this.autoLinkLicense(listingCard)
|
|
742
|
-
},
|
|
743
|
-
{
|
|
744
|
-
name: "autoLinkExample",
|
|
745
|
-
promise: this.autoLinkExample(listingCard, codeRef, openCardIds)
|
|
746
|
-
},
|
|
747
|
-
{
|
|
748
|
-
name: "linkSpecs",
|
|
749
|
-
promise: this.linkSpecs(listingCard, targetRealm, firstOpenCardId ?? codeRef?.module, codeRef.module, codeRef)
|
|
750
|
-
}
|
|
751
|
-
];
|
|
752
|
-
const backgroundWork = Promise.allSettled(backgroundTasks.map((t) => t.promise)).then((results) => {
|
|
753
|
-
results.forEach((result, i) => {
|
|
754
|
-
if (result.status === "rejected") console.warn(`Background autopatch failed [${backgroundTasks[i].name}]:`, result.reason);
|
|
755
|
-
});
|
|
756
|
-
});
|
|
757
|
-
this.autoGenerateThumbnail(listingCard, codeRef, targetRealm).catch((e) => {
|
|
758
|
-
console.warn("Failed to auto-generate thumbnail:", e);
|
|
759
|
-
});
|
|
760
|
-
const { ListingCreateResult } = commandModule;
|
|
761
|
-
const result = new ListingCreateResult({ listing });
|
|
762
|
-
result.backgroundWork = backgroundWork;
|
|
763
|
-
return result;
|
|
764
|
-
}
|
|
765
|
-
async guessListingType(codeRef) {
|
|
766
|
-
if (await this.isComponentExport(codeRef)) return "component";
|
|
767
|
-
let cardDef;
|
|
768
|
-
try {
|
|
769
|
-
cardDef = await loadCardDef(codeRef, { loader: this.loaderService.loader });
|
|
770
|
-
} catch {
|
|
771
|
-
return "card";
|
|
772
|
-
}
|
|
773
|
-
if (isFieldDef(cardDef)) return "field";
|
|
774
|
-
if (this.isAncestor(cardDef, BASE_CARD_API_MODULE, "Theme")) return "theme";
|
|
775
|
-
if (this.isAncestor(cardDef, BASE_SKILL_MODULE, "Skill")) return "skill";
|
|
776
|
-
return "card";
|
|
777
|
-
}
|
|
778
|
-
async isComponentExport(codeRef) {
|
|
779
|
-
try {
|
|
780
|
-
let declarations = await this.moduleContentsService.assemble(codeRef.module);
|
|
781
|
-
let declaration = findDeclarationByName(codeRef.name, declarations);
|
|
782
|
-
return declaration ? isComponentDeclaration(declaration) : false;
|
|
783
|
-
} catch {
|
|
784
|
-
return false;
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
isAncestor(cardDef, targetModule, targetName) {
|
|
788
|
-
let current = cardDef;
|
|
789
|
-
while (current) {
|
|
790
|
-
const ref = identifyCard(current);
|
|
791
|
-
if (ref && !("type" in ref) && ref.module === targetModule && ref.name === targetName) return true;
|
|
792
|
-
current = getAncestor(current) ?? void 0;
|
|
793
|
-
}
|
|
794
|
-
return false;
|
|
795
|
-
}
|
|
796
|
-
async linkSpecs(listing, targetRealm, resourceUrl, moduleUrl, codeRef) {
|
|
797
|
-
const { realmIdentifier: resourceRealmIdentifier } = await new GetRealmOfResourceIdentifierCommand(this.commandContext).execute({ resourceIdentifier: resourceUrl });
|
|
798
|
-
const depUrl = `${resourceRealmIdentifier || targetRealm}_dependencies?url=${encodeURIComponent(resourceUrl)}`;
|
|
799
|
-
const { ok, body: jsonApiResponse } = await new AuthedFetchCommand(this.commandContext).execute({
|
|
800
|
-
url: depUrl,
|
|
801
|
-
acceptHeader: SupportedMimeType.JSONAPI
|
|
802
|
-
});
|
|
803
|
-
if (!ok) {
|
|
804
|
-
console.warn("Failed to fetch dependencies for specs");
|
|
805
|
-
listing.specs = [];
|
|
806
|
-
return [];
|
|
807
|
-
}
|
|
808
|
-
const modulesToCreate = [moduleUrl];
|
|
809
|
-
jsonApiResponse.data?.forEach((entry) => {
|
|
810
|
-
if (entry.attributes?.dependencies) modulesToCreate.push(...entry.attributes.dependencies);
|
|
811
|
-
});
|
|
812
|
-
const sanitizedModules = await this.sanitizeModuleList(modulesToCreate);
|
|
813
|
-
const uniqueSpecsById = /* @__PURE__ */ new Map();
|
|
814
|
-
if (sanitizedModules.length > 0) {
|
|
815
|
-
const createSpecCommand = new CreateSpecCommand(this.commandContext);
|
|
816
|
-
const normalizedModuleUrl = trimExecutableExtension(rri(new URL(moduleUrl).href));
|
|
817
|
-
(await Promise.all(sanitizedModules.map((module) => {
|
|
818
|
-
const input = trimExecutableExtension(rri(new URL(module).href)) === normalizedModuleUrl ? {
|
|
819
|
-
codeRef,
|
|
820
|
-
targetRealm,
|
|
821
|
-
autoGenerateReadme: true
|
|
822
|
-
} : {
|
|
823
|
-
module,
|
|
824
|
-
targetRealm,
|
|
825
|
-
autoGenerateReadme: true
|
|
826
|
-
};
|
|
827
|
-
return createSpecCommand.execute(input).catch((e) => {
|
|
828
|
-
console.warn("Failed to create spec(s) for", module, e);
|
|
829
|
-
});
|
|
830
|
-
}))).forEach((result) => {
|
|
831
|
-
result?.specs?.forEach((spec) => {
|
|
832
|
-
if (spec?.id) uniqueSpecsById.set(spec.id, spec);
|
|
833
|
-
});
|
|
834
|
-
});
|
|
835
|
-
}
|
|
836
|
-
const specs = Array.from(uniqueSpecsById.values());
|
|
837
|
-
listing.specs = specs;
|
|
838
|
-
return specs;
|
|
839
|
-
}
|
|
840
|
-
async chooseCards(params, opts) {
|
|
841
|
-
return (await new SearchAndChooseCommand(this.commandContext).execute({
|
|
842
|
-
candidateTypeCodeRef: params.candidateTypeCodeRef,
|
|
843
|
-
sourceContextCodeRef: params.sourceContextCodeRef,
|
|
844
|
-
max: opts?.max,
|
|
845
|
-
additionalSystemPrompt: opts?.additionalSystemPrompt
|
|
846
|
-
})).selectedCards ?? [];
|
|
847
|
-
}
|
|
848
|
-
async autoPatchName(listing, codeRef) {
|
|
849
|
-
const name = await this.getStringPatch({
|
|
850
|
-
codeRef,
|
|
851
|
-
systemPrompt: "You are a concise and accurate summarization system. You read a Cardstack card/field definition source file and create a concise catalog listing title. Respond ONLY with the title text—no quotes, no JSON, no markdown, and no extra commentary.",
|
|
852
|
-
userPrompt: [
|
|
853
|
-
`Generate a catalog listing title for the definition referenced by:`,
|
|
854
|
-
`- module: ${codeRef.module}`,
|
|
855
|
-
`- exportName: ${codeRef.name}`,
|
|
856
|
-
`Use ONLY the attached module source shown below (the file content).`,
|
|
857
|
-
`Focus on the export named "${codeRef.name}" (ignore other exports).`
|
|
858
|
-
].join("\n")
|
|
859
|
-
});
|
|
860
|
-
if (name) listing.name = name;
|
|
861
|
-
}
|
|
862
|
-
async autoPatchSummary(listing, codeRef) {
|
|
863
|
-
const summary = await this.getStringPatch({
|
|
864
|
-
codeRef,
|
|
865
|
-
systemPrompt: "You are a concise and accurate summarization system. You read a Cardstack card/field definition source file and write a concise spec-style summary. Output ONLY the summary text—no quotes, no JSON, no markdown, and no extra commentary.",
|
|
866
|
-
userPrompt: [
|
|
867
|
-
`Generate a README-style catalog listing summary for the definition referenced by:`,
|
|
868
|
-
`- module: ${codeRef.module}`,
|
|
869
|
-
`- exportName: ${codeRef.name}`,
|
|
870
|
-
`Use ONLY the attached module source shown below (the file content).`,
|
|
871
|
-
`Focus on the export named "${codeRef.name}" (ignore other exports).`,
|
|
872
|
-
`Focus on what this listing (app/card/field/skill/theme) does and its primary purpose. Avoid implementation details and marketing fluff.`
|
|
873
|
-
].join("\n")
|
|
874
|
-
});
|
|
875
|
-
if (summary) listing.summary = summary;
|
|
876
|
-
}
|
|
877
|
-
async autoLinkExample(listing, codeRef, openCardIds) {
|
|
878
|
-
const existingExamples = Array.isArray(listing.examples) ? listing.examples : [];
|
|
879
|
-
const uniqueById = /* @__PURE__ */ new Map();
|
|
880
|
-
const addCard = (card) => {
|
|
881
|
-
if (!card || typeof card.id !== "string") return;
|
|
882
|
-
if (uniqueById.has(card.id)) return;
|
|
883
|
-
uniqueById.set(card.id, card);
|
|
884
|
-
};
|
|
885
|
-
for (const existing of existingExamples) addCard(existing);
|
|
886
|
-
if (openCardIds && openCardIds.length > 0) await Promise.all(openCardIds.map(async (openCardId) => {
|
|
887
|
-
try {
|
|
888
|
-
const instance = await new GetCardCommand(this.commandContext).execute({ cardId: openCardId });
|
|
889
|
-
if (isCardInstance(instance)) addCard(instance);
|
|
890
|
-
else console.warn("autoLinkExample: openCardId is not a card instance", { openCardId });
|
|
891
|
-
} catch (error) {
|
|
892
|
-
console.warn("autoLinkExample: failed to load openCardId", {
|
|
893
|
-
openCardId,
|
|
894
|
-
error
|
|
895
|
-
});
|
|
896
|
-
}
|
|
897
|
-
}));
|
|
898
|
-
else try {
|
|
899
|
-
const instances = (await new SearchCardsByTypeAndTitleCommand(this.commandContext).execute({ type: codeRef }))?.instances;
|
|
900
|
-
if (Array.isArray(instances)) {
|
|
901
|
-
const first = instances.find((c) => c && typeof c.id === "string" && isCardInstance(c));
|
|
902
|
-
if (first) addCard(first);
|
|
903
|
-
}
|
|
904
|
-
} catch (error) {
|
|
905
|
-
console.warn("autoLinkExample: failed to search for an example instance", {
|
|
906
|
-
codeRef,
|
|
907
|
-
error
|
|
908
|
-
});
|
|
909
|
-
}
|
|
910
|
-
const userExplicitlyChose = openCardIds && openCardIds.length > 0;
|
|
911
|
-
const MAX_EXAMPLES = 4;
|
|
912
|
-
if (!userExplicitlyChose && codeRef && uniqueById.size > 0 && uniqueById.size < MAX_EXAMPLES) try {
|
|
913
|
-
const existingIds = Array.from(uniqueById.keys());
|
|
914
|
-
const additionalExamples = await this.chooseCards({ candidateTypeCodeRef: codeRef }, {
|
|
915
|
-
max: Math.max(1, MAX_EXAMPLES - existingIds.length),
|
|
916
|
-
additionalSystemPrompt: [
|
|
917
|
-
"Prefer examples that showcase common or high-impact use cases.",
|
|
918
|
-
existingIds.length ? `Do not include any id already linked: ${existingIds.join(", ")}.` : "",
|
|
919
|
-
"Return [] if nothing relevant is found."
|
|
920
|
-
].filter(Boolean).join(" ")
|
|
921
|
-
});
|
|
922
|
-
for (const card of additionalExamples) addCard(card);
|
|
923
|
-
} catch (error) {
|
|
924
|
-
console.warn("Failed to auto-link additional examples", {
|
|
925
|
-
codeRef,
|
|
926
|
-
error
|
|
927
|
-
});
|
|
928
|
-
}
|
|
929
|
-
listing.examples = Array.from(uniqueById.values());
|
|
930
|
-
}
|
|
931
|
-
async autoLinkLicense(listing) {
|
|
932
|
-
const catalogRealm = await this.getCatalogRealm();
|
|
933
|
-
listing.license = (await this.chooseCards({ candidateTypeCodeRef: {
|
|
934
|
-
module: `${catalogRealm}catalog-app/listing/license`,
|
|
935
|
-
name: "License"
|
|
936
|
-
} }))[0];
|
|
937
|
-
}
|
|
938
|
-
async autoLinkTag(listing, codeRef) {
|
|
939
|
-
const catalogRealm = await this.getCatalogRealm();
|
|
940
|
-
listing.tags = await this.chooseCards({
|
|
941
|
-
candidateTypeCodeRef: {
|
|
942
|
-
module: `${catalogRealm}catalog-app/listing/tag`,
|
|
943
|
-
name: "Tag"
|
|
944
|
-
},
|
|
945
|
-
sourceContextCodeRef: codeRef
|
|
946
|
-
}, {
|
|
947
|
-
max: 1,
|
|
948
|
-
additionalSystemPrompt: "You are selecting from an existing list of catalog tags. Choose the most specific descriptive tag that describes the card's subject matter, use case, or domain. If no tag clearly fits the subject matter, select a Source/Origin tag as a fallback (From tag pools). Return [] only if no appropriate tag exists."
|
|
949
|
-
});
|
|
950
|
-
}
|
|
951
|
-
async autoLinkCategory(listing, codeRef) {
|
|
952
|
-
const catalogRealm = await this.getCatalogRealm();
|
|
953
|
-
listing.categories = await this.chooseCards({
|
|
954
|
-
candidateTypeCodeRef: {
|
|
955
|
-
module: `${catalogRealm}catalog-app/listing/category`,
|
|
956
|
-
name: "Category"
|
|
957
|
-
},
|
|
958
|
-
sourceContextCodeRef: codeRef
|
|
959
|
-
}, {
|
|
960
|
-
max: 1,
|
|
961
|
-
additionalSystemPrompt: "You are selecting from an existing list of catalog categories. Choose the most specific descriptive category that matches the card's main purpose. Return [] if no category clearly fits."
|
|
962
|
-
});
|
|
963
|
-
}
|
|
964
|
-
async autoGenerateThumbnail(listing, codeRef, targetRealm) {
|
|
965
|
-
if (!listing.id) return;
|
|
966
|
-
const prompt = `Create a square thumbnail for "${codeRef.name}". Top 70%: large centered flat icon (simple, bold, minimal, slightly angled/layered if needed). Bottom 30%: "${codeRef.name}" in big, bold, uppercase sans-serif text. Style: flat vector, solid vivid background, 2–3 colors max. Icon should be white or light-colored, clean geometric shapes, highly recognizable. No gradients, no shadows, no borders, no clutter. Must be clear at small sizes.`;
|
|
967
|
-
await new GenerateThumbnailCommand(this.commandContext).execute({
|
|
968
|
-
prompt,
|
|
969
|
-
targetRealmIdentifier: targetRealm,
|
|
970
|
-
targetPath: "ListingThumbnails",
|
|
971
|
-
targetCardId: listing.id,
|
|
972
|
-
cardName: codeRef.name
|
|
973
|
-
});
|
|
974
|
-
}
|
|
975
|
-
async getStringPatch(opts) {
|
|
976
|
-
const { systemPrompt, userPrompt, codeRef } = opts;
|
|
977
|
-
const result = await new OneShotLlmRequestCommand(this.commandContext).execute({
|
|
978
|
-
...codeRef ? { codeRef } : {},
|
|
979
|
-
systemPrompt,
|
|
980
|
-
userPrompt,
|
|
981
|
-
llmModel: "openai/gpt-4.1-nano"
|
|
982
|
-
});
|
|
983
|
-
if (!result.output) return void 0;
|
|
984
|
-
return parseResponseToString(result.output);
|
|
985
|
-
}
|
|
986
|
-
};
|
|
987
|
-
function parseResponseToString(response, maxLength = 1e3) {
|
|
988
|
-
if (!response) return void 0;
|
|
989
|
-
let text = response.trim();
|
|
990
|
-
if (!text) return void 0;
|
|
991
|
-
if (text.startsWith("{") || text.startsWith("[")) try {
|
|
992
|
-
const parsed = JSON.parse(text);
|
|
993
|
-
if (typeof parsed === "string") return parsed.slice(0, maxLength);
|
|
994
|
-
if (Array.isArray(parsed)) {
|
|
995
|
-
const first = parsed.find((v) => typeof v === "string");
|
|
996
|
-
if (first) return first.slice(0, maxLength);
|
|
997
|
-
return;
|
|
998
|
-
}
|
|
999
|
-
if (parsed && typeof parsed === "object") {
|
|
1000
|
-
for (const v of Object.values(parsed)) if (typeof v === "string" && v.trim()) return v.trim().slice(0, maxLength);
|
|
1001
|
-
return;
|
|
1002
|
-
}
|
|
1003
|
-
} catch {}
|
|
1004
|
-
const firstLine = text.split(/\s*\n\s*/)[0];
|
|
1005
|
-
if (!firstLine) return void 0;
|
|
1006
|
-
return firstLine.slice(0, maxLength);
|
|
1007
|
-
}
|
|
1008
|
-
//#endregion
|
|
1009
|
-
//#region app/commands/listing-generate-example.ts
|
|
1010
|
-
var listing_generate_example_exports = /* @__PURE__ */ __exportAll({ default: () => ListingGenerateExampleCommand });
|
|
1011
|
-
var ListingGenerateExampleCommand = class extends HostBaseCommand {
|
|
1012
|
-
constructor(..._args) {
|
|
1013
|
-
super(..._args);
|
|
1014
|
-
this.#network = (initializeDeferredDecorator(this, "network"), void 0);
|
|
1015
|
-
this.description = "Generate a new example card for the listing and link it.";
|
|
1016
|
-
this.requireInputFields = ["listing", "referenceExample"];
|
|
1017
|
-
}
|
|
1018
|
-
static {
|
|
1019
|
-
decorateFieldV2(this.prototype, "network", [service]);
|
|
1020
|
-
}
|
|
1021
|
-
#network;
|
|
1022
|
-
static {
|
|
1023
|
-
this.actionVerb = "Generate Example";
|
|
1024
|
-
}
|
|
1025
|
-
async getInputType() {
|
|
1026
|
-
const { GenerateListingExampleInput } = await this.loadCommandModule();
|
|
1027
|
-
return GenerateListingExampleInput;
|
|
1028
|
-
}
|
|
1029
|
-
async run(input) {
|
|
1030
|
-
const listing = input.listing;
|
|
1031
|
-
if (!listing || !listing.id) throw new Error("Listing card is required and must have an id");
|
|
1032
|
-
const referenceExample = input.referenceExample;
|
|
1033
|
-
if (!referenceExample) throw new Error("Listing must include a reference example");
|
|
1034
|
-
const codeRef = resolveAdoptsFrom(referenceExample, this.network.virtualNetwork);
|
|
1035
|
-
if (!codeRef) throw new Error("Unable to resolve card definition from reference example");
|
|
1036
|
-
const { realmIdentifier: defaultWritableRealmPath } = await new GetDefaultWritableRealmCommand(this.commandContext).execute();
|
|
1037
|
-
const targetRealm = input.realm || referenceExample[realmURL]?.href || listing[realmURL]?.href || defaultWritableRealmPath || void 0;
|
|
1038
|
-
const result = await new GenerateExampleCardsOneShotCommand(this.commandContext).execute({
|
|
1039
|
-
codeRef,
|
|
1040
|
-
realm: targetRealm,
|
|
1041
|
-
count: 1,
|
|
1042
|
-
exampleCard: referenceExample
|
|
1043
|
-
});
|
|
1044
|
-
const createdExample = result.createdCard;
|
|
1045
|
-
if (!createdExample) throw new Error("Failed to create example card for listing");
|
|
1046
|
-
this.linkListingExample(listing, createdExample);
|
|
1047
|
-
return result;
|
|
1048
|
-
}
|
|
1049
|
-
linkListingExample(listing, exampleCard) {
|
|
1050
|
-
const currentExamples = Array.isArray(listing.examples) ? [...listing.examples] : [];
|
|
1051
|
-
currentExamples.push(exampleCard);
|
|
1052
|
-
listing.examples = currentExamples;
|
|
1053
|
-
}
|
|
1054
|
-
};
|
|
1055
|
-
//#endregion
|
|
1056
|
-
//#region app/commands/serialize-card.ts
|
|
1057
|
-
var serialize_card_exports = /* @__PURE__ */ __exportAll({ default: () => SerializeCardCommand });
|
|
1058
|
-
var SerializeCardCommand = class extends HostBaseCommand {
|
|
1059
|
-
constructor(..._args) {
|
|
1060
|
-
super(..._args);
|
|
1061
|
-
this.#store = (initializeDeferredDecorator(this, "store"), void 0);
|
|
1062
|
-
this.#cardService = (initializeDeferredDecorator(this, "cardService"), void 0);
|
|
1063
|
-
this.description = "Serialize a card by id";
|
|
1064
|
-
this.requireInputFields = ["cardId"];
|
|
1065
|
-
}
|
|
1066
|
-
static {
|
|
1067
|
-
decorateFieldV2(this.prototype, "store", [service]);
|
|
1068
|
-
}
|
|
1069
|
-
#store;
|
|
1070
|
-
static {
|
|
1071
|
-
decorateFieldV2(this.prototype, "cardService", [service]);
|
|
1072
|
-
}
|
|
1073
|
-
#cardService;
|
|
1074
|
-
static {
|
|
1075
|
-
this.actionVerb = "Serialize";
|
|
1076
|
-
}
|
|
1077
|
-
async getInputType() {
|
|
1078
|
-
const { CardIdCard } = await this.loadCommandModule();
|
|
1079
|
-
return CardIdCard;
|
|
1080
|
-
}
|
|
1081
|
-
async run(input) {
|
|
1082
|
-
let card = await this.store.get(input.cardId);
|
|
1083
|
-
if (!card || !("id" in card)) throw new Error(`Card not found for id: ${input.cardId}`);
|
|
1084
|
-
let serialized = await this.cardService.serializeCard(card, { omitQueryFields: true });
|
|
1085
|
-
const { JsonCard } = await this.loadCommandModule();
|
|
1086
|
-
return new JsonCard({ json: serialized });
|
|
1087
|
-
}
|
|
1088
|
-
};
|
|
1089
|
-
//#endregion
|
|
1090
|
-
//#region app/commands/listing-install.ts
|
|
1091
|
-
var listing_install_exports = /* @__PURE__ */ __exportAll({ default: () => ListingInstallCommand });
|
|
1092
|
-
var log = logger("catalog:install");
|
|
1093
|
-
var ListingInstallCommand = class extends HostBaseCommand {
|
|
1094
|
-
constructor(..._args) {
|
|
1095
|
-
super(..._args);
|
|
1096
|
-
this.#network = (initializeDeferredDecorator(this, "network"), void 0);
|
|
1097
|
-
this.description = "Install catalog listing with bringing them to code mode, and then remixing them via AI";
|
|
1098
|
-
this.requireInputFields = ["realm", "listing"];
|
|
1099
|
-
}
|
|
1100
|
-
static {
|
|
1101
|
-
decorateFieldV2(this.prototype, "network", [service]);
|
|
1102
|
-
}
|
|
1103
|
-
#network;
|
|
1104
|
-
async getInputType() {
|
|
1105
|
-
const { ListingInstallInput } = await this.loadCommandModule();
|
|
1106
|
-
return ListingInstallInput;
|
|
1107
|
-
}
|
|
1108
|
-
async run(input) {
|
|
1109
|
-
let { realm, listing: listingInput } = input;
|
|
1110
|
-
let { realmIdentifier } = await new ValidateRealmCommand(this.commandContext).execute({ realmIdentifier: realm });
|
|
1111
|
-
const listing = listingInput;
|
|
1112
|
-
let examplesToInstall = listing.examples;
|
|
1113
|
-
if (listing.examples?.length) examplesToInstall = await this.expandInstances(listing.examples);
|
|
1114
|
-
let exampleCardId;
|
|
1115
|
-
let selectedCodeRef;
|
|
1116
|
-
let skillCardId;
|
|
1117
|
-
const builder = new PlanBuilder(realmIdentifier, listing, this.network.virtualNetwork);
|
|
1118
|
-
let vn = this.network.virtualNetwork;
|
|
1119
|
-
builder.addIf(listing.specs?.length > 0, (resolver) => {
|
|
1120
|
-
let r = planModuleInstall(listing.specs, resolver, vn);
|
|
1121
|
-
selectedCodeRef = r.modulesCopy[0].targetCodeRef;
|
|
1122
|
-
return r;
|
|
1123
|
-
}).addIf(examplesToInstall?.length > 0, (resolver) => {
|
|
1124
|
-
let r = planInstanceInstall(examplesToInstall, resolver, vn);
|
|
1125
|
-
let firstInstance = r.instancesCopy[0];
|
|
1126
|
-
exampleCardId = join(realmIdentifier, firstInstance.lid);
|
|
1127
|
-
selectedCodeRef = firstInstance.targetCodeRef;
|
|
1128
|
-
return r;
|
|
1129
|
-
}).addIf(listing.skills?.length > 0, (resolver) => {
|
|
1130
|
-
let r = planInstanceInstall(listing.skills, resolver, vn);
|
|
1131
|
-
skillCardId = join(realmIdentifier, r.instancesCopy[0].lid);
|
|
1132
|
-
return r;
|
|
1133
|
-
});
|
|
1134
|
-
const plan = builder.build();
|
|
1135
|
-
let sourceOperations = await Promise.all(plan.modulesToInstall.map(async (moduleMeta) => {
|
|
1136
|
-
let { sourceModule, targetModule } = moduleMeta;
|
|
1137
|
-
let { content } = await new ReadSourceCommand(this.commandContext).execute({ path: sourceModule });
|
|
1138
|
-
let moduleResource = {
|
|
1139
|
-
type: "source",
|
|
1140
|
-
attributes: { content },
|
|
1141
|
-
meta: {}
|
|
1142
|
-
};
|
|
1143
|
-
return {
|
|
1144
|
-
op: "add",
|
|
1145
|
-
href: targetModule + ".gts",
|
|
1146
|
-
data: moduleResource
|
|
1147
|
-
};
|
|
1148
|
-
}));
|
|
1149
|
-
let instanceOperations = await Promise.all(plan.instancesCopy.map(async (copyInstanceMeta) => {
|
|
1150
|
-
let { sourceCard } = copyInstanceMeta;
|
|
1151
|
-
let { document: doc } = await new FetchCardJsonCommand(this.commandContext).execute({ cardIdentifier: sourceCard.id });
|
|
1152
|
-
if (!doc || !("data" in doc)) throw new Error("We are only expecting single documents returned");
|
|
1153
|
-
delete doc.data.id;
|
|
1154
|
-
delete doc.included;
|
|
1155
|
-
let cardResource = doc.data;
|
|
1156
|
-
return {
|
|
1157
|
-
op: "add",
|
|
1158
|
-
href: join(realmIdentifier, copyInstanceMeta.lid) + ".json",
|
|
1159
|
-
data: cardResource
|
|
1160
|
-
};
|
|
1161
|
-
}));
|
|
1162
|
-
const operations = [...sourceOperations, ...instanceOperations];
|
|
1163
|
-
let atomicResults;
|
|
1164
|
-
try {
|
|
1165
|
-
({results: atomicResults} = await new ExecuteAtomicOperationsCommand(this.commandContext).execute({
|
|
1166
|
-
realmIdentifier,
|
|
1167
|
-
operations
|
|
1168
|
-
}));
|
|
1169
|
-
} catch (e) {
|
|
1170
|
-
if (typeof e?.message === "string" && e.message.includes("filter refers to a nonexistent type")) throw new Error("Please click \"Update Specs\" on the listing and make sure all specs are linked.");
|
|
1171
|
-
throw e;
|
|
1172
|
-
}
|
|
1173
|
-
let writtenFiles = atomicResults.map((r) => r.data?.id).filter(Boolean);
|
|
1174
|
-
log.debug("=== Final Results ===");
|
|
1175
|
-
log.debug(JSON.stringify(writtenFiles, null, 2));
|
|
1176
|
-
const { ListingInstallResult } = await this.loadCommandModule();
|
|
1177
|
-
return new ListingInstallResult({
|
|
1178
|
-
selectedCodeRef,
|
|
1179
|
-
exampleCardId,
|
|
1180
|
-
skillCardId
|
|
1181
|
-
});
|
|
1182
|
-
}
|
|
1183
|
-
async expandInstances(instances) {
|
|
1184
|
-
let instancesById = /* @__PURE__ */ new Map();
|
|
1185
|
-
let visited = /* @__PURE__ */ new Set();
|
|
1186
|
-
let queue = instances.map((instance) => instance.id).filter((id) => typeof id === "string");
|
|
1187
|
-
while (queue.length > 0) {
|
|
1188
|
-
let id = queue.shift();
|
|
1189
|
-
if (!id || visited.has(id)) continue;
|
|
1190
|
-
visited.add(id);
|
|
1191
|
-
let instance = await new GetCardCommand(this.commandContext).execute({ cardId: id });
|
|
1192
|
-
instancesById.set(instance.id ?? id, instance);
|
|
1193
|
-
let { json: serialized } = await new SerializeCardCommand(this.commandContext).execute({ cardId: id });
|
|
1194
|
-
let baseUrl = serialized?.data?.id ?? id;
|
|
1195
|
-
let relationships = serialized?.data?.relationships ?? {};
|
|
1196
|
-
let entries = Object.entries(relationships);
|
|
1197
|
-
log.debug(`Relationships for ${id}:`);
|
|
1198
|
-
if (entries.length === 0) {
|
|
1199
|
-
log.debug("[]");
|
|
1200
|
-
continue;
|
|
1201
|
-
}
|
|
1202
|
-
let summary = entries.map(([field, rel]) => {
|
|
1203
|
-
return {
|
|
1204
|
-
field,
|
|
1205
|
-
relationships: (Array.isArray(rel) ? rel : [rel]).map((relationship) => ({
|
|
1206
|
-
links: relationship.links ?? null,
|
|
1207
|
-
data: relationship.data ?? null
|
|
1208
|
-
}))
|
|
1209
|
-
};
|
|
1210
|
-
});
|
|
1211
|
-
log.debug(JSON.stringify(summary, null, 2));
|
|
1212
|
-
for (let rel of Object.values(relationships)) {
|
|
1213
|
-
let rels = Array.isArray(rel) ? rel : [rel];
|
|
1214
|
-
for (let relationship of rels) {
|
|
1215
|
-
let relatedIds = extractRelationshipIds(relationship, baseUrl, this.network.virtualNetwork);
|
|
1216
|
-
for (let relatedId of relatedIds) if (!visited.has(relatedId)) queue.push(relatedId);
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
return [...instancesById.values()];
|
|
1221
|
-
}
|
|
1222
|
-
};
|
|
1223
|
-
//#endregion
|
|
1224
|
-
//#region app/commands/update-code-path-with-selection.ts
|
|
1225
|
-
var update_code_path_with_selection_exports = /* @__PURE__ */ __exportAll({ default: () => UpdateCodePathWithSelectionCommand });
|
|
1226
|
-
var UpdateCodePathWithSelectionCommand = class extends HostBaseCommand {
|
|
1227
|
-
constructor(..._args) {
|
|
1228
|
-
super(..._args);
|
|
1229
|
-
this.#operatorModeStateService = (initializeDeferredDecorator(this, "operatorModeStateService"), void 0);
|
|
1230
|
-
this.#recentFilesService = (initializeDeferredDecorator(this, "recentFilesService"), void 0);
|
|
1231
|
-
this.description = "Update the selected code path when the user navigates to code mode.";
|
|
1232
|
-
}
|
|
1233
|
-
static {
|
|
1234
|
-
decorateFieldV2(this.prototype, "operatorModeStateService", [service]);
|
|
1235
|
-
}
|
|
1236
|
-
#operatorModeStateService;
|
|
1237
|
-
static {
|
|
1238
|
-
decorateFieldV2(this.prototype, "recentFilesService", [service]);
|
|
1239
|
-
}
|
|
1240
|
-
#recentFilesService;
|
|
1241
|
-
static {
|
|
1242
|
-
this.actionVerb = "Open";
|
|
1243
|
-
}
|
|
1244
|
-
async getInputType() {
|
|
1245
|
-
const { UpdateCodePathWithSelectionInput } = await this.loadCommandModule();
|
|
1246
|
-
return UpdateCodePathWithSelectionInput;
|
|
1247
|
-
}
|
|
1248
|
-
get codePath() {
|
|
1249
|
-
return this.operatorModeStateService.state.codePath;
|
|
1250
|
-
}
|
|
1251
|
-
async run(input) {
|
|
1252
|
-
await this.operatorModeStateService.updateCodePathWithSelection({
|
|
1253
|
-
codeRef: input.codeRef,
|
|
1254
|
-
localName: input.localName,
|
|
1255
|
-
fieldName: input.fieldName
|
|
1256
|
-
});
|
|
1257
|
-
if (this.codePath) {
|
|
1258
|
-
let urlString = this.codePath.toString();
|
|
1259
|
-
this.recentFilesService.updateCursorPositionByURL(urlString.endsWith("gts") ? urlString : `${urlString}.gts`, void 0);
|
|
1260
|
-
}
|
|
1261
|
-
}
|
|
1262
|
-
};
|
|
1263
|
-
//#endregion
|
|
1264
|
-
//#region app/commands/update-playground-selection.ts
|
|
1265
|
-
var update_playground_selection_exports = /* @__PURE__ */ __exportAll({ default: () => UpdatePlaygroundSelectionCommand });
|
|
1266
|
-
var UpdatePlaygroundSelectionCommand = class extends HostBaseCommand {
|
|
1267
|
-
constructor(..._args) {
|
|
1268
|
-
super(..._args);
|
|
1269
|
-
this.#playgroundPanelService = (initializeDeferredDecorator(this, "playgroundPanelService"), void 0);
|
|
1270
|
-
this.description = "Persist the playground selections.";
|
|
1271
|
-
this.requireInputFields = [
|
|
1272
|
-
"moduleId",
|
|
1273
|
-
"cardId",
|
|
1274
|
-
"format"
|
|
1275
|
-
];
|
|
1276
|
-
}
|
|
1277
|
-
static {
|
|
1278
|
-
decorateFieldV2(this.prototype, "playgroundPanelService", [service]);
|
|
1279
|
-
}
|
|
1280
|
-
#playgroundPanelService;
|
|
1281
|
-
static {
|
|
1282
|
-
this.actionVerb = "Save";
|
|
1283
|
-
}
|
|
1284
|
-
async getInputType() {
|
|
1285
|
-
const { UpdatePlaygroundSelectionInput } = await this.loadCommandModule();
|
|
1286
|
-
return UpdatePlaygroundSelectionInput;
|
|
1287
|
-
}
|
|
1288
|
-
async run(input) {
|
|
1289
|
-
this.playgroundPanelService.persistSelections(input.moduleId, rri(input.cardId), input.format, input.fieldIndex);
|
|
1290
|
-
}
|
|
1291
|
-
};
|
|
1292
|
-
//#endregion
|
|
1293
|
-
//#region app/commands/listing-remix.ts
|
|
1294
|
-
var listing_remix_exports = /* @__PURE__ */ __exportAll({ default: () => RemixCommand });
|
|
1295
|
-
var RemixCommand = class extends HostBaseCommand {
|
|
1296
|
-
constructor(..._args) {
|
|
1297
|
-
super(..._args);
|
|
1298
|
-
this.description = "Install catalog listing with bringing them to code mode, and then remixing them via AI";
|
|
1299
|
-
this.requireInputFields = ["realm", "listing"];
|
|
1300
|
-
}
|
|
1301
|
-
static {
|
|
1302
|
-
this.actionVerb = "Remix";
|
|
1303
|
-
}
|
|
1304
|
-
async getInputType() {
|
|
1305
|
-
const { ListingInstallInput } = await this.loadCommandModule();
|
|
1306
|
-
return ListingInstallInput;
|
|
1307
|
-
}
|
|
1308
|
-
isThemeListing(listing) {
|
|
1309
|
-
return listing?.constructor?.name === "ThemeListing";
|
|
1310
|
-
}
|
|
1311
|
-
async navigateView(options) {
|
|
1312
|
-
const { listing, selectedCodeRef, exampleCardId, skillCardId } = options;
|
|
1313
|
-
if (this.isThemeListing(listing)) {
|
|
1314
|
-
if (exampleCardId) await new SwitchSubmodeCommand(this.commandContext).execute({
|
|
1315
|
-
submode: "code",
|
|
1316
|
-
codePath: `${exampleCardId}.json`
|
|
1317
|
-
});
|
|
1318
|
-
return;
|
|
1319
|
-
}
|
|
1320
|
-
if (selectedCodeRef && isResolvedCodeRef(selectedCodeRef)) {
|
|
1321
|
-
const codePath = selectedCodeRef.module;
|
|
1322
|
-
if (exampleCardId) {
|
|
1323
|
-
const moduleId = [selectedCodeRef.module, selectedCodeRef.name].join("/");
|
|
1324
|
-
await new UpdatePlaygroundSelectionCommand(this.commandContext).execute({
|
|
1325
|
-
moduleId,
|
|
1326
|
-
cardId: exampleCardId,
|
|
1327
|
-
format: "isolated",
|
|
1328
|
-
fieldIndex: void 0
|
|
1329
|
-
});
|
|
1330
|
-
await new PersistModuleInspectorViewCommand(this.commandContext).execute({
|
|
1331
|
-
codePath: codePath + ".gts",
|
|
1332
|
-
moduleInspectorView: "preview"
|
|
1333
|
-
});
|
|
1334
|
-
}
|
|
1335
|
-
await new UpdateCodePathWithSelectionCommand(this.commandContext).execute({
|
|
1336
|
-
codeRef: selectedCodeRef,
|
|
1337
|
-
localName: selectedCodeRef.name,
|
|
1338
|
-
fieldName: void 0
|
|
1339
|
-
});
|
|
1340
|
-
await new SwitchSubmodeCommand(this.commandContext).execute({
|
|
1341
|
-
submode: "code",
|
|
1342
|
-
codePath: selectedCodeRef.module
|
|
1343
|
-
});
|
|
1344
|
-
} else if ("skills" in listing) {
|
|
1345
|
-
if (skillCardId) await new SwitchSubmodeCommand(this.commandContext).execute({
|
|
1346
|
-
submode: "code",
|
|
1347
|
-
codePath: skillCardId
|
|
1348
|
-
});
|
|
1349
|
-
}
|
|
1350
|
-
}
|
|
1351
|
-
async run(input) {
|
|
1352
|
-
let { realm, listing: listingInput } = input;
|
|
1353
|
-
let { realmIdentifier } = await new ValidateRealmCommand(this.commandContext).execute({ realmIdentifier: realm });
|
|
1354
|
-
const listing = listingInput;
|
|
1355
|
-
const { selectedCodeRef, exampleCardId, skillCardId } = await new ListingInstallCommand(this.commandContext).execute({
|
|
1356
|
-
realm: realmIdentifier,
|
|
1357
|
-
listing
|
|
1358
|
-
});
|
|
1359
|
-
await this.navigateView({
|
|
1360
|
-
listing,
|
|
1361
|
-
selectedCodeRef,
|
|
1362
|
-
exampleCardId,
|
|
1363
|
-
skillCardId
|
|
1364
|
-
});
|
|
1365
|
-
let prompt = "Remix done! Please suggest two example prompts on how to edit this card.";
|
|
1366
|
-
const skillCardIds = [
|
|
1367
|
-
devSkillId,
|
|
1368
|
-
envSkillId,
|
|
1369
|
-
skillCardURL("source-code-editing"),
|
|
1370
|
-
skillCardURL("catalog-listing")
|
|
1371
|
-
];
|
|
1372
|
-
await new UseAiAssistantCommand(this.commandContext).execute({
|
|
1373
|
-
roomId: "new",
|
|
1374
|
-
prompt,
|
|
1375
|
-
openRoom: true,
|
|
1376
|
-
roomName: `Remixing ${listing.name ?? "Listing"} `,
|
|
1377
|
-
attachedCards: [listing],
|
|
1378
|
-
skillCardIds,
|
|
1379
|
-
llmModel: DEFAULT_CODING_LLM
|
|
1380
|
-
});
|
|
1381
|
-
}
|
|
1382
|
-
};
|
|
1383
|
-
//#endregion
|
|
1384
|
-
//#region app/commands/listing-update-specs.ts
|
|
1385
|
-
var listing_update_specs_exports = /* @__PURE__ */ __exportAll({ default: () => ListingUpdateSpecsCommand });
|
|
1386
|
-
var ListingUpdateSpecsCommand = class extends HostBaseCommand {
|
|
1387
|
-
constructor(..._args) {
|
|
1388
|
-
super(..._args);
|
|
1389
|
-
this.description = "Update listing specs based on example dependencies";
|
|
1390
|
-
this.requireInputFields = ["listing"];
|
|
1391
|
-
}
|
|
1392
|
-
static {
|
|
1393
|
-
this.actionVerb = "Update";
|
|
1394
|
-
}
|
|
1395
|
-
async getInputType() {
|
|
1396
|
-
let { ListingUpdateSpecsInput } = await this.loadCommandModule();
|
|
1397
|
-
return ListingUpdateSpecsInput;
|
|
1398
|
-
}
|
|
1399
|
-
async sanitizeDeps(deps) {
|
|
1400
|
-
const { moduleIdentifiers } = await new SanitizeModuleListCommand(this.commandContext).execute({ moduleIdentifiers: deps });
|
|
1401
|
-
return moduleIdentifiers;
|
|
1402
|
-
}
|
|
1403
|
-
async run(input) {
|
|
1404
|
-
const listing = input.listing;
|
|
1405
|
-
if (!listing) throw new Error("listing is required");
|
|
1406
|
-
if (!isCardInstance(listing)) throw new Error("listing must be a valid card instance");
|
|
1407
|
-
const targetRealm = listing?.[realmURL]?.href;
|
|
1408
|
-
if (!targetRealm) throw new Error("targetRealm is required to update specs");
|
|
1409
|
-
const exampleId = listing.examples?.[0]?.id;
|
|
1410
|
-
if (!exampleId) throw new Error("No example found in listing to derive specs from");
|
|
1411
|
-
const { ok, body: jsonApiResponse } = await new AuthedFetchCommand(this.commandContext).execute({
|
|
1412
|
-
url: `${targetRealm}_dependencies?url=${encodeURIComponent(exampleId)}`,
|
|
1413
|
-
acceptHeader: SupportedMimeType.JSONAPI
|
|
1414
|
-
});
|
|
1415
|
-
if (!ok) throw new Error("Failed to fetch dependencies for listing");
|
|
1416
|
-
const deps = [];
|
|
1417
|
-
const responseData = jsonApiResponse.data;
|
|
1418
|
-
if (responseData && Array.isArray(responseData)) {
|
|
1419
|
-
for (const entry of responseData) if (entry.attributes?.dependencies && Array.isArray(entry.attributes.dependencies)) deps.push(...entry.attributes.dependencies);
|
|
1420
|
-
}
|
|
1421
|
-
const sanitizedDeps = await this.sanitizeDeps(deps);
|
|
1422
|
-
const commandModule = await this.loadCommandModule();
|
|
1423
|
-
if (!sanitizedDeps.length) {
|
|
1424
|
-
listing.specs = [];
|
|
1425
|
-
return new commandModule.ListingUpdateSpecsResult({
|
|
1426
|
-
listing,
|
|
1427
|
-
specs: []
|
|
1428
|
-
});
|
|
1429
|
-
}
|
|
1430
|
-
const createSpecCommand = new CreateSpecCommand(this.commandContext);
|
|
1431
|
-
const specResults = await Promise.all(sanitizedDeps.map((dep) => createSpecCommand.execute({
|
|
1432
|
-
module: dep,
|
|
1433
|
-
targetRealm,
|
|
1434
|
-
autoGenerateReadme: true
|
|
1435
|
-
}).catch((e) => {
|
|
1436
|
-
console.warn("Failed to create spec(s) for", dep, e);
|
|
1437
|
-
})));
|
|
1438
|
-
const specs = [];
|
|
1439
|
-
for (const res of specResults) if (res?.specs) specs.push(...res.specs);
|
|
1440
|
-
listing.specs = specs;
|
|
1441
|
-
return new commandModule.ListingUpdateSpecsResult({
|
|
1442
|
-
listing,
|
|
1443
|
-
specs
|
|
1444
|
-
});
|
|
1445
|
-
}
|
|
1446
|
-
};
|
|
1447
|
-
//#endregion
|
|
1448
|
-
//#region app/commands/listing-use.ts
|
|
1449
|
-
var listing_use_exports = /* @__PURE__ */ __exportAll({ default: () => ListingUseCommand });
|
|
1450
|
-
var ListingUseCommand = class extends HostBaseCommand {
|
|
1451
|
-
constructor(..._args) {
|
|
1452
|
-
super(..._args);
|
|
1453
|
-
this.#network = (initializeDeferredDecorator(this, "network"), void 0);
|
|
1454
|
-
this.description = "Catalog listing use command";
|
|
1455
|
-
this.requireInputFields = ["realm", "listing"];
|
|
1456
|
-
}
|
|
1457
|
-
static {
|
|
1458
|
-
decorateFieldV2(this.prototype, "network", [service]);
|
|
1459
|
-
}
|
|
1460
|
-
#network;
|
|
1461
|
-
async getInputType() {
|
|
1462
|
-
const { ListingInstallInput } = await this.loadCommandModule();
|
|
1463
|
-
return ListingInstallInput;
|
|
1464
|
-
}
|
|
1465
|
-
async run(input) {
|
|
1466
|
-
let { realm, listing: listingInput } = input;
|
|
1467
|
-
const listing = listingInput;
|
|
1468
|
-
let { realmIdentifier } = await new ValidateRealmCommand(this.commandContext).execute({ realmIdentifier: realm });
|
|
1469
|
-
const specsWithoutFields = (listing.specs ?? []).filter((spec) => spec.specType !== "field");
|
|
1470
|
-
const localDir = generateInstallFolderName(listing.name);
|
|
1471
|
-
for (const spec of specsWithoutFields) {
|
|
1472
|
-
if (spec.isComponent) return;
|
|
1473
|
-
let ref = codeRefWithAbsoluteIdentifier(spec.ref, rri(spec.id), void 0, this.network.virtualNetwork);
|
|
1474
|
-
if (!isResolvedCodeRef(ref)) throw new Error("ref is not a resolved code ref");
|
|
1475
|
-
let card = new (await (loadCardDef(ref, { loader: this.loaderService.loader })))({});
|
|
1476
|
-
await new SaveCardCommand(this.commandContext).execute({
|
|
1477
|
-
card,
|
|
1478
|
-
realm: realmIdentifier,
|
|
1479
|
-
localDir
|
|
1480
|
-
});
|
|
1481
|
-
}
|
|
1482
|
-
if (listing.examples) {
|
|
1483
|
-
const sourceCards = listing.examples.map((example) => example);
|
|
1484
|
-
for (const card of sourceCards) await new CopyCardToRealmCommand(this.commandContext).execute({
|
|
1485
|
-
sourceCard: card,
|
|
1486
|
-
targetRealm: realmIdentifier,
|
|
1487
|
-
localDir
|
|
1488
|
-
});
|
|
1489
|
-
}
|
|
1490
|
-
if ("skills" in listing && Array.isArray(listing.skills)) await Promise.all(listing.skills.map((skill) => new CopyCardToRealmCommand(this.commandContext).execute({
|
|
1491
|
-
sourceCard: skill,
|
|
1492
|
-
targetRealm: realmIdentifier,
|
|
1493
|
-
localDir
|
|
1494
|
-
})));
|
|
1495
|
-
}
|
|
1496
|
-
};
|
|
1497
|
-
//#endregion
|
|
1498
598
|
//#region app/commands/patch-theme.ts
|
|
1499
599
|
var patch_theme_exports = /* @__PURE__ */ __exportAll({ default: () => PatchThemeCommand });
|
|
1500
600
|
var PatchThemeCommand = class extends HostBaseCommand {
|
|
@@ -1730,9 +830,10 @@ var ScreenshotCardCommand = class extends HostBaseCommand {
|
|
|
1730
830
|
if (normalizedFormat !== "isolated" && normalizedFormat !== "embedded") throw new Error(`Format must be "isolated" or "embedded" (got: ${format ?? "<missing>"}).`);
|
|
1731
831
|
let cardId = card.id;
|
|
1732
832
|
if (!cardId) throw new Error("Linked card must be saved before screenshotting (no id available).");
|
|
1733
|
-
let
|
|
1734
|
-
|
|
1735
|
-
if (!
|
|
833
|
+
let cardURL = this.loaderService.loader.getVirtualNetwork().toURL(cardId).href;
|
|
834
|
+
let cardRealm = this.realm.realmOf(rri(cardURL));
|
|
835
|
+
if (!cardRealm) throw new Error(`Cannot determine realm for card ${cardURL}.`);
|
|
836
|
+
if (!this.realm.canWrite(cardRealm)) throw new Error(`Cannot screenshot ${cardURL}: no write access to its realm ${cardRealm}.`);
|
|
1736
837
|
let endpoint = new URL("/_screenshot-card", this.realmServer.url);
|
|
1737
838
|
let response = await this.realmServer.authedFetch(endpoint.href, {
|
|
1738
839
|
method: "POST",
|
|
@@ -1744,7 +845,7 @@ var ScreenshotCardCommand = class extends HostBaseCommand {
|
|
|
1744
845
|
type: "screenshot-card",
|
|
1745
846
|
attributes: {
|
|
1746
847
|
realmURL: cardRealm,
|
|
1747
|
-
cardId,
|
|
848
|
+
cardId: cardURL,
|
|
1748
849
|
format: normalizedFormat
|
|
1749
850
|
}
|
|
1750
851
|
} })
|
|
@@ -1759,7 +860,7 @@ var ScreenshotCardCommand = class extends HostBaseCommand {
|
|
|
1759
860
|
let detail = attrs?.error ?? JSON.stringify(body);
|
|
1760
861
|
throw new Error(`Screenshot job did not produce a PNG: ${detail}`);
|
|
1761
862
|
}
|
|
1762
|
-
let filePath = `Screenshots/${`${generateFilenameFromCard(
|
|
863
|
+
let filePath = `Screenshots/${`${generateFilenameFromCard(cardURL)}.png`}`;
|
|
1763
864
|
let writeResult = await new WriteBinaryFileCommand(this.commandContext).execute({
|
|
1764
865
|
path: filePath,
|
|
1765
866
|
realm: cardRealm,
|
|
@@ -1773,6 +874,40 @@ var ScreenshotCardCommand = class extends HostBaseCommand {
|
|
|
1773
874
|
}
|
|
1774
875
|
};
|
|
1775
876
|
//#endregion
|
|
877
|
+
//#region app/commands/serialize-card.ts
|
|
878
|
+
var serialize_card_exports = /* @__PURE__ */ __exportAll({ default: () => SerializeCardCommand });
|
|
879
|
+
var SerializeCardCommand = class extends HostBaseCommand {
|
|
880
|
+
constructor(..._args) {
|
|
881
|
+
super(..._args);
|
|
882
|
+
this.#store = (initializeDeferredDecorator(this, "store"), void 0);
|
|
883
|
+
this.#cardService = (initializeDeferredDecorator(this, "cardService"), void 0);
|
|
884
|
+
this.description = "Serialize a card by id";
|
|
885
|
+
this.requireInputFields = ["cardId"];
|
|
886
|
+
}
|
|
887
|
+
static {
|
|
888
|
+
decorateFieldV2(this.prototype, "store", [service]);
|
|
889
|
+
}
|
|
890
|
+
#store;
|
|
891
|
+
static {
|
|
892
|
+
decorateFieldV2(this.prototype, "cardService", [service]);
|
|
893
|
+
}
|
|
894
|
+
#cardService;
|
|
895
|
+
static {
|
|
896
|
+
this.actionVerb = "Serialize";
|
|
897
|
+
}
|
|
898
|
+
async getInputType() {
|
|
899
|
+
const { CardIdCard } = await this.loadCommandModule();
|
|
900
|
+
return CardIdCard;
|
|
901
|
+
}
|
|
902
|
+
async run(input) {
|
|
903
|
+
let card = await this.store.get(input.cardId);
|
|
904
|
+
if (!card || !("id" in card)) throw new Error(`Card not found for id: ${input.cardId}`);
|
|
905
|
+
let serialized = await this.cardService.serializeCard(card, { omitQueryFields: true });
|
|
906
|
+
const { JsonCard } = await this.loadCommandModule();
|
|
907
|
+
return new JsonCard({ json: serialized });
|
|
908
|
+
}
|
|
909
|
+
};
|
|
910
|
+
//#endregion
|
|
1776
911
|
//#region app/commands/sync-openrouter-models.ts
|
|
1777
912
|
var sync_openrouter_models_exports = /* @__PURE__ */ __exportAll({ default: () => SyncOpenRouterModelsCommand });
|
|
1778
913
|
var OPENROUTER_MODELS_URL = "https://openrouter.ai/api/v1/models";
|
|
@@ -1984,6 +1119,75 @@ var SyncOpenRouterModelsCommand = class extends HostBaseCommand {
|
|
|
1984
1119
|
}
|
|
1985
1120
|
};
|
|
1986
1121
|
//#endregion
|
|
1122
|
+
//#region app/commands/update-code-path-with-selection.ts
|
|
1123
|
+
var update_code_path_with_selection_exports = /* @__PURE__ */ __exportAll({ default: () => UpdateCodePathWithSelectionCommand });
|
|
1124
|
+
var UpdateCodePathWithSelectionCommand = class extends HostBaseCommand {
|
|
1125
|
+
constructor(..._args) {
|
|
1126
|
+
super(..._args);
|
|
1127
|
+
this.#operatorModeStateService = (initializeDeferredDecorator(this, "operatorModeStateService"), void 0);
|
|
1128
|
+
this.#recentFilesService = (initializeDeferredDecorator(this, "recentFilesService"), void 0);
|
|
1129
|
+
this.description = "Update the selected code path when the user navigates to code mode.";
|
|
1130
|
+
}
|
|
1131
|
+
static {
|
|
1132
|
+
decorateFieldV2(this.prototype, "operatorModeStateService", [service]);
|
|
1133
|
+
}
|
|
1134
|
+
#operatorModeStateService;
|
|
1135
|
+
static {
|
|
1136
|
+
decorateFieldV2(this.prototype, "recentFilesService", [service]);
|
|
1137
|
+
}
|
|
1138
|
+
#recentFilesService;
|
|
1139
|
+
static {
|
|
1140
|
+
this.actionVerb = "Open";
|
|
1141
|
+
}
|
|
1142
|
+
async getInputType() {
|
|
1143
|
+
const { UpdateCodePathWithSelectionInput } = await this.loadCommandModule();
|
|
1144
|
+
return UpdateCodePathWithSelectionInput;
|
|
1145
|
+
}
|
|
1146
|
+
get codePath() {
|
|
1147
|
+
return this.operatorModeStateService.state.codePath;
|
|
1148
|
+
}
|
|
1149
|
+
async run(input) {
|
|
1150
|
+
await this.operatorModeStateService.updateCodePathWithSelection({
|
|
1151
|
+
codeRef: input.codeRef,
|
|
1152
|
+
localName: input.localName,
|
|
1153
|
+
fieldName: input.fieldName
|
|
1154
|
+
});
|
|
1155
|
+
if (this.codePath) {
|
|
1156
|
+
let urlString = this.codePath.toString();
|
|
1157
|
+
this.recentFilesService.updateCursorPositionByURL(urlString.endsWith("gts") ? urlString : `${urlString}.gts`, void 0);
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
};
|
|
1161
|
+
//#endregion
|
|
1162
|
+
//#region app/commands/update-playground-selection.ts
|
|
1163
|
+
var update_playground_selection_exports = /* @__PURE__ */ __exportAll({ default: () => UpdatePlaygroundSelectionCommand });
|
|
1164
|
+
var UpdatePlaygroundSelectionCommand = class extends HostBaseCommand {
|
|
1165
|
+
constructor(..._args) {
|
|
1166
|
+
super(..._args);
|
|
1167
|
+
this.#playgroundPanelService = (initializeDeferredDecorator(this, "playgroundPanelService"), void 0);
|
|
1168
|
+
this.description = "Persist the playground selections.";
|
|
1169
|
+
this.requireInputFields = [
|
|
1170
|
+
"moduleId",
|
|
1171
|
+
"cardId",
|
|
1172
|
+
"format"
|
|
1173
|
+
];
|
|
1174
|
+
}
|
|
1175
|
+
static {
|
|
1176
|
+
decorateFieldV2(this.prototype, "playgroundPanelService", [service]);
|
|
1177
|
+
}
|
|
1178
|
+
#playgroundPanelService;
|
|
1179
|
+
static {
|
|
1180
|
+
this.actionVerb = "Save";
|
|
1181
|
+
}
|
|
1182
|
+
async getInputType() {
|
|
1183
|
+
const { UpdatePlaygroundSelectionInput } = await this.loadCommandModule();
|
|
1184
|
+
return UpdatePlaygroundSelectionInput;
|
|
1185
|
+
}
|
|
1186
|
+
async run(input) {
|
|
1187
|
+
this.playgroundPanelService.persistSelections(input.moduleId, rri(input.cardId), input.format, input.fieldIndex);
|
|
1188
|
+
}
|
|
1189
|
+
};
|
|
1190
|
+
//#endregion
|
|
1987
1191
|
//#region app/commands/index.ts
|
|
1988
1192
|
var commands_exports = /* @__PURE__ */ __exportAll({
|
|
1989
1193
|
HostCommandClasses: () => HostCommandClasses,
|
|
@@ -2016,14 +1220,7 @@ function shimHostCommands(virtualNetwork) {
|
|
|
2016
1220
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/invalidate-realm-identifiers", invalidate_realm_identifiers_exports);
|
|
2017
1221
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/lint-and-fix", lint_and_fix_exports);
|
|
2018
1222
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-action-build", listing_action_build_exports);
|
|
2019
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-action-init", listing_action_init_exports);
|
|
2020
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-create", listing_create_exports);
|
|
2021
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-install", listing_install_exports);
|
|
2022
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-use", listing_use_exports);
|
|
2023
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-remix", listing_remix_exports);
|
|
2024
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-update-specs", listing_update_specs_exports);
|
|
2025
1223
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/create-listing-pr-request", create_listing_pr_request_exports);
|
|
2026
|
-
virtualNetwork.shimModule("@cardstack/boxel-host/commands/listing-generate-example", listing_generate_example_exports);
|
|
2027
1224
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/open-in-interact-mode", open_in_interact_mode_exports);
|
|
2028
1225
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/patch-card-instance", patch_card_instance_exports);
|
|
2029
1226
|
virtualNetwork.shimModule("@cardstack/boxel-host/commands/patch-code", patch_code_exports);
|
|
@@ -2123,14 +1320,7 @@ var HostCommandClasses = [
|
|
|
2123
1320
|
InvalidateRealmIdentifiersCommand,
|
|
2124
1321
|
LintAndFixCommand,
|
|
2125
1322
|
ListingActionBuildCommand,
|
|
2126
|
-
ListingActionInitCommand,
|
|
2127
|
-
ListingCreateCommand,
|
|
2128
|
-
ListingGenerateExampleCommand,
|
|
2129
|
-
ListingInstallCommand,
|
|
2130
|
-
RemixCommand,
|
|
2131
1323
|
CreateListingPRRequestCommand,
|
|
2132
|
-
ListingUpdateSpecsCommand,
|
|
2133
|
-
ListingUseCommand,
|
|
2134
1324
|
OneShotLlmRequestCommand,
|
|
2135
1325
|
OpenAiAssistantRoomCommand,
|
|
2136
1326
|
OpenCreateListingModalCommand,
|
|
@@ -2186,4 +1376,4 @@ var HostCommandClasses = [
|
|
|
2186
1376
|
WriteTextFileCommand
|
|
2187
1377
|
];
|
|
2188
1378
|
//#endregion
|
|
2189
|
-
export {
|
|
1379
|
+
export { ask_ai_exports as S, generate_theme_example_exports as _, update_code_path_with_selection_exports as a, open_in_interact_mode_exports as b, screenshot_card_exports as c, populate_with_sample_data_exports as d, patch_theme_exports as f, generate_thumbnail_exports as g, get_all_realm_metas_exports as h, update_playground_selection_exports as i, retry_submission_workflow_exports as l, get_card_type_schema_exports as m, commands_exports as n, sync_openrouter_models_exports as o, listing_action_build_exports as p, shimHostCommands as r, serialize_card_exports as s, HostCommandClasses as t, read_binary_file_exports as u, create_and_open_submission_workflow_card_exports as v, copy_card_as_markdown_exports as x, create_submission_workflow_exports as y };
|