@dxos/plugin-markdown 0.8.3 → 0.8.4-main.5acf9ea

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 (219) hide show
  1. package/dist/lib/browser/{MarkdownContainer-EFWQ6DHD.mjs → MarkdownContainer-NNBPE6A5.mjs} +37 -28
  2. package/dist/lib/browser/MarkdownContainer-NNBPE6A5.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownPreview-F4PYFW5L.mjs → MarkdownPreview-7VG3K24R.mjs} +13 -13
  4. package/dist/lib/browser/MarkdownPreview-7VG3K24R.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-BMAN2ABT.mjs → anchor-sort-Z7JQA7RL.mjs} +6 -6
  6. package/dist/lib/browser/anchor-sort-Z7JQA7RL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-EI6TEHRQ.mjs → app-graph-serializer-ZT5OVF5G.mjs} +13 -13
  8. package/dist/lib/browser/app-graph-serializer-ZT5OVF5G.mjs.map +7 -0
  9. package/dist/lib/browser/{artifact-definition-FQ2R6KPT.mjs → artifact-definition-7VNP5PCP.mjs} +15 -15
  10. package/dist/lib/browser/artifact-definition-7VNP5PCP.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-CD4E4K7J.mjs +16 -0
  12. package/dist/lib/browser/chunk-CD4E4K7J.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-D767LUGU.mjs → chunk-K7ZFMSC4.mjs} +13 -12
  14. package/dist/lib/browser/chunk-K7ZFMSC4.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-VCUKIILA.mjs +20 -0
  16. package/dist/lib/browser/{chunk-LXSRQPEP.mjs → chunk-VMX5SDGW.mjs} +9 -10
  17. package/dist/lib/browser/chunk-VMX5SDGW.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-YHMGUSO7.mjs +80 -0
  19. package/dist/lib/browser/chunk-YHMGUSO7.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-ZGY3DYC2.mjs +30 -0
  21. package/dist/lib/browser/chunk-ZGY3DYC2.mjs.map +7 -0
  22. package/dist/lib/browser/index.mjs +21 -19
  23. package/dist/lib/browser/index.mjs.map +3 -3
  24. package/dist/lib/browser/{intent-resolver-6ZOABX2J.mjs → intent-resolver-EBEF7WEI.mjs} +15 -19
  25. package/dist/lib/browser/intent-resolver-EBEF7WEI.mjs.map +7 -0
  26. package/dist/lib/browser/meta.json +1 -1
  27. package/dist/lib/browser/{react-surface-4B5ELMEW.mjs → react-surface-ZPMZT4VU.mjs} +31 -28
  28. package/dist/lib/browser/react-surface-ZPMZT4VU.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-PLH54VC7.mjs → settings-MBDK4TWE.mjs} +6 -6
  30. package/dist/lib/browser/settings-MBDK4TWE.mjs.map +7 -0
  31. package/dist/lib/browser/{state-KI6PJ6DT.mjs → state-ZA6PZPUI.mjs} +8 -8
  32. package/dist/lib/browser/state-ZA6PZPUI.mjs.map +7 -0
  33. package/dist/lib/browser/types/index.mjs +6 -14
  34. package/dist/lib/node-esm/{MarkdownContainer-O3SGMH4G.mjs → MarkdownContainer-Q6UO7DKT.mjs} +37 -28
  35. package/dist/lib/node-esm/MarkdownContainer-Q6UO7DKT.mjs.map +7 -0
  36. package/dist/lib/node-esm/{MarkdownPreview-KFDRV4GC.mjs → MarkdownPreview-UVWR2YK3.mjs} +13 -13
  37. package/dist/lib/node-esm/MarkdownPreview-UVWR2YK3.mjs.map +7 -0
  38. package/dist/lib/node-esm/{anchor-sort-BXL7BE67.mjs → anchor-sort-R6AAKYNG.mjs} +6 -6
  39. package/dist/lib/node-esm/anchor-sort-R6AAKYNG.mjs.map +7 -0
  40. package/dist/lib/node-esm/{app-graph-serializer-F7DGNF3G.mjs → app-graph-serializer-X4M5QEI6.mjs} +13 -13
  41. package/dist/lib/node-esm/app-graph-serializer-X4M5QEI6.mjs.map +7 -0
  42. package/dist/lib/node-esm/{artifact-definition-NQOHB6S5.mjs → artifact-definition-IRIILD7S.mjs} +15 -15
  43. package/dist/lib/node-esm/artifact-definition-IRIILD7S.mjs.map +7 -0
  44. package/dist/lib/node-esm/chunk-6GCOJS4Y.mjs +81 -0
  45. package/dist/lib/node-esm/chunk-6GCOJS4Y.mjs.map +7 -0
  46. package/dist/lib/node-esm/chunk-A7LLVI34.mjs +22 -0
  47. package/dist/lib/node-esm/chunk-B3J2M4YL.mjs +17 -0
  48. package/dist/lib/node-esm/chunk-B3J2M4YL.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-K26TX5V4.mjs → chunk-LZK3TLKM.mjs} +9 -10
  50. package/dist/lib/node-esm/chunk-LZK3TLKM.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-RCIXKCVG.mjs +31 -0
  52. package/dist/lib/node-esm/chunk-RCIXKCVG.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-BWDDFDJY.mjs → chunk-YGNVDYMB.mjs} +13 -12
  54. package/dist/lib/node-esm/chunk-YGNVDYMB.mjs.map +7 -0
  55. package/dist/lib/node-esm/index.mjs +21 -19
  56. package/dist/lib/node-esm/index.mjs.map +3 -3
  57. package/dist/lib/node-esm/{intent-resolver-CLMSVF2K.mjs → intent-resolver-L2UGZ72W.mjs} +15 -19
  58. package/dist/lib/node-esm/intent-resolver-L2UGZ72W.mjs.map +7 -0
  59. package/dist/lib/node-esm/meta.json +1 -1
  60. package/dist/lib/node-esm/{react-surface-YHFOQTVO.mjs → react-surface-3JJSTTQP.mjs} +31 -28
  61. package/dist/lib/node-esm/react-surface-3JJSTTQP.mjs.map +7 -0
  62. package/dist/lib/node-esm/{settings-SIY33P3F.mjs → settings-LBDWWPZJ.mjs} +6 -6
  63. package/dist/lib/node-esm/settings-LBDWWPZJ.mjs.map +7 -0
  64. package/dist/lib/node-esm/{state-LLGVRYKL.mjs → state-UIHO2SFZ.mjs} +8 -8
  65. package/dist/lib/node-esm/state-UIHO2SFZ.mjs.map +7 -0
  66. package/dist/lib/node-esm/types/index.mjs +6 -14
  67. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  69. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/index.d.ts +1 -1
  71. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  75. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  76. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  77. package/dist/types/src/components/MarkdownContainer.stories.d.ts +1 -1
  78. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  79. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +1 -1
  80. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  81. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +1 -1
  82. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +2 -2
  84. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -1
  85. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +5 -12
  86. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  88. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  89. package/dist/types/src/components/Suggestions.stories.d.ts +3 -3
  90. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/Toolbar.stories.d.ts +1 -1
  92. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/index.d.ts +1 -1
  94. package/dist/types/src/components/index.d.ts.map +1 -1
  95. package/dist/types/src/events.d.ts.map +1 -1
  96. package/dist/types/src/extensions.d.ts +4 -4
  97. package/dist/types/src/extensions.d.ts.map +1 -1
  98. package/dist/types/src/index.d.ts.map +1 -1
  99. package/dist/types/src/meta.d.ts +1 -1
  100. package/dist/types/src/meta.d.ts.map +1 -1
  101. package/dist/types/src/translations.d.ts +35 -80
  102. package/dist/types/src/translations.d.ts.map +1 -1
  103. package/dist/types/src/types/Markdown.d.ts +43 -0
  104. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  105. package/dist/types/src/types/MarkdownAction.d.ts +42 -0
  106. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  107. package/dist/types/src/types/index.d.ts +2 -1
  108. package/dist/types/src/types/index.d.ts.map +1 -1
  109. package/dist/types/src/types/types.d.ts +4 -59
  110. package/dist/types/src/types/types.d.ts.map +1 -1
  111. package/dist/types/src/util.d.ts +12 -3
  112. package/dist/types/src/util.d.ts.map +1 -1
  113. package/dist/types/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +47 -47
  115. package/src/MarkdownPlugin.tsx +7 -7
  116. package/src/capabilities/anchor-sort.ts +3 -3
  117. package/src/capabilities/app-graph-serializer.ts +8 -6
  118. package/src/capabilities/artifact-definition.ts +8 -8
  119. package/src/capabilities/capabilities.ts +4 -3
  120. package/src/capabilities/intent-resolver.ts +5 -11
  121. package/src/capabilities/react-surface.tsx +18 -17
  122. package/src/capabilities/settings.ts +3 -3
  123. package/src/capabilities/state.ts +6 -7
  124. package/src/components/MarkdownContainer.stories.tsx +7 -10
  125. package/src/components/MarkdownContainer.tsx +26 -13
  126. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +2 -2
  127. package/src/components/MarkdownEditor/MarkdownEditor.tsx +3 -3
  128. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +35 -32
  129. package/src/components/MarkdownPreview/MarkdownPreview.tsx +18 -16
  130. package/src/components/MarkdownSettings/MarkdownSettings.tsx +4 -4
  131. package/src/components/Suggestions.stories.tsx +22 -17
  132. package/src/components/Toolbar.stories.tsx +2 -3
  133. package/src/events.ts +2 -2
  134. package/src/extensions.tsx +22 -18
  135. package/src/hooks/useSelectCurrentThread.tsx +2 -2
  136. package/src/index.ts +1 -0
  137. package/src/meta.ts +10 -8
  138. package/src/translations.ts +9 -7
  139. package/src/types/Markdown.ts +55 -0
  140. package/src/types/MarkdownAction.ts +30 -0
  141. package/src/types/index.ts +2 -1
  142. package/src/types/types.ts +6 -51
  143. package/src/util.tsx +20 -6
  144. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  145. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +0 -7
  146. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +0 -7
  147. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  148. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  150. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  151. package/dist/lib/browser/chunk-JX6XNEHE.mjs +0 -22
  152. package/dist/lib/browser/chunk-JX6XNEHE.mjs.map +0 -7
  153. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +0 -7
  154. package/dist/lib/browser/chunk-N2D26K6W.mjs +0 -79
  155. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-QVJETNGS.mjs +0 -16
  157. package/dist/lib/browser/chunk-QVJETNGS.mjs.map +0 -7
  158. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +0 -7
  159. package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +0 -7
  160. package/dist/lib/browser/settings-PLH54VC7.mjs.map +0 -7
  161. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +0 -7
  162. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  163. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  164. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  165. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  166. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  167. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  168. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  169. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  170. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  171. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  172. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  173. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  174. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  175. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  176. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  177. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  178. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  179. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  180. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  181. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  182. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  183. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  184. package/dist/lib/node/index.cjs +0 -165
  185. package/dist/lib/node/index.cjs.map +0 -7
  186. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  187. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  188. package/dist/lib/node/meta.json +0 -1
  189. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  190. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  191. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  192. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  193. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  194. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  195. package/dist/lib/node/types/index.cjs +0 -40
  196. package/dist/lib/node/types/index.cjs.map +0 -7
  197. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  198. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +0 -7
  199. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +0 -7
  200. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  201. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs +0 -17
  204. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-RX63ZNML.mjs +0 -24
  207. package/dist/lib/node-esm/chunk-RX63ZNML.mjs.map +0 -7
  208. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs +0 -80
  209. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  211. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +0 -7
  212. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +0 -7
  213. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +0 -7
  214. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +0 -7
  215. package/dist/types/src/types/schema.d.ts +0 -35
  216. package/dist/types/src/types/schema.d.ts.map +0 -1
  217. package/src/types/schema.ts +0 -39
  218. /package/dist/lib/browser/{chunk-354IBM5X.mjs.map → chunk-VCUKIILA.mjs.map} +0 -0
  219. /package/dist/lib/node-esm/{chunk-YOABAQ7A.mjs.map → chunk-A7LLVI34.mjs.map} +0 -0
@@ -1,23 +1,23 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- DocumentType,
4
- MarkdownAction
5
- } from "./chunk-T2Y2BT53.mjs";
3
+ MarkdownAction_exports,
4
+ Markdown_exports
5
+ } from "./chunk-6GCOJS4Y.mjs";
6
6
  import {
7
7
  meta
8
- } from "./chunk-RX63ZNML.mjs";
8
+ } from "./chunk-RCIXKCVG.mjs";
9
9
 
10
- // packages/plugins/plugin-markdown/src/capabilities/artifact-definition.ts
10
+ // src/capabilities/artifact-definition.ts
11
11
  import { pipe, Schema } from "effect";
12
12
  import { createTool, ToolResult } from "@dxos/ai";
13
13
  import { Capabilities, chain, contributes, createIntent } from "@dxos/app-framework";
14
- import { ArtifactId, defineArtifact } from "@dxos/artifact";
15
- import { createArtifactElement } from "@dxos/assistant";
14
+ import { createArtifactElement, ArtifactId } from "@dxos/assistant";
15
+ import { defineArtifact } from "@dxos/blueprints";
16
16
  import { Obj } from "@dxos/echo";
17
17
  import { invariant, assertArgument } from "@dxos/invariant";
18
18
  import { SpaceAction } from "@dxos/plugin-space/types";
19
19
  import { Filter, fullyQualifiedId } from "@dxos/react-client/echo";
20
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/capabilities/artifact-definition.ts";
20
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/capabilities/artifact-definition.ts";
21
21
  var artifact_definition_default = () => {
22
22
  const definition = defineArtifact({
23
23
  id: `artifact:${meta.id}`,
@@ -27,7 +27,7 @@ var artifact_definition_default = () => {
27
27
  - Use these tools to interact with documents, including listing available documents and retrieving their content.
28
28
  - Documents are stored in Markdown format.
29
29
  `,
30
- schema: DocumentType,
30
+ schema: Markdown_exports.Document,
31
31
  tools: [
32
32
  createTool(meta.id, {
33
33
  name: "create",
@@ -60,7 +60,7 @@ var artifact_definition_default = () => {
60
60
  "'No intent dispatcher'"
61
61
  ]
62
62
  });
63
- const intent = pipe(createIntent(MarkdownAction.Create, {
63
+ const intent = pipe(createIntent(MarkdownAction_exports.Create, {
64
64
  spaceId: extensions.space.id,
65
65
  name,
66
66
  content
@@ -90,14 +90,14 @@ var artifact_definition_default = () => {
90
90
  ]
91
91
  });
92
92
  const space = extensions.space;
93
- const { objects: documents } = await space.db.query(Filter.type(DocumentType)).run();
93
+ const { objects: documents } = await space.db.query(Filter.type(Markdown_exports.Document)).run();
94
94
  const documentInfo = documents.map((doc) => {
95
- invariant(Obj.instanceOf(DocumentType, doc), void 0, {
95
+ invariant(Obj.instanceOf(Markdown_exports.Document, doc), void 0, {
96
96
  F: __dxlog_file,
97
97
  L: 81,
98
98
  S: void 0,
99
99
  A: [
100
- "Obj.instanceOf(DocumentType, doc)",
100
+ "Obj.instanceOf(Markdown.Document, doc)",
101
101
  ""
102
102
  ]
103
103
  });
@@ -127,7 +127,7 @@ var artifact_definition_default = () => {
127
127
  ]
128
128
  });
129
129
  const document = await extensions.space.db.query(Filter.ids(ArtifactId.toDXN(id).toString())).first();
130
- assertArgument(Obj.instanceOf(DocumentType, document), "Invalid type");
130
+ assertArgument(Obj.instanceOf(Markdown_exports.Document, document), "Invalid type");
131
131
  const { content } = await document.content?.load();
132
132
  return ToolResult.Success({
133
133
  id: fullyQualifiedId(document),
@@ -143,4 +143,4 @@ var artifact_definition_default = () => {
143
143
  export {
144
144
  artifact_definition_default as default
145
145
  };
146
- //# sourceMappingURL=artifact-definition-NQOHB6S5.mjs.map
146
+ //# sourceMappingURL=artifact-definition-IRIILD7S.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/artifact-definition.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe, Schema } from 'effect';\n\nimport { createTool, ToolResult } from '@dxos/ai';\nimport { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { createArtifactElement, ArtifactId } from '@dxos/assistant';\nimport { defineArtifact } from '@dxos/blueprints';\nimport { Obj } from '@dxos/echo';\nimport { invariant, assertArgument } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, fullyQualifiedId, type Space } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\nimport { Markdown, MarkdownAction } from '../types';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nexport default () => {\n const definition = defineArtifact({\n id: `artifact:${meta.id}`, // TODO(burdon): meta.id/artifact?\n name: meta.name,\n instructions: `\n - The markdown plugin allows you to work with text documents in the current space.\n - Use these tools to interact with documents, including listing available documents and retrieving their content.\n - Documents are stored in Markdown format.\n `,\n schema: Markdown.Document,\n tools: [\n createTool(meta.id, {\n name: 'create',\n description: 'Create a new markdown document',\n caption: 'Creating document...',\n schema: Schema.Struct({\n name: Schema.optional(Schema.String).annotations({\n description: 'Optional name for the document.',\n }),\n content: Schema.String.annotations({\n description: 'The content of the document.',\n }),\n }),\n execute: async ({ name, content }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n\n const intent = pipe(\n createIntent(MarkdownAction.Create, {\n spaceId: extensions.space.id,\n name,\n content,\n }),\n chain(SpaceAction.AddObject, { target: extensions.space }),\n );\n\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create document');\n }\n\n return ToolResult.Success(createArtifactElement(data.id));\n },\n }),\n createTool(meta.id, {\n name: 'list',\n description: 'List all markdown documents in the current space.',\n caption: 'Listing markdown documents...',\n schema: Schema.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const space = extensions.space;\n const { objects: documents } = await space.db.query(Filter.type(Markdown.Document)).run();\n const documentInfo = documents.map((doc) => {\n invariant(Obj.instanceOf(Markdown.Document, doc));\n return {\n id: fullyQualifiedId(doc),\n name: doc.name || doc.fallbackName || 'Unnamed Document',\n // TODO(ZaymonFC): Include updatedAt?\n };\n });\n\n return ToolResult.Success(documentInfo);\n },\n }),\n createTool(meta.id, {\n name: 'inspect',\n description: 'Read the content of a markdown document.',\n caption: 'Inspecting markdown document...',\n schema: Schema.Struct({\n id: ArtifactId,\n }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const document = await extensions.space.db.query(Filter.ids(ArtifactId.toDXN(id).toString())).first();\n assertArgument(Obj.instanceOf(Markdown.Document, document), 'Invalid type');\n\n const { content } = await document.content?.load();\n return ToolResult.Success({\n id: fullyQualifiedId(document),\n name: document.name || document.fallbackName || 'Unnamed Document',\n content,\n });\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["pipe", "Schema", "createTool", "ToolResult", "Capabilities", "chain", "contributes", "createIntent", "createArtifactElement", "ArtifactId", "defineArtifact", "Obj", "invariant", "assertArgument", "SpaceAction", "Filter", "fullyQualifiedId", "definition", "defineArtifact", "id", "meta", "name", "instructions", "schema", "Markdown", "Document", "tools", "createTool", "description", "caption", "Schema", "Struct", "optional", "String", "annotations", "content", "execute", "extensions", "invariant", "space", "dispatch", "intent", "pipe", "createIntent", "MarkdownAction", "Create", "spaceId", "chain", "SpaceAction", "AddObject", "target", "data", "error", "ToolResult", "Error", "message", "Success", "createArtifactElement", "_input", "objects", "documents", "db", "query", "Filter", "type", "run", "documentInfo", "map", "doc", "Obj", "instanceOf", "fullyQualifiedId", "fallbackName", "ArtifactId", "document", "ids", "toDXN", "toString", "first", "assertArgument", "load", "contributes", "Capabilities", "ArtifactDefinition"]
7
+ }
@@ -0,0 +1,81 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ __export,
4
+ not_meta
5
+ } from "./chunk-RCIXKCVG.mjs";
6
+
7
+ // src/types/MarkdownAction.ts
8
+ var MarkdownAction_exports = {};
9
+ __export(MarkdownAction_exports, {
10
+ Create: () => Create,
11
+ SetViewMode: () => SetViewMode
12
+ });
13
+ import { Schema as Schema2 } from "effect";
14
+ import { Type as Type2 } from "@dxos/echo";
15
+ import { EditorViewMode as EditorViewMode2 } from "@dxos/react-ui-editor/types";
16
+
17
+ // src/types/Markdown.ts
18
+ var Markdown_exports = {};
19
+ __export(Markdown_exports, {
20
+ Document: () => Document,
21
+ Settings: () => Settings,
22
+ makeDocument: () => makeDocument
23
+ });
24
+ import { Schema } from "effect";
25
+ import { Obj, Ref, Type } from "@dxos/echo";
26
+ import { LabelAnnotation } from "@dxos/echo-schema";
27
+ import { EditorInputMode, EditorViewMode } from "@dxos/react-ui-editor/types";
28
+ import { DataType } from "@dxos/schema";
29
+ var Document = Schema.Struct({
30
+ name: Schema.optional(Schema.String),
31
+ fallbackName: Schema.optional(Schema.String),
32
+ content: Type.Ref(DataType.Text)
33
+ }).pipe(Type.Obj({
34
+ typename: "dxos.org/type/Document",
35
+ version: "0.1.0"
36
+ }), LabelAnnotation.set([
37
+ "name",
38
+ "fallbackName"
39
+ ]));
40
+ var makeDocument = ({ content = "", ...props } = {}) => Obj.make(Document, {
41
+ ...props,
42
+ content: Ref.make(DataType.makeText(content))
43
+ });
44
+ var Settings = Schema.mutable(Schema.Struct({
45
+ defaultViewMode: EditorViewMode,
46
+ editorInputMode: Schema.optional(EditorInputMode),
47
+ experimental: Schema.optional(Schema.Boolean),
48
+ debug: Schema.optional(Schema.Boolean),
49
+ toolbar: Schema.optional(Schema.Boolean),
50
+ typewriter: Schema.optional(Schema.String),
51
+ // TODO(burdon): Per document settings.
52
+ numberedHeadings: Schema.optional(Schema.Boolean),
53
+ folding: Schema.optional(Schema.Boolean)
54
+ }));
55
+
56
+ // src/types/MarkdownAction.ts
57
+ var Create = class extends Schema2.TaggedClass()(`${not_meta.id}/action/create`, {
58
+ input: Schema2.Struct({
59
+ spaceId: Type2.SpaceId,
60
+ name: Schema2.optional(Schema2.String),
61
+ content: Schema2.optional(Schema2.String)
62
+ }),
63
+ output: Schema2.Struct({
64
+ object: Document
65
+ })
66
+ }) {
67
+ };
68
+ var SetViewMode = class extends Schema2.TaggedClass()(`${not_meta.id}/action/set-view-mode`, {
69
+ input: Schema2.Struct({
70
+ id: Schema2.String,
71
+ viewMode: EditorViewMode2
72
+ }),
73
+ output: Schema2.Void
74
+ }) {
75
+ };
76
+
77
+ export {
78
+ Markdown_exports,
79
+ MarkdownAction_exports
80
+ };
81
+ //# sourceMappingURL=chunk-6GCOJS4Y.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/MarkdownAction.ts", "../../../src/types/Markdown.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\nimport { EditorViewMode } from '@dxos/react-ui-editor/types';\n\nimport { Document } from './Markdown';\nimport { not_meta } from '../meta';\n\nexport class Create extends Schema.TaggedClass<Create>()(`${not_meta.id}/action/create`, {\n input: Schema.Struct({\n spaceId: Type.SpaceId,\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Document,\n }),\n}) {}\n\nexport class SetViewMode extends Schema.TaggedClass<SetViewMode>()(`${not_meta.id}/action/set-view-mode`, {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo-schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor/types';\nimport { DataType } from '@dxos/schema';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n fallbackName: Schema.optional(Schema.String),\n content: Type.Ref(DataType.Text),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const makeDocument = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>\n Obj.make(Document, { ...props, content: Ref.make(DataType.makeText(content)) });\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n"],
5
+ "mappings": ";;;;;;;AAAA;;;;;AAIA,SAASA,UAAAA,eAAc;AAEvB,SAASC,QAAAA,aAAY;AACrB,SAASC,kBAAAA,uBAAsB;;;ACP/B;;;;;;AAIA,SAASC,cAAc;AAEvB,SAASC,KAAKC,KAAKC,YAAY;AAC/B,SAASC,uBAAuB;AAChC,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,gBAAgB;AAKlB,IAAMC,WAAWC,OAAOC,OAAO;EACpCC,MAAMF,OAAOG,SAASH,OAAOI,MAAM;EACnCC,cAAcL,OAAOG,SAASH,OAAOI,MAAM;EAC3CE,SAASC,KAAKC,IAAIC,SAASC,IAAI;AACjC,CAAA,EAAGC,KACDJ,KAAKK,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBC,IAAI;EAAC;EAAQ;CAAe,CAAA;AAQvC,IAAMC,eAAe,CAAC,EAC3BX,UAAU,IACV,GAAGY,MAAAA,IACiE,CAAC,MACrEN,IAAIO,KAAKpB,UAAU;EAAE,GAAGmB;EAAOZ,SAASE,IAAIW,KAAKV,SAASW,SAASd,OAAAA,CAAAA;AAAU,CAAA;AAKxE,IAAMe,WAAWrB,OAAOsB,QAC7BtB,OAAOC,OAAO;EACZsB,iBAAiBC;EACjBC,iBAAiBzB,OAAOG,SAASuB,eAAAA;EACjCC,cAAc3B,OAAOG,SAASH,OAAO4B,OAAO;EAC5CC,OAAO7B,OAAOG,SAASH,OAAO4B,OAAO;EACrCE,SAAS9B,OAAOG,SAASH,OAAO4B,OAAO;EACvCG,YAAY/B,OAAOG,SAASH,OAAOI,MAAM;;EAEzC4B,kBAAkBhC,OAAOG,SAASH,OAAO4B,OAAO;EAChDK,SAASjC,OAAOG,SAASH,OAAO4B,OAAO;AACzC,CAAA,CAAA;;;ADvCK,IAAMM,SAAN,cAAqBC,QAAOC,YAAW,EAAW,GAAGC,SAASC,EAAE,kBAAkB;EACvFC,OAAOJ,QAAOK,OAAO;IACnBC,SAASC,MAAKC;IACdC,MAAMT,QAAOU,SAASV,QAAOW,MAAM;IACnCC,SAASZ,QAAOU,SAASV,QAAOW,MAAM;EACxC,CAAA;EACAE,QAAQb,QAAOK,OAAO;IACpBS,QAAQC;EACV,CAAA;AACF,CAAA,EAAA;AAAI;AAEG,IAAMC,cAAN,cAA0BhB,QAAOC,YAAW,EAAgB,GAAGC,SAASC,EAAE,yBAAyB;EACxGC,OAAOJ,QAAOK,OAAO;IACnBF,IAAIH,QAAOW;IACXM,UAAUC;EACZ,CAAA;EACAL,QAAQb,QAAOmB;AACjB,CAAA,EAAA;AAAI;",
6
+ "names": ["Schema", "Type", "EditorViewMode", "Schema", "Obj", "Ref", "Type", "LabelAnnotation", "EditorInputMode", "EditorViewMode", "DataType", "Document", "Schema", "Struct", "name", "optional", "String", "fallbackName", "content", "Type", "Ref", "DataType", "Text", "pipe", "Obj", "typename", "version", "LabelAnnotation", "set", "makeDocument", "props", "make", "makeText", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "Create", "Schema", "TaggedClass", "not_meta", "id", "input", "Struct", "spaceId", "Type", "SpaceId", "name", "optional", "String", "content", "output", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Void"]
7
+ }
@@ -0,0 +1,22 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/capabilities/index.ts
4
+ import { lazy } from "@dxos/app-framework";
5
+ var AnchorSort = lazy(() => import("./anchor-sort-R6AAKYNG.mjs"));
6
+ var AppGraphSerializer = lazy(() => import("./app-graph-serializer-X4M5QEI6.mjs"));
7
+ var ArtifactDefinition = lazy(() => import("./artifact-definition-IRIILD7S.mjs"));
8
+ var IntentResolver = lazy(() => import("./intent-resolver-L2UGZ72W.mjs"));
9
+ var ReactSurface = lazy(() => import("./react-surface-3JJSTTQP.mjs"));
10
+ var MarkdownSettings = lazy(() => import("./settings-LBDWWPZJ.mjs"));
11
+ var MarkdownState = lazy(() => import("./state-UIHO2SFZ.mjs"));
12
+
13
+ export {
14
+ AnchorSort,
15
+ AppGraphSerializer,
16
+ ArtifactDefinition,
17
+ IntentResolver,
18
+ ReactSurface,
19
+ MarkdownSettings,
20
+ MarkdownState
21
+ };
22
+ //# sourceMappingURL=chunk-A7LLVI34.mjs.map
@@ -0,0 +1,17 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-RCIXKCVG.mjs";
5
+
6
+ // src/capabilities/capabilities.ts
7
+ import { defineCapability } from "@dxos/app-framework";
8
+ (function(MarkdownCapabilities2) {
9
+ MarkdownCapabilities2.State = defineCapability(`${meta.id}/capability/state`);
10
+ MarkdownCapabilities2.Extensions = defineCapability(`${meta.id}/capability/extensions`);
11
+ })(MarkdownCapabilities || (MarkdownCapabilities = {}));
12
+ var MarkdownCapabilities;
13
+
14
+ export {
15
+ MarkdownCapabilities
16
+ };
17
+ //# sourceMappingURL=chunk-B3J2M4YL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/capabilities.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type EditorViewMode, type EditorStateStore } from '@dxos/react-ui-editor';\n\nimport { meta } from '../meta';\nimport { type MarkdownExtensionProvider, type MarkdownPluginState } from '../types';\n\nexport namespace MarkdownCapabilities {\n export const State = defineCapability<{\n state: MarkdownPluginState;\n editorState: EditorStateStore;\n getViewMode: (id: string) => EditorViewMode;\n setViewMode: (id: string, viewMode: EditorViewMode) => void;\n }>(`${meta.id}/capability/state`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = defineCapability<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);\n}\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,wBAAwB;UAMhBC,uBAAAA;wBACFC,QAAQC,iBAKlB,GAAGC,KAAKC,EAAE,mBAAmB;wBAGnBC,aAAaH,iBAA8C,GAAGC,KAAKC,EAAE,wBAAwB;AAC5G,GAViBJ,yBAAAA,uBAAAA,CAAAA,EAAAA;;",
6
+ "names": ["defineCapability", "MarkdownCapabilities", "State", "defineCapability", "meta", "id", "Extensions"]
7
+ }
@@ -1,12 +1,12 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- DocumentType
4
- } from "./chunk-T2Y2BT53.mjs";
3
+ Markdown_exports
4
+ } from "./chunk-6GCOJS4Y.mjs";
5
5
 
6
- // packages/plugins/plugin-markdown/src/util.tsx
6
+ // src/util.tsx
7
7
  import { debounce } from "@dxos/async";
8
- import { Obj, Ref } from "@dxos/echo";
9
- import { DataType } from "@dxos/schema";
8
+ import { Obj } from "@dxos/echo";
9
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
10
10
  var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
11
11
  var nonTitleChars = /[^\w ]/g;
12
12
  var getFallbackName = (content) => {
@@ -32,21 +32,20 @@ var serializer = {
32
32
  },
33
33
  deserialize: async ({ content: serialized }) => {
34
34
  const { name, fallbackName, content } = JSON.parse(serialized);
35
- return Obj.make(DocumentType, {
35
+ return Markdown_exports.makeDocument({
36
36
  name,
37
37
  fallbackName,
38
- content: Ref.make(Obj.make(DataType.Text, {
39
- content
40
- }))
38
+ content
41
39
  });
42
40
  }
43
41
  };
44
42
 
45
43
  export {
44
+ isEditorModel,
46
45
  isMarkdownProperties,
47
46
  getFallbackName,
48
47
  getAbstract,
49
48
  setFallbackName,
50
49
  serializer
51
50
  };
52
- //# sourceMappingURL=chunk-K26TX5V4.mjs.map
51
+ //# sourceMappingURL=chunk-LZK3TLKM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Markdown } from './types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\nexport const getFallbackName = (content: string) => {\n return content.substring(0, 31).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const getAbstract = (content: string) => {\n return content.substring(0, 128).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content: string) => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.makeDocument({ name, fallbackName, content });\n },\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAUb,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCI,IAAIC,SAASL,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKM,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAEf,IAAMC,kBAAkB,CAACC,YAAAA;AAC9B,SAAOA,QAAQC,UAAU,GAAG,EAAA,EAAIC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACnF;AAEO,IAAMC,cAAc,CAACL,YAAAA;AAC1B,SAAOA,QAAQC,UAAU,GAAG,GAAA,EAAKC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACpF;AAEO,IAAME,kBAAkBC,SAAS,CAACC,KAAwBR,YAAAA;AAC/D,QAAMS,OAAOV,gBAAgBC,OAAAA;AAC7B,MAAIQ,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEb,QAAO,IAAK,MAAMa,OAAOb,QAAQc,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcV;IAAQ,CAAA;EACxF;EAEAiB,aAAa,OAAO,EAAEjB,SAASkB,WAAU,MAAE;AACzC,UAAM,EAAET,MAAMC,cAAcV,QAAO,IAAKe,KAAKI,MAAMD,UAAAA;AACnD,WAAOE,iBAASC,aAAa;MAAEZ;MAAMC;MAAcV;IAAQ,CAAA;EAC7D;AACF;",
6
+ "names": ["debounce", "Obj", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "Obj", "isObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "getAbstract", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "makeDocument"]
7
+ }
@@ -0,0 +1,31 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ // src/meta.ts
9
+ import { trim } from "@dxos/util";
10
+ var meta = {
11
+ id: "dxos.org/plugin/markdown",
12
+ name: "Markdown",
13
+ description: trim`
14
+ A collaborative and extensible Markdown editor.
15
+ In addition to markdown capabilities, the plugin supports collaborative in-line comments.
16
+ You can use documents to extend the memory of your personal agents and add context for automated workflows.
17
+ `,
18
+ icon: "ph--text-aa--regular",
19
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
20
+ screenshots: [
21
+ "https://dxos.network/plugin-details-markdown-dark.png"
22
+ ]
23
+ };
24
+ var not_meta = meta;
25
+
26
+ export {
27
+ __export,
28
+ meta,
29
+ not_meta
30
+ };
31
+ //# sourceMappingURL=chunk-RCIXKCVG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n A collaborative and extensible Markdown editor.\n In addition to markdown capabilities, the plugin supports collaborative in-line comments.\n You can use documents to extend the memory of your personal agents and add context for automated workflows.\n `,\n icon: 'ph--text-aa--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n\n// TODO(burdon): Workaround for suspected vitest bug?\nexport const not_meta = meta;\n"],
5
+ "mappings": ";;;;;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;;EAKbC,MAAM;EACNC,QAAQ;EACRC,aAAa;IAAC;;AAChB;AAGO,IAAMC,WAAWR;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "source", "screenshots", "not_meta"]
7
+ }
@@ -1,24 +1,25 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- DocumentType
4
- } from "./chunk-T2Y2BT53.mjs";
3
+ Markdown_exports
4
+ } from "./chunk-6GCOJS4Y.mjs";
5
5
  import {
6
- MARKDOWN_PLUGIN
7
- } from "./chunk-RX63ZNML.mjs";
6
+ meta
7
+ } from "./chunk-RCIXKCVG.mjs";
8
8
 
9
- // packages/plugins/plugin-markdown/src/translations.ts
10
- import { Type } from "@dxos/echo";
11
- var translations_default = [
9
+ // src/translations.ts
10
+ var translations = [
12
11
  {
13
12
  "en-US": {
14
- [Type.getTypename(DocumentType)]: {
13
+ [Markdown_exports.Document.typename]: {
15
14
  "typename label": "Document",
16
15
  "typename label_zero": "Documents",
17
16
  "typename label_one": "Document",
18
17
  "typename label_other": "Documents",
19
- "object name placeholder": "New document"
18
+ "object name placeholder": "New document",
19
+ "rename object label": "Rename document",
20
+ "delete object label": "Delete document"
20
21
  },
21
- [MARKDOWN_PLUGIN]: {
22
+ [meta.id]: {
22
23
  "plugin name": "Editor",
23
24
  "choose markdown from space dialog title": "Choose one or more documents to add",
24
25
  // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)
@@ -47,6 +48,6 @@ var translations_default = [
47
48
  ];
48
49
 
49
50
  export {
50
- translations_default
51
+ translations
51
52
  };
52
- //# sourceMappingURL=chunk-BWDDFDJY.mjs.map
53
+ //# sourceMappingURL=chunk-YGNVDYMB.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';\nimport { Markdown } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Markdown.Document.typename]: {\n 'typename label': 'Document',\n 'typename label_zero': 'Documents',\n 'typename label_one': 'Document',\n 'typename label_other': 'Documents',\n 'object name placeholder': 'New document',\n 'rename object label': 'Rename document',\n 'delete object label': 'Delete document',\n },\n [meta.id]: {\n 'plugin name': 'Editor',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'editor placeholder': '',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n 'upload image label': 'Upload image',\n 'fallback title': 'Untitled',\n 'navigate to document label': 'Open document',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;;;;AASO,IAAMA,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,iBAASC,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;MACzB;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,2CAA2C;;QAE3C,4CAA4C;QAC5C,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,0BAA0B;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,wBAAwB;QACxB,8BAA8B;QAC9B,0BAA0B;QAC1B,2BAA2B;QAC3B,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;MAChC;IACF;EACF;;",
6
+ "names": ["translations", "Markdown", "Document", "typename", "meta", "id"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- translations_default
4
- } from "./chunk-BWDDFDJY.mjs";
3
+ translations
4
+ } from "./chunk-YGNVDYMB.mjs";
5
5
  import {
6
6
  AnchorSort,
7
7
  AppGraphSerializer,
@@ -10,34 +10,35 @@ import {
10
10
  MarkdownSettings,
11
11
  MarkdownState,
12
12
  ReactSurface
13
- } from "./chunk-YOABAQ7A.mjs";
13
+ } from "./chunk-A7LLVI34.mjs";
14
14
  import {
15
15
  MarkdownCapabilities
16
- } from "./chunk-JXXDCSMW.mjs";
16
+ } from "./chunk-B3J2M4YL.mjs";
17
17
  import {
18
18
  getAbstract,
19
19
  getFallbackName,
20
+ isEditorModel,
20
21
  isMarkdownProperties,
21
22
  serializer,
22
23
  setFallbackName
23
- } from "./chunk-K26TX5V4.mjs";
24
+ } from "./chunk-LZK3TLKM.mjs";
24
25
  import {
25
- DocumentType,
26
- MarkdownAction
27
- } from "./chunk-T2Y2BT53.mjs";
26
+ MarkdownAction_exports,
27
+ Markdown_exports
28
+ } from "./chunk-6GCOJS4Y.mjs";
28
29
  import {
29
- MARKDOWN_PLUGIN,
30
- meta
31
- } from "./chunk-RX63ZNML.mjs";
30
+ meta,
31
+ not_meta
32
+ } from "./chunk-RCIXKCVG.mjs";
32
33
 
33
- // packages/plugins/plugin-markdown/src/events.ts
34
+ // src/events.ts
34
35
  import { Events } from "@dxos/app-framework";
35
36
  (function(MarkdownEvents2) {
36
- MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${MARKDOWN_PLUGIN}/setup-extensions`);
37
+ MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);
37
38
  })(MarkdownEvents || (MarkdownEvents = {}));
38
39
  var MarkdownEvents;
39
40
 
40
- // packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx
41
+ // src/MarkdownPlugin.tsx
41
42
  import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events as Events2 } from "@dxos/app-framework";
42
43
  import { Ref } from "@dxos/echo";
43
44
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
@@ -51,7 +52,7 @@ var MarkdownPlugin = () => definePlugin(meta, [
51
52
  id: `${meta.id}/module/translations`,
52
53
  activatesOn: Events2.SetupTranslations,
53
54
  activate: () => contributes(Capabilities.Translations, [
54
- ...translations_default,
55
+ ...translations,
55
56
  ...editorTranslations
56
57
  ])
57
58
  }),
@@ -72,7 +73,7 @@ var MarkdownPlugin = () => definePlugin(meta, [
72
73
  id: `${meta.id}/module/metadata`,
73
74
  activatesOn: Events2.SetupMetadata,
74
75
  activate: () => contributes(Capabilities.Metadata, {
75
- id: DocumentType.typename,
76
+ id: Markdown_exports.Document.typename,
76
77
  metadata: {
77
78
  label: (object) => object.name || object.fallbackName,
78
79
  icon: "ph--text-aa--regular",
@@ -102,8 +103,8 @@ var MarkdownPlugin = () => definePlugin(meta, [
102
103
  id: `${meta.id}/module/object-form`,
103
104
  activatesOn: ClientEvents.SetupSchema,
104
105
  activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
105
- objectSchema: DocumentType,
106
- getIntent: (_, { space }) => createIntent(MarkdownAction.Create, {
106
+ objectSchema: Markdown_exports.Document,
107
+ getIntent: (_, { space }) => createIntent(MarkdownAction_exports.Create, {
107
108
  spaceId: space.id
108
109
  })
109
110
  }))
@@ -147,14 +148,15 @@ var MarkdownPlugin = () => definePlugin(meta, [
147
148
  })
148
149
  ]);
149
150
  export {
150
- MARKDOWN_PLUGIN,
151
151
  MarkdownCapabilities,
152
152
  MarkdownEvents,
153
153
  MarkdownPlugin,
154
154
  getAbstract,
155
155
  getFallbackName,
156
+ isEditorModel,
156
157
  isMarkdownProperties,
157
158
  meta,
159
+ not_meta,
158
160
  serializer,
159
161
  setFallbackName
160
162
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events.ts", "../../../src/MarkdownPlugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { MARKDOWN_PLUGIN } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${MARKDOWN_PLUGIN}/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { DataType } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n ArtifactDefinition,\n IntentResolver,\n MarkdownState,\n MarkdownSettings,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\nimport { DocumentType, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: DocumentType.typename,\n metadata: {\n label: (object: DocumentType) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: DocumentType) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: DocumentType, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: DocumentType,\n getIntent: (_, { space }) => createIntent(MarkdownAction.Create, { spaceId: space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [DataType.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\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-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/artifact-definition`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: ArtifactDefinition,\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "MARKDOWN_PLUGIN", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "Ref", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "createDocAccessor", "getTextInRange", "translations", "editorTranslations", "DataType", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "DocumentType", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "space", "createIntent", "MarkdownAction", "Create", "spaceId", "ClientCapabilities", "Schema", "DataType", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "ArtifactDefinition"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { DataType } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n ArtifactDefinition,\n IntentResolver,\n MarkdownState,\n MarkdownSettings,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Markdown.Document,\n getIntent: (_, { space }) => createIntent(MarkdownAction.Create, { spaceId: space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [DataType.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\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-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/artifact-definition`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: ArtifactDefinition,\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;UAINC,iBAAAA;kBACFC,kBAAkBC,OAAOC,iBAAiB,GAAGC,KAAKC,EAAE,yBAAyB;AAC5F,GAFiBL,mBAAAA,iBAAAA,CAAAA,EAAAA;;;;ACJjB,SAASM,cAAcC,aAAaC,cAAcC,cAAcC,cAAcC,UAAAA,eAAc;AAC5F,SAAmBC,WAAW;AAC9B,SAASC,oBAAoBC,oBAAoB;AACjD,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,mBAAmBC,sBAAsB;AAClD,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,gBAAgB;AAiBlB,IAAMC,iBAAiB,MAC5BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAmB;EACjG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOQ;IACpBN,UAAUO;EACZ,CAAA;EACAZ,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;;;IAIdC,aAAaC,QAAOQ;IACpBN,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOW;IACpBT,UAAU,MACRC,YAAYC,aAAaQ,UAAU;MACjCd,IAAIe,iBAASC,SAASC;MACtBC,UAAU;QACRC,OAAO,CAACC,WAA8BA,OAAOC,QAAQD,OAAOE;QAC5DC,MAAM;QACNC,YAAY;UACVC,kBAAkB;QACpB;;QAEAC,gBAAgB,OAAOC,QAA2B,MAAMC,IAAIC,MAAMC,QAAiB;UAACH,IAAII;SAAQ;QAChGC;;QAEAC,UAAU;QACVC,eAAe;QACfC,gBAAgB,CAACR,KAAwBS,WAAAA;AACvC,cAAIT,IAAII,SAAS;AACf,kBAAM,CAACM,OAAOC,GAAAA,IAAOF,OAAOG,MAAM,GAAA;AAClC,mBAAOC,eAAeC,kBAAkBd,IAAII,QAAQW,QAAS;cAAC;aAAU,GAAGL,OAAOC,GAAAA;UACpF;QACF;MACF;IACF,CAAA;EACJ,CAAA;EACAvC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa0C,aAAaC;IAC1BxC,UAAU,MACRC,YACEwC,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcjC,iBAASC;MACvBiC,WAAW,CAACC,GAAG,EAAEC,MAAK,MAAOC,aAAaC,uBAAeC,QAAQ;QAAEC,SAASJ,MAAMnD;MAAG,CAAA;IACvF,CAAA,CAAA;EAEN,CAAA;EACAD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa0C,aAAaC;IAC1BxC,UAAU,MAAMC,YAAYmD,mBAAmBC,QAAQ;MAACC,SAASC;KAAK;EACxE,CAAA;EACA5D,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO0D;;IAEpBC,iBAAiB;MAACC,eAAeC;;IACjC3D,UAAU4D;EACZ,CAAA;EACAjE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO+D;IACpB7D,UAAU8D;EACZ,CAAA;EACAnE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOiE;IACpB/D,UAAUgE;EACZ,CAAA;EACArE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;IAEdC,aAAaC,QAAOiE;IACpB/D,UAAUiE;EACZ,CAAA;EACAtE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOoE;IACpBlE,UAAUmE;EACZ,CAAA;CACD;",
6
+ "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "Ref", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "createDocAccessor", "getTextInRange", "translations", "editorTranslations", "DataType", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "Markdown", "Document", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "space", "createIntent", "MarkdownAction", "Create", "spaceId", "ClientCapabilities", "Schema", "DataType", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "ArtifactDefinition"]
7
7
  }