@dxos/plugin-registry 0.8.3 → 0.8.4-main.1c7ec43d41

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 (201) hide show
  1. package/dist/lib/browser/cli/index.mjs +32 -0
  2. package/dist/lib/browser/cli/index.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +27 -63
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/translations.mjs +61 -0
  7. package/dist/lib/browser/translations.mjs.map +7 -0
  8. package/dist/lib/node-esm/cli/index.mjs +34 -0
  9. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +37 -0
  11. package/dist/lib/node-esm/index.mjs.map +7 -0
  12. package/dist/lib/node-esm/meta.json +1 -0
  13. package/dist/lib/node-esm/translations.mjs +63 -0
  14. package/dist/lib/node-esm/translations.mjs.map +7 -0
  15. package/dist/types/src/RegistryPlugin.d.ts +3 -1
  16. package/dist/types/src/RegistryPlugin.d.ts.map +1 -1
  17. package/dist/types/src/RegistryPlugin.node.d.ts +4 -0
  18. package/dist/types/src/RegistryPlugin.node.d.ts.map +1 -0
  19. package/dist/types/src/RegistryPlugin.test.d.ts +2 -0
  20. package/dist/types/src/RegistryPlugin.test.d.ts.map +1 -0
  21. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  22. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  23. package/dist/types/src/capabilities/dev-plugin-loader.d.ts +11 -0
  24. package/dist/types/src/capabilities/dev-plugin-loader.d.ts.map +1 -0
  25. package/dist/types/src/capabilities/index.d.ts +15 -3
  26. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  27. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  28. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  29. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  30. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  31. package/dist/types/src/capabilities/settings.d.ts +14 -0
  32. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  33. package/dist/types/src/cli/index.d.ts +2 -0
  34. package/dist/types/src/cli/index.d.ts.map +1 -0
  35. package/dist/types/src/commands/disable.d.ts +11 -0
  36. package/dist/types/src/commands/disable.d.ts.map +1 -0
  37. package/dist/types/src/commands/enable.d.ts +11 -0
  38. package/dist/types/src/commands/enable.d.ts.map +1 -0
  39. package/dist/types/src/commands/index.d.ts +3 -0
  40. package/dist/types/src/commands/index.d.ts.map +1 -0
  41. package/dist/types/src/commands/list.d.ts +7 -0
  42. package/dist/types/src/commands/list.d.ts.map +1 -0
  43. package/dist/types/src/commands/util.d.ts +11 -0
  44. package/dist/types/src/commands/util.d.ts.map +1 -0
  45. package/dist/types/src/components/PluginDetail/PluginDetail.d.ts +46 -0
  46. package/dist/types/src/components/PluginDetail/PluginDetail.d.ts.map +1 -0
  47. package/dist/types/src/components/PluginDetail/PluginDetail.stories.d.ts +68 -0
  48. package/dist/types/src/components/PluginDetail/PluginDetail.stories.d.ts.map +1 -0
  49. package/dist/types/src/components/PluginDetail/index.d.ts +2 -0
  50. package/dist/types/src/components/PluginDetail/index.d.ts.map +1 -0
  51. package/dist/types/src/components/PluginFailureBadge/PluginFailureBadge.d.ts +20 -0
  52. package/dist/types/src/components/PluginFailureBadge/PluginFailureBadge.d.ts.map +1 -0
  53. package/dist/types/src/components/PluginFailureBadge/index.d.ts +2 -0
  54. package/dist/types/src/components/PluginFailureBadge/index.d.ts.map +1 -0
  55. package/dist/types/src/components/PluginList/PluginItem.d.ts +40 -0
  56. package/dist/types/src/components/PluginList/PluginItem.d.ts.map +1 -0
  57. package/dist/types/src/components/PluginList/PluginList.d.ts +23 -0
  58. package/dist/types/src/components/PluginList/PluginList.d.ts.map +1 -0
  59. package/dist/types/src/components/PluginList/PluginList.stories.d.ts +67 -0
  60. package/dist/types/src/components/PluginList/PluginList.stories.d.ts.map +1 -0
  61. package/dist/types/src/components/PluginList/index.d.ts +2 -0
  62. package/dist/types/src/components/PluginList/index.d.ts.map +1 -0
  63. package/dist/types/src/components/RegistrySettings/RegistrySettings.d.ts +18 -0
  64. package/dist/types/src/components/RegistrySettings/RegistrySettings.d.ts.map +1 -0
  65. package/dist/types/src/components/RegistrySettings/index.d.ts +2 -0
  66. package/dist/types/src/components/RegistrySettings/index.d.ts.map +1 -0
  67. package/dist/types/src/components/index.d.ts +2 -1
  68. package/dist/types/src/components/index.d.ts.map +1 -1
  69. package/dist/types/src/containers/BaseRegistryArticle/BaseRegistryArticle.d.ts +20 -0
  70. package/dist/types/src/containers/BaseRegistryArticle/BaseRegistryArticle.d.ts.map +1 -0
  71. package/dist/types/src/containers/BaseRegistryArticle/index.d.ts +2 -0
  72. package/dist/types/src/containers/BaseRegistryArticle/index.d.ts.map +1 -0
  73. package/dist/types/src/containers/LoadPluginDialog/LoadPluginDialog.d.ts +4 -0
  74. package/dist/types/src/containers/LoadPluginDialog/LoadPluginDialog.d.ts.map +1 -0
  75. package/dist/types/src/containers/LoadPluginDialog/index.d.ts +2 -0
  76. package/dist/types/src/containers/LoadPluginDialog/index.d.ts.map +1 -0
  77. package/dist/types/src/containers/PluginArticle/PluginArticle.d.ts +7 -0
  78. package/dist/types/src/containers/PluginArticle/PluginArticle.d.ts.map +1 -0
  79. package/dist/types/src/containers/PluginArticle/index.d.ts +2 -0
  80. package/dist/types/src/containers/PluginArticle/index.d.ts.map +1 -0
  81. package/dist/types/src/containers/PublicRegistryArticle/PublicRegistryArticle.d.ts +8 -0
  82. package/dist/types/src/containers/PublicRegistryArticle/PublicRegistryArticle.d.ts.map +1 -0
  83. package/dist/types/src/containers/PublicRegistryArticle/index.d.ts +2 -0
  84. package/dist/types/src/containers/PublicRegistryArticle/index.d.ts.map +1 -0
  85. package/dist/types/src/containers/RegistryArticle/RegistryArticle.d.ts +14 -0
  86. package/dist/types/src/containers/RegistryArticle/RegistryArticle.d.ts.map +1 -0
  87. package/dist/types/src/containers/RegistryArticle/index.d.ts +2 -0
  88. package/dist/types/src/containers/RegistryArticle/index.d.ts.map +1 -0
  89. package/dist/types/src/containers/RegistrySettingsContainer/RegistrySettingsContainer.d.ts +13 -0
  90. package/dist/types/src/containers/RegistrySettingsContainer/RegistrySettingsContainer.d.ts.map +1 -0
  91. package/dist/types/src/containers/RegistrySettingsContainer/index.d.ts +2 -0
  92. package/dist/types/src/containers/RegistrySettingsContainer/index.d.ts.map +1 -0
  93. package/dist/types/src/containers/index.d.ts +8 -0
  94. package/dist/types/src/containers/index.d.ts.map +1 -0
  95. package/dist/types/src/hooks/index.d.ts +4 -0
  96. package/dist/types/src/hooks/index.d.ts.map +1 -0
  97. package/dist/types/src/hooks/use-auto-tags.d.ts +20 -0
  98. package/dist/types/src/hooks/use-auto-tags.d.ts.map +1 -0
  99. package/dist/types/src/hooks/use-registry-plugins.d.ts +15 -0
  100. package/dist/types/src/hooks/use-registry-plugins.d.ts.map +1 -0
  101. package/dist/types/src/hooks/use-update-available.d.ts +18 -0
  102. package/dist/types/src/hooks/use-update-available.d.ts.map +1 -0
  103. package/dist/types/src/index.d.ts +2 -1
  104. package/dist/types/src/index.d.ts.map +1 -1
  105. package/dist/types/src/meta.d.ts +7 -4
  106. package/dist/types/src/meta.d.ts.map +1 -1
  107. package/dist/types/src/operations/index.d.ts +3 -0
  108. package/dist/types/src/operations/index.d.ts.map +1 -0
  109. package/dist/types/src/operations/open-plugin-registry.d.ts +5 -0
  110. package/dist/types/src/operations/open-plugin-registry.d.ts.map +1 -0
  111. package/dist/types/src/storage.d.ts +18 -0
  112. package/dist/types/src/storage.d.ts.map +1 -0
  113. package/dist/types/src/translations.d.ts +51 -19
  114. package/dist/types/src/translations.d.ts.map +1 -1
  115. package/dist/types/src/types.d.ts +32 -1
  116. package/dist/types/src/types.d.ts.map +1 -1
  117. package/dist/types/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +74 -38
  119. package/src/RegistryPlugin.node.ts +19 -0
  120. package/src/RegistryPlugin.test.ts +24 -0
  121. package/src/RegistryPlugin.tsx +20 -27
  122. package/src/capabilities/app-graph-builder.ts +180 -135
  123. package/src/capabilities/dev-plugin-loader.ts +39 -0
  124. package/src/capabilities/index.ts +10 -4
  125. package/src/capabilities/operation-handler.ts +16 -0
  126. package/src/capabilities/react-surface.tsx +124 -78
  127. package/src/capabilities/settings.ts +34 -0
  128. package/src/cli/index.ts +5 -0
  129. package/src/commands/disable.ts +47 -0
  130. package/src/commands/enable.ts +44 -0
  131. package/src/commands/index.ts +14 -0
  132. package/src/commands/list.ts +41 -0
  133. package/src/commands/util.ts +24 -0
  134. package/src/components/PluginDetail/PluginDetail.stories.tsx +44 -0
  135. package/src/components/PluginDetail/PluginDetail.tsx +196 -0
  136. package/src/components/PluginDetail/index.ts +5 -0
  137. package/src/components/PluginFailureBadge/PluginFailureBadge.tsx +68 -0
  138. package/src/components/PluginFailureBadge/index.ts +5 -0
  139. package/src/components/PluginList/PluginItem.tsx +226 -0
  140. package/src/components/PluginList/PluginList.stories.tsx +87 -0
  141. package/src/components/PluginList/PluginList.tsx +52 -0
  142. package/src/components/PluginList/index.ts +5 -0
  143. package/src/components/RegistrySettings/RegistrySettings.tsx +120 -0
  144. package/src/components/RegistrySettings/index.ts +5 -0
  145. package/src/components/index.ts +2 -1
  146. package/src/containers/BaseRegistryArticle/BaseRegistryArticle.tsx +163 -0
  147. package/src/containers/BaseRegistryArticle/index.ts +5 -0
  148. package/src/containers/LoadPluginDialog/LoadPluginDialog.tsx +87 -0
  149. package/src/containers/LoadPluginDialog/index.ts +5 -0
  150. package/src/containers/PluginArticle/PluginArticle.tsx +336 -0
  151. package/src/containers/PluginArticle/index.ts +5 -0
  152. package/src/containers/PublicRegistryArticle/PublicRegistryArticle.tsx +192 -0
  153. package/src/containers/PublicRegistryArticle/index.ts +5 -0
  154. package/src/containers/RegistryArticle/RegistryArticle.tsx +53 -0
  155. package/src/containers/RegistryArticle/index.ts +5 -0
  156. package/src/containers/RegistrySettingsContainer/RegistrySettingsContainer.tsx +59 -0
  157. package/src/containers/RegistrySettingsContainer/index.ts +5 -0
  158. package/src/containers/index.ts +12 -0
  159. package/src/hooks/index.ts +7 -0
  160. package/src/hooks/use-auto-tags.ts +51 -0
  161. package/src/hooks/use-registry-plugins.ts +29 -0
  162. package/src/hooks/use-update-available.ts +31 -0
  163. package/src/index.ts +5 -1
  164. package/src/meta.ts +21 -9
  165. package/src/operations/index.ts +7 -0
  166. package/src/operations/open-plugin-registry.ts +21 -0
  167. package/src/storage.ts +50 -0
  168. package/src/translations.ts +57 -18
  169. package/src/types.ts +37 -1
  170. package/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs +0 -161
  171. package/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-ISC56E5F.mjs +0 -16
  173. package/dist/lib/browser/chunk-ISC56E5F.mjs.map +0 -7
  174. package/dist/lib/browser/intent-resolver-AQJNBUT3.mjs +0 -23
  175. package/dist/lib/browser/intent-resolver-AQJNBUT3.mjs.map +0 -7
  176. package/dist/lib/browser/react-surface-W5RNDLXV.mjs +0 -335
  177. package/dist/lib/browser/react-surface-W5RNDLXV.mjs.map +0 -7
  178. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  179. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  180. package/dist/types/src/components/Icon.stories.d.ts +0 -6
  181. package/dist/types/src/components/Icon.stories.d.ts.map +0 -1
  182. package/dist/types/src/components/PluginDetail.d.ts +0 -9
  183. package/dist/types/src/components/PluginDetail.d.ts.map +0 -1
  184. package/dist/types/src/components/PluginDetail.stories.d.ts +0 -8
  185. package/dist/types/src/components/PluginDetail.stories.d.ts.map +0 -1
  186. package/dist/types/src/components/PluginItem.d.ts +0 -13
  187. package/dist/types/src/components/PluginItem.d.ts.map +0 -1
  188. package/dist/types/src/components/PluginList.d.ts +0 -8
  189. package/dist/types/src/components/PluginList.d.ts.map +0 -1
  190. package/dist/types/src/components/PluginList.stories.d.ts +0 -11
  191. package/dist/types/src/components/PluginList.stories.d.ts.map +0 -1
  192. package/dist/types/src/components/RegistryContainer.d.ts +0 -7
  193. package/dist/types/src/components/RegistryContainer.d.ts.map +0 -1
  194. package/src/capabilities/intent-resolver.ts +0 -27
  195. package/src/components/Icon.stories.tsx +0 -107
  196. package/src/components/PluginDetail.stories.tsx +0 -45
  197. package/src/components/PluginDetail.tsx +0 -63
  198. package/src/components/PluginItem.tsx +0 -119
  199. package/src/components/PluginList.stories.tsx +0 -82
  200. package/src/components/PluginList.tsx +0 -26
  201. package/src/components/RegistryContainer.tsx +0 -84
@@ -0,0 +1,32 @@
1
+ // src/storage.ts
2
+ import * as FileSystem from "@effect/platform/FileSystem";
3
+ import * as Path from "@effect/platform/Path";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Schema from "effect/Schema";
6
+ import * as Yaml from "yaml";
7
+ import { DX_CONFIG } from "@dxos/client-protocol";
8
+ var PluginsSchema = Schema.Array(Schema.String);
9
+ var getPluginsConfigPath = (profile) => `${DX_CONFIG}/plugins/${profile}.yml`;
10
+ var loadEnabledPlugins = Effect.fn(function* ({ profile }) {
11
+ const fs = yield* FileSystem.FileSystem;
12
+ const pluginsPath = getPluginsConfigPath(profile);
13
+ const content = yield* fs.readFileString(pluginsPath).pipe(Effect.catchTag("SystemError", () => Effect.succeed("[]")));
14
+ const raw = Yaml.parse(content);
15
+ const parsed = yield* Schema.decodeUnknown(PluginsSchema)(raw ?? []).pipe(Effect.catchAll(() => Effect.succeed([])));
16
+ return parsed;
17
+ });
18
+ var saveEnabledPlugins = Effect.fn(function* ({ profile, enabled }) {
19
+ const fs = yield* FileSystem.FileSystem;
20
+ const path = yield* Path.Path;
21
+ const pluginsPath = getPluginsConfigPath(profile);
22
+ yield* fs.makeDirectory(path.dirname(pluginsPath), {
23
+ recursive: true
24
+ });
25
+ const encoded = Yaml.stringify(enabled);
26
+ yield* fs.writeFileString(pluginsPath, encoded);
27
+ });
28
+ export {
29
+ loadEnabledPlugins,
30
+ saveEnabledPlugins
31
+ };
32
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/storage.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\nimport * as Yaml from 'yaml';\n\nimport { DX_CONFIG } from '@dxos/client-protocol';\n\n// TODO(wittjosiah): Factor out to app-framework?\n\nconst PluginsSchema = Schema.Array(Schema.String);\n\n/** CLI-only: path to plugins/<profile>.yml (sibling to profile/). */\nconst getPluginsConfigPath = (profile: string) => `${DX_CONFIG}/plugins/${profile}.yml`;\n\n/**\n * Load enabled plugins from plugins/<profile>.yml (sibling to profile/).\n * Returns the list of enabled plugin IDs, or an empty array if the file doesn't exist.\n */\nexport const loadEnabledPlugins = Effect.fn(function* ({ profile }: { profile: string }) {\n const fs = yield* FileSystem.FileSystem;\n const pluginsPath = getPluginsConfigPath(profile);\n\n const content = yield* fs\n .readFileString(pluginsPath)\n .pipe(Effect.catchTag('SystemError', () => Effect.succeed('[]')));\n\n const raw = Yaml.parse(content);\n const parsed = yield* Schema.decodeUnknown(PluginsSchema)(raw ?? []).pipe(\n Effect.catchAll(() => Effect.succeed([] as string[])),\n );\n\n return parsed;\n});\n\n/**\n * Save enabled plugins to plugins/<profile>.yml.\n */\nexport const saveEnabledPlugins = Effect.fn(function* ({ profile, enabled }: { profile: string; enabled: string[] }) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const pluginsPath = getPluginsConfigPath(profile);\n yield* fs.makeDirectory(path.dirname(pluginsPath), { recursive: true });\n const encoded = Yaml.stringify(enabled);\n yield* fs.writeFileString(pluginsPath, encoded);\n});\n"],
5
+ "mappings": ";AAIA,YAAYA,gBAAgB;AAC5B,YAAYC,UAAU;AACtB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AACxB,YAAYC,UAAU;AAEtB,SAASC,iBAAiB;AAI1B,IAAMC,gBAAuBC,aAAaC,aAAM;AAGhD,IAAMC,uBAAuB,CAACC,YAAoB,GAAGL,SAAAA,YAAqBK,OAAAA;AAMnE,IAAMC,qBAA4BC,UAAG,WAAW,EAAEF,QAAO,GAAuB;AACrF,QAAMG,KAAK,OAAkBb;AAC7B,QAAMc,cAAcL,qBAAqBC,OAAAA;AAEzC,QAAMK,UAAU,OAAOF,GACpBG,eAAeF,WAAAA,EACfG,KAAYC,gBAAS,eAAe,MAAaC,eAAQ,IAAA,CAAA,CAAA;AAE5D,QAAMC,MAAWC,WAAMN,OAAAA;AACvB,QAAMO,SAAS,OAAcC,qBAAcjB,aAAAA,EAAec,OAAO,CAAA,CAAE,EAAEH,KAC5DO,gBAAS,MAAaL,eAAQ,CAAA,CAAE,CAAA,CAAA;AAGzC,SAAOG;AACT,CAAA;AAKO,IAAMG,qBAA4Bb,UAAG,WAAW,EAAEF,SAASgB,QAAO,GAA0C;AACjH,QAAMb,KAAK,OAAkBb;AAC7B,QAAM2B,OAAO,OAAY1B;AACzB,QAAMa,cAAcL,qBAAqBC,OAAAA;AACzC,SAAOG,GAAGe,cAAcD,KAAKE,QAAQf,WAAAA,GAAc;IAAEgB,WAAW;EAAK,CAAA;AACrE,QAAMC,UAAeC,eAAUN,OAAAA;AAC/B,SAAOb,GAAGoB,gBAAgBnB,aAAaiB,OAAAA;AACzC,CAAA;",
6
+ "names": ["FileSystem", "Path", "Effect", "Schema", "Yaml", "DX_CONFIG", "PluginsSchema", "Array", "String", "getPluginsConfigPath", "profile", "loadEnabledPlugins", "fn", "fs", "pluginsPath", "content", "readFileString", "pipe", "catchTag", "succeed", "raw", "parse", "parsed", "decodeUnknown", "catchAll", "saveEnabledPlugins", "enabled", "path", "makeDirectory", "dirname", "recursive", "encoded", "stringify", "writeFileString"]
7
+ }
@@ -1,71 +1,35 @@
1
- import {
2
- REGISTRY_ID,
3
- REGISTRY_KEY,
4
- REGISTRY_PLUGIN,
5
- meta
6
- } from "./chunk-ISC56E5F.mjs";
7
-
8
- // packages/plugins/plugin-registry/src/RegistryPlugin.tsx
9
- import { Capabilities, contributes, defineModule, definePlugin, Events } from "@dxos/app-framework";
1
+ // src/index.ts
2
+ import { Plugin } from "@dxos/app-framework";
10
3
 
11
- // packages/plugins/plugin-registry/src/capabilities/index.ts
12
- import { lazy } from "@dxos/app-framework";
13
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-J5YHAGNI.mjs"));
14
- var IntentResolver = lazy(() => import("./intent-resolver-AQJNBUT3.mjs"));
15
- var ReactSurface = lazy(() => import("./react-surface-W5RNDLXV.mjs"));
16
-
17
- // packages/plugins/plugin-registry/src/translations.ts
18
- var translations_default = [
19
- {
20
- "en-US": {
21
- [REGISTRY_PLUGIN]: {
22
- "plugin name": "Registry",
23
- "details label": "Details",
24
- "home page label": "Website",
25
- "source label": "Source",
26
- "plugin registry label": "Plugin Registry",
27
- "all plugins label": "All",
28
- "installed plugins label": "Enabled",
29
- "recommended plugins label": "Recommended",
30
- "labs plugins label": "Labs",
31
- "community plugins label": "Community",
32
- "load by url label": "Load by URL (soon)",
33
- "coming soon label": "Coming soon!",
34
- "open plugin registry label": "Open plugin registry",
35
- "settings label": "Settings"
36
- }
37
- }
38
- }
39
- ];
4
+ // src/meta.ts
5
+ import { pinnedWorkspaceId } from "@dxos/app-toolkit";
6
+ import { trim } from "@dxos/util";
7
+ var REGISTRY_ID = pinnedWorkspaceId("dxos:plugin-registry");
8
+ var REGISTRY_KEY = "plugin-registry";
9
+ var CATEGORY_SEPARATOR = ">";
10
+ var registryCategoryId = (category) => `${REGISTRY_KEY}${CATEGORY_SEPARATOR}${category}`;
11
+ var getPluginPath = (pluginId) => `root/${REGISTRY_ID}/${pluginId}`;
12
+ var meta = {
13
+ id: "org.dxos.plugin.registry",
14
+ name: "Plugins",
15
+ description: trim`
16
+ Plugin management system for discovering, installing, and configuring workspace extensions.
17
+ Browse available plugins and customize your workspace capabilities.
18
+ `,
19
+ icon: "ph--squares-four--regular",
20
+ tags: [
21
+ "system"
22
+ ]
23
+ };
40
24
 
41
- // packages/plugins/plugin-registry/src/RegistryPlugin.tsx
42
- var RegistryPlugin = () => definePlugin(meta, [
43
- defineModule({
44
- id: `${meta.id}/module/translations`,
45
- activatesOn: Events.SetupTranslations,
46
- activate: () => contributes(Capabilities.Translations, translations_default)
47
- }),
48
- defineModule({
49
- id: `${meta.id}/module/react-surface`,
50
- activatesOn: Events.SetupReactSurface,
51
- activate: ReactSurface
52
- }),
53
- defineModule({
54
- id: `${meta.id}/module/intent-resolver`,
55
- activatesOn: Events.SetupIntentResolver,
56
- activate: IntentResolver
57
- }),
58
- defineModule({
59
- id: `${meta.id}/module/app-graph-builder`,
60
- activatesOn: Events.SetupAppGraph,
61
- activate: AppGraphBuilder
62
- })
63
- ]);
25
+ // src/index.ts
26
+ var RegistryPlugin = Plugin.lazy(meta, () => import("#plugin"));
64
27
  export {
65
28
  REGISTRY_ID,
66
29
  REGISTRY_KEY,
67
- REGISTRY_PLUGIN,
68
30
  RegistryPlugin,
69
- meta
31
+ getPluginPath,
32
+ meta,
33
+ registryCategoryId
70
34
  };
71
35
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/RegistryPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const RegistryPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { REGISTRY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [REGISTRY_PLUGIN]: {\n 'plugin name': 'Registry',\n 'details label': 'Details',\n 'home page label': 'Website',\n 'source label': 'Source',\n 'plugin registry label': 'Plugin Registry',\n 'all plugins label': 'All',\n 'installed plugins label': 'Enabled',\n 'recommended plugins label': 'Recommended',\n 'labs plugins label': 'Labs',\n 'community plugins label': 'Community',\n 'load by url label': 'Load by URL (soon)',\n 'coming soon label': 'Coming soon!',\n 'open plugin registry label': 'Open plugin registry',\n 'settings label': 'Settings',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAc;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACF9C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACG,eAAAA,GAAkB;QACjB,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6BAA6B;QAC7B,sBAAsB;QACtB,2BAA2B;QAC3B,qBAAqB;QACrB,qBAAqB;QACrB,8BAA8B;QAC9B,kBAAkB;MACpB;IACF;EACF;;;;AFhBK,IAAMC,iBAAiB,MAC5BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOS;IACpBP,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOW;IACpBT,UAAUU;EACZ,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "defineModule", "definePlugin", "Events", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "REGISTRY_PLUGIN", "RegistryPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
3
+ "sources": ["../../../src/index.ts", "../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport * from './meta';\nexport const RegistryPlugin = Plugin.lazy(meta, () => import('#plugin'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { pinnedWorkspaceId } from '@dxos/app-toolkit';\nimport { trim } from '@dxos/util';\n\nexport const REGISTRY_ID = pinnedWorkspaceId('dxos:plugin-registry');\nexport const REGISTRY_KEY = 'plugin-registry';\n\n// TODO(wittjosiah): Should this be a special separator or use the standard path separator?\nconst CATEGORY_SEPARATOR = '>';\n\n/** Build a registry category node ID. */\nexport const registryCategoryId = (category: string): string => `${REGISTRY_KEY}${CATEGORY_SEPARATOR}${category}`;\n\n/** Qualified graph path to a specific plugin node. */\nexport const getPluginPath = (pluginId: string): string => `root/${REGISTRY_ID}/${pluginId}`;\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.registry',\n name: 'Plugins',\n description: trim`\n Plugin management system for discovering, installing, and configuring workspace extensions.\n Browse available plugins and customize your workspace capabilities.\n `,\n icon: 'ph--squares-four--regular',\n tags: ['system'],\n};\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;;;ACCvB,SAASC,yBAAyB;AAClC,SAASC,YAAY;AAEd,IAAMC,cAAcF,kBAAkB,sBAAA;AACtC,IAAMG,eAAe;AAG5B,IAAMC,qBAAqB;AAGpB,IAAMC,qBAAqB,CAACC,aAA6B,GAAGH,YAAAA,GAAeC,kBAAAA,GAAqBE,QAAAA;AAGhG,IAAMC,gBAAgB,CAACC,aAA6B,QAAQN,WAAAA,IAAeM,QAAAA;AAE3E,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaX;;;;EAIbY,MAAM;EACNC,MAAM;IAAC;;AACT;;;ADpBO,IAAMC,iBAAiBC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
6
+ "names": ["Plugin", "pinnedWorkspaceId", "trim", "REGISTRY_ID", "REGISTRY_KEY", "CATEGORY_SEPARATOR", "registryCategoryId", "category", "getPluginPath", "pluginId", "meta", "id", "name", "description", "icon", "tags", "RegistryPlugin", "Plugin", "lazy", "meta"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytes":1906,"imports":[],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytes":21266,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytes":2408,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytes":7723,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytes":13106,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytes":2695,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginItem.tsx","kind":"import-statement","original":"./PluginItem"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytes":9249,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/index.ts":{"bytes":702,"imports":[{"path":"packages/plugins/plugin-registry/src/components/PluginDetail.tsx","kind":"import-statement","original":"./PluginDetail"},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx","kind":"import-statement","original":"./RegistryContainer"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytes":12316,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytes":1315,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-registry/src/translations.ts":{"bytes":2711,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytes":4039,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-registry/src/index.ts":{"bytes":570,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/RegistryPlugin.tsx","kind":"import-statement","original":"./RegistryPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-registry/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3649},"packages/plugins/plugin-registry/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-AQJNBUT3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/react-surface-W5RNDLXV.mjs","kind":"dynamic-import"}],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","RegistryPlugin","meta"],"entryPoint":"packages/plugins/plugin-registry/src/index.ts","inputs":{"packages/plugins/plugin-registry/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytesInOutput":758},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytesInOutput":268},"packages/plugins/plugin-registry/src/translations.ts":{"bytesInOutput":706}},"bytes":2191},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9265},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytesInOutput":4841}},"bytes":5112},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-AQJNBUT3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1265},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-AQJNBUT3.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytesInOutput":461}},"bytes":691},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-W5RNDLXV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":22567},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-W5RNDLXV.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytesInOutput":3131},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytesInOutput":2439},"packages/plugins/plugin-registry/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytesInOutput":661},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytesInOutput":3972},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytesInOutput":2339}},"bytes":13203},"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":869},"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs":{"imports":[],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytesInOutput":188}},"bytes":350}}}
1
+ {"inputs":{"src/meta.ts":{"bytes":3497,"imports":[{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":941,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"#plugin","kind":"dynamic-import","external":true}],"format":"esm"},"src/storage.ts":{"bytes":6158,"imports":[{"path":"@effect/platform/FileSystem","kind":"import-statement","external":true},{"path":"@effect/platform/Path","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"yaml","kind":"import-statement","external":true},{"path":"@dxos/client-protocol","kind":"import-statement","external":true}],"format":"esm"},"src/cli/index.ts":{"bytes":376,"imports":[{"path":"src/storage.ts","kind":"import-statement","original":"../storage"}],"format":"esm"},"src/translations.ts":{"bytes":8643,"imports":[{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2109},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#plugin","kind":"dynamic-import","external":true}],"exports":["REGISTRY_ID","REGISTRY_KEY","RegistryPlugin","getPluginPath","meta","registryCategoryId"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":111},"src/meta.ts":{"bytesInOutput":705}},"bytes":1007},"dist/lib/browser/cli/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3163},"dist/lib/browser/cli/index.mjs":{"imports":[{"path":"@effect/platform/FileSystem","kind":"import-statement","external":true},{"path":"@effect/platform/Path","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"yaml","kind":"import-statement","external":true},{"path":"@dxos/client-protocol","kind":"import-statement","external":true}],"exports":["loadEnabledPlugins","saveEnabledPlugins"],"entryPoint":"src/cli/index.ts","inputs":{"src/storage.ts":{"bytesInOutput":1230},"src/cli/index.ts":{"bytesInOutput":0}},"bytes":1338},"dist/lib/browser/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3913},"dist/lib/browser/translations.mjs":{"imports":[{"path":"#meta","kind":"import-statement","external":true}],"exports":["translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":2852}},"bytes":2944}}}
@@ -0,0 +1,61 @@
1
+ // src/translations.ts
2
+ import { meta } from "#meta";
3
+ var translations = [
4
+ {
5
+ "en-US": {
6
+ [meta.id]: {
7
+ "plugin.name": "Registry",
8
+ "details.label": "Details",
9
+ "home-page.label": "Website",
10
+ "source.label": "Source",
11
+ "plugin-registry.label": "Plugins",
12
+ "plugin-settings.label": "Plugin Settings",
13
+ "official-plugins.label": "Official",
14
+ "installed-plugins.label": "Enabled",
15
+ "recommended-plugins.label": "Recommended",
16
+ "labs-plugins.label": "Labs",
17
+ "registry-plugins.label": "Registry",
18
+ "load-by-url.label": "Load from URL",
19
+ "load-by-url-dialog.title": "Load Plugin from URL",
20
+ "plugin-url.label": "Plugin URL",
21
+ "load-plugin.label": "Load Plugin",
22
+ "loading.label": "Loading...",
23
+ "filter.label": "Filter plugins",
24
+ "filter.placeholder": "Filter\u2026",
25
+ "registry.loading.label": "Loading registry plugins\u2026",
26
+ "registry.error.label": "Failed to load registry plugins: {{message}}",
27
+ "registry.empty.label": "No registry plugins available.",
28
+ "dev-plugin.section.title": "Dev plugin",
29
+ "dev-plugin.description": "Load a plugin from a local Vite dev server (the `composerPlugin` defaults to port 3967). Composer reattaches it on every reload, surviving HMR \u2014 useful when iterating on a community plugin against a live registry version.",
30
+ "dev-plugin.url.label": "Manifest URL",
31
+ "dev-plugin.url.description": "Defaults to the local dev server. Edit if your dev server runs on a different port.",
32
+ "dev-plugin.toggle.label": "Dev plugin",
33
+ "dev-plugin.toggle.description": "Stays on across reloads. If the dev server is offline at boot, a warning is logged and the next reload retries.",
34
+ "dev-plugin.enable.label": "Enable",
35
+ "dev-plugin.disable.label": "Disable",
36
+ "dev-plugin.busy.label": "Loading\u2026",
37
+ "dev-plugin.not-loaded.message": "Dev plugin is enabled but not currently loaded. Check that the dev server is running, then reload.",
38
+ "coming-soon.label": "Coming soon!",
39
+ "open-plugin-registry.label": "Open plugin registry",
40
+ "install.label": "Install",
41
+ "installing.label": "Installing\u2026",
42
+ "uninstall.label": "Uninstall",
43
+ "update.label": "Update",
44
+ "updating.label": "Updating\u2026",
45
+ "versions.label": "Versions",
46
+ "installed.label": "installed",
47
+ "install-version.label": "Install version",
48
+ "failure-badge.label": "Plugin failure details",
49
+ "failure-title.label": "Plugin {{phase}} failed: {{reason}}",
50
+ "failure-phase-load.label": "load",
51
+ "failure-phase-activation.label": "activation",
52
+ "failure-reason-timeout.label": "timed out",
53
+ "failure-reason-error.label": "error"
54
+ }
55
+ }
56
+ }
57
+ ];
58
+ export {
59
+ translations
60
+ };
61
+ //# sourceMappingURL=translations.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin.name': 'Registry',\n 'details.label': 'Details',\n 'home-page.label': 'Website',\n 'source.label': 'Source',\n 'plugin-registry.label': 'Plugins',\n 'plugin-settings.label': 'Plugin Settings',\n 'official-plugins.label': 'Official',\n 'installed-plugins.label': 'Enabled',\n 'recommended-plugins.label': 'Recommended',\n 'labs-plugins.label': 'Labs',\n 'registry-plugins.label': 'Registry',\n 'load-by-url.label': 'Load from URL',\n 'load-by-url-dialog.title': 'Load Plugin from URL',\n 'plugin-url.label': 'Plugin URL',\n 'load-plugin.label': 'Load Plugin',\n 'loading.label': 'Loading...',\n 'filter.label': 'Filter plugins',\n 'filter.placeholder': 'Filter…',\n 'registry.loading.label': 'Loading registry plugins…',\n 'registry.error.label': 'Failed to load registry plugins: {{message}}',\n 'registry.empty.label': 'No registry plugins available.',\n 'dev-plugin.section.title': 'Dev plugin',\n 'dev-plugin.description':\n 'Load a plugin from a local Vite dev server (the `composerPlugin` defaults to port 3967). Composer reattaches it on every reload, surviving HMR — useful when iterating on a community plugin against a live registry version.',\n 'dev-plugin.url.label': 'Manifest URL',\n 'dev-plugin.url.description':\n 'Defaults to the local dev server. Edit if your dev server runs on a different port.',\n 'dev-plugin.toggle.label': 'Dev plugin',\n 'dev-plugin.toggle.description':\n 'Stays on across reloads. If the dev server is offline at boot, a warning is logged and the next reload retries.',\n 'dev-plugin.enable.label': 'Enable',\n 'dev-plugin.disable.label': 'Disable',\n 'dev-plugin.busy.label': 'Loading…',\n 'dev-plugin.not-loaded.message':\n 'Dev plugin is enabled but not currently loaded. Check that the dev server is running, then reload.',\n 'coming-soon.label': 'Coming soon!',\n 'open-plugin-registry.label': 'Open plugin registry',\n 'install.label': 'Install',\n 'installing.label': 'Installing…',\n 'uninstall.label': 'Uninstall',\n 'update.label': 'Update',\n 'updating.label': 'Updating…',\n 'versions.label': 'Versions',\n 'installed.label': 'installed',\n 'install-version.label': 'Install version',\n 'failure-badge.label': 'Plugin failure details',\n 'failure-title.label': 'Plugin {{phase}} failed: {{reason}}',\n 'failure-phase-load.label': 'load',\n 'failure-phase-activation.label': 'activation',\n 'failure-reason-timeout.label': 'timed out',\n 'failure-reason-error.label': 'error',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";AAMA,SAASA,YAAY;AAEd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,KAAKE,EAAE,GAAG;QACT,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,yBAAyB;QACzB,0BAA0B;QAC1B,2BAA2B;QAC3B,6BAA6B;QAC7B,sBAAsB;QACtB,0BAA0B;QAC1B,qBAAqB;QACrB,4BAA4B;QAC5B,oBAAoB;QACpB,qBAAqB;QACrB,iBAAiB;QACjB,gBAAgB;QAChB,sBAAsB;QACtB,0BAA0B;QAC1B,wBAAwB;QACxB,wBAAwB;QACxB,4BAA4B;QAC5B,0BACE;QACF,wBAAwB;QACxB,8BACE;QACF,2BAA2B;QAC3B,iCACE;QACF,2BAA2B;QAC3B,4BAA4B;QAC5B,yBAAyB;QACzB,iCACE;QACF,qBAAqB;QACrB,8BAA8B;QAC9B,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,yBAAyB;QACzB,uBAAuB;QACvB,uBAAuB;QACvB,4BAA4B;QAC5B,kCAAkC;QAClC,gCAAgC;QAChC,8BAA8B;MAChC;IACF;EACF;;",
6
+ "names": ["meta", "translations", "id"]
7
+ }
@@ -0,0 +1,34 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/storage.ts
4
+ import * as FileSystem from "@effect/platform/FileSystem";
5
+ import * as Path from "@effect/platform/Path";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Schema from "effect/Schema";
8
+ import * as Yaml from "yaml";
9
+ import { DX_CONFIG } from "@dxos/client-protocol";
10
+ var PluginsSchema = Schema.Array(Schema.String);
11
+ var getPluginsConfigPath = (profile) => `${DX_CONFIG}/plugins/${profile}.yml`;
12
+ var loadEnabledPlugins = Effect.fn(function* ({ profile }) {
13
+ const fs = yield* FileSystem.FileSystem;
14
+ const pluginsPath = getPluginsConfigPath(profile);
15
+ const content = yield* fs.readFileString(pluginsPath).pipe(Effect.catchTag("SystemError", () => Effect.succeed("[]")));
16
+ const raw = Yaml.parse(content);
17
+ const parsed = yield* Schema.decodeUnknown(PluginsSchema)(raw ?? []).pipe(Effect.catchAll(() => Effect.succeed([])));
18
+ return parsed;
19
+ });
20
+ var saveEnabledPlugins = Effect.fn(function* ({ profile, enabled }) {
21
+ const fs = yield* FileSystem.FileSystem;
22
+ const path = yield* Path.Path;
23
+ const pluginsPath = getPluginsConfigPath(profile);
24
+ yield* fs.makeDirectory(path.dirname(pluginsPath), {
25
+ recursive: true
26
+ });
27
+ const encoded = Yaml.stringify(enabled);
28
+ yield* fs.writeFileString(pluginsPath, encoded);
29
+ });
30
+ export {
31
+ loadEnabledPlugins,
32
+ saveEnabledPlugins
33
+ };
34
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/storage.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\nimport * as Yaml from 'yaml';\n\nimport { DX_CONFIG } from '@dxos/client-protocol';\n\n// TODO(wittjosiah): Factor out to app-framework?\n\nconst PluginsSchema = Schema.Array(Schema.String);\n\n/** CLI-only: path to plugins/<profile>.yml (sibling to profile/). */\nconst getPluginsConfigPath = (profile: string) => `${DX_CONFIG}/plugins/${profile}.yml`;\n\n/**\n * Load enabled plugins from plugins/<profile>.yml (sibling to profile/).\n * Returns the list of enabled plugin IDs, or an empty array if the file doesn't exist.\n */\nexport const loadEnabledPlugins = Effect.fn(function* ({ profile }: { profile: string }) {\n const fs = yield* FileSystem.FileSystem;\n const pluginsPath = getPluginsConfigPath(profile);\n\n const content = yield* fs\n .readFileString(pluginsPath)\n .pipe(Effect.catchTag('SystemError', () => Effect.succeed('[]')));\n\n const raw = Yaml.parse(content);\n const parsed = yield* Schema.decodeUnknown(PluginsSchema)(raw ?? []).pipe(\n Effect.catchAll(() => Effect.succeed([] as string[])),\n );\n\n return parsed;\n});\n\n/**\n * Save enabled plugins to plugins/<profile>.yml.\n */\nexport const saveEnabledPlugins = Effect.fn(function* ({ profile, enabled }: { profile: string; enabled: string[] }) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const pluginsPath = getPluginsConfigPath(profile);\n yield* fs.makeDirectory(path.dirname(pluginsPath), { recursive: true });\n const encoded = Yaml.stringify(enabled);\n yield* fs.writeFileString(pluginsPath, encoded);\n});\n"],
5
+ "mappings": ";;;AAIA,YAAYA,gBAAgB;AAC5B,YAAYC,UAAU;AACtB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AACxB,YAAYC,UAAU;AAEtB,SAASC,iBAAiB;AAI1B,IAAMC,gBAAuBC,aAAaC,aAAM;AAGhD,IAAMC,uBAAuB,CAACC,YAAoB,GAAGL,SAAAA,YAAqBK,OAAAA;AAMnE,IAAMC,qBAA4BC,UAAG,WAAW,EAAEF,QAAO,GAAuB;AACrF,QAAMG,KAAK,OAAkBb;AAC7B,QAAMc,cAAcL,qBAAqBC,OAAAA;AAEzC,QAAMK,UAAU,OAAOF,GACpBG,eAAeF,WAAAA,EACfG,KAAYC,gBAAS,eAAe,MAAaC,eAAQ,IAAA,CAAA,CAAA;AAE5D,QAAMC,MAAWC,WAAMN,OAAAA;AACvB,QAAMO,SAAS,OAAcC,qBAAcjB,aAAAA,EAAec,OAAO,CAAA,CAAE,EAAEH,KAC5DO,gBAAS,MAAaL,eAAQ,CAAA,CAAE,CAAA,CAAA;AAGzC,SAAOG;AACT,CAAA;AAKO,IAAMG,qBAA4Bb,UAAG,WAAW,EAAEF,SAASgB,QAAO,GAA0C;AACjH,QAAMb,KAAK,OAAkBb;AAC7B,QAAM2B,OAAO,OAAY1B;AACzB,QAAMa,cAAcL,qBAAqBC,OAAAA;AACzC,SAAOG,GAAGe,cAAcD,KAAKE,QAAQf,WAAAA,GAAc;IAAEgB,WAAW;EAAK,CAAA;AACrE,QAAMC,UAAeC,eAAUN,OAAAA;AAC/B,SAAOb,GAAGoB,gBAAgBnB,aAAaiB,OAAAA;AACzC,CAAA;",
6
+ "names": ["FileSystem", "Path", "Effect", "Schema", "Yaml", "DX_CONFIG", "PluginsSchema", "Array", "String", "getPluginsConfigPath", "profile", "loadEnabledPlugins", "fn", "fs", "pluginsPath", "content", "readFileString", "pipe", "catchTag", "succeed", "raw", "parse", "parsed", "decodeUnknown", "catchAll", "saveEnabledPlugins", "enabled", "path", "makeDirectory", "dirname", "recursive", "encoded", "stringify", "writeFileString"]
7
+ }
@@ -0,0 +1,37 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/index.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+
6
+ // src/meta.ts
7
+ import { pinnedWorkspaceId } from "@dxos/app-toolkit";
8
+ import { trim } from "@dxos/util";
9
+ var REGISTRY_ID = pinnedWorkspaceId("dxos:plugin-registry");
10
+ var REGISTRY_KEY = "plugin-registry";
11
+ var CATEGORY_SEPARATOR = ">";
12
+ var registryCategoryId = (category) => `${REGISTRY_KEY}${CATEGORY_SEPARATOR}${category}`;
13
+ var getPluginPath = (pluginId) => `root/${REGISTRY_ID}/${pluginId}`;
14
+ var meta = {
15
+ id: "org.dxos.plugin.registry",
16
+ name: "Plugins",
17
+ description: trim`
18
+ Plugin management system for discovering, installing, and configuring workspace extensions.
19
+ Browse available plugins and customize your workspace capabilities.
20
+ `,
21
+ icon: "ph--squares-four--regular",
22
+ tags: [
23
+ "system"
24
+ ]
25
+ };
26
+
27
+ // src/index.ts
28
+ var RegistryPlugin = Plugin.lazy(meta, () => import("#plugin"));
29
+ export {
30
+ REGISTRY_ID,
31
+ REGISTRY_KEY,
32
+ RegistryPlugin,
33
+ getPluginPath,
34
+ meta,
35
+ registryCategoryId
36
+ };
37
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/index.ts", "../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport * from './meta';\nexport const RegistryPlugin = Plugin.lazy(meta, () => import('#plugin'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { pinnedWorkspaceId } from '@dxos/app-toolkit';\nimport { trim } from '@dxos/util';\n\nexport const REGISTRY_ID = pinnedWorkspaceId('dxos:plugin-registry');\nexport const REGISTRY_KEY = 'plugin-registry';\n\n// TODO(wittjosiah): Should this be a special separator or use the standard path separator?\nconst CATEGORY_SEPARATOR = '>';\n\n/** Build a registry category node ID. */\nexport const registryCategoryId = (category: string): string => `${REGISTRY_KEY}${CATEGORY_SEPARATOR}${category}`;\n\n/** Qualified graph path to a specific plugin node. */\nexport const getPluginPath = (pluginId: string): string => `root/${REGISTRY_ID}/${pluginId}`;\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.registry',\n name: 'Plugins',\n description: trim`\n Plugin management system for discovering, installing, and configuring workspace extensions.\n Browse available plugins and customize your workspace capabilities.\n `,\n icon: 'ph--squares-four--regular',\n tags: ['system'],\n};\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;;;ACCvB,SAASC,yBAAyB;AAClC,SAASC,YAAY;AAEd,IAAMC,cAAcF,kBAAkB,sBAAA;AACtC,IAAMG,eAAe;AAG5B,IAAMC,qBAAqB;AAGpB,IAAMC,qBAAqB,CAACC,aAA6B,GAAGH,YAAAA,GAAeC,kBAAAA,GAAqBE,QAAAA;AAGhG,IAAMC,gBAAgB,CAACC,aAA6B,QAAQN,WAAAA,IAAeM,QAAAA;AAE3E,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaX;;;;EAIbY,MAAM;EACNC,MAAM;IAAC;;AACT;;;ADpBO,IAAMC,iBAAiBC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
6
+ "names": ["Plugin", "pinnedWorkspaceId", "trim", "REGISTRY_ID", "REGISTRY_KEY", "CATEGORY_SEPARATOR", "registryCategoryId", "category", "getPluginPath", "pluginId", "meta", "id", "name", "description", "icon", "tags", "RegistryPlugin", "Plugin", "lazy", "meta"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"src/meta.ts":{"bytes":3497,"imports":[{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":941,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"#plugin","kind":"dynamic-import","external":true}],"format":"esm"},"src/storage.ts":{"bytes":6158,"imports":[{"path":"@effect/platform/FileSystem","kind":"import-statement","external":true},{"path":"@effect/platform/Path","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"yaml","kind":"import-statement","external":true},{"path":"@dxos/client-protocol","kind":"import-statement","external":true}],"format":"esm"},"src/cli/index.ts":{"bytes":376,"imports":[{"path":"src/storage.ts","kind":"import-statement","original":"../storage"}],"format":"esm"},"src/translations.ts":{"bytes":8643,"imports":[{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2111},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#plugin","kind":"dynamic-import","external":true}],"exports":["REGISTRY_ID","REGISTRY_KEY","RegistryPlugin","getPluginPath","meta","registryCategoryId"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":111},"src/meta.ts":{"bytesInOutput":705}},"bytes":1100},"dist/lib/node-esm/cli/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3165},"dist/lib/node-esm/cli/index.mjs":{"imports":[{"path":"@effect/platform/FileSystem","kind":"import-statement","external":true},{"path":"@effect/platform/Path","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"yaml","kind":"import-statement","external":true},{"path":"@dxos/client-protocol","kind":"import-statement","external":true}],"exports":["loadEnabledPlugins","saveEnabledPlugins"],"entryPoint":"src/cli/index.ts","inputs":{"src/storage.ts":{"bytesInOutput":1230},"src/cli/index.ts":{"bytesInOutput":0}},"bytes":1431},"dist/lib/node-esm/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3915},"dist/lib/node-esm/translations.mjs":{"imports":[{"path":"#meta","kind":"import-statement","external":true}],"exports":["translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":2852}},"bytes":3037}}}
@@ -0,0 +1,63 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/translations.ts
4
+ import { meta } from "#meta";
5
+ var translations = [
6
+ {
7
+ "en-US": {
8
+ [meta.id]: {
9
+ "plugin.name": "Registry",
10
+ "details.label": "Details",
11
+ "home-page.label": "Website",
12
+ "source.label": "Source",
13
+ "plugin-registry.label": "Plugins",
14
+ "plugin-settings.label": "Plugin Settings",
15
+ "official-plugins.label": "Official",
16
+ "installed-plugins.label": "Enabled",
17
+ "recommended-plugins.label": "Recommended",
18
+ "labs-plugins.label": "Labs",
19
+ "registry-plugins.label": "Registry",
20
+ "load-by-url.label": "Load from URL",
21
+ "load-by-url-dialog.title": "Load Plugin from URL",
22
+ "plugin-url.label": "Plugin URL",
23
+ "load-plugin.label": "Load Plugin",
24
+ "loading.label": "Loading...",
25
+ "filter.label": "Filter plugins",
26
+ "filter.placeholder": "Filter\u2026",
27
+ "registry.loading.label": "Loading registry plugins\u2026",
28
+ "registry.error.label": "Failed to load registry plugins: {{message}}",
29
+ "registry.empty.label": "No registry plugins available.",
30
+ "dev-plugin.section.title": "Dev plugin",
31
+ "dev-plugin.description": "Load a plugin from a local Vite dev server (the `composerPlugin` defaults to port 3967). Composer reattaches it on every reload, surviving HMR \u2014 useful when iterating on a community plugin against a live registry version.",
32
+ "dev-plugin.url.label": "Manifest URL",
33
+ "dev-plugin.url.description": "Defaults to the local dev server. Edit if your dev server runs on a different port.",
34
+ "dev-plugin.toggle.label": "Dev plugin",
35
+ "dev-plugin.toggle.description": "Stays on across reloads. If the dev server is offline at boot, a warning is logged and the next reload retries.",
36
+ "dev-plugin.enable.label": "Enable",
37
+ "dev-plugin.disable.label": "Disable",
38
+ "dev-plugin.busy.label": "Loading\u2026",
39
+ "dev-plugin.not-loaded.message": "Dev plugin is enabled but not currently loaded. Check that the dev server is running, then reload.",
40
+ "coming-soon.label": "Coming soon!",
41
+ "open-plugin-registry.label": "Open plugin registry",
42
+ "install.label": "Install",
43
+ "installing.label": "Installing\u2026",
44
+ "uninstall.label": "Uninstall",
45
+ "update.label": "Update",
46
+ "updating.label": "Updating\u2026",
47
+ "versions.label": "Versions",
48
+ "installed.label": "installed",
49
+ "install-version.label": "Install version",
50
+ "failure-badge.label": "Plugin failure details",
51
+ "failure-title.label": "Plugin {{phase}} failed: {{reason}}",
52
+ "failure-phase-load.label": "load",
53
+ "failure-phase-activation.label": "activation",
54
+ "failure-reason-timeout.label": "timed out",
55
+ "failure-reason-error.label": "error"
56
+ }
57
+ }
58
+ }
59
+ ];
60
+ export {
61
+ translations
62
+ };
63
+ //# sourceMappingURL=translations.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin.name': 'Registry',\n 'details.label': 'Details',\n 'home-page.label': 'Website',\n 'source.label': 'Source',\n 'plugin-registry.label': 'Plugins',\n 'plugin-settings.label': 'Plugin Settings',\n 'official-plugins.label': 'Official',\n 'installed-plugins.label': 'Enabled',\n 'recommended-plugins.label': 'Recommended',\n 'labs-plugins.label': 'Labs',\n 'registry-plugins.label': 'Registry',\n 'load-by-url.label': 'Load from URL',\n 'load-by-url-dialog.title': 'Load Plugin from URL',\n 'plugin-url.label': 'Plugin URL',\n 'load-plugin.label': 'Load Plugin',\n 'loading.label': 'Loading...',\n 'filter.label': 'Filter plugins',\n 'filter.placeholder': 'Filter…',\n 'registry.loading.label': 'Loading registry plugins…',\n 'registry.error.label': 'Failed to load registry plugins: {{message}}',\n 'registry.empty.label': 'No registry plugins available.',\n 'dev-plugin.section.title': 'Dev plugin',\n 'dev-plugin.description':\n 'Load a plugin from a local Vite dev server (the `composerPlugin` defaults to port 3967). Composer reattaches it on every reload, surviving HMR — useful when iterating on a community plugin against a live registry version.',\n 'dev-plugin.url.label': 'Manifest URL',\n 'dev-plugin.url.description':\n 'Defaults to the local dev server. Edit if your dev server runs on a different port.',\n 'dev-plugin.toggle.label': 'Dev plugin',\n 'dev-plugin.toggle.description':\n 'Stays on across reloads. If the dev server is offline at boot, a warning is logged and the next reload retries.',\n 'dev-plugin.enable.label': 'Enable',\n 'dev-plugin.disable.label': 'Disable',\n 'dev-plugin.busy.label': 'Loading…',\n 'dev-plugin.not-loaded.message':\n 'Dev plugin is enabled but not currently loaded. Check that the dev server is running, then reload.',\n 'coming-soon.label': 'Coming soon!',\n 'open-plugin-registry.label': 'Open plugin registry',\n 'install.label': 'Install',\n 'installing.label': 'Installing…',\n 'uninstall.label': 'Uninstall',\n 'update.label': 'Update',\n 'updating.label': 'Updating…',\n 'versions.label': 'Versions',\n 'installed.label': 'installed',\n 'install-version.label': 'Install version',\n 'failure-badge.label': 'Plugin failure details',\n 'failure-title.label': 'Plugin {{phase}} failed: {{reason}}',\n 'failure-phase-load.label': 'load',\n 'failure-phase-activation.label': 'activation',\n 'failure-reason-timeout.label': 'timed out',\n 'failure-reason-error.label': 'error',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;AAMA,SAASA,YAAY;AAEd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,KAAKE,EAAE,GAAG;QACT,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,yBAAyB;QACzB,0BAA0B;QAC1B,2BAA2B;QAC3B,6BAA6B;QAC7B,sBAAsB;QACtB,0BAA0B;QAC1B,qBAAqB;QACrB,4BAA4B;QAC5B,oBAAoB;QACpB,qBAAqB;QACrB,iBAAiB;QACjB,gBAAgB;QAChB,sBAAsB;QACtB,0BAA0B;QAC1B,wBAAwB;QACxB,wBAAwB;QACxB,4BAA4B;QAC5B,0BACE;QACF,wBAAwB;QACxB,8BACE;QACF,2BAA2B;QAC3B,iCACE;QACF,2BAA2B;QAC3B,4BAA4B;QAC5B,yBAAyB;QACzB,iCACE;QACF,qBAAqB;QACrB,8BAA8B;QAC9B,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,yBAAyB;QACzB,uBAAuB;QACvB,uBAAuB;QACvB,4BAA4B;QAC5B,kCAAkC;QAClC,gCAAgC;QAChC,8BAA8B;MAChC;IACF;EACF;;",
6
+ "names": ["meta", "translations", "id"]
7
+ }
@@ -1,2 +1,4 @@
1
- export declare const RegistryPlugin: () => import("@dxos/app-framework").Plugin;
1
+ import { Plugin } from '@dxos/app-framework';
2
+ export declare const RegistryPlugin: Plugin.PluginFactory<void>;
3
+ export default RegistryPlugin;
2
4
  //# sourceMappingURL=RegistryPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegistryPlugin.d.ts","sourceRoot":"","sources":["../../../src/RegistryPlugin.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,4CAsBvB,CAAC"}
1
+ {"version":3,"file":"RegistryPlugin.d.ts","sourceRoot":"","sources":["../../../src/RegistryPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAoB,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO/D,eAAO,MAAM,cAAc,4BAY1B,CAAC;eAEa,cAAc"}
@@ -0,0 +1,4 @@
1
+ import { Plugin } from '@dxos/app-framework';
2
+ export declare const RegistryPlugin: Plugin.PluginFactory<void>;
3
+ export default RegistryPlugin;
4
+ //# sourceMappingURL=RegistryPlugin.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryPlugin.node.d.ts","sourceRoot":"","sources":["../../../src/RegistryPlugin.node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO7C,eAAO,MAAM,cAAc,4BAK1B,CAAC;eAEa,cAAc"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RegistryPlugin.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryPlugin.test.d.ts","sourceRoot":"","sources":["../../../src/RegistryPlugin.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,6 @@
1
- import { type PluginContext } from '@dxos/app-framework';
2
- declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<import("@dxos/app-graph").BuilderExtensions>;
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability } from '@dxos/app-framework';
3
+ import { GraphBuilder } from '@dxos/plugin-graph';
4
+ declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<GraphBuilder.BuilderExtensions>>, never, Capability.Service>;
3
5
  export default _default;
4
6
  //# sourceMappingURL=app-graph-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBAKlG,SAAS,aAAa;AAAtC,wBA8IK"}
1
+ {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAyB,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability } from '@dxos/app-framework';
3
+ /**
4
+ * Startup module that auto-loads a locally-served dev plugin when the user has
5
+ * the toggle enabled in registry settings. Failures (dev server offline, 404,
6
+ * timeout) are logged and swallowed so a stale dev URL never blocks app boot —
7
+ * the toggle stays on, the next reload retries.
8
+ */
9
+ declare const _default: (props: void) => Effect.Effect<[], Error, Capability.Service>;
10
+ export default _default;
11
+ //# sourceMappingURL=dev-plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-plugin-loader.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/dev-plugin-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAK/D;;;;;GAKG"}
@@ -1,4 +1,16 @@
1
- export declare const AppGraphBuilder: (props?: import("@dxos/app-framework").PluginContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-graph").BuilderExtensions> | import("@dxos/app-framework").AnyCapability[]>>;
2
- export declare const IntentResolver: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
3
- export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
1
+ import { Capability } from '@dxos/app-framework';
2
+ import { OperationHandlerSet } from '@dxos/compute';
3
+ export declare const AppGraphBuilder: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-graph").BuilderExtensions>>, Error>;
4
+ export declare const DevPluginLoader: Capability.LazyCapability<void, [], Error>;
5
+ export declare const OperationHandler: Capability.LazyCapability<OperationHandlerSet.OperationHandlerSet, Capability.ModuleReturn, Error>;
6
+ export declare const ReactSurface: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Capabilities").ReactSurface>>, Error>;
7
+ export declare const RegistrySettings: Capability.LazyCapability<void, [Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Writable<{
8
+ experimental?: boolean | undefined;
9
+ devPluginUrl?: string | undefined;
10
+ devPluginEnabled?: boolean | undefined;
11
+ }, {
12
+ experimental?: boolean | undefined;
13
+ devPluginUrl?: string | undefined;
14
+ devPluginEnabled?: boolean | undefined;
15
+ }>>>, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-toolkit").AppCapabilities.Settings>>], Error>;
4
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,oOAA4C,CAAC;AACzE,eAAO,MAAM,cAAc,kMAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,eAAe,qIAA0E,CAAC;AACvG,eAAO,MAAM,eAAe,4CAA0E,CAAC;AACvG,eAAO,MAAM,gBAAgB,oGAG5B,CAAC;AACF,eAAO,MAAM,YAAY,iJAAmE,CAAC;AAC7F,eAAO,MAAM,gBAAgB;;;;;;;;mHAAkE,CAAC"}