@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
@@ -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,16 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-ZGY3DYC2.mjs";
4
+
5
+ // src/capabilities/capabilities.ts
6
+ import { defineCapability } from "@dxos/app-framework";
7
+ (function(MarkdownCapabilities2) {
8
+ MarkdownCapabilities2.State = defineCapability(`${meta.id}/capability/state`);
9
+ MarkdownCapabilities2.Extensions = defineCapability(`${meta.id}/capability/extensions`);
10
+ })(MarkdownCapabilities || (MarkdownCapabilities = {}));
11
+ var MarkdownCapabilities;
12
+
13
+ export {
14
+ MarkdownCapabilities
15
+ };
16
+ //# sourceMappingURL=chunk-CD4E4K7J.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,23 +1,24 @@
1
1
  import {
2
- DocumentType
3
- } from "./chunk-N2D26K6W.mjs";
2
+ Markdown_exports
3
+ } from "./chunk-YHMGUSO7.mjs";
4
4
  import {
5
- MARKDOWN_PLUGIN
6
- } from "./chunk-JX6XNEHE.mjs";
5
+ meta
6
+ } from "./chunk-ZGY3DYC2.mjs";
7
7
 
8
- // packages/plugins/plugin-markdown/src/translations.ts
9
- import { Type } from "@dxos/echo";
10
- var translations_default = [
8
+ // src/translations.ts
9
+ var translations = [
11
10
  {
12
11
  "en-US": {
13
- [Type.getTypename(DocumentType)]: {
12
+ [Markdown_exports.Document.typename]: {
14
13
  "typename label": "Document",
15
14
  "typename label_zero": "Documents",
16
15
  "typename label_one": "Document",
17
16
  "typename label_other": "Documents",
18
- "object name placeholder": "New document"
17
+ "object name placeholder": "New document",
18
+ "rename object label": "Rename document",
19
+ "delete object label": "Delete document"
19
20
  },
20
- [MARKDOWN_PLUGIN]: {
21
+ [meta.id]: {
21
22
  "plugin name": "Editor",
22
23
  "choose markdown from space dialog title": "Choose one or more documents to add",
23
24
  // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)
@@ -46,6 +47,6 @@ var translations_default = [
46
47
  ];
47
48
 
48
49
  export {
49
- translations_default
50
+ translations
50
51
  };
51
- //# sourceMappingURL=chunk-D767LUGU.mjs.map
52
+ //# sourceMappingURL=chunk-K7ZFMSC4.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
+ }
@@ -0,0 +1,20 @@
1
+ // src/capabilities/index.ts
2
+ import { lazy } from "@dxos/app-framework";
3
+ var AnchorSort = lazy(() => import("./anchor-sort-Z7JQA7RL.mjs"));
4
+ var AppGraphSerializer = lazy(() => import("./app-graph-serializer-ZT5OVF5G.mjs"));
5
+ var ArtifactDefinition = lazy(() => import("./artifact-definition-7VNP5PCP.mjs"));
6
+ var IntentResolver = lazy(() => import("./intent-resolver-EBEF7WEI.mjs"));
7
+ var ReactSurface = lazy(() => import("./react-surface-ZPMZT4VU.mjs"));
8
+ var MarkdownSettings = lazy(() => import("./settings-MBDK4TWE.mjs"));
9
+ var MarkdownState = lazy(() => import("./state-ZA6PZPUI.mjs"));
10
+
11
+ export {
12
+ AnchorSort,
13
+ AppGraphSerializer,
14
+ ArtifactDefinition,
15
+ IntentResolver,
16
+ ReactSurface,
17
+ MarkdownSettings,
18
+ MarkdownState
19
+ };
20
+ //# sourceMappingURL=chunk-VCUKIILA.mjs.map
@@ -1,11 +1,11 @@
1
1
  import {
2
- DocumentType
3
- } from "./chunk-N2D26K6W.mjs";
2
+ Markdown_exports
3
+ } from "./chunk-YHMGUSO7.mjs";
4
4
 
5
- // packages/plugins/plugin-markdown/src/util.tsx
5
+ // src/util.tsx
6
6
  import { debounce } from "@dxos/async";
7
- import { Obj, Ref } from "@dxos/echo";
8
- import { DataType } from "@dxos/schema";
7
+ import { Obj } from "@dxos/echo";
8
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
9
9
  var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
10
10
  var nonTitleChars = /[^\w ]/g;
11
11
  var getFallbackName = (content) => {
@@ -31,21 +31,20 @@ var serializer = {
31
31
  },
32
32
  deserialize: async ({ content: serialized }) => {
33
33
  const { name, fallbackName, content } = JSON.parse(serialized);
34
- return Obj.make(DocumentType, {
34
+ return Markdown_exports.makeDocument({
35
35
  name,
36
36
  fallbackName,
37
- content: Ref.make(Obj.make(DataType.Text, {
38
- content
39
- }))
37
+ content
40
38
  });
41
39
  }
42
40
  };
43
41
 
44
42
  export {
43
+ isEditorModel,
45
44
  isMarkdownProperties,
46
45
  getFallbackName,
47
46
  getAbstract,
48
47
  setFallbackName,
49
48
  serializer
50
49
  };
51
- //# sourceMappingURL=chunk-LXSRQPEP.mjs.map
50
+ //# sourceMappingURL=chunk-VMX5SDGW.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,80 @@
1
+ import {
2
+ __export,
3
+ not_meta
4
+ } from "./chunk-ZGY3DYC2.mjs";
5
+
6
+ // src/types/MarkdownAction.ts
7
+ var MarkdownAction_exports = {};
8
+ __export(MarkdownAction_exports, {
9
+ Create: () => Create,
10
+ SetViewMode: () => SetViewMode
11
+ });
12
+ import { Schema as Schema2 } from "effect";
13
+ import { Type as Type2 } from "@dxos/echo";
14
+ import { EditorViewMode as EditorViewMode2 } from "@dxos/react-ui-editor/types";
15
+
16
+ // src/types/Markdown.ts
17
+ var Markdown_exports = {};
18
+ __export(Markdown_exports, {
19
+ Document: () => Document,
20
+ Settings: () => Settings,
21
+ makeDocument: () => makeDocument
22
+ });
23
+ import { Schema } from "effect";
24
+ import { Obj, Ref, Type } from "@dxos/echo";
25
+ import { LabelAnnotation } from "@dxos/echo-schema";
26
+ import { EditorInputMode, EditorViewMode } from "@dxos/react-ui-editor/types";
27
+ import { DataType } from "@dxos/schema";
28
+ var Document = Schema.Struct({
29
+ name: Schema.optional(Schema.String),
30
+ fallbackName: Schema.optional(Schema.String),
31
+ content: Type.Ref(DataType.Text)
32
+ }).pipe(Type.Obj({
33
+ typename: "dxos.org/type/Document",
34
+ version: "0.1.0"
35
+ }), LabelAnnotation.set([
36
+ "name",
37
+ "fallbackName"
38
+ ]));
39
+ var makeDocument = ({ content = "", ...props } = {}) => Obj.make(Document, {
40
+ ...props,
41
+ content: Ref.make(DataType.makeText(content))
42
+ });
43
+ var Settings = Schema.mutable(Schema.Struct({
44
+ defaultViewMode: EditorViewMode,
45
+ editorInputMode: Schema.optional(EditorInputMode),
46
+ experimental: Schema.optional(Schema.Boolean),
47
+ debug: Schema.optional(Schema.Boolean),
48
+ toolbar: Schema.optional(Schema.Boolean),
49
+ typewriter: Schema.optional(Schema.String),
50
+ // TODO(burdon): Per document settings.
51
+ numberedHeadings: Schema.optional(Schema.Boolean),
52
+ folding: Schema.optional(Schema.Boolean)
53
+ }));
54
+
55
+ // src/types/MarkdownAction.ts
56
+ var Create = class extends Schema2.TaggedClass()(`${not_meta.id}/action/create`, {
57
+ input: Schema2.Struct({
58
+ spaceId: Type2.SpaceId,
59
+ name: Schema2.optional(Schema2.String),
60
+ content: Schema2.optional(Schema2.String)
61
+ }),
62
+ output: Schema2.Struct({
63
+ object: Document
64
+ })
65
+ }) {
66
+ };
67
+ var SetViewMode = class extends Schema2.TaggedClass()(`${not_meta.id}/action/set-view-mode`, {
68
+ input: Schema2.Struct({
69
+ id: Schema2.String,
70
+ viewMode: EditorViewMode2
71
+ }),
72
+ output: Schema2.Void
73
+ }) {
74
+ };
75
+
76
+ export {
77
+ Markdown_exports,
78
+ MarkdownAction_exports
79
+ };
80
+ //# sourceMappingURL=chunk-YHMGUSO7.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,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // src/meta.ts
8
+ import { trim } from "@dxos/util";
9
+ var meta = {
10
+ id: "dxos.org/plugin/markdown",
11
+ name: "Markdown",
12
+ description: trim`
13
+ A collaborative and extensible Markdown editor.
14
+ In addition to markdown capabilities, the plugin supports collaborative in-line comments.
15
+ You can use documents to extend the memory of your personal agents and add context for automated workflows.
16
+ `,
17
+ icon: "ph--text-aa--regular",
18
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
19
+ screenshots: [
20
+ "https://dxos.network/plugin-details-markdown-dark.png"
21
+ ]
22
+ };
23
+ var not_meta = meta;
24
+
25
+ export {
26
+ __export,
27
+ meta,
28
+ not_meta
29
+ };
30
+ //# sourceMappingURL=chunk-ZGY3DYC2.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,6 +1,6 @@
1
1
  import {
2
- translations_default
3
- } from "./chunk-D767LUGU.mjs";
2
+ translations
3
+ } from "./chunk-K7ZFMSC4.mjs";
4
4
  import {
5
5
  AnchorSort,
6
6
  AppGraphSerializer,
@@ -9,34 +9,35 @@ import {
9
9
  MarkdownSettings,
10
10
  MarkdownState,
11
11
  ReactSurface
12
- } from "./chunk-354IBM5X.mjs";
12
+ } from "./chunk-VCUKIILA.mjs";
13
13
  import {
14
14
  MarkdownCapabilities
15
- } from "./chunk-QVJETNGS.mjs";
15
+ } from "./chunk-CD4E4K7J.mjs";
16
16
  import {
17
17
  getAbstract,
18
18
  getFallbackName,
19
+ isEditorModel,
19
20
  isMarkdownProperties,
20
21
  serializer,
21
22
  setFallbackName
22
- } from "./chunk-LXSRQPEP.mjs";
23
+ } from "./chunk-VMX5SDGW.mjs";
23
24
  import {
24
- DocumentType,
25
- MarkdownAction
26
- } from "./chunk-N2D26K6W.mjs";
25
+ MarkdownAction_exports,
26
+ Markdown_exports
27
+ } from "./chunk-YHMGUSO7.mjs";
27
28
  import {
28
- MARKDOWN_PLUGIN,
29
- meta
30
- } from "./chunk-JX6XNEHE.mjs";
29
+ meta,
30
+ not_meta
31
+ } from "./chunk-ZGY3DYC2.mjs";
31
32
 
32
- // packages/plugins/plugin-markdown/src/events.ts
33
+ // src/events.ts
33
34
  import { Events } from "@dxos/app-framework";
34
35
  (function(MarkdownEvents2) {
35
- MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${MARKDOWN_PLUGIN}/setup-extensions`);
36
+ MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);
36
37
  })(MarkdownEvents || (MarkdownEvents = {}));
37
38
  var MarkdownEvents;
38
39
 
39
- // packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx
40
+ // src/MarkdownPlugin.tsx
40
41
  import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events as Events2 } from "@dxos/app-framework";
41
42
  import { Ref } from "@dxos/echo";
42
43
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
@@ -50,7 +51,7 @@ var MarkdownPlugin = () => definePlugin(meta, [
50
51
  id: `${meta.id}/module/translations`,
51
52
  activatesOn: Events2.SetupTranslations,
52
53
  activate: () => contributes(Capabilities.Translations, [
53
- ...translations_default,
54
+ ...translations,
54
55
  ...editorTranslations
55
56
  ])
56
57
  }),
@@ -71,7 +72,7 @@ var MarkdownPlugin = () => definePlugin(meta, [
71
72
  id: `${meta.id}/module/metadata`,
72
73
  activatesOn: Events2.SetupMetadata,
73
74
  activate: () => contributes(Capabilities.Metadata, {
74
- id: DocumentType.typename,
75
+ id: Markdown_exports.Document.typename,
75
76
  metadata: {
76
77
  label: (object) => object.name || object.fallbackName,
77
78
  icon: "ph--text-aa--regular",
@@ -101,8 +102,8 @@ var MarkdownPlugin = () => definePlugin(meta, [
101
102
  id: `${meta.id}/module/object-form`,
102
103
  activatesOn: ClientEvents.SetupSchema,
103
104
  activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
104
- objectSchema: DocumentType,
105
- getIntent: (_, { space }) => createIntent(MarkdownAction.Create, {
105
+ objectSchema: Markdown_exports.Document,
106
+ getIntent: (_, { space }) => createIntent(MarkdownAction_exports.Create, {
106
107
  spaceId: space.id
107
108
  })
108
109
  }))
@@ -146,14 +147,15 @@ var MarkdownPlugin = () => definePlugin(meta, [
146
147
  })
147
148
  ]);
148
149
  export {
149
- MARKDOWN_PLUGIN,
150
150
  MarkdownCapabilities,
151
151
  MarkdownEvents,
152
152
  MarkdownPlugin,
153
153
  getAbstract,
154
154
  getFallbackName,
155
+ isEditorModel,
155
156
  isMarkdownProperties,
156
157
  meta,
158
+ not_meta,
157
159
  serializer,
158
160
  setFallbackName
159
161
  };
@@ -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": "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",
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
  }
@@ -1,38 +1,34 @@
1
1
  import {
2
2
  MarkdownCapabilities
3
- } from "./chunk-QVJETNGS.mjs";
3
+ } from "./chunk-CD4E4K7J.mjs";
4
4
  import {
5
- DocumentType,
6
- MarkdownAction
7
- } from "./chunk-N2D26K6W.mjs";
8
- import "./chunk-JX6XNEHE.mjs";
5
+ MarkdownAction_exports,
6
+ Markdown_exports
7
+ } from "./chunk-YHMGUSO7.mjs";
8
+ import "./chunk-ZGY3DYC2.mjs";
9
9
 
10
- // packages/plugins/plugin-markdown/src/capabilities/intent-resolver.ts
10
+ // src/capabilities/intent-resolver.ts
11
11
  import { next as A } from "@automerge/automerge";
12
12
  import { Option, pipe } from "effect";
13
13
  import { Capabilities, CollaborationActions, contributes, createResolver } from "@dxos/app-framework";
14
14
  import { Obj } from "@dxos/echo";
15
- import { createDocAccessor, getRangeFromCursor, Ref } from "@dxos/react-client/echo";
16
- import { DataType } from "@dxos/schema";
15
+ import { createDocAccessor, getRangeFromCursor } from "@dxos/react-client/echo";
17
16
  var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
18
17
  createResolver({
19
- intent: MarkdownAction.Create,
18
+ intent: MarkdownAction_exports.Create,
20
19
  resolve: ({ name, content }) => {
21
- const doc = Obj.make(DocumentType, {
22
- name,
23
- content: Ref.make(Obj.make(DataType.Text, {
24
- content: content ?? ""
25
- }))
26
- });
27
20
  return {
28
21
  data: {
29
- object: doc
22
+ object: Markdown_exports.makeDocument({
23
+ name,
24
+ content
25
+ })
30
26
  }
31
27
  };
32
28
  }
33
29
  }),
34
30
  createResolver({
35
- intent: MarkdownAction.SetViewMode,
31
+ intent: MarkdownAction_exports.SetViewMode,
36
32
  resolve: ({ id, viewMode }) => {
37
33
  const { state } = context.getCapability(MarkdownCapabilities.State);
38
34
  state.viewMode[id] = viewMode;
@@ -40,7 +36,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
40
36
  }),
41
37
  createResolver({
42
38
  intent: CollaborationActions.InsertContent,
43
- filter: (data) => Obj.instanceOf(DocumentType, data.target),
39
+ filter: (data) => Obj.instanceOf(Markdown_exports.Document, data.target),
44
40
  resolve: async ({ target, object: objectRef, at, label }) => {
45
41
  const text = await target.content.load();
46
42
  const accessor = createDocAccessor(text, [
@@ -61,4 +57,4 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
61
57
  export {
62
58
  intent_resolver_default as default
63
59
  };
64
- //# sourceMappingURL=intent-resolver-6ZOABX2J.mjs.map
60
+ //# sourceMappingURL=intent-resolver-EBEF7WEI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport { Option, pipe, type Schema } from 'effect';\n\nimport {\n Capabilities,\n CollaborationActions,\n contributes,\n createResolver,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/react-client/echo';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { Markdown, MarkdownAction } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: MarkdownAction.Create,\n resolve: ({ name, content }) => {\n return { data: { object: Markdown.makeDocument({ name, content }) } };\n },\n }),\n createResolver({\n intent: MarkdownAction.SetViewMode,\n resolve: ({ id, viewMode }) => {\n const { state } = context.getCapability(MarkdownCapabilities.State);\n state.viewMode[id] = viewMode;\n },\n }),\n createResolver({\n intent: CollaborationActions.InsertContent,\n filter: (\n data,\n ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.InsertContent.fields.input>, 'target'> & {\n target: Markdown.Document;\n } => Obj.instanceOf(Markdown.Document, data.target),\n resolve: async ({ target, object: objectRef, at, label }) => {\n const text = await target.content.load();\n const accessor = createDocAccessor(text, ['content']);\n const { start, end } = pipe(\n Option.fromNullable(at),\n Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),\n Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),\n );\n accessor.handle.change((doc) => {\n const ref = `[${label ?? 'Generated content'}]](${objectRef.dxn.toString()})\\n`;\n A.splice(doc, accessor.path.slice(), start, end - start, ref);\n });\n },\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,SAASA,QAAQC,SAAS;AAC1B,SAASC,QAAQC,YAAyB;AAE1C,SACEC,cACAC,sBACAC,aACAC,sBAEK;AACP,SAASC,WAAW;AACpB,SAASC,mBAAmBC,0BAA0B;AAKtD,IAAA,0BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,uBAAeC;IACvBC,SAAS,CAAC,EAAEC,MAAMC,QAAO,MAAE;AACzB,aAAO;QAAEC,MAAM;UAAEC,QAAQC,iBAASC,aAAa;YAAEL;YAAMC;UAAQ,CAAA;QAAG;MAAE;IACtE;EACF,CAAA;EACAN,eAAe;IACbC,QAAQC,uBAAeS;IACvBP,SAAS,CAAC,EAAEQ,IAAIC,SAAQ,MAAE;AACxB,YAAM,EAAEC,MAAK,IAAKlB,QAAQmB,cAAcC,qBAAqBC,KAAK;AAClEH,YAAMD,SAASD,EAAAA,IAAMC;IACvB;EACF,CAAA;EACAb,eAAe;IACbC,QAAQiB,qBAAqBC;IAC7BC,QAAQ,CACNb,SAGGc,IAAIC,WAAWb,iBAASc,UAAUhB,KAAKiB,MAAM;IAClDpB,SAAS,OAAO,EAAEoB,QAAQhB,QAAQiB,WAAWC,IAAIC,MAAK,MAAE;AACtD,YAAMC,OAAO,MAAMJ,OAAOlB,QAAQuB,KAAI;AACtC,YAAMC,WAAWC,kBAAkBH,MAAM;QAAC;OAAU;AACpD,YAAM,EAAEI,OAAOC,IAAG,IAAKC,KACrBC,OAAOC,aAAaV,EAAAA,GACpBS,OAAOE,QAAQ,CAACX,QAAOS,OAAOC,aAAaE,mBAAmBR,UAAUJ,GAAAA,CAAAA,CAAAA,GACxES,OAAOI,UAAU,OAAO;QAAEP,OAAOJ,KAAKtB,QAAQkC,SAAS;QAAGP,KAAKL,KAAKtB,QAAQkC,SAAS;MAAE,EAAA,CAAA;AAEzFV,eAASW,OAAOC,OAAO,CAACC,QAAAA;AACtB,cAAMC,MAAM,IAAIjB,SAAS,mBAAA,MAAyBF,UAAUoB,IAAIC,SAAQ,CAAA;;AACxEC,UAAEC,OAAOL,KAAKb,SAASmB,KAAKC,MAAK,GAAIlB,OAAOC,MAAMD,OAAOY,GAAAA;MAC3D,CAAA;IACF;EACF,CAAA;CACD;",
6
+ "names": ["next", "A", "Option", "pipe", "Capabilities", "CollaborationActions", "contributes", "createResolver", "Obj", "createDocAccessor", "getRangeFromCursor", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "MarkdownAction", "Create", "resolve", "name", "content", "data", "object", "Markdown", "makeDocument", "SetViewMode", "id", "viewMode", "state", "getCapability", "MarkdownCapabilities", "State", "CollaborationActions", "InsertContent", "filter", "Obj", "instanceOf", "Document", "target", "objectRef", "at", "label", "text", "load", "accessor", "createDocAccessor", "start", "end", "pipe", "Option", "fromNullable", "flatMap", "getRangeFromCursor", "getOrElse", "length", "handle", "change", "doc", "ref", "dxn", "toString", "A", "splice", "path", "slice"]
7
+ }