@dxos/plugin-markdown 0.8.4-main.e098934 → 0.8.4-main.ead640a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{MarkdownCard-JLUQITYK.mjs → MarkdownCard-AGWOTODZ.mjs} +20 -17
- package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs.map +7 -0
- package/dist/lib/browser/{MarkdownContainer-HMPNQMNG.mjs → MarkdownContainer-MV2UNAUV.mjs} +52 -52
- package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs.map +7 -0
- package/dist/lib/browser/{anchor-sort-E33BSTYF.mjs → anchor-sort-YWJI3BKT.mjs} +4 -4
- package/dist/lib/browser/{anchor-sort-E33BSTYF.mjs.map → anchor-sort-YWJI3BKT.mjs.map} +1 -1
- package/dist/lib/browser/{app-graph-serializer-OX62DNPT.mjs → app-graph-serializer-KYDFCUOW.mjs} +7 -7
- package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs.map +7 -0
- package/dist/lib/browser/{blueprint-definition-5YKFUHRU.mjs → blueprint-definition-BHRMFZAC.mjs} +3 -3
- package/dist/lib/browser/{chunk-LAVZ2W6X.mjs → chunk-6KU5DKP7.mjs} +6 -5
- package/dist/lib/browser/chunk-6KU5DKP7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-F6JJLKLN.mjs → chunk-HBBEHOP3.mjs} +12 -8
- package/dist/lib/browser/chunk-HBBEHOP3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Z7P6JGGW.mjs → chunk-O6XUPW6S.mjs} +2 -2
- package/dist/lib/browser/{chunk-BEE7VQPU.mjs → chunk-XMT6PMU5.mjs} +6 -5
- package/dist/lib/browser/chunk-XMT6PMU5.mjs.map +7 -0
- package/dist/lib/browser/chunk-Z5PDJNBV.mjs +22 -0
- package/dist/lib/browser/index.mjs +9 -8
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WDDH56JC.mjs → intent-resolver-XHVCZZHU.mjs} +5 -5
- package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-NY5K2I5R.mjs → react-surface-3A2GO3BN.mjs} +7 -7
- package/dist/lib/browser/{react-surface-NY5K2I5R.mjs.map → react-surface-3A2GO3BN.mjs.map} +1 -1
- package/dist/lib/browser/{settings-AABBTB4Q.mjs → settings-XY265Y2Q.mjs} +4 -4
- package/dist/lib/browser/{settings-AABBTB4Q.mjs.map → settings-XY265Y2Q.mjs.map} +1 -1
- package/dist/lib/browser/{state-FTHQQX7V.mjs → state-6QODXCSZ.mjs} +3 -3
- package/dist/lib/browser/{state-FTHQQX7V.mjs.map → state-6QODXCSZ.mjs.map} +1 -1
- package/dist/lib/browser/{toolkit-2AJTHG74.mjs → toolkit-YA65QX2S.mjs} +15 -13
- package/dist/lib/browser/toolkit-YA65QX2S.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{MarkdownCard-XL5EVSJ7.mjs → MarkdownCard-B2IWTFOC.mjs} +20 -17
- package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs.map +7 -0
- package/dist/lib/node-esm/{MarkdownContainer-5FTROSXN.mjs → MarkdownContainer-J2R3DLCQ.mjs} +52 -52
- package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-ALP2NH24.mjs → anchor-sort-FCRYL2FX.mjs} +4 -4
- package/dist/lib/node-esm/{anchor-sort-ALP2NH24.mjs.map → anchor-sort-FCRYL2FX.mjs.map} +1 -1
- package/dist/lib/node-esm/{app-graph-serializer-56TD3BMX.mjs → app-graph-serializer-FAUQM3BH.mjs} +7 -7
- package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-GVW67KGV.mjs → blueprint-definition-XYFKMIDR.mjs} +3 -3
- package/dist/lib/node-esm/chunk-7RDNIMTF.mjs +24 -0
- package/dist/lib/node-esm/{chunk-DVK63TD3.mjs → chunk-FVI7LPC3.mjs} +12 -8
- package/dist/lib/node-esm/chunk-FVI7LPC3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FXILAQ5F.mjs → chunk-FWZKC6X5.mjs} +6 -5
- package/dist/lib/node-esm/chunk-FWZKC6X5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-J7A6TUB2.mjs → chunk-XO3IEQJE.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-O6EXWGGS.mjs → chunk-ZBXV4ON7.mjs} +6 -5
- package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +9 -8
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-2I5HKCUU.mjs → intent-resolver-7A2EXGZQ.mjs} +5 -5
- package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-AUWSLYJS.mjs → react-surface-RCLL5WVQ.mjs} +7 -7
- package/dist/lib/node-esm/{react-surface-AUWSLYJS.mjs.map → react-surface-RCLL5WVQ.mjs.map} +1 -1
- package/dist/lib/node-esm/{settings-CXGR6DH4.mjs → settings-H3UDD3KO.mjs} +4 -4
- package/dist/lib/node-esm/{settings-CXGR6DH4.mjs.map → settings-H3UDD3KO.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-NWMQ3XAI.mjs → state-W3PECOJX.mjs} +3 -3
- package/dist/lib/node-esm/{state-NWMQ3XAI.mjs.map → state-W3PECOJX.mjs.map} +1 -1
- package/dist/lib/node-esm/{toolkit-RC44I2MI.mjs → toolkit-HSIKUGNK.mjs} +15 -13
- package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +4 -4
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +4 -4
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +1 -2
- package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +1 -1
- package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/functions/diff.d.ts.map +1 -1
- package/dist/types/src/functions/open.d.ts.map +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +5 -3
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownAction.d.ts +2 -1
- package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +54 -54
- package/src/MarkdownPlugin.tsx +98 -98
- package/src/capabilities/app-graph-serializer.ts +2 -2
- package/src/capabilities/artifact-definition.ts +3 -2
- package/src/capabilities/intent-resolver.ts +2 -1
- package/src/capabilities/toolkit.ts +9 -7
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +3 -6
- package/src/components/MarkdownCard/MarkdownCard.tsx +17 -16
- package/src/components/MarkdownContainer.stories.tsx +42 -33
- package/src/components/MarkdownContainer.tsx +15 -13
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +11 -10
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +35 -33
- package/src/components/Suggestions.stories.tsx +27 -26
- package/src/components/Toolbar.stories.tsx +5 -5
- package/src/extensions.tsx +3 -3
- package/src/functions/diff.ts +4 -2
- package/src/functions/open.ts +4 -2
- package/src/hooks/useSelectCurrentThread.tsx +2 -2
- package/src/types/Markdown.ts +4 -2
- package/src/types/MarkdownAction.ts +1 -1
- package/src/util.tsx +8 -2
- package/dist/lib/browser/MarkdownCard-JLUQITYK.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-HMPNQMNG.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-OX62DNPT.mjs.map +0 -7
- package/dist/lib/browser/chunk-BEE7VQPU.mjs.map +0 -7
- package/dist/lib/browser/chunk-F6JJLKLN.mjs.map +0 -7
- package/dist/lib/browser/chunk-LAVZ2W6X.mjs.map +0 -7
- package/dist/lib/browser/chunk-XE66SH4O.mjs +0 -22
- package/dist/lib/browser/intent-resolver-WDDH56JC.mjs.map +0 -7
- package/dist/lib/browser/toolkit-2AJTHG74.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownCard-XL5EVSJ7.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-5FTROSXN.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-56TD3BMX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DVK63TD3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FXILAQ5F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-O6EXWGGS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Q2BREK2M.mjs +0 -24
- package/dist/lib/node-esm/intent-resolver-2I5HKCUU.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-RC44I2MI.mjs.map +0 -7
- /package/dist/lib/browser/{blueprint-definition-5YKFUHRU.mjs.map → blueprint-definition-BHRMFZAC.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-Z7P6JGGW.mjs.map → chunk-O6XUPW6S.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-XE66SH4O.mjs.map → chunk-Z5PDJNBV.mjs.map} +0 -0
- /package/dist/lib/node-esm/{blueprint-definition-GVW67KGV.mjs.map → blueprint-definition-XYFKMIDR.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-Q2BREK2M.mjs.map → chunk-7RDNIMTF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-J7A6TUB2.mjs.map → chunk-XO3IEQJE.mjs.map} +0 -0
|
@@ -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 getContentSnippet = (content: string) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('#'))\n .filter((line) => line.trim() !== '')[0]\n .replaceAll(nonTitleChars, '')\n .trim();\n return abstract;\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,oBAAoB,CAACL,YAAAA;AAChC,QAAMM,WAAWN,QACdE,MAAM,IAAA,EACNK,OAAO,CAACC,SAAS,CAACA,KAAKC,WAAW,GAAA,CAAA,EAClCF,OAAO,CAACC,SAASA,KAAKJ,KAAI,MAAO,EAAA,EAAI,CAAA,EACrCD,WAAWL,eAAe,EAAA,EAC1BM,KAAI;AACP,SAAOE;AACT;AAEO,IAAMI,kBAAkBC,SAAS,CAACC,KAAwBZ,YAAAA;AAC/D,QAAMa,OAAOd,gBAAgBC,OAAAA;AAC7B,MAAIY,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEjB,QAAO,IAAK,MAAMiB,OAAOjB,QAAQkB,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcd;IAAQ,CAAA;EACxF;EAEAqB,aAAa,OAAO,EAAErB,SAASsB,WAAU,MAAE;AACzC,UAAM,EAAET,MAAMC,cAAcd,QAAO,IAAKmB,KAAKI,MAAMD,UAAAA;AACnD,WAAOE,iBAASC,aAAa;MAAEZ;MAAMC;MAAcd;IAAQ,CAAA;EAC7D;AACF;",
|
|
6
|
+
"names": ["debounce", "Obj", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "Obj", "isObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "getContentSnippet", "abstract", "filter", "line", "startsWith", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "makeDocument"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Markdown_exports
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XMT6PMU5.mjs";
|
|
4
4
|
|
|
5
5
|
// src/capabilities/blueprint-definition.ts
|
|
6
6
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
@@ -8,13 +8,15 @@ import { Blueprint, Template } from "@dxos/blueprints";
|
|
|
8
8
|
import { trim as trim2 } from "@dxos/util";
|
|
9
9
|
|
|
10
10
|
// src/functions/diff.ts
|
|
11
|
-
import
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
12
13
|
import { ArtifactId, applyDiffs } from "@dxos/assistant";
|
|
13
14
|
import { createDocAccessor } from "@dxos/echo-db";
|
|
14
15
|
import { DatabaseService, defineFunction } from "@dxos/functions";
|
|
15
16
|
import { trim } from "@dxos/util";
|
|
16
17
|
var diff_default = defineFunction({
|
|
17
|
-
|
|
18
|
+
key: "dxos.org/function/markdown/diff",
|
|
19
|
+
name: "Diff",
|
|
18
20
|
description: trim`
|
|
19
21
|
Applies a set of diffs to the markdown document.
|
|
20
22
|
`,
|
|
@@ -38,11 +40,13 @@ var diff_default = defineFunction({
|
|
|
38
40
|
});
|
|
39
41
|
|
|
40
42
|
// src/functions/open.ts
|
|
41
|
-
import
|
|
43
|
+
import * as Effect2 from "effect/Effect";
|
|
44
|
+
import * as Schema2 from "effect/Schema";
|
|
42
45
|
import { ArtifactId as ArtifactId2 } from "@dxos/assistant";
|
|
43
46
|
import { DatabaseService as DatabaseService2, defineFunction as defineFunction2 } from "@dxos/functions";
|
|
44
47
|
var open_default = defineFunction2({
|
|
45
|
-
|
|
48
|
+
key: "dxos.org/function/markdown/open",
|
|
49
|
+
name: "Open",
|
|
46
50
|
description: "Opens and reads the contents of a new markdown document.",
|
|
47
51
|
inputSchema: Schema2.Struct({
|
|
48
52
|
id: ArtifactId2.annotations({
|
|
@@ -71,7 +75,7 @@ var tools = [
|
|
|
71
75
|
"create-document"
|
|
72
76
|
];
|
|
73
77
|
var BLUEPRINT_KEY = "dxos.org/blueprint/markdown";
|
|
74
|
-
var blueprint_definition_default = () => [
|
|
78
|
+
var blueprint_definition_default = (() => [
|
|
75
79
|
contributes(Capabilities.Functions, functions),
|
|
76
80
|
contributes(Capabilities.BlueprintDefinition, Blueprint.make({
|
|
77
81
|
key: BLUEPRINT_KEY,
|
|
@@ -93,10 +97,10 @@ var blueprint_definition_default = () => [
|
|
|
93
97
|
`
|
|
94
98
|
})
|
|
95
99
|
}))
|
|
96
|
-
];
|
|
100
|
+
]);
|
|
97
101
|
|
|
98
102
|
export {
|
|
99
103
|
BLUEPRINT_KEY,
|
|
100
104
|
blueprint_definition_default
|
|
101
105
|
};
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-HBBEHOP3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/blueprint-definition.ts", "../../../src/functions/diff.ts", "../../../src/functions/open.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type Capability, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { diff, open } from '../functions';\n\nconst functions: FunctionDefinition[] = [diff, open];\nconst tools = ['add-proposals', 'create-document'];\n\nexport const BLUEPRINT_KEY = 'dxos.org/blueprint/markdown';\n\nexport default (): Capability<any>[] => [\n contributes(Capabilities.Functions, functions),\n contributes(\n Capabilities.BlueprintDefinition,\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Markdown',\n tools: Blueprint.toolDefinitions({ functions, tools }),\n instructions: Template.make({\n source: trim`\n You can create and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n For example:\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id goof.\"\n + \"This is good.\"\n `,\n }),\n }),\n ),\n];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId, applyDiffs } from '@dxos/assistant';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { DatabaseService, defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { Markdown } from '../types';\n\n// TODO(wittjosiah): Reconcile with ThreadAction.AddProposal.\nexport default defineFunction({\n key: 'dxos.org/function/markdown/diff',\n name: 'Diff',\n description: trim`\n Applies a set of diffs to the markdown document.\n `,\n inputSchema: Schema.Struct({\n id: ArtifactId.annotations({\n description: 'The ID of the markdown document.',\n }),\n diffs: Schema.Array(Schema.String).annotations({\n description: 'The diffs to apply to the document.',\n }),\n }),\n outputSchema: Schema.Void,\n handler: Effect.fn(function* ({ data: { id, diffs } }) {\n const object = yield* DatabaseService.resolve(ArtifactId.toDXN(id), Markdown.Document);\n const content = yield* Effect.promise(() => object.content.load());\n const accessor = createDocAccessor(content, ['content']);\n applyDiffs(accessor, diffs);\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId } from '@dxos/assistant';\nimport { DatabaseService, defineFunction } from '@dxos/functions';\n\nimport { Markdown } from '../types';\n\nexport default defineFunction({\n key: 'dxos.org/function/markdown/open',\n name: 'Open',\n description: 'Opens and reads the contents of a new markdown document.',\n inputSchema: Schema.Struct({\n id: ArtifactId.annotations({\n description: 'The ID of the markdown document.',\n }),\n }),\n outputSchema: Schema.Struct({\n content: Schema.String,\n }),\n handler: Effect.fn(function* ({ data: { id } }) {\n const object = yield* DatabaseService.resolve(ArtifactId.toDXN(id), Markdown.Document);\n const { content } = yield* Effect.promise(() => object.content.load());\n return {\n content,\n };\n }),\n});\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,cAA+BC,mBAAmB;AAC3D,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,QAAAA,aAAY;;;ACHrB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,YAAYC,kBAAkB;AACvC,SAASC,yBAAyB;AAClC,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,YAAY;AAKrB,IAAA,eAAeC,eAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAaC;;;EAGbC,aAAoBC,cAAO;IACzBC,IAAIC,WAAWC,YAAY;MACzBN,aAAa;IACf,CAAA;IACAO,OAAcC,aAAaC,aAAM,EAAEH,YAAY;MAC7CN,aAAa;IACf,CAAA;EACF,CAAA;EACAU,cAAqBC;EACrBC,SAAgBC,UAAG,WAAW,EAAEC,MAAM,EAAEV,IAAIG,MAAK,EAAE,GAAE;AACnD,UAAMQ,SAAS,OAAOC,gBAAgBC,QAAQZ,WAAWa,MAAMd,EAAAA,GAAKe,iBAASC,QAAQ;AACrF,UAAMC,UAAU,OAAcC,eAAQ,MAAMP,OAAOM,QAAQE,KAAI,CAAA;AAC/D,UAAMC,WAAWC,kBAAkBJ,SAAS;MAAC;KAAU;AACvDK,eAAWF,UAAUjB,KAAAA;EACvB,CAAA;AACF,CAAA;;;AChCA,YAAYoB,aAAY;AACxB,YAAYC,aAAY;AAExB,SAASC,cAAAA,mBAAkB;AAC3B,SAASC,mBAAAA,kBAAiBC,kBAAAA,uBAAsB;AAIhD,IAAA,eAAeC,gBAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,aAAoBC,eAAO;IACzBC,IAAIC,YAAWC,YAAY;MACzBL,aAAa;IACf,CAAA;EACF,CAAA;EACAM,cAAqBJ,eAAO;IAC1BK,SAAgBC;EAClB,CAAA;EACAC,SAAgBC,WAAG,WAAW,EAAEC,MAAM,EAAER,GAAE,EAAE,GAAE;AAC5C,UAAMS,SAAS,OAAOC,iBAAgBC,QAAQV,YAAWW,MAAMZ,EAAAA,GAAKa,iBAASC,QAAQ;AACrF,UAAM,EAAEV,QAAO,IAAK,OAAcW,gBAAQ,MAAMN,OAAOL,QAAQY,KAAI,CAAA;AACnE,WAAO;MACLZ;IACF;EACF,CAAA;AACF,CAAA;;;AFpBA,IAAMa,YAAkC;EAACC;EAAMC;;AAC/C,IAAMC,QAAQ;EAAC;EAAiB;;AAEzB,IAAMC,gBAAgB;AAE7B,IAAA,gCAAe,MAAyB;EACtCC,YAAYC,aAAaC,WAAWP,SAAAA;EACpCK,YACEC,aAAaE,qBACbC,UAAUC,KAAK;IACbC,KAAKP;IACLQ,MAAM;IACNT,OAAOM,UAAUI,gBAAgB;MAAEb;MAAWG;IAAM,CAAA;IACpDW,cAAcC,SAASL,KAAK;MAC1BM,QAAQC;;;;;;;;;;IAUV,CAAA;EACF,CAAA,CAAA;;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "Effect", "Schema", "ArtifactId", "applyDiffs", "createDocAccessor", "DatabaseService", "defineFunction", "trim", "defineFunction", "key", "name", "description", "trim", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "diffs", "Array", "String", "outputSchema", "Void", "handler", "fn", "data", "object", "DatabaseService", "resolve", "toDXN", "Markdown", "Document", "content", "promise", "load", "accessor", "createDocAccessor", "applyDiffs", "Effect", "Schema", "ArtifactId", "DatabaseService", "defineFunction", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "outputSchema", "content", "String", "handler", "fn", "data", "object", "DatabaseService", "resolve", "toDXN", "Markdown", "Document", "promise", "load", "functions", "diff", "open", "tools", "BLUEPRINT_KEY", "contributes", "Capabilities", "Functions", "BlueprintDefinition", "Blueprint", "make", "key", "name", "toolDefinitions", "instructions", "Template", "source", "trim"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Markdown_exports
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XMT6PMU5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
meta
|
|
6
6
|
} from "./chunk-ODB2PTBP.mjs";
|
|
@@ -50,4 +50,4 @@ var translations = [
|
|
|
50
50
|
export {
|
|
51
51
|
translations
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-O6XUPW6S.mjs.map
|
|
@@ -9,7 +9,7 @@ __export(MarkdownAction_exports, {
|
|
|
9
9
|
Create: () => Create,
|
|
10
10
|
SetViewMode: () => SetViewMode
|
|
11
11
|
});
|
|
12
|
-
import
|
|
12
|
+
import * as Schema2 from "effect/Schema";
|
|
13
13
|
import { EditorViewMode as EditorViewMode2 } from "@dxos/react-ui-editor/types";
|
|
14
14
|
|
|
15
15
|
// src/types/Markdown.ts
|
|
@@ -19,13 +19,14 @@ __export(Markdown_exports, {
|
|
|
19
19
|
Settings: () => Settings,
|
|
20
20
|
makeDocument: () => makeDocument
|
|
21
21
|
});
|
|
22
|
-
import
|
|
22
|
+
import * as Schema from "effect/Schema";
|
|
23
23
|
import { Obj, Ref, Type } from "@dxos/echo";
|
|
24
|
-
import { LabelAnnotation } from "@dxos/echo
|
|
24
|
+
import { DescriptionAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
25
25
|
import { EditorInputMode, EditorViewMode } from "@dxos/react-ui-editor/types";
|
|
26
26
|
import { DataType, ItemAnnotation } from "@dxos/schema";
|
|
27
27
|
var Document = Schema.Struct({
|
|
28
28
|
name: Schema.optional(Schema.String),
|
|
29
|
+
description: Schema.optional(Schema.String),
|
|
29
30
|
fallbackName: Schema.optional(Schema.String),
|
|
30
31
|
content: Type.Ref(DataType.Text)
|
|
31
32
|
}).pipe(Type.Obj({
|
|
@@ -34,7 +35,7 @@ var Document = Schema.Struct({
|
|
|
34
35
|
}), LabelAnnotation.set([
|
|
35
36
|
"name",
|
|
36
37
|
"fallbackName"
|
|
37
|
-
]), ItemAnnotation.set(true));
|
|
38
|
+
]), DescriptionAnnotation.set("description"), ItemAnnotation.set(true));
|
|
38
39
|
var makeDocument = ({ content = "", ...props } = {}) => Obj.make(Document, {
|
|
39
40
|
...props,
|
|
40
41
|
content: Ref.make(DataType.makeText(content))
|
|
@@ -75,4 +76,4 @@ export {
|
|
|
75
76
|
Markdown_exports,
|
|
76
77
|
MarkdownAction_exports
|
|
77
78
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
79
|
+
//# sourceMappingURL=chunk-XMT6PMU5.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 * as Schema from 'effect/Schema';\n\nimport { EditorViewMode } from '@dxos/react-ui-editor/types';\n\nimport { meta } from '../meta';\n\nimport { Document } from './Markdown';\n\nexport class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {\n input: Schema.Struct({\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>()(`${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 * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor/types';\nimport { DataType, ItemAnnotation } from '@dxos/schema';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: 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 DescriptionAnnotation.set('description'),\n ItemAnnotation.set(true),\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,YAAYA,aAAY;AAExB,SAASC,kBAAAA,uBAAsB;;;ACN/B;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,KAAKC,KAAKC,YAAY;AAC/B,SAASC,uBAAuBC,uBAAuB;AACvD,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,UAAUC,sBAAsB;AAKlC,IAAMC,WAAkBC,cAAO;EACpCC,MAAaC,gBAAgBC,aAAM;EACnCC,aAAoBF,gBAAgBC,aAAM;EAC1CE,cAAqBH,gBAAgBC,aAAM;EAC3CG,SAASC,KAAKC,IAAIC,SAASC,IAAI;AACjC,CAAA,EAAGC,KACDJ,KAAKK,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBC,IAAI;EAAC;EAAQ;CAAe,GAC5CC,sBAAsBD,IAAI,aAAA,GAC1BE,eAAeF,IAAI,IAAA,CAAA;AAQd,IAAMG,eAAe,CAAC,EAC3Bb,UAAU,IACV,GAAGc,MAAAA,IACiE,CAAC,MACrER,IAAIS,KAAKtB,UAAU;EAAE,GAAGqB;EAAOd,SAASE,IAAIa,KAAKZ,SAASa,SAAShB,OAAAA,CAAAA;AAAU,CAAA;AAKxE,IAAMiB,WAAkBC,eACtBxB,cAAO;EACZyB,iBAAiBC;EACjBC,iBAAwBzB,gBAAS0B,eAAAA;EACjCC,cAAqB3B,gBAAgB4B,cAAO;EAC5CC,OAAc7B,gBAAgB4B,cAAO;EACrCE,SAAgB9B,gBAAgB4B,cAAO;EACvCG,YAAmB/B,gBAAgBC,aAAM;;EAEzC+B,kBAAyBhC,gBAAgB4B,cAAO;EAChDK,SAAgBjC,gBAAgB4B,cAAO;AACzC,CAAA,CAAA;;;AD1CK,IAAMM,SAAN,cAA4BC,oBAAW,EAAW,GAAGC,KAAKC,EAAE,kBAAkB;EACnFC,OAAcC,eAAO;IACnBC,MAAaC,iBAAgBC,cAAM;IACnCC,SAAgBF,iBAAgBC,cAAM;EACxC,CAAA;EACAE,QAAeL,eAAO;IACpBM,QAAQC;EACV,CAAA;AACF,CAAA,EAAA;AAAI;AAEG,IAAMC,cAAN,cAAiCZ,oBAAW,EAAgB,GAAGC,KAAKC,EAAE,yBAAyB;EACpGC,OAAcC,eAAO;IACnBF,IAAWK;IACXM,UAAUC;EACZ,CAAA;EACAL,QAAeM;AACjB,CAAA,EAAA;AAAI;",
|
|
6
|
+
"names": ["Schema", "EditorViewMode", "Schema", "Obj", "Ref", "Type", "DescriptionAnnotation", "LabelAnnotation", "EditorInputMode", "EditorViewMode", "DataType", "ItemAnnotation", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "content", "Type", "Ref", "DataType", "Text", "pipe", "Obj", "typename", "version", "LabelAnnotation", "set", "DescriptionAnnotation", "ItemAnnotation", "makeDocument", "props", "make", "makeText", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "Create", "TaggedClass", "meta", "id", "input", "Struct", "name", "optional", "String", "content", "output", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Void"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/capabilities/index.ts
|
|
2
|
+
import { lazy } from "@dxos/app-framework";
|
|
3
|
+
var AnchorSort = lazy(() => import("./anchor-sort-YWJI3BKT.mjs"));
|
|
4
|
+
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-KYDFCUOW.mjs"));
|
|
5
|
+
var BlueprintDefinition = lazy(() => import("./blueprint-definition-BHRMFZAC.mjs"));
|
|
6
|
+
var IntentResolver = lazy(() => import("./intent-resolver-XHVCZZHU.mjs"));
|
|
7
|
+
var ReactSurface = lazy(() => import("./react-surface-3A2GO3BN.mjs"));
|
|
8
|
+
var MarkdownSettings = lazy(() => import("./settings-XY265Y2Q.mjs"));
|
|
9
|
+
var MarkdownState = lazy(() => import("./state-6QODXCSZ.mjs"));
|
|
10
|
+
var Toolkit = lazy(() => import("./toolkit-YA65QX2S.mjs"));
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
AnchorSort,
|
|
14
|
+
AppGraphSerializer,
|
|
15
|
+
BlueprintDefinition,
|
|
16
|
+
IntentResolver,
|
|
17
|
+
ReactSurface,
|
|
18
|
+
MarkdownSettings,
|
|
19
|
+
MarkdownState,
|
|
20
|
+
Toolkit
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=chunk-Z5PDJNBV.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
translations
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-O6XUPW6S.mjs";
|
|
4
4
|
import {
|
|
5
5
|
AnchorSort,
|
|
6
6
|
AppGraphSerializer,
|
|
@@ -10,25 +10,25 @@ import {
|
|
|
10
10
|
MarkdownState,
|
|
11
11
|
ReactSurface,
|
|
12
12
|
Toolkit
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-Z5PDJNBV.mjs";
|
|
14
14
|
import {
|
|
15
15
|
BLUEPRINT_KEY
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-HBBEHOP3.mjs";
|
|
17
17
|
import {
|
|
18
18
|
MarkdownCapabilities
|
|
19
19
|
} from "./chunk-OY6CGPOO.mjs";
|
|
20
20
|
import {
|
|
21
|
-
|
|
21
|
+
getContentSnippet,
|
|
22
22
|
getFallbackName,
|
|
23
23
|
isEditorModel,
|
|
24
24
|
isMarkdownProperties,
|
|
25
25
|
serializer,
|
|
26
26
|
setFallbackName
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-6KU5DKP7.mjs";
|
|
28
28
|
import {
|
|
29
29
|
MarkdownAction_exports,
|
|
30
30
|
Markdown_exports
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-XMT6PMU5.mjs";
|
|
32
32
|
import {
|
|
33
33
|
meta
|
|
34
34
|
} from "./chunk-ODB2PTBP.mjs";
|
|
@@ -49,7 +49,7 @@ import { defineObjectForm } from "@dxos/plugin-space/types";
|
|
|
49
49
|
import { createDocAccessor, getTextInRange } from "@dxos/react-client/echo";
|
|
50
50
|
import { translations as editorTranslations } from "@dxos/react-ui-editor";
|
|
51
51
|
import { DataType } from "@dxos/schema";
|
|
52
|
-
var MarkdownPlugin = () =>
|
|
52
|
+
var MarkdownPlugin = definePlugin(meta, () => [
|
|
53
53
|
defineModule({
|
|
54
54
|
id: `${meta.id}/module/translations`,
|
|
55
55
|
activatesOn: Events2.SetupTranslations,
|
|
@@ -79,6 +79,7 @@ var MarkdownPlugin = () => definePlugin(meta, [
|
|
|
79
79
|
metadata: {
|
|
80
80
|
label: (object) => object.name || object.fallbackName,
|
|
81
81
|
icon: "ph--text-aa--regular",
|
|
82
|
+
iconClassName: "text-indigoSurfaceText",
|
|
82
83
|
blueprints: [
|
|
83
84
|
BLUEPRINT_KEY
|
|
84
85
|
],
|
|
@@ -162,7 +163,7 @@ export {
|
|
|
162
163
|
MarkdownCapabilities,
|
|
163
164
|
MarkdownEvents,
|
|
164
165
|
MarkdownPlugin,
|
|
165
|
-
|
|
166
|
+
getContentSnippet,
|
|
166
167
|
getFallbackName,
|
|
167
168
|
isEditorModel,
|
|
168
169
|
isMarkdownProperties,
|
|
@@ -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 { 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, Events, contributes, createIntent, defineModule, definePlugin } 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 BLUEPRINT_KEY,\n BlueprintDefinition,\n IntentResolver,\n MarkdownSettings,\n MarkdownState,\n ReactSurface,\n Toolkit,\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 =
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;UAINC,iBAAAA;kBACFC,kBAAkBC,OAAOC,iBAAiB,GAAGC,KAAKC,EAAE,yBAAyB;AAC5F,GAFiBL,mBAAAA,iBAAAA,CAAAA,EAAAA;;;;ACJjB,SAASM,cAAcC,UAAAA,SAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;AAC5F,SAAmBC,WAAW;AAC9B,SAASC,oBAAoBC,oBAAoB;AACjD,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,mBAAmBC,sBAAsB;AAClD,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,gBAAgB;AAmBlB,IAAMC,
|
|
6
|
-
"names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "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", "blueprints", "BLUEPRINT_KEY", "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", "createIntent", "MarkdownAction", "Create", "ClientCapabilities", "Schema", "DataType", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "BlueprintDefinition", "Startup", "Toolkit"]
|
|
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, Events, contributes, createIntent, defineModule, definePlugin } 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 BLUEPRINT_KEY,\n BlueprintDefinition,\n IntentResolver,\n MarkdownSettings,\n MarkdownState,\n ReactSurface,\n Toolkit,\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 = 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 iconClassName: 'text-indigoSurfaceText',\n blueprints: [BLUEPRINT_KEY],\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: () => createIntent(MarkdownAction.Create, {}),\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/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n defineModule({\n id: `${meta.id}/module/toolkit`,\n // TODO(wittjosiah): Use a different event.\n activatesOn: Events.Startup,\n activate: Toolkit,\n }),\n]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "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", "iconClassName", "blueprints", "BLUEPRINT_KEY", "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", "createIntent", "MarkdownAction", "Create", "ClientCapabilities", "Schema", "DataType", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "BlueprintDefinition", "Startup", "Toolkit"]
|
|
7
7
|
}
|
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
MarkdownAction_exports,
|
|
6
6
|
Markdown_exports
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XMT6PMU5.mjs";
|
|
8
8
|
import "./chunk-ODB2PTBP.mjs";
|
|
9
9
|
|
|
10
10
|
// src/capabilities/intent-resolver.ts
|
|
11
11
|
import { next as A } from "@automerge/automerge";
|
|
12
|
-
import
|
|
12
|
+
import * as Option from "effect/Option";
|
|
13
13
|
import { Capabilities, CollaborationActions, contributes, createResolver } from "@dxos/app-framework";
|
|
14
14
|
import { Obj } from "@dxos/echo";
|
|
15
15
|
import { createDocAccessor, getRangeFromCursor } from "@dxos/react-client/echo";
|
|
16
|
-
var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
|
|
16
|
+
var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
|
|
17
17
|
createResolver({
|
|
18
18
|
intent: MarkdownAction_exports.Create,
|
|
19
19
|
resolve: ({ name, content }) => {
|
|
@@ -55,8 +55,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
})
|
|
58
|
-
]);
|
|
58
|
+
]));
|
|
59
59
|
export {
|
|
60
60
|
intent_resolver_default as default
|
|
61
61
|
};
|
|
62
|
-
//# sourceMappingURL=intent-resolver-
|
|
62
|
+
//# sourceMappingURL=intent-resolver-XHVCZZHU.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 * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\n\nimport {\n Capabilities,\n CollaborationActions,\n type PluginContext,\n contributes,\n createResolver,\n} from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/react-client/echo';\n\nimport { Markdown, MarkdownAction } from '../types';\n\nimport { MarkdownCapabilities } from './capabilities';\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.AcceptProposal,\n filter: (\n data,\n ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.AcceptProposal.fields.input>, 'subject'> & {\n subject: Markdown.Document;\n } => Obj.instanceOf(Markdown.Document, data.subject),\n resolve: async ({ subject, anchor, proposal }) => {\n const text = await subject.content.load();\n const accessor = createDocAccessor(text, ['content']);\n const { start, end } = Option.fromNullable(anchor).pipe(\n Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),\n // Fallback to the end of the document.\n Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),\n );\n accessor.handle.change((doc) => {\n A.splice(doc, accessor.path.slice(), start, end - start, proposal.text);\n });\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,SAASA,QAAQC,SAAS;AAC1B,YAAYC,YAAY;AAGxB,SACEC,cACAC,sBAEAC,aACAC,sBACK;AACP,SAASC,WAAW;AACpB,SAASC,mBAAmBC,0BAA0B;AAMtD,IAAA,2BAAe,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,OAAO;IACnDpB,SAAS,OAAO,EAAEoB,SAASC,QAAQC,SAAQ,MAAE;AAC3C,YAAMC,OAAO,MAAMH,QAAQlB,QAAQsB,KAAI;AACvC,YAAMC,WAAWC,kBAAkBH,MAAM;QAAC;OAAU;AACpD,YAAM,EAAEI,OAAOC,IAAG,IAAYC,oBAAaR,MAAAA,EAAQS;QAC1CC,eAAQ,CAACC,OAAcH,oBAAaI,mBAAmBR,UAAUO,EAAAA,CAAAA,CAAAA;;QAEjEE,iBAAU,OAAO;UAAEP,OAAOJ,KAAKrB,QAAQiC,SAAS;UAAGP,KAAKL,KAAKrB,QAAQiC,SAAS;QAAE,EAAA;MAAA;AAEzFV,eAASW,OAAOC,OAAO,CAACC,QAAAA;AACtBC,UAAEC,OAAOF,KAAKb,SAASgB,KAAKC,MAAK,GAAIf,OAAOC,MAAMD,OAAOL,SAASC,IAAI;MACxE,CAAA;IACF;EACF,CAAA;CACD;",
|
|
6
|
+
"names": ["next", "A", "Option", "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", "AcceptProposal", "filter", "Obj", "instanceOf", "Document", "subject", "anchor", "proposal", "text", "load", "accessor", "createDocAccessor", "start", "end", "fromNullable", "pipe", "flatMap", "at", "getRangeFromCursor", "getOrElse", "length", "handle", "change", "doc", "A", "splice", "path", "slice"]
|
|
7
|
+
}
|