@cardstack/boxel-cli 0.13.0-unstable.0 → 0.13.0-unstable.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/bundled-realms/base/command.gts +4 -4
  2. package/bundled-realms/base/realm-api-keys.gts +35 -3
  3. package/bundled-test-harness/assets/{ai-module-creation-test-Czsh1MyP.js → ai-module-creation-test-DxxsXNXe.js} +1 -1
  4. package/bundled-test-harness/assets/{app-hXF_bqWy.js → app-BEvPLshl.js} +5 -5
  5. package/bundled-test-harness/assets/{binary-upload-dedupe-test-Bt5RqtEk.js → binary-upload-dedupe-test-B_gcWqxF.js} +1 -1
  6. package/bundled-test-harness/assets/{bundled-base-DtxlKFXx.js → bundled-base-CYD5iFX3.js} +3 -3
  7. package/bundled-test-harness/assets/{bundled-base-modules-test-D1fXHMTE.js → bundled-base-modules-test-bO7yZysu.js} +1 -1
  8. package/bundled-test-harness/assets/{can-invoke-test-DqBuecdl.js → can-invoke-test-BBTE4_cE.js} +1 -1
  9. package/bundled-test-harness/assets/{card-chooser-paging-test-Cf8r032c.js → card-chooser-paging-test-14IqQei3.js} +1 -1
  10. package/bundled-test-harness/assets/{card-chooser-test-q_qnUKxi.js → card-chooser-test-CRg2JrXQ.js} +1 -1
  11. package/bundled-test-harness/assets/{card-def-field-def-relationships-test-C5xkWMZi.js → card-def-field-def-relationships-test-BapYGyoB.js} +1 -1
  12. package/bundled-test-harness/assets/{card-delete-test-KB4aJuv_.js → card-delete-test-CvbDQUUE.js} +1 -1
  13. package/bundled-test-harness/assets/{codeblocks-test-DLVRpBAl.js → codeblocks-test-j4ES37-L.js} +1 -1
  14. package/bundled-test-harness/assets/{compaction-test-zX01t57K.js → compaction-test-CyhMODxy.js} +1 -1
  15. package/bundled-test-harness/assets/{container-BCOmNUou.css → container-CAEYXGQg.css} +179 -155
  16. package/bundled-test-harness/assets/{container-CXZoEvul.js → container-CATqNgYF.js} +10 -10
  17. package/bundled-test-harness/assets/{create-listing-modal-test-DPgVovcL.js → create-listing-modal-test-QmWcm9hl.js} +1 -1
  18. package/bundled-test-harness/assets/{debug-message-test-CWl-ido2.js → debug-message-test-D-4Dcu8y.js} +1 -1
  19. package/bundled-test-harness/assets/{externals-Ddhtv753.js → externals-Cw0MmkHM.js} +1 -1
  20. package/bundled-test-harness/assets/{fallback-banner-live-delete-test-CFbMEFHo.js → fallback-banner-live-delete-test-Bzqw4uMs.js} +1 -1
  21. package/bundled-test-harness/assets/{fallback-banner-test-3O0imkxJ.js → fallback-banner-test-BMQVK4gy.js} +1 -1
  22. package/bundled-test-harness/assets/{fallback-models-test-hyQfQLuM.js → fallback-models-test-DkdjPwvA.js} +1 -1
  23. package/bundled-test-harness/assets/{file-attachment-test-C63Ttyaj.js → file-attachment-test-yvR5gw9_.js} +1 -1
  24. package/bundled-test-harness/assets/{general-test-wrSeNkrm.js → general-test-D2j4JhrD.js} +1 -1
  25. package/bundled-test-harness/assets/{index-query-engine-test-DvfKgn6s.js → index-query-engine-test-DFkm037X.js} +1 -1
  26. package/bundled-test-harness/assets/{instance-filter-matcher-test-KqGi-K79.js → instance-filter-matcher-test-UqB2Rto8.js} +1 -1
  27. package/bundled-test-harness/assets/{main-CoUo04VF.js → main-CM62YtMN.js} +1 -1
  28. package/bundled-test-harness/assets/{model-cost-tier-test-B5ByLtAP.js → model-cost-tier-test-CDXxio0B.js} +1 -1
  29. package/bundled-test-harness/assets/{operation-lowering-test-Bz81V0Gt.js → operation-lowering-test-C_CaTJ0F.js} +1 -1
  30. package/bundled-test-harness/assets/{operator-mode-card-chooser-test-DNOnplV8.js → operator-mode-card-chooser-test-CU5f7q6r.js} +1 -1
  31. package/bundled-test-harness/assets/{operator-mode-links-test-BeXsOYMU.js → operator-mode-links-test-CoeF3prV.js} +1 -1
  32. package/bundled-test-harness/assets/{operator-mode-test-jdeCXqhV.js → operator-mode-test-B9c6N5FF.js} +1 -1
  33. package/bundled-test-harness/assets/{operator-mode-ui-test-DdiFZylM.js → operator-mode-ui-test-CJQxypf_.js} +1 -1
  34. package/bundled-test-harness/assets/{overlay-menu-items-test-C_Q4sJlC.js → overlay-menu-items-test-CFWZ-tzq.js} +1 -1
  35. package/bundled-test-harness/assets/{past-sessions-test-Bm1UiLD0.js → past-sessions-test-7FgLJlog.js} +1 -1
  36. package/bundled-test-harness/assets/{permission-checking-realm-test-Jq7R-yRT.js → permission-checking-realm-test-Cm9eB-hE.js} +1 -1
  37. package/bundled-test-harness/assets/{quick-look-test-BrnxRRsq.js → quick-look-test-DrqgCLlM.js} +1 -1
  38. package/bundled-test-harness/assets/{realm-api-keys-Tlj0OK1c.css → realm-api-keys-16eN_yJb.css} +35 -25
  39. package/bundled-test-harness/assets/{realm-api-keys-CHPnfcko.js → realm-api-keys-ZJedocgl.js} +10 -4
  40. package/bundled-test-harness/assets/realm-api-keys-m-EOSWuV.js +2 -0
  41. package/bundled-test-harness/assets/{realm-api-keys-test-mrgvnhFJ.js → realm-api-keys-test-Ba_1CKJu.js} +3 -5
  42. package/bundled-test-harness/assets/{realm-api-keys-test-CHBGOFcx.js → realm-api-keys-test-jXscHLbS.js} +1 -1
  43. package/bundled-test-harness/assets/{realm-config-C7c3B2er.js → realm-config-DIOozzdQ.js} +1 -1
  44. package/bundled-test-harness/assets/{realm-config-policy-standing-test-C8aNeb6_.js → realm-config-policy-standing-test-DEFQEEvl.js} +1 -1
  45. package/bundled-test-harness/assets/{realm-config-routing-rule-edit-test-Dmnw-VQz.js → realm-config-routing-rule-edit-test-CtLYsxzq.js} +1 -1
  46. package/bundled-test-harness/assets/{realm-config-settings-test-C6V0Mx35.js → realm-config-settings-test-Dsatuv-T.js} +1 -1
  47. package/bundled-test-harness/assets/{reasoning-test-Dn0Xb42V.js → reasoning-test-3p_PygAV.js} +1 -1
  48. package/bundled-test-harness/assets/{schema-generation-test-De1eamwr.js → schema-generation-test-hkFzUr7-.js} +1 -1
  49. package/bundled-test-harness/assets/{scrolling-test-sLBz7Gxv.js → scrolling-test-B8CudFE9.js} +1 -1
  50. package/bundled-test-harness/assets/{searchable-option-test-Ix9_H5QV.js → searchable-option-test-B8lZyJij.js} +1 -1
  51. package/bundled-test-harness/assets/{sending-test-_Pqzq1bN.js → sending-test-BtH1z2uE.js} +1 -1
  52. package/bundled-test-harness/assets/{skills-test-DUHRQGiC.js → skills-test-DIQvoCLm.js} +1 -1
  53. package/bundled-test-harness/assets/{store-test-9C-s0-H6.js → store-test-DoHgyfQA.js} +1 -1
  54. package/bundled-test-harness/assets/{tests-CVpu0hZj.js → tests-DXX9TrgY.js} +369 -360
  55. package/bundled-test-harness/assets/{text-input-validator-test-CcVh-MFa.js → text-input-validator-test-D56aDP2e.js} +1 -1
  56. package/bundled-test-harness/assets/{to-device-streaming-test-RFHD62PN.js → to-device-streaming-test-Ug8UnlUl.js} +1 -1
  57. package/bundled-test-harness/assets/{token-usage-test-B2iJC-UX.js → token-usage-test-BolKbZVL.js} +1 -1
  58. package/bundled-test-harness/assets/{tools-DRCjAZCp.js → tools-CkouX4wE.js} +1 -1
  59. package/bundled-test-harness/assets/{tools-test-BZOWfXML.js → tools-test-CdYgRu5Z.js} +1 -1
  60. package/bundled-test-harness/assets/{turn-settling-test-Cvu2rvzM.js → turn-settling-test-CS0PlpTg.js} +1 -1
  61. package/bundled-test-harness/assets/{unshare-key-Dfy1IK9g.js → unshare-key-W_bNI_MF.js} +0 -1
  62. package/bundled-test-harness/index.html +9 -9
  63. package/bundled-test-harness/tests/index.html +9 -9
  64. package/bundled-types/base/command.d.ts +0 -1
  65. package/bundled-types/host-app/components/operator-mode/dashboard/add-workspace.gts +5 -3
  66. package/bundled-types/host-app/components/operator-mode/dashboard/archived-workspace.gts +3 -5
  67. package/bundled-types/host-app/components/operator-mode/dashboard/catalog-shelf.gts +24 -7
  68. package/bundled-types/host-app/components/operator-mode/dashboard/workspace.gts +9 -4
  69. package/bundled-types/host-app/lib/key-shares.ts +0 -1
  70. package/bundled-types/host-app/tools/get-key-share-usage.ts +0 -1
  71. package/dist/index.js +161 -161
  72. package/package.json +1 -1
  73. package/src/commands/keys/manage.ts +22 -6
  74. package/src/lib/user-keys.ts +18 -5
  75. package/bundled-test-harness/assets/realm-api-keys-GLBmvu4U.js +0 -2
@@ -6,7 +6,7 @@ import { H as templateFactory } from "./index-DaCZcoCY-CgzbilMy.js";
6
6
  import "./component-BJO47HTh.js";
7
7
  import { t as Component } from "./dist-CkA1rgqO.js";
8
8
  import "./template-factory-ds9s0u8l.js";
9
- import { t as OperatorModeContainer } from "./container-CXZoEvul.js";
9
+ import { t as OperatorModeContainer } from "./container-CATqNgYF.js";
10
10
  import { T as settled, f as focus, r as typeIn, s as fillIn } from "./dist-BOAdzfkP.js";
11
11
  import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
12
12
  import { F as setupLocalIndexing, I as setupOnSave, L as setupRealmCacheTeardown, P as setupIntegrationTestRealm, Z as withCachedRealmSetup, lt as setupRenderingTest, ot as setupOperatorModeStateCleanup, t as setupMockMatrix } from "./mock-matrix-Ci72h1Wf.js";
@@ -5,7 +5,7 @@ import { H as templateFactory } from "./index-DaCZcoCY-CgzbilMy.js";
5
5
  import "./component-BJO47HTh.js";
6
6
  import { t as Component } from "./dist-CkA1rgqO.js";
7
7
  import "./template-factory-ds9s0u8l.js";
8
- import { t as OperatorModeContainer } from "./container-CXZoEvul.js";
8
+ import { t as OperatorModeContainer } from "./container-CATqNgYF.js";
9
9
  import { M as waitUntil, T as settled, d as click, o as waitFor } from "./dist-BOAdzfkP.js";
10
10
  import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
11
11
  import { D as realmConfigCardJSON, F as setupLocalIndexing, I as setupOnSave, L as setupRealmCacheTeardown, M as setupCardLogs, P as setupIntegrationTestRealm, Z as withCachedRealmSetup, lt as setupRenderingTest, ot as setupOperatorModeStateCleanup, t as setupMockMatrix } from "./mock-matrix-Ci72h1Wf.js";
@@ -5,7 +5,7 @@ import { H as templateFactory } from "./index-DaCZcoCY-CgzbilMy.js";
5
5
  import "./component-BJO47HTh.js";
6
6
  import { t as Component } from "./dist-CkA1rgqO.js";
7
7
  import "./template-factory-ds9s0u8l.js";
8
- import { t as OperatorModeContainer } from "./container-CXZoEvul.js";
8
+ import { t as OperatorModeContainer } from "./container-CATqNgYF.js";
9
9
  import { M as waitUntil, d as click, o as waitFor } from "./dist-BOAdzfkP.js";
10
10
  import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
11
11
  import { D as realmConfigCardJSON, F as setupLocalIndexing, I as setupOnSave, L as setupRealmCacheTeardown, M as setupCardLogs, P as setupIntegrationTestRealm, Z as withCachedRealmSetup, lt as setupRenderingTest, ot as setupOperatorModeStateCleanup, t as setupMockMatrix } from "./mock-matrix-Ci72h1Wf.js";
@@ -54,7 +54,7 @@ import { n as get_all_realm_metas_exports, t as GetAllRealmMetasTool } from "./g
54
54
  import { n as get_available_realm_identifiers_exports, t as GetAvailableRealmIdentifiersTool } from "./get-available-realm-identifiers-PqOm0_Cj.js";
55
55
  import { n as get_catalog_realm_identifiers_exports, t as GetCatalogRealmIdentifiersTool } from "./get-catalog-realm-identifiers-CDxg5dF6.js";
56
56
  import { n as get_default_writable_realm_exports, t as GetDefaultWritableRealmTool } from "./get-default-writable-realm-BBMwXUrA.js";
57
- import { a as ListRealmKeySharesTool, c as get_key_share_usage_exports, i as suspend_key_share_exports, n as unshare_key_exports, o as list_realm_key_shares_exports, r as SuspendKeyShareTool, s as GetKeyShareUsageTool, t as UnshareKeyTool } from "./unshare-key-Dfy1IK9g.js";
57
+ import { a as ListRealmKeySharesTool, c as get_key_share_usage_exports, i as suspend_key_share_exports, n as unshare_key_exports, o as list_realm_key_shares_exports, r as SuspendKeyShareTool, s as GetKeyShareUsageTool, t as UnshareKeyTool } from "./unshare-key-W_bNI_MF.js";
58
58
  import { n as get_published_realms_exports, t as GetPublishedRealmsTool } from "./get-published-realms-M4Czf63c.js";
59
59
  import { n as get_realm_of_resource_identifier_exports, t as GetRealmOfResourceIdentifierTool } from "./get-realm-of-resource-identifier-CYsOjJ_p.js";
60
60
  import { n as get_user_system_card_exports, t as GetUserSystemCardTool } from "./get-user-system-card-CUOG_Jjm.js";
@@ -10,7 +10,7 @@ import { n as Submodes } from "./submode-switcher-2-ACaqRv.js";
10
10
  import "./component-BJO47HTh.js";
11
11
  import { t as Component } from "./dist-CkA1rgqO.js";
12
12
  import "./template-factory-ds9s0u8l.js";
13
- import { t as OperatorModeContainer } from "./container-CXZoEvul.js";
13
+ import { t as OperatorModeContainer } from "./container-CATqNgYF.js";
14
14
  import { t as STOPPED_TOOL_CALL_REASON } from "./stop-BaYfrwAZ.js";
15
15
  import { M as waitUntil, T as settled, a as find, d as click, o as waitFor, s as fillIn } from "./dist-BOAdzfkP.js";
16
16
  import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
@@ -5,7 +5,7 @@ import { H as templateFactory } from "./index-DaCZcoCY-CgzbilMy.js";
5
5
  import "./component-BJO47HTh.js";
6
6
  import { t as Component } from "./dist-CkA1rgqO.js";
7
7
  import "./template-factory-ds9s0u8l.js";
8
- import { t as OperatorModeContainer } from "./container-CXZoEvul.js";
8
+ import { t as OperatorModeContainer } from "./container-CATqNgYF.js";
9
9
  import { T as settled, d as click, o as waitFor } from "./dist-BOAdzfkP.js";
10
10
  import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
11
11
  import { D as realmConfigCardJSON, F as setupLocalIndexing, I as setupOnSave, L as setupRealmCacheTeardown, M as setupCardLogs, P as setupIntegrationTestRealm, Z as withCachedRealmSetup, lt as setupRenderingTest, ot as setupOperatorModeStateCleanup, t as setupMockMatrix } from "./mock-matrix-Ci72h1Wf.js";
@@ -104,7 +104,6 @@ var GetKeyShareUsageTool = class extends HostBaseTool {
104
104
  outcome
105
105
  })),
106
106
  grants: usage.grants.map((grant) => new KeyUsageGrantField({
107
- host: grant.host,
108
107
  destination: grant.destination,
109
108
  state: grant.state,
110
109
  rejectedAt: grant.rejectedAt ?? void 0,
@@ -12,7 +12,7 @@
12
12
  boxelComponentL3, boxelComponentL4;
13
13
  </style>
14
14
 
15
- <meta name="@cardstack/host/config/environment" content="%7B%22modulePrefix%22%3A%22%40cardstack%2Fhost%22%2C%22environment%22%3A%22development%22%2C%22hostedEnvironment%22%3A%22local%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22history%22%2C%22EmberENV%22%3A%7B%22EXTEND_PROTOTYPES%22%3Afalse%2C%22FEATURES%22%3A%7B%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%220.0.0%2B7adcd3ca%22%7D%2C%22ember-cli-mirage%22%3A%7B%22enabled%22%3Afalse%7D%2C%22logLevels%22%3A%22*%3Dinfo%2Cmatrix%3Dinfo%2Crealm%3Aevents%3Ddebug%22%2C%22matrixURL%22%3A%22http%3A%2F%2Flocalhost%3A8008%22%2C%22matrixServerName%22%3A%22localhost%22%2C%22autoSaveDelayMs%22%3A500%2C%22autoSaveQuietPeriodMs%22%3A1500%2C%22autoSaveMaxWaitMs%22%3A10000%2C%22monacoDebounceMs%22%3A500%2C%22monacoCursorDebounceMs%22%3A200%2C%22loginMessageTimeoutMs%22%3A1000%2C%22minSaveTaskDurationMs%22%3A1000%2C%22cardRenderTimeout%22%3A30000%2C%22cardSizeLimitBytes%22%3A524288%2C%22fileSizeLimitBytes%22%3A5242880%2C%22audioSizeLimitBytes%22%3A20971520%2C%22videoSizeLimitBytes%22%3A52428800%2C%22iconsURL%22%3A%22http%3A%2F%2Flocalhost%3A4206%22%2C%22secureOriginURL%22%3A%22https%3A%2F%2Flocalhost%3A4208%2Fsecure%22%2C%22publishedRealmBoxelSpaceDomain%22%3A%22localhost%3A4201%22%2C%22publishedRealmBoxelSiteDomain%22%3A%22localhost%3A4201%22%2C%22hostsOwnAssets%22%3Atrue%2C%22hostRoutingMap%22%3A%5B%5D%2C%22realmServerURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2F%22%2C%22resolvedBaseRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22resolvedCatalogRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fcatalog%2F%22%2C%22resolvedSkillsRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22resolvedOpenRouterRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fopenrouter%2F%22%2C%22resolvedPretuiRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%2C%22resolvedTestRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4202%2Ftest%2F%22%2C%22featureFlags%22%3A%7B%22DASHBOARD_V2%22%3Afalse%7D%2C%22prefixRealmURLs%22%3A%7B%22%40cardstack%2Fbase%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22%40cardstack%2Fcatalog%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fcatalog%2F%22%2C%22%40cardstack%2Fskills%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22%40cardstack%2Fopenrouter%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fopenrouter%2F%22%2C%22%40cardstack%2Fpretui%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%7D%2C%22defaultSystemCardId%22%3A%22%40cardstack%2Fcatalog%2FSystemCard%2Fdefault%22%2C%22defaultFieldSpecId%22%3A%22%40cardstack%2Fcatalog%2FSpec%2Ffields%2Ffield%22%7D">
15
+ <meta name="@cardstack/host/config/environment" content="%7B%22modulePrefix%22%3A%22%40cardstack%2Fhost%22%2C%22environment%22%3A%22development%22%2C%22hostedEnvironment%22%3A%22local%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22history%22%2C%22EmberENV%22%3A%7B%22EXTEND_PROTOTYPES%22%3Afalse%2C%22FEATURES%22%3A%7B%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%220.0.0%2Bcbe11d02%22%7D%2C%22ember-cli-mirage%22%3A%7B%22enabled%22%3Afalse%7D%2C%22logLevels%22%3A%22*%3Dinfo%2Cmatrix%3Dinfo%2Crealm%3Aevents%3Ddebug%22%2C%22matrixURL%22%3A%22http%3A%2F%2Flocalhost%3A8008%22%2C%22matrixServerName%22%3A%22localhost%22%2C%22autoSaveDelayMs%22%3A500%2C%22autoSaveQuietPeriodMs%22%3A1500%2C%22autoSaveMaxWaitMs%22%3A10000%2C%22monacoDebounceMs%22%3A500%2C%22monacoCursorDebounceMs%22%3A200%2C%22loginMessageTimeoutMs%22%3A1000%2C%22minSaveTaskDurationMs%22%3A1000%2C%22cardRenderTimeout%22%3A30000%2C%22cardSizeLimitBytes%22%3A524288%2C%22fileSizeLimitBytes%22%3A5242880%2C%22audioSizeLimitBytes%22%3A20971520%2C%22videoSizeLimitBytes%22%3A52428800%2C%22iconsURL%22%3A%22http%3A%2F%2Flocalhost%3A4206%22%2C%22secureOriginURL%22%3A%22https%3A%2F%2Flocalhost%3A4208%2Fsecure%22%2C%22publishedRealmBoxelSpaceDomain%22%3A%22localhost%3A4201%22%2C%22publishedRealmBoxelSiteDomain%22%3A%22localhost%3A4201%22%2C%22hostsOwnAssets%22%3Atrue%2C%22hostRoutingMap%22%3A%5B%5D%2C%22realmServerURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2F%22%2C%22resolvedBaseRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22resolvedCatalogRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fcatalog%2F%22%2C%22resolvedSkillsRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22resolvedOpenRouterRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fopenrouter%2F%22%2C%22resolvedPretuiRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%2C%22resolvedTestRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4202%2Ftest%2F%22%2C%22featureFlags%22%3A%7B%22DASHBOARD_V2%22%3Afalse%7D%2C%22prefixRealmURLs%22%3A%7B%22%40cardstack%2Fbase%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22%40cardstack%2Fcatalog%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fcatalog%2F%22%2C%22%40cardstack%2Fskills%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22%40cardstack%2Fopenrouter%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fopenrouter%2F%22%2C%22%40cardstack%2Fpretui%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%7D%2C%22defaultSystemCardId%22%3A%22%40cardstack%2Fcatalog%2FSystemCard%2Fdefault%22%2C%22defaultFieldSpecId%22%3A%22%40cardstack%2Fcatalog%2FSpec%2Ffields%2Ffield%22%7D">
16
16
 
17
17
  <script>
18
18
  // Resolve dynamic-import chunk URLs against the host's distURL rather
@@ -121,7 +121,7 @@
121
121
  <meta data-boxel-head-start="">
122
122
  <title>Boxel</title>
123
123
  <meta data-boxel-head-end="">
124
- <script type="module" crossorigin="" src="/assets/main-CoUo04VF.js"></script>
124
+ <script type="module" crossorigin="" src="/assets/main-CM62YtMN.js"></script>
125
125
  <link rel="modulepreload" crossorigin="" href="/assets/chunk-Rp0pCe6z.js">
126
126
  <link rel="modulepreload" crossorigin="" href="/assets/preload-helper-CKDH5-7N.js">
127
127
  <link rel="modulepreload" crossorigin="" href="/assets/index-esm-CUymiD6S.js">
@@ -259,7 +259,7 @@
259
259
  <link rel="modulepreload" crossorigin="" href="/assets/send-request-via-proxy-C6VadkNP.js">
260
260
  <link rel="modulepreload" crossorigin="" href="/assets/one-shot-llm-request-DyNz3g6O.js">
261
261
  <link rel="modulepreload" crossorigin="" href="/assets/generate-example-cards-Bd5ZtwpX.js">
262
- <link rel="modulepreload" crossorigin="" href="/assets/unshare-key-Dfy1IK9g.js">
262
+ <link rel="modulepreload" crossorigin="" href="/assets/unshare-key-W_bNI_MF.js">
263
263
  <link rel="modulepreload" crossorigin="" href="/assets/module-syntax-DoNDfK2P.js">
264
264
  <link rel="modulepreload" crossorigin="" href="/assets/add-field-to-card-definition-Dh-2u-FW.js">
265
265
  <link rel="modulepreload" crossorigin="" href="/assets/create-ai-assistant-room-Bao3Qkue.js">
@@ -343,8 +343,8 @@
343
343
  <link rel="modulepreload" crossorigin="" href="/assets/unpublish-realm-ta0NO9tk.js">
344
344
  <link rel="modulepreload" crossorigin="" href="/assets/validate-realm-vOT89iEW.js">
345
345
  <link rel="modulepreload" crossorigin="" href="/assets/view-visually-BwgK0jh7.js">
346
- <link rel="modulepreload" crossorigin="" href="/assets/tools-DRCjAZCp.js">
347
- <link rel="modulepreload" crossorigin="" href="/assets/externals-Ddhtv753.js">
346
+ <link rel="modulepreload" crossorigin="" href="/assets/tools-CkouX4wE.js">
347
+ <link rel="modulepreload" crossorigin="" href="/assets/externals-Cw0MmkHM.js">
348
348
  <link rel="modulepreload" crossorigin="" href="/assets/render-service-DONRC3JB.js">
349
349
  <link rel="modulepreload" crossorigin="" href="/assets/perform-g9ba6YNZ.js">
350
350
  <link rel="modulepreload" crossorigin="" href="/assets/on-key-lN1E-7x2.js">
@@ -487,9 +487,9 @@
487
487
  <link rel="modulepreload" crossorigin="" href="/assets/boxel-formatter-CRWFXHNL.js">
488
488
  <link rel="modulepreload" crossorigin="" href="/assets/from-elsewhere-ChxbtsBa.js">
489
489
  <link rel="modulepreload" crossorigin="" href="/assets/select-D0GhdFsc.js">
490
- <link rel="modulepreload" crossorigin="" href="/assets/container-CXZoEvul.js">
490
+ <link rel="modulepreload" crossorigin="" href="/assets/container-CATqNgYF.js">
491
491
  <link rel="modulepreload" crossorigin="" href="/assets/browser-queue-c_qO-Adm.js">
492
- <link rel="modulepreload" crossorigin="" href="/assets/bundled-base-DtxlKFXx.js">
492
+ <link rel="modulepreload" crossorigin="" href="/assets/bundled-base-CYD5iFX3.js">
493
493
  <link rel="modulepreload" crossorigin="" href="/assets/gc-card-store-DD2YJL1l.js">
494
494
  <link rel="modulepreload" crossorigin="" href="/assets/search-cache-key-DE0L17IU.js">
495
495
  <link rel="modulepreload" crossorigin="" href="/assets/search-in-flight-key-buHJpU17.js">
@@ -504,7 +504,7 @@
504
504
  <link rel="modulepreload" crossorigin="" href="/assets/operation-ledger-DsJD4Wm3.js">
505
505
  <link rel="modulepreload" crossorigin="" href="/assets/operations-B_fo3apk.js">
506
506
  <link rel="modulepreload" crossorigin="" href="/assets/render-diagnostics-CztktD_I.js">
507
- <link rel="modulepreload" crossorigin="" href="/assets/app-hXF_bqWy.js">
507
+ <link rel="modulepreload" crossorigin="" href="/assets/app-BEvPLshl.js">
508
508
  <link rel="stylesheet" crossorigin="" href="/assets/components-xAPF0vFU.css">
509
509
  <link rel="stylesheet" crossorigin="" href="/assets/signed-capture-BzA7ETjL.css">
510
510
  <link rel="stylesheet" crossorigin="" href="/assets/visually-hidden-Db-usFcG.css">
@@ -558,7 +558,7 @@
558
558
  <link rel="stylesheet" crossorigin="" href="/assets/sections-Cq_ukEQE.css">
559
559
  <link rel="stylesheet" crossorigin="" href="/assets/markdown-preview-Cnd4Qwna.css">
560
560
  <link rel="stylesheet" crossorigin="" href="/assets/select-CJOTXXIM.css">
561
- <link rel="stylesheet" crossorigin="" href="/assets/container-BCOmNUou.css">
561
+ <link rel="stylesheet" crossorigin="" href="/assets/container-CAEYXGQg.css">
562
562
  <link rel="stylesheet" crossorigin="" href="/assets/app-Qgooycf0.css">
563
563
  </head>
564
564
  <body>
@@ -13,12 +13,12 @@
13
13
  boxelComponentL3, boxelComponentL4;
14
14
  </style>
15
15
 
16
- <meta name="@cardstack/host/config/environment" content="%7B%22modulePrefix%22%3A%22%40cardstack%2Fhost%22%2C%22environment%22%3A%22test%22%2C%22hostedEnvironment%22%3A%22local%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22none%22%2C%22EmberENV%22%3A%7B%22EXTEND_PROTOTYPES%22%3Afalse%2C%22FEATURES%22%3A%7B%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%220.0.0%2B7adcd3ca%22%2C%22LOG_ACTIVE_GENERATION%22%3Afalse%2C%22LOG_VIEW_LOOKUPS%22%3Afalse%2C%22rootElement%22%3A%22%23ember-testing%22%2C%22autoboot%22%3Afalse%7D%2C%22ember-cli-mirage%22%3A%7B%22enabled%22%3Afalse%7D%2C%22logLevels%22%3A%22*%3Dinfo%2Cmatrix%3Dinfo%2Crealm%3Aevents%3Ddebug%22%2C%22matrixURL%22%3A%22http%3A%2F%2Flocalhost%3A8008%22%2C%22matrixServerName%22%3A%22localhost%22%2C%22autoSaveDelayMs%22%3A0%2C%22autoSaveQuietPeriodMs%22%3A0%2C%22autoSaveMaxWaitMs%22%3A10000%2C%22monacoDebounceMs%22%3A0%2C%22monacoCursorDebounceMs%22%3A0%2C%22loginMessageTimeoutMs%22%3A0%2C%22minSaveTaskDurationMs%22%3A0%2C%22cardRenderTimeout%22%3A30000%2C%22cardSizeLimitBytes%22%3A524288%2C%22fileSizeLimitBytes%22%3A5242880%2C%22audioSizeLimitBytes%22%3A20971520%2C%22videoSizeLimitBytes%22%3A52428800%2C%22iconsURL%22%3A%22http%3A%2F%2Flocalhost%3A4206%22%2C%22secureOriginURL%22%3A%22https%3A%2F%2Flocalhost%3A4208%2Fsecure%22%2C%22publishedRealmBoxelSpaceDomain%22%3A%22localhost%3A4201%22%2C%22publishedRealmBoxelSiteDomain%22%3A%22localhost%3A4201%22%2C%22hostsOwnAssets%22%3Atrue%2C%22hostRoutingMap%22%3A%5B%5D%2C%22realmServerURL%22%3A%22http%3A%2F%2Ftest-realm%22%2C%22resolvedBaseRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22resolvedSkillsRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22resolvedPretuiRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%2C%22resolvedTestRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4202%2Ftest%2F%22%2C%22featureFlags%22%3A%7B%7D%2C%22prefixRealmURLs%22%3A%7B%22%40cardstack%2Fbase%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22%40cardstack%2Fcatalog%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fcatalog%2F%22%2C%22%40cardstack%2Fskills%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22%40cardstack%2Fopenrouter%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fopenrouter%2F%22%2C%22%40cardstack%2Fpretui%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%7D%2C%22sqlSchema%22%3A%22--%20This%20is%20auto-generated%20by%20packages%2Frealm-server%2Fscripts%2Fconvert-to-sqlite.ts%5Cn--%20Please%20don't%20directly%20modify%20this%20file%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20anonymous_grant_rate_limits%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20grant_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20client_ip%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20window_start%20NOT%20NULL%2C%5Cn%20%20%20window_seconds%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20count%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20expires_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20grant_id%2C%20client_ip%2C%20window_start%2C%20window_seconds%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20bot_commands%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20bot_id%20NOT%20NULL%2C%5Cn%20%20%20command%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20command_filter%20BLOB%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20bot_registrations%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20boxel_index%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20pristine_doc%20BLOB%2C%5Cn%20%20%20search_doc%20BLOB%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20deps%20BLOB%20DEFAULT%20'%5B%5D'%2C%5Cn%20%20%20types%20BLOB%2C%5Cn%20%20%20indexed_at%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20last_modified%2C%5Cn%20%20%20display_names%20BLOB%2C%5Cn%20%20%20resource_created_at%2C%5Cn%20%20%20icon_html%20TEXT%2C%5Cn%20%20%20has_error%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20host_shell_generation%20INTEGER%2C%5Cn%20%20%20source_content_hash%20TEXT%2C%5Cn%20%20%20relationship_deps%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%2C%20realm_url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20boxel_index_pending%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20pristine_doc%20BLOB%2C%5Cn%20%20%20search_doc%20BLOB%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20deps%20BLOB%20DEFAULT%20'%5B%5D'%2C%5Cn%20%20%20types%20BLOB%2C%5Cn%20%20%20indexed_at%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20last_modified%2C%5Cn%20%20%20display_names%20BLOB%2C%5Cn%20%20%20resource_created_at%2C%5Cn%20%20%20icon_html%20TEXT%2C%5Cn%20%20%20has_error%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20host_shell_generation%20INTEGER%2C%5Cn%20%20%20source_content_hash%20TEXT%2C%5Cn%20%20%20job_id%20INTEGER%2C%5Cn%20%20%20staging_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20relationship_deps%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20staging_id%2C%20url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20incoming_webhooks%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20webhook_path%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20verification_type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20verification_config%20BLOB%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20NOT%20NULL%2C%5Cn%20%20%20signing_secret_ciphertext%2C%5Cn%20%20%20signing_secret_nonce%2C%5Cn%20%20%20signing_secret_tag%2C%5Cn%20%20%20signing_secret_key_id%20TEXT%2C%5Cn%20%20%20signing_secret_created_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20media_cache_ledger%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20capture_spec_hash%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20object_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_content_hash%20TEXT%2C%5Cn%20%20%20lane%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20content_type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20size_bytes%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20last_accessed_at%20NOT%20NULL%2C%5Cn%20%20%20width%20INTEGER%2C%5Cn%20%20%20height%20INTEGER%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20rendered_as%20TEXT%20DEFAULT%20''%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20source_url%2C%20capture_spec_hash%2C%20source_generation%2C%20rendered_as%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20module_transpile_cache%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20canonical_path%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20body%20TEXT%2C%5Cn%20%20%20headers%20BLOB%2C%5Cn%20%20%20dependency_keys%20BLOB%2C%5Cn%20%20%20generation%20DEFAULT%200%20NOT%20NULL%2C%5Cn%20%20%20created_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20canonical_path%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20modules%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20cache_scope%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20auth_user_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20resolved_realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20definitions%20BLOB%2C%5Cn%20%20%20deps%20BLOB%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20created_at%2C%5Cn%20%20%20file_alias%20TEXT%2C%5Cn%20%20%20url_hash%20TEXT%20GENERATED%20ALWAYS%20AS%20(url)%20STORED%20NOT%20NULL%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%2C%20cache_scope%2C%20auth_user_id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20prerendered_html%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20fitted_html%20BLOB%2C%5Cn%20%20%20embedded_html%20BLOB%2C%5Cn%20%20%20atom_html%20TEXT%2C%5Cn%20%20%20head_html%20TEXT%2C%5Cn%20%20%20isolated_html%20TEXT%2C%5Cn%20%20%20markdown%20TEXT%2C%5Cn%20%20%20deps%20BLOB%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20rendered_at%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20captures%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%2C%20realm_url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20prerendered_html_pending%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20fitted_html%20BLOB%2C%5Cn%20%20%20embedded_html%20BLOB%2C%5Cn%20%20%20atom_html%20TEXT%2C%5Cn%20%20%20head_html%20TEXT%2C%5Cn%20%20%20isolated_html%20TEXT%2C%5Cn%20%20%20markdown%20TEXT%2C%5Cn%20%20%20deps%20BLOB%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20rendered_at%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20captures%20BLOB%2C%5Cn%20%20%20job_id%20INTEGER%2C%5Cn%20%20%20staging_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20staging_id%2C%20url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20rate_limit_buckets%20(%5Cn%20%20%20bucket_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20tokens%20NOT%20NULL%2C%5Cn%20%20%20refilled_at%20NOT%20NULL%2C%5Cn%20%20%20expires_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20bucket_key%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20rate_limit_budgets%20(%5Cn%20%20%20budget_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20period%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20period_start%20NOT%20NULL%2C%5Cn%20%20%20count%20NOT%20NULL%2C%5Cn%20%20%20expires_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20budget_key%2C%20period%2C%20period_start%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_file_meta%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_path%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20created_at%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20content_hash%20TEXT%2C%5Cn%20%20%20content_size%20INTEGER%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20file_path%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_generations%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20current_generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20loader_epoch%20TEXT%20DEFAULT%20'0'%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_index_commits%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20base_generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20pass_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20job_id%20INTEGER%2C%5Cn%20%20%20urls%20BLOB%2C%5Cn%20%20%20render_only_urls%20BLOB%2C%5Cn%20%20%20full_realm%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20committed_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20generation%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_meta%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20value%20BLOB%20NOT%20NULL%2C%5Cn%20%20%20indexed_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20generation%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_metadata%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20show_as_catalog%20BOOLEAN%2C%5Cn%20%20%20publishable%20BOOLEAN%2C%5Cn%20%20%20created_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20archived_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_registry%20(%5Cn%20%20%20id%20DEFAULT%20(hex(randomblob(16)))%20NOT%20NULL%2C%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20kind%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20disk_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20owner_username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_url%20TEXT%2C%5Cn%20%20%20last_published_at%2C%5Cn%20%20%20pinned%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20created_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_type_generations%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20index_generation%20INTEGER%20DEFAULT%200%20NOT%20NULL%2C%5Cn%20%20%20html_generation%20INTEGER%20DEFAULT%200%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20type_key%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_user_permissions%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20read%20BOOLEAN%20NOT%20NULL%2C%5Cn%20%20%20write%20BOOLEAN%20NOT%20NULL%2C%5Cn%20%20%20realm_owner%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20username%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20scoped_css%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20hash%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20css%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20last_interned_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20hash%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20unlisted_realm_paths%20(%5Cn%20%20%20id%20DEFAULT%20(hex(randomblob(16)))%20NOT%20NULL%2C%5Cn%20%20%20source_realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20slug%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20owner_user_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20created_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20webhook_commands%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20incoming_webhook_id%20NOT%20NULL%2C%5Cn%20%20%20command%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20command_filter%20BLOB%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%22%2C%22defaultSystemCardId%22%3A%22http%3A%2F%2Ftest-realm%2Ftest%2FSystemCard%2Fdefault%22%2C%22defaultFieldSpecId%22%3A%22http%3A%2F%2Ftest-realm%2Ftest%2Ffields%2Ffield%22%7D">
16
+ <meta name="@cardstack/host/config/environment" content="%7B%22modulePrefix%22%3A%22%40cardstack%2Fhost%22%2C%22environment%22%3A%22test%22%2C%22hostedEnvironment%22%3A%22local%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22none%22%2C%22EmberENV%22%3A%7B%22EXTEND_PROTOTYPES%22%3Afalse%2C%22FEATURES%22%3A%7B%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%220.0.0%2Bcbe11d02%22%2C%22LOG_ACTIVE_GENERATION%22%3Afalse%2C%22LOG_VIEW_LOOKUPS%22%3Afalse%2C%22rootElement%22%3A%22%23ember-testing%22%2C%22autoboot%22%3Afalse%7D%2C%22ember-cli-mirage%22%3A%7B%22enabled%22%3Afalse%7D%2C%22logLevels%22%3A%22*%3Dinfo%2Cmatrix%3Dinfo%2Crealm%3Aevents%3Ddebug%22%2C%22matrixURL%22%3A%22http%3A%2F%2Flocalhost%3A8008%22%2C%22matrixServerName%22%3A%22localhost%22%2C%22autoSaveDelayMs%22%3A0%2C%22autoSaveQuietPeriodMs%22%3A0%2C%22autoSaveMaxWaitMs%22%3A10000%2C%22monacoDebounceMs%22%3A0%2C%22monacoCursorDebounceMs%22%3A0%2C%22loginMessageTimeoutMs%22%3A0%2C%22minSaveTaskDurationMs%22%3A0%2C%22cardRenderTimeout%22%3A30000%2C%22cardSizeLimitBytes%22%3A524288%2C%22fileSizeLimitBytes%22%3A5242880%2C%22audioSizeLimitBytes%22%3A20971520%2C%22videoSizeLimitBytes%22%3A52428800%2C%22iconsURL%22%3A%22http%3A%2F%2Flocalhost%3A4206%22%2C%22secureOriginURL%22%3A%22https%3A%2F%2Flocalhost%3A4208%2Fsecure%22%2C%22publishedRealmBoxelSpaceDomain%22%3A%22localhost%3A4201%22%2C%22publishedRealmBoxelSiteDomain%22%3A%22localhost%3A4201%22%2C%22hostsOwnAssets%22%3Atrue%2C%22hostRoutingMap%22%3A%5B%5D%2C%22realmServerURL%22%3A%22http%3A%2F%2Ftest-realm%22%2C%22resolvedBaseRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22resolvedSkillsRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22resolvedPretuiRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%2C%22resolvedTestRealmURL%22%3A%22https%3A%2F%2Flocalhost%3A4202%2Ftest%2F%22%2C%22featureFlags%22%3A%7B%7D%2C%22prefixRealmURLs%22%3A%7B%22%40cardstack%2Fbase%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fbase%2F%22%2C%22%40cardstack%2Fcatalog%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fcatalog%2F%22%2C%22%40cardstack%2Fskills%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fskills%2F%22%2C%22%40cardstack%2Fopenrouter%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fopenrouter%2F%22%2C%22%40cardstack%2Fpretui%2F%22%3A%22https%3A%2F%2Flocalhost%3A4201%2Fpretui%2F%22%7D%2C%22sqlSchema%22%3A%22--%20This%20is%20auto-generated%20by%20packages%2Frealm-server%2Fscripts%2Fconvert-to-sqlite.ts%5Cn--%20Please%20don't%20directly%20modify%20this%20file%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20anonymous_grant_rate_limits%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20grant_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20client_ip%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20window_start%20NOT%20NULL%2C%5Cn%20%20%20window_seconds%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20count%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20expires_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20grant_id%2C%20client_ip%2C%20window_start%2C%20window_seconds%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20bot_commands%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20bot_id%20NOT%20NULL%2C%5Cn%20%20%20command%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20command_filter%20BLOB%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20bot_registrations%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20boxel_index%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20pristine_doc%20BLOB%2C%5Cn%20%20%20search_doc%20BLOB%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20deps%20BLOB%20DEFAULT%20'%5B%5D'%2C%5Cn%20%20%20types%20BLOB%2C%5Cn%20%20%20indexed_at%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20last_modified%2C%5Cn%20%20%20display_names%20BLOB%2C%5Cn%20%20%20resource_created_at%2C%5Cn%20%20%20icon_html%20TEXT%2C%5Cn%20%20%20has_error%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20host_shell_generation%20INTEGER%2C%5Cn%20%20%20source_content_hash%20TEXT%2C%5Cn%20%20%20relationship_deps%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%2C%20realm_url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20boxel_index_pending%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20pristine_doc%20BLOB%2C%5Cn%20%20%20search_doc%20BLOB%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20deps%20BLOB%20DEFAULT%20'%5B%5D'%2C%5Cn%20%20%20types%20BLOB%2C%5Cn%20%20%20indexed_at%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20last_modified%2C%5Cn%20%20%20display_names%20BLOB%2C%5Cn%20%20%20resource_created_at%2C%5Cn%20%20%20icon_html%20TEXT%2C%5Cn%20%20%20has_error%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20host_shell_generation%20INTEGER%2C%5Cn%20%20%20source_content_hash%20TEXT%2C%5Cn%20%20%20job_id%20INTEGER%2C%5Cn%20%20%20staging_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20relationship_deps%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20staging_id%2C%20url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20incoming_webhooks%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20webhook_path%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20verification_type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20verification_config%20BLOB%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20NOT%20NULL%2C%5Cn%20%20%20signing_secret_ciphertext%2C%5Cn%20%20%20signing_secret_nonce%2C%5Cn%20%20%20signing_secret_tag%2C%5Cn%20%20%20signing_secret_key_id%20TEXT%2C%5Cn%20%20%20signing_secret_created_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20media_cache_ledger%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20capture_spec_hash%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20object_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_content_hash%20TEXT%2C%5Cn%20%20%20lane%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20content_type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20size_bytes%20NOT%20NULL%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20last_accessed_at%20NOT%20NULL%2C%5Cn%20%20%20width%20INTEGER%2C%5Cn%20%20%20height%20INTEGER%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20rendered_as%20TEXT%20DEFAULT%20''%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20source_url%2C%20capture_spec_hash%2C%20source_generation%2C%20rendered_as%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20module_transpile_cache%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20canonical_path%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20body%20TEXT%2C%5Cn%20%20%20headers%20BLOB%2C%5Cn%20%20%20dependency_keys%20BLOB%2C%5Cn%20%20%20generation%20DEFAULT%200%20NOT%20NULL%2C%5Cn%20%20%20created_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20canonical_path%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20modules%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20cache_scope%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20auth_user_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20resolved_realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20definitions%20BLOB%2C%5Cn%20%20%20deps%20BLOB%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20created_at%2C%5Cn%20%20%20file_alias%20TEXT%2C%5Cn%20%20%20url_hash%20TEXT%20GENERATED%20ALWAYS%20AS%20(url)%20STORED%20NOT%20NULL%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%2C%20cache_scope%2C%20auth_user_id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20prerendered_html%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20fitted_html%20BLOB%2C%5Cn%20%20%20embedded_html%20BLOB%2C%5Cn%20%20%20atom_html%20TEXT%2C%5Cn%20%20%20head_html%20TEXT%2C%5Cn%20%20%20isolated_html%20TEXT%2C%5Cn%20%20%20markdown%20TEXT%2C%5Cn%20%20%20deps%20BLOB%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20rendered_at%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20captures%20BLOB%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%2C%20realm_url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20prerendered_html_pending%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_alias%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20fitted_html%20BLOB%2C%5Cn%20%20%20embedded_html%20BLOB%2C%5Cn%20%20%20atom_html%20TEXT%2C%5Cn%20%20%20head_html%20TEXT%2C%5Cn%20%20%20isolated_html%20TEXT%2C%5Cn%20%20%20markdown%20TEXT%2C%5Cn%20%20%20deps%20BLOB%2C%5Cn%20%20%20last_known_good_deps%20BLOB%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20is_deleted%20BOOLEAN%2C%5Cn%20%20%20error_doc%20BLOB%2C%5Cn%20%20%20rendered_at%2C%5Cn%20%20%20diagnostics%20BLOB%2C%5Cn%20%20%20captures%20BLOB%2C%5Cn%20%20%20job_id%20INTEGER%2C%5Cn%20%20%20staging_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20staging_id%2C%20url%2C%20type%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20rate_limit_buckets%20(%5Cn%20%20%20bucket_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20tokens%20NOT%20NULL%2C%5Cn%20%20%20refilled_at%20NOT%20NULL%2C%5Cn%20%20%20expires_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20bucket_key%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20rate_limit_budgets%20(%5Cn%20%20%20budget_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20period%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20period_start%20NOT%20NULL%2C%5Cn%20%20%20count%20NOT%20NULL%2C%5Cn%20%20%20expires_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20budget_key%2C%20period%2C%20period_start%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_file_meta%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20file_path%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20created_at%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20content_hash%20TEXT%2C%5Cn%20%20%20content_size%20INTEGER%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20file_path%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_generations%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20current_generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20loader_epoch%20TEXT%20DEFAULT%20'0'%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_index_commits%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20base_generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20pass_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20job_id%20INTEGER%2C%5Cn%20%20%20urls%20BLOB%2C%5Cn%20%20%20render_only_urls%20BLOB%2C%5Cn%20%20%20full_realm%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20committed_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20generation%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_meta%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20generation%20INTEGER%20NOT%20NULL%2C%5Cn%20%20%20value%20BLOB%20NOT%20NULL%2C%5Cn%20%20%20indexed_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20generation%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_metadata%20(%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20show_as_catalog%20BOOLEAN%2C%5Cn%20%20%20publishable%20BOOLEAN%2C%5Cn%20%20%20created_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20archived_at%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20url%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_registry%20(%5Cn%20%20%20id%20DEFAULT%20(hex(randomblob(16)))%20NOT%20NULL%2C%5Cn%20%20%20url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20kind%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20disk_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20owner_username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20source_url%20TEXT%2C%5Cn%20%20%20last_published_at%2C%5Cn%20%20%20pinned%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20created_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_type_generations%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20type_key%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20index_generation%20INTEGER%20DEFAULT%200%20NOT%20NULL%2C%5Cn%20%20%20html_generation%20INTEGER%20DEFAULT%200%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20type_key%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20realm_user_permissions%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20username%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20read%20BOOLEAN%20NOT%20NULL%2C%5Cn%20%20%20write%20BOOLEAN%20NOT%20NULL%2C%5Cn%20%20%20realm_owner%20BOOLEAN%20DEFAULT%20false%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20username%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20scoped_css%20(%5Cn%20%20%20realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20hash%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20css%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20last_interned_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20realm_url%2C%20hash%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20unlisted_realm_paths%20(%5Cn%20%20%20id%20DEFAULT%20(hex(randomblob(16)))%20NOT%20NULL%2C%5Cn%20%20%20source_realm_url%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20slug%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20owner_user_id%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20created_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20DEFAULT%20CURRENT_TIMESTAMP%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%5Cn%5Cn%20CREATE%20TABLE%20IF%20NOT%20EXISTS%20webhook_commands%20(%5Cn%20%20%20id%20NOT%20NULL%2C%5Cn%20%20%20incoming_webhook_id%20NOT%20NULL%2C%5Cn%20%20%20command%20TEXT%20NOT%20NULL%2C%5Cn%20%20%20command_filter%20BLOB%2C%5Cn%20%20%20created_at%20NOT%20NULL%2C%5Cn%20%20%20updated_at%20NOT%20NULL%2C%5Cn%20%20%20PRIMARY%20KEY%20(%20id%20)%20%5Cn)%3B%22%2C%22defaultSystemCardId%22%3A%22http%3A%2F%2Ftest-realm%2Ftest%2FSystemCard%2Fdefault%22%2C%22defaultFieldSpecId%22%3A%22http%3A%2F%2Ftest-realm%2Ftest%2Ffields%2Ffield%22%7D">
17
17
 
18
18
  <link rel="stylesheet" href="/@embroider/virtual/app.css">
19
19
 
20
20
 
21
- <script type="module" crossorigin="" src="/assets/tests-CVpu0hZj.js"></script>
21
+ <script type="module" crossorigin="" src="/assets/tests-DXX9TrgY.js"></script>
22
22
  <link rel="modulepreload" crossorigin="" href="/assets/chunk-Rp0pCe6z.js">
23
23
  <link rel="modulepreload" crossorigin="" href="/assets/preload-helper-CKDH5-7N.js">
24
24
  <link rel="modulepreload" crossorigin="" href="/assets/index-esm-CUymiD6S.js">
@@ -156,7 +156,7 @@
156
156
  <link rel="modulepreload" crossorigin="" href="/assets/send-request-via-proxy-C6VadkNP.js">
157
157
  <link rel="modulepreload" crossorigin="" href="/assets/one-shot-llm-request-DyNz3g6O.js">
158
158
  <link rel="modulepreload" crossorigin="" href="/assets/generate-example-cards-Bd5ZtwpX.js">
159
- <link rel="modulepreload" crossorigin="" href="/assets/unshare-key-Dfy1IK9g.js">
159
+ <link rel="modulepreload" crossorigin="" href="/assets/unshare-key-W_bNI_MF.js">
160
160
  <link rel="modulepreload" crossorigin="" href="/assets/module-syntax-DoNDfK2P.js">
161
161
  <link rel="modulepreload" crossorigin="" href="/assets/add-field-to-card-definition-Dh-2u-FW.js">
162
162
  <link rel="modulepreload" crossorigin="" href="/assets/create-ai-assistant-room-Bao3Qkue.js">
@@ -240,8 +240,8 @@
240
240
  <link rel="modulepreload" crossorigin="" href="/assets/unpublish-realm-ta0NO9tk.js">
241
241
  <link rel="modulepreload" crossorigin="" href="/assets/validate-realm-vOT89iEW.js">
242
242
  <link rel="modulepreload" crossorigin="" href="/assets/view-visually-BwgK0jh7.js">
243
- <link rel="modulepreload" crossorigin="" href="/assets/tools-DRCjAZCp.js">
244
- <link rel="modulepreload" crossorigin="" href="/assets/externals-Ddhtv753.js">
243
+ <link rel="modulepreload" crossorigin="" href="/assets/tools-CkouX4wE.js">
244
+ <link rel="modulepreload" crossorigin="" href="/assets/externals-Cw0MmkHM.js">
245
245
  <link rel="modulepreload" crossorigin="" href="/assets/render-service-DONRC3JB.js">
246
246
  <link rel="modulepreload" crossorigin="" href="/assets/perform-g9ba6YNZ.js">
247
247
  <link rel="modulepreload" crossorigin="" href="/assets/on-key-lN1E-7x2.js">
@@ -384,9 +384,9 @@
384
384
  <link rel="modulepreload" crossorigin="" href="/assets/boxel-formatter-CRWFXHNL.js">
385
385
  <link rel="modulepreload" crossorigin="" href="/assets/from-elsewhere-ChxbtsBa.js">
386
386
  <link rel="modulepreload" crossorigin="" href="/assets/select-D0GhdFsc.js">
387
- <link rel="modulepreload" crossorigin="" href="/assets/container-CXZoEvul.js">
387
+ <link rel="modulepreload" crossorigin="" href="/assets/container-CATqNgYF.js">
388
388
  <link rel="modulepreload" crossorigin="" href="/assets/browser-queue-c_qO-Adm.js">
389
- <link rel="modulepreload" crossorigin="" href="/assets/bundled-base-DtxlKFXx.js">
389
+ <link rel="modulepreload" crossorigin="" href="/assets/bundled-base-CYD5iFX3.js">
390
390
  <link rel="modulepreload" crossorigin="" href="/assets/gc-card-store-DD2YJL1l.js">
391
391
  <link rel="modulepreload" crossorigin="" href="/assets/search-cache-key-DE0L17IU.js">
392
392
  <link rel="modulepreload" crossorigin="" href="/assets/search-in-flight-key-buHJpU17.js">
@@ -401,7 +401,7 @@
401
401
  <link rel="modulepreload" crossorigin="" href="/assets/operation-ledger-DsJD4Wm3.js">
402
402
  <link rel="modulepreload" crossorigin="" href="/assets/operations-B_fo3apk.js">
403
403
  <link rel="modulepreload" crossorigin="" href="/assets/render-diagnostics-CztktD_I.js">
404
- <link rel="modulepreload" crossorigin="" href="/assets/app-hXF_bqWy.js">
404
+ <link rel="modulepreload" crossorigin="" href="/assets/app-BEvPLshl.js">
405
405
  <link rel="modulepreload" crossorigin="" href="/assets/qunit-C-Foo4Nd.js">
406
406
  <link rel="modulepreload" crossorigin="" href="/assets/dist-CPfIHBla.js">
407
407
  <link rel="modulepreload" crossorigin="" href="/assets/dist-Ds4JDBNZ.js">
@@ -463,7 +463,7 @@
463
463
  <link rel="stylesheet" crossorigin="" href="/assets/sections-Cq_ukEQE.css">
464
464
  <link rel="stylesheet" crossorigin="" href="/assets/markdown-preview-Cnd4Qwna.css">
465
465
  <link rel="stylesheet" crossorigin="" href="/assets/select-CJOTXXIM.css">
466
- <link rel="stylesheet" crossorigin="" href="/assets/container-BCOmNUou.css">
466
+ <link rel="stylesheet" crossorigin="" href="/assets/container-CAEYXGQg.css">
467
467
  <link rel="stylesheet" crossorigin="" href="/assets/app-Qgooycf0.css">
468
468
  <link rel="stylesheet" crossorigin="" href="/assets/dist-74yZvkE9.css">
469
469
  <link rel="stylesheet" crossorigin="" href="/assets/tests-tn0RQdqM.css">
@@ -181,7 +181,6 @@ export declare class KeyUsageCountField extends FieldDef {
181
181
  withheld: boolean;
182
182
  }
183
183
  export declare class KeyUsageGrantField extends FieldDef {
184
- host: string;
185
184
  destination: string;
186
185
  state: string;
187
186
  rejectedAt: string;
@@ -67,12 +67,14 @@ export default class AddWorkspace extends Component<Signature> {
67
67
  justify-content: center;
68
68
  align-items: center;
69
69
  background-color: transparent;
70
- box-shadow: inset 0 0 0 1px var(--boxel-light-10);
70
+ box-shadow: inset 0 0 0 1px var(--boxel-light-25);
71
71
  color: var(--boxel-light);
72
72
  transition: box-shadow var(--boxel-transition);
73
73
  }
74
- .add-workspace:hover {
75
- box-shadow: inset 0 0 0 1px var(--boxel-light-25);
74
+ @media (hover: hover) {
75
+ .add-workspace:hover {
76
+ box-shadow: inset 0 0 0 1px var(--boxel-light-50);
77
+ }
76
78
  }
77
79
  .add-workspace.is-selected,
78
80
  .add-workspace:focus-visible {
@@ -90,14 +90,12 @@ export default class ArchivedWorkspace extends Component<Signature> {
90
90
  @appearance='outlined'
91
91
  @shape='pill'
92
92
  @size='s'
93
+ @icon={{ArchiveRestoreIcon}}
93
94
  @busy={{this.restoreTask.isRunning}}
94
95
  @busyLabel='Restoring'
95
96
  {{on 'click' (perform this.restoreTask)}}
96
97
  data-test-restore-workspace-btn={{@archivedRealm.url}}
97
- >
98
- <ArchiveRestoreIcon width='14' height='14' aria-hidden='true' />
99
- Restore
100
- </Button>
98
+ >Restore</Button>
101
99
  </div>
102
100
  <style scoped>
103
101
  .archived-row {
@@ -110,7 +108,7 @@ export default class ArchivedWorkspace extends Component<Signature> {
110
108
  padding: var(--boxel-sp-xs);
111
109
  border-radius: var(--dashboard-tile-radius);
112
110
  background-color: var(--dashboard-row-tint);
113
- box-shadow: inset 0 0 0 1px var(--boxel-light-10);
111
+ box-shadow: inset 0 0 0 1px var(--boxel-light-25);
114
112
  color: var(--boxel-light);
115
113
  }
116
114
  .thumb {
@@ -315,7 +315,7 @@ export default class CatalogShelf extends Component<Signature> {
315
315
  @appearance='link'
316
316
  {{on 'click' this.openCatalog}}
317
317
  data-test-catalog-see-all
318
- >See the whole catalog <span aria-hidden='true'>→</span></Button>
318
+ >See the full catalog <span aria-hidden='true'>→</span></Button>
319
319
  </div>
320
320
  {{else if this.isPending}}
321
321
  {{! The stories' metrics with nothing in them. }}
@@ -343,7 +343,7 @@ export default class CatalogShelf extends Component<Signature> {
343
343
  class='see-all is-pending'
344
344
  @tone='neutral'
345
345
  @appearance='link'
346
- >See the whole catalog</Button>
346
+ >See the full catalog</Button>
347
347
  </div>
348
348
  {{/if}}
349
349
 
@@ -383,16 +383,33 @@ export default class CatalogShelf extends Component<Signature> {
383
383
  border-radius: var(--boxel-border-radius-2xl);
384
384
  background-color: var(--_story-paper);
385
385
  color: var(--foreground);
386
+ /* Edged like the workspace tiles, just outside the card so the edge
387
+ reads the same against the dashboard on every paper. */
386
388
  box-shadow:
387
- 0 0 0 1px var(--_story-edge),
389
+ 0 0 0 1px var(--boxel-light-25),
388
390
  var(--shadow-md);
389
- transition: transform var(--boxel-transition);
390
391
  }
391
- @media (hover: hover) and (prefers-reduced-motion: no-preference) {
392
- .story:hover {
393
- transform: translateY(-0.125rem);
392
+ /* The hover ring stands 1px off the resting edge. */
393
+ .story::after {
394
+ content: '';
395
+ position: absolute;
396
+ inset: 0;
397
+ border-radius: inherit;
398
+ outline: 1px solid var(--boxel-light-50);
399
+ outline-offset: 1px;
400
+ opacity: 0;
401
+ transition: opacity var(--boxel-transition);
402
+ pointer-events: none;
403
+ }
404
+ @media (hover: hover) {
405
+ .story:not(.is-pending):hover::after {
406
+ opacity: 1;
394
407
  }
395
408
  }
409
+ /* Keeps the hover ring off the keyboard ring. */
410
+ .story:has(.story-open:focus-visible)::after {
411
+ opacity: 0;
412
+ }
396
413
  /* The story draws the keyboard ring around the whole card. */
397
414
  .story:has(.story-open:focus-visible) {
398
415
  box-shadow: var(--dashboard-ring), var(--shadow-md);
@@ -1037,14 +1037,19 @@ export default class Workspace extends Component<Signature> {
1037
1037
  var(--boxel-sp-xs) var(--boxel-sp-xs);
1038
1038
  border-radius: var(--dashboard-tile-radius);
1039
1039
  background-color: var(--dashboard-row-tint);
1040
- box-shadow: inset 0 0 0 1px var(--boxel-light-10);
1041
- transition: background-color var(--boxel-transition);
1040
+ box-shadow: inset 0 0 0 1px var(--boxel-light-25);
1041
+ transition:
1042
+ background-color var(--boxel-transition),
1043
+ box-shadow var(--boxel-transition);
1042
1044
  }
1043
1045
  .workspace.is-row:has(.host-menu) {
1044
1046
  --_workspace-controls: 3;
1045
1047
  }
1046
- .workspace.is-row:hover {
1047
- background-color: var(--_workspace-row-tint-hover);
1048
+ @media (hover: hover) {
1049
+ .workspace.is-row:hover {
1050
+ background-color: var(--_workspace-row-tint-hover);
1051
+ box-shadow: inset 0 0 0 1px var(--boxel-light-50);
1052
+ }
1048
1053
  }
1049
1054
  /* Over the list's scrim, so a row the cursor rests on is never hidden
1050
1055
  under it; the Show more toggle, later in the page at the same level,
@@ -144,7 +144,6 @@ export interface KeyShareUsage {
144
144
  }[];
145
145
  grants: {
146
146
  id: string;
147
- host: string;
148
147
  destination: string;
149
148
  state: 'active' | 'rejected';
150
149
  rejectedAt: string | null;
@@ -78,7 +78,6 @@ export default class GetKeyShareUsageTool extends HostBaseTool<
78
78
  grants: usage.grants.map(
79
79
  (grant) =>
80
80
  new KeyUsageGrantField({
81
- host: grant.host,
82
81
  destination: grant.destination,
83
82
  state: grant.state,
84
83
  rejectedAt: grant.rejectedAt ?? undefined,