@dxos/plugin-thread 0.8.1 → 0.8.2-main.2f9c567

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 (131) hide show
  1. package/dist/lib/browser/{ChatContainer-IOOAQW6S.mjs → ChatContainer-UTQWOBXM.mjs} +6 -6
  2. package/dist/lib/browser/ChatContainer-UTQWOBXM.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-builder-6W4UKJDI.mjs → app-graph-builder-SQD3KQKB.mjs} +2 -2
  4. package/dist/lib/browser/app-graph-builder-SQD3KQKB.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-TFVPUPOO.mjs → chunk-2E5LHYLQ.mjs} +2 -2
  6. package/dist/lib/{node-esm/chunk-ADTVMESP.mjs.map → browser/chunk-2E5LHYLQ.mjs.map} +2 -2
  7. package/dist/lib/browser/{chunk-QDJ3Y6WF.mjs → chunk-32EIWOAL.mjs} +1 -1
  8. package/dist/lib/browser/{chunk-QDJ3Y6WF.mjs.map → chunk-32EIWOAL.mjs.map} +1 -1
  9. package/dist/lib/browser/chunk-AM4MYXGU.mjs +93 -0
  10. package/dist/lib/browser/chunk-AM4MYXGU.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-UT6IV2FX.mjs +17 -0
  12. package/dist/lib/browser/index.mjs +8 -8
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/{intent-resolver-QAY4FLLM.mjs → intent-resolver-EDSAXXNW.mjs} +7 -7
  15. package/dist/lib/browser/intent-resolver-EDSAXXNW.mjs.map +7 -0
  16. package/dist/lib/browser/{markdown-7KXBXCUS.mjs → markdown-M4QAJXHG.mjs} +2 -2
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/{react-surface-MT3OWULR.mjs → react-surface-FUWNPSKX.mjs} +8 -8
  19. package/dist/lib/browser/{react-surface-MT3OWULR.mjs.map → react-surface-FUWNPSKX.mjs.map} +3 -3
  20. package/dist/lib/browser/{settings-4FEC7EAX.mjs → settings-SSYDISA6.mjs} +4 -4
  21. package/dist/lib/browser/settings-SSYDISA6.mjs.map +7 -0
  22. package/dist/lib/browser/{state-PNMSLKAH.mjs → state-KBGI3QTR.mjs} +4 -4
  23. package/dist/lib/browser/state-KBGI3QTR.mjs.map +7 -0
  24. package/dist/lib/browser/types.mjs +1 -1
  25. package/dist/lib/node/{ChatContainer-4FNDRF3G.cjs → ChatContainer-VO5B47V4.cjs} +11 -11
  26. package/dist/lib/node/ChatContainer-VO5B47V4.cjs.map +7 -0
  27. package/dist/lib/node/{app-graph-builder-HZNWT4QU.cjs → app-graph-builder-G45JDZWQ.cjs} +5 -5
  28. package/dist/lib/node/app-graph-builder-G45JDZWQ.cjs.map +7 -0
  29. package/dist/lib/node/{chunk-E7Z3BKRQ.cjs → chunk-BUYO7P2A.cjs} +6 -6
  30. package/dist/lib/node/chunk-BUYO7P2A.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-46BSFPBV.cjs → chunk-HG7J3YR3.cjs} +44 -44
  32. package/dist/lib/node/chunk-HG7J3YR3.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-S2A6BXEA.cjs → chunk-KYLJU47G.cjs} +10 -10
  34. package/dist/lib/node/{chunk-AKINTFBH.cjs → chunk-NO6WQR36.cjs} +4 -4
  35. package/dist/lib/node/{chunk-AKINTFBH.cjs.map → chunk-NO6WQR36.cjs.map} +1 -1
  36. package/dist/lib/node/index.cjs +15 -15
  37. package/dist/lib/node/index.cjs.map +3 -3
  38. package/dist/lib/node/{intent-resolver-S6FE5OR7.cjs → intent-resolver-ECFDZLCG.cjs} +17 -17
  39. package/dist/lib/node/intent-resolver-ECFDZLCG.cjs.map +7 -0
  40. package/dist/lib/node/{markdown-L2WMCQKM.cjs → markdown-G5NDD5EJ.cjs} +7 -7
  41. package/dist/lib/node/meta.json +1 -1
  42. package/dist/lib/node/{react-surface-Z45BYECE.cjs → react-surface-G7GXAK5G.cjs} +18 -18
  43. package/dist/lib/node/{react-surface-Z45BYECE.cjs.map → react-surface-G7GXAK5G.cjs.map} +3 -3
  44. package/dist/lib/node/{settings-IXCPE55J.cjs → settings-PV6MGI52.cjs} +7 -7
  45. package/dist/lib/node/settings-PV6MGI52.cjs.map +7 -0
  46. package/dist/lib/node/{state-AT73KPGZ.cjs → state-FOHMAVSU.cjs} +6 -6
  47. package/dist/lib/node/state-FOHMAVSU.cjs.map +7 -0
  48. package/dist/lib/node/types.cjs +3 -3
  49. package/dist/lib/node/types.cjs.map +1 -1
  50. package/dist/lib/node-esm/{ChatContainer-NYLCL6QA.mjs → ChatContainer-IAX56SIL.mjs} +6 -6
  51. package/dist/lib/node-esm/ChatContainer-IAX56SIL.mjs.map +7 -0
  52. package/dist/lib/node-esm/{app-graph-builder-M3KK5QJH.mjs → app-graph-builder-25K4ELOR.mjs} +2 -2
  53. package/dist/lib/node-esm/app-graph-builder-25K4ELOR.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-ADTVMESP.mjs → chunk-CBAEGDBZ.mjs} +2 -2
  55. package/dist/lib/node-esm/chunk-CBAEGDBZ.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-J56FORYF.mjs → chunk-IZWN4KAY.mjs} +1 -1
  57. package/dist/lib/node-esm/{chunk-J56FORYF.mjs.map → chunk-IZWN4KAY.mjs.map} +1 -1
  58. package/dist/lib/node-esm/chunk-KUQP2ES3.mjs +19 -0
  59. package/dist/lib/node-esm/chunk-XTZJQJY4.mjs +94 -0
  60. package/dist/lib/node-esm/chunk-XTZJQJY4.mjs.map +7 -0
  61. package/dist/lib/node-esm/index.mjs +8 -8
  62. package/dist/lib/node-esm/index.mjs.map +3 -3
  63. package/dist/lib/node-esm/{intent-resolver-OURFRSSF.mjs → intent-resolver-GHN5XIMY.mjs} +7 -7
  64. package/dist/lib/node-esm/intent-resolver-GHN5XIMY.mjs.map +7 -0
  65. package/dist/lib/node-esm/{markdown-ZKU23UVD.mjs → markdown-WMR5AZRI.mjs} +2 -2
  66. package/dist/lib/node-esm/meta.json +1 -1
  67. package/dist/lib/node-esm/{react-surface-KIJ767JK.mjs → react-surface-FSBMYEZJ.mjs} +8 -8
  68. package/dist/lib/node-esm/{react-surface-KIJ767JK.mjs.map → react-surface-FSBMYEZJ.mjs.map} +3 -3
  69. package/dist/lib/node-esm/{settings-ZUJQ4LWI.mjs → settings-TJ53GIH3.mjs} +4 -4
  70. package/dist/lib/node-esm/settings-TJ53GIH3.mjs.map +7 -0
  71. package/dist/lib/node-esm/{state-SSDX5O67.mjs → state-IRLEO2SB.mjs} +4 -4
  72. package/dist/lib/node-esm/state-IRLEO2SB.mjs.map +7 -0
  73. package/dist/lib/node-esm/types.mjs +1 -1
  74. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  76. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  77. package/dist/types/src/components/MessageContainer.d.ts +5 -4
  78. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  79. package/dist/types/src/components/testing.d.ts +159 -50
  80. package/dist/types/src/components/testing.d.ts.map +1 -1
  81. package/dist/types/src/components/types.d.ts +2 -2
  82. package/dist/types/src/components/types.d.ts.map +1 -1
  83. package/dist/types/src/hooks/analytics.d.ts +3 -3
  84. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  85. package/dist/types/src/types.d.ts +328 -61
  86. package/dist/types/src/types.d.ts.map +1 -1
  87. package/package.json +35 -33
  88. package/src/ThreadPlugin.tsx +7 -7
  89. package/src/capabilities/app-graph-builder.ts +3 -3
  90. package/src/capabilities/intent-resolver.ts +5 -5
  91. package/src/capabilities/settings.ts +2 -2
  92. package/src/capabilities/state.ts +3 -3
  93. package/src/components/Chat.stories.tsx +4 -4
  94. package/src/components/ChatContainer.tsx +4 -4
  95. package/src/components/Comments.stories.tsx +2 -2
  96. package/src/components/CommentsContainer.tsx +2 -8
  97. package/src/components/MessageContainer.tsx +9 -12
  98. package/src/components/testing.ts +4 -4
  99. package/src/components/types.ts +2 -2
  100. package/src/hooks/analytics.ts +4 -4
  101. package/src/types.ts +40 -40
  102. package/dist/lib/browser/ChatContainer-IOOAQW6S.mjs.map +0 -7
  103. package/dist/lib/browser/app-graph-builder-6W4UKJDI.mjs.map +0 -7
  104. package/dist/lib/browser/chunk-S5ZR4FYW.mjs +0 -17
  105. package/dist/lib/browser/chunk-TFVPUPOO.mjs.map +0 -7
  106. package/dist/lib/browser/chunk-WOG72DWE.mjs +0 -93
  107. package/dist/lib/browser/chunk-WOG72DWE.mjs.map +0 -7
  108. package/dist/lib/browser/intent-resolver-QAY4FLLM.mjs.map +0 -7
  109. package/dist/lib/browser/settings-4FEC7EAX.mjs.map +0 -7
  110. package/dist/lib/browser/state-PNMSLKAH.mjs.map +0 -7
  111. package/dist/lib/node/ChatContainer-4FNDRF3G.cjs.map +0 -7
  112. package/dist/lib/node/app-graph-builder-HZNWT4QU.cjs.map +0 -7
  113. package/dist/lib/node/chunk-46BSFPBV.cjs.map +0 -7
  114. package/dist/lib/node/chunk-E7Z3BKRQ.cjs.map +0 -7
  115. package/dist/lib/node/intent-resolver-S6FE5OR7.cjs.map +0 -7
  116. package/dist/lib/node/settings-IXCPE55J.cjs.map +0 -7
  117. package/dist/lib/node/state-AT73KPGZ.cjs.map +0 -7
  118. package/dist/lib/node-esm/ChatContainer-NYLCL6QA.mjs.map +0 -7
  119. package/dist/lib/node-esm/app-graph-builder-M3KK5QJH.mjs.map +0 -7
  120. package/dist/lib/node-esm/chunk-E446MGLP.mjs +0 -94
  121. package/dist/lib/node-esm/chunk-E446MGLP.mjs.map +0 -7
  122. package/dist/lib/node-esm/chunk-WSE23GSG.mjs +0 -19
  123. package/dist/lib/node-esm/intent-resolver-OURFRSSF.mjs.map +0 -7
  124. package/dist/lib/node-esm/settings-ZUJQ4LWI.mjs.map +0 -7
  125. package/dist/lib/node-esm/state-SSDX5O67.mjs.map +0 -7
  126. /package/dist/lib/browser/{chunk-S5ZR4FYW.mjs.map → chunk-UT6IV2FX.mjs.map} +0 -0
  127. /package/dist/lib/browser/{markdown-7KXBXCUS.mjs.map → markdown-M4QAJXHG.mjs.map} +0 -0
  128. /package/dist/lib/node/{chunk-S2A6BXEA.cjs.map → chunk-KYLJU47G.cjs.map} +0 -0
  129. /package/dist/lib/node/{markdown-L2WMCQKM.cjs.map → markdown-G5NDD5EJ.cjs.map} +0 -0
  130. /package/dist/lib/node-esm/{chunk-WSE23GSG.mjs.map → chunk-KUQP2ES3.mjs.map} +0 -0
  131. /package/dist/lib/node-esm/{markdown-ZKU23UVD.mjs.map → markdown-WMR5AZRI.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useStatus.ts", "../../../src/hooks/analytics.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type ReactiveObject } from '@dxos/live-object';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type TextContentBlock } from '@dxos/schema';\n\nexport const useOnEditAnalytics = (\n message: ReactiveObject<any>,\n textBlock: TextContentBlock | undefined,\n editing: boolean,\n) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const onEdit = useCallback(() => {\n const space = getSpace(message);\n if (!space || !textBlock) {\n return;\n }\n\n void dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: space.id,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n }),\n );\n }, [dispatch, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type Live } from '@dxos/live-object';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type DataType } from '@dxos/schema';\n\nexport const useOnEditAnalytics = (\n message: Live<any>,\n textBlock: DataType.MessageBlock.Text | undefined,\n editing: boolean,\n) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const onEdit = useCallback(() => {\n const space = getSpace(message);\n if (!space || !textBlock) {\n return;\n }\n\n void dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: space.id,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n }),\n );\n }, [dispatch, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n"],
5
5
  "mappings": ";;;AAIA,SAASA,WAAWC,gBAAgB;AAK7B,IAAMC,YAAY,CAACC,OAAeC,YAAAA;AACvC,QAAM,CAACC,YAAYC,aAAAA,IAAiBC,SAAS,KAAA;AAC7CC,YAAU,MAAA;AACR,QAAI,CAACL,SAAS,CAACC,SAAS;AACtB;IACF;AAEA,UAAMK,cAAcN,MAAMO,OAAO,UAAUN,OAAAA,IAAW,CAACO,WAAAA;AACrD,YAAM,EAAEC,MAAK,IAAKD,OAAOE,WAAW,CAAC;AACrCP,oBAAcM,UAAU,YAAA;IAC1B,CAAA;AAEA,UAAME,IAAIC,YAAY,MAAA;AACpBT,oBAAc,CAACU,SAAAA;AACb,YAAI,OAAOA,MAAMC,OAAO,YAAYC,KAAKC,IAAG,IAAKH,KAAKC,KAAK,KAAQ;AACjE,iBAAOG;QACT,OAAO;AACL,iBAAOJ;QACT;MACF,CAAA;IACF,GAAG,GAAA;AAEH,WAAO,MAAA;AACLP,kBAAAA;AACAY,oBAAcP,CAAAA;IAChB;EACF,GAAG;IAACX;IAAOC;GAAQ;AAEnB,SAAOC;AACT;;;AClCA,SAASiB,mBAAmB;AAE5B,SAASC,cAAcC,2BAA2B;AAElD,SAASC,2BAA2B;AACpC,SAASC,gBAAgB;AACzB,SAASC,uBAAuB;AAGzB,IAAMC,qBAAqB,CAChCC,SACAC,WACAC,YAAAA;AAEA,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,QAAMC,SAASC,YAAY,MAAA;AACzB,UAAMC,QAAQC,SAAST,OAAAA;AACvB,QAAI,CAACQ,SAAS,CAACP,WAAW;AACxB;IACF;AAEA,SAAKG,SACHM,aAAaC,oBAAoBC,WAAW;MAC1CC,MAAM;MACNC,YAAY;QACVC,SAASP,MAAMQ;QACfC,WAAWjB,QAAQgB;QACnBE,eAAejB,WAAWkB,KAAKC;MACjC;IACF,CAAA,CAAA;EAEJ,GAAG;IAAChB;IAAUJ;IAASC;GAAU;AAEjCoB,kBAAgBnB,SAAS,MAAM,OAAOI,MAAAA;AACxC;",
6
6
  "names": ["useEffect", "useState", "useStatus", "space", "channel", "processing", "setProcessing", "useState", "useEffect", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval", "useCallback", "createIntent", "useIntentDispatcher", "ObservabilityAction", "getSpace", "useOnTransition", "useOnEditAnalytics", "message", "textBlock", "editing", "dispatchPromise", "dispatch", "useIntentDispatcher", "onEdit", "useCallback", "space", "getSpace", "createIntent", "ObservabilityAction", "SendEvent", "name", "properties", "spaceId", "id", "messageId", "messageLength", "text", "length", "useOnTransition"]
7
7
  }
@@ -0,0 +1,19 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // packages/plugins/plugin-thread/src/capabilities/index.ts
4
+ import { lazy } from "@dxos/app-framework";
5
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-25K4ELOR.mjs"));
6
+ var IntentResolver = lazy(() => import("./intent-resolver-GHN5XIMY.mjs"));
7
+ var Markdown = lazy(() => import("./markdown-WMR5AZRI.mjs"));
8
+ var ReactSurface = lazy(() => import("./react-surface-FSBMYEZJ.mjs"));
9
+ var ThreadSettings = lazy(() => import("./settings-TJ53GIH3.mjs"));
10
+ var ThreadState = lazy(() => import("./state-IRLEO2SB.mjs"));
11
+
12
+ export {
13
+ AppGraphBuilder,
14
+ IntentResolver,
15
+ Markdown,
16
+ ReactSurface,
17
+ ThreadState
18
+ };
19
+ //# sourceMappingURL=chunk-KUQP2ES3.mjs.map
@@ -0,0 +1,94 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ THREAD_PLUGIN
4
+ } from "./chunk-42F2DTMM.mjs";
5
+
6
+ // packages/plugins/plugin-thread/src/types.ts
7
+ import { Schema } from "effect";
8
+ import { SpaceIdSchema } from "@dxos/echo-schema";
9
+ import { ChannelType, ThreadType } from "@dxos/plugin-space/types";
10
+ import { EchoObjectSchema } from "@dxos/react-client/echo";
11
+ import { DataType } from "@dxos/schema";
12
+ var ThreadAction;
13
+ (function(ThreadAction2) {
14
+ const THREAD_ACTION = `${THREAD_PLUGIN}/action`;
15
+ class CreateChannel extends Schema.TaggedClass()(`${THREAD_ACTION}/create-channel`, {
16
+ input: Schema.Struct({
17
+ spaceId: SpaceIdSchema,
18
+ name: Schema.optional(Schema.String)
19
+ }),
20
+ output: Schema.Struct({
21
+ object: ChannelType
22
+ })
23
+ }) {
24
+ }
25
+ ThreadAction2.CreateChannel = CreateChannel;
26
+ class Create extends Schema.TaggedClass()(`${THREAD_ACTION}/create`, {
27
+ input: Schema.Struct({
28
+ name: Schema.optional(Schema.String),
29
+ cursor: Schema.String,
30
+ subject: EchoObjectSchema
31
+ }),
32
+ output: Schema.Struct({
33
+ object: ThreadType
34
+ })
35
+ }) {
36
+ }
37
+ ThreadAction2.Create = Create;
38
+ class Delete extends Schema.TaggedClass()(`${THREAD_ACTION}/delete`, {
39
+ input: Schema.Struct({
40
+ thread: ThreadType,
41
+ subject: EchoObjectSchema,
42
+ cursor: Schema.optional(Schema.String)
43
+ }),
44
+ output: Schema.Void
45
+ }) {
46
+ }
47
+ ThreadAction2.Delete = Delete;
48
+ class Select extends Schema.TaggedClass()(`${THREAD_ACTION}/select`, {
49
+ input: Schema.Struct({
50
+ current: Schema.String
51
+ }),
52
+ output: Schema.Void
53
+ }) {
54
+ }
55
+ ThreadAction2.Select = Select;
56
+ class ToggleResolved extends Schema.TaggedClass()(`${THREAD_ACTION}/toggle-resolved`, {
57
+ input: Schema.Struct({
58
+ thread: ThreadType
59
+ }),
60
+ output: Schema.Void
61
+ }) {
62
+ }
63
+ ThreadAction2.ToggleResolved = ToggleResolved;
64
+ class AddMessage extends Schema.TaggedClass()(`${THREAD_ACTION}/add-message`, {
65
+ input: Schema.Struct({
66
+ subject: EchoObjectSchema,
67
+ thread: ThreadType,
68
+ sender: DataType.Actor,
69
+ text: Schema.String
70
+ }),
71
+ output: Schema.Void
72
+ }) {
73
+ }
74
+ ThreadAction2.AddMessage = AddMessage;
75
+ class DeleteMessage extends Schema.TaggedClass()(`${THREAD_ACTION}/delete-message`, {
76
+ input: Schema.Struct({
77
+ thread: ThreadType,
78
+ subject: EchoObjectSchema,
79
+ messageId: Schema.String,
80
+ message: Schema.optional(DataType.Message),
81
+ messageIndex: Schema.optional(Schema.Number)
82
+ }),
83
+ output: Schema.Void
84
+ }) {
85
+ }
86
+ ThreadAction2.DeleteMessage = DeleteMessage;
87
+ })(ThreadAction || (ThreadAction = {}));
88
+ var ThreadSettingsSchema = Schema.mutable(Schema.Struct({}));
89
+
90
+ export {
91
+ ThreadAction,
92
+ ThreadSettingsSchema
93
+ };
94
+ //# sourceMappingURL=chunk-XTZJQJY4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { SpaceIdSchema } from '@dxos/echo-schema';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { EchoObjectSchema } from '@dxos/react-client/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadAction {\n const THREAD_ACTION = `${THREAD_PLUGIN}/action`;\n\n export class CreateChannel extends Schema.TaggedClass<CreateChannel>()(`${THREAD_ACTION}/create-channel`, {\n input: Schema.Struct({\n spaceId: SpaceIdSchema,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: ChannelType,\n }),\n }) {}\n\n export class Create extends Schema.TaggedClass<Create>()(`${THREAD_ACTION}/create`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n cursor: Schema.String,\n subject: EchoObjectSchema,\n }),\n output: Schema.Struct({\n object: ThreadType,\n }),\n }) {}\n\n export class Delete extends Schema.TaggedClass<Delete>()(`${THREAD_ACTION}/delete`, {\n input: Schema.Struct({\n thread: ThreadType,\n subject: EchoObjectSchema,\n cursor: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class Select extends Schema.TaggedClass<Select>()(`${THREAD_ACTION}/select`, {\n input: Schema.Struct({\n current: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n\n export class ToggleResolved extends Schema.TaggedClass<ToggleResolved>()(`${THREAD_ACTION}/toggle-resolved`, {\n input: Schema.Struct({\n thread: ThreadType,\n }),\n output: Schema.Void,\n }) {}\n\n export class AddMessage extends Schema.TaggedClass<AddMessage>()(`${THREAD_ACTION}/add-message`, {\n input: Schema.Struct({\n subject: EchoObjectSchema,\n thread: ThreadType,\n sender: DataType.Actor,\n text: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n\n export class DeleteMessage extends Schema.TaggedClass<DeleteMessage>()(`${THREAD_ACTION}/delete-message`, {\n input: Schema.Struct({\n thread: ThreadType,\n subject: EchoObjectSchema,\n messageId: Schema.String,\n message: Schema.optional(DataType.Message),\n messageIndex: Schema.optional(Schema.Number),\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport const ThreadSettingsSchema = Schema.mutable(Schema.Struct({}));\nexport type ThreadSettingsProps = Schema.Schema.Type<typeof ThreadSettingsSchema>;\n\nexport interface ThreadModel {\n root: ThreadType;\n}\n\ntype SubjectId = string;\nexport type ViewState = { showResolvedThreads: boolean };\nexport type ViewStore = Record<SubjectId, ViewState>;\n\nexport type ThreadState = {\n /** Current channel activity. */\n activities: Record<string, string | undefined>;\n /** In-memory draft threads. */\n drafts: Record<string, ThreadType[]>;\n current?: string | undefined;\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,qBAAqB;AAC9B,SAASC,aAAaC,kBAAkB;AACxC,SAASC,wBAAwB;AACjC,SAASC,gBAAgB;;UAIRC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,sBAAsBC,OAAOC,YAAW,EAAkB,GAAGJ,aAAAA,mBAAgC;IACxGK,OAAOF,OAAOG,OAAO;MACnBC,SAASC;MACTC,MAAMN,OAAOO,SAASP,OAAOQ,MAAM;IACrC,CAAA;IACAC,QAAQT,OAAOG,OAAO;MACpBO,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBARSZ,gBAAAA;EAUN,MAAMa,eAAeZ,OAAOC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAClFK,OAAOF,OAAOG,OAAO;MACnBG,MAAMN,OAAOO,SAASP,OAAOQ,MAAM;MACnCK,QAAQb,OAAOQ;MACfM,SAASC;IACX,CAAA;IACAN,QAAQT,OAAOG,OAAO;MACpBO,QAAQM;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBATSJ,SAAAA;EAWN,MAAMK,eAAejB,OAAOC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAClFK,OAAOF,OAAOG,OAAO;MACnBe,QAAQF;MACRF,SAASC;MACTF,QAAQb,OAAOO,SAASP,OAAOQ,MAAM;IACvC,CAAA;IACAC,QAAQT,OAAOmB;EACjB,CAAA,EAAA;EAAI;gBAPSF,SAAAA;EASN,MAAMG,eAAepB,OAAOC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAClFK,OAAOF,OAAOG,OAAO;MACnBkB,SAASrB,OAAOQ;IAClB,CAAA;IACAC,QAAQT,OAAOmB;EACjB,CAAA,EAAA;EAAI;gBALSC,SAAAA;EAON,MAAME,uBAAuBtB,OAAOC,YAAW,EAAmB,GAAGJ,aAAAA,oBAAiC;IAC3GK,OAAOF,OAAOG,OAAO;MACnBe,QAAQF;IACV,CAAA;IACAP,QAAQT,OAAOmB;EACjB,CAAA,EAAA;EAAI;gBALSG,iBAAAA;EAON,MAAMC,mBAAmBvB,OAAOC,YAAW,EAAe,GAAGJ,aAAAA,gBAA6B;IAC/FK,OAAOF,OAAOG,OAAO;MACnBW,SAASC;MACTG,QAAQF;MACRQ,QAAQC,SAASC;MACjBC,MAAM3B,OAAOQ;IACf,CAAA;IACAC,QAAQT,OAAOmB;EACjB,CAAA,EAAA;EAAI;gBARSI,aAAAA;EAUN,MAAMK,sBAAsB5B,OAAOC,YAAW,EAAkB,GAAGJ,aAAAA,mBAAgC;IACxGK,OAAOF,OAAOG,OAAO;MACnBe,QAAQF;MACRF,SAASC;MACTc,WAAW7B,OAAOQ;MAClBsB,SAAS9B,OAAOO,SAASkB,SAASM,OAAO;MACzCC,cAAchC,OAAOO,SAASP,OAAOiC,MAAM;IAC7C,CAAA;IACAxB,QAAQT,OAAOmB;EACjB,CAAA,EAAA;EAAI;gBATSS,gBAAAA;AAUf,GAnEiBhC,iBAAAA,eAAAA,CAAAA,EAAAA;AAqEV,IAAMsC,uBAAuBlC,OAAOmC,QAAQnC,OAAOG,OAAO,CAAC,CAAA,CAAA;",
6
+ "names": ["Schema", "SpaceIdSchema", "ChannelType", "ThreadType", "EchoObjectSchema", "DataType", "ThreadAction", "THREAD_ACTION", "THREAD_PLUGIN", "CreateChannel", "Schema", "TaggedClass", "input", "Struct", "spaceId", "SpaceIdSchema", "name", "optional", "String", "output", "object", "ChannelType", "Create", "cursor", "subject", "EchoObjectSchema", "ThreadType", "Delete", "thread", "Void", "Select", "current", "ToggleResolved", "AddMessage", "sender", "DataType", "Actor", "text", "DeleteMessage", "messageId", "message", "Message", "messageIndex", "Number", "ThreadSettingsSchema", "mutable"]
7
+ }
@@ -5,17 +5,17 @@ import {
5
5
  Markdown,
6
6
  ReactSurface,
7
7
  ThreadState
8
- } from "./chunk-WSE23GSG.mjs";
8
+ } from "./chunk-KUQP2ES3.mjs";
9
9
  import {
10
10
  ThreadCapabilities
11
11
  } from "./chunk-WLY2HMDB.mjs";
12
12
  import {
13
13
  useOnEditAnalytics,
14
14
  useStatus
15
- } from "./chunk-J56FORYF.mjs";
15
+ } from "./chunk-IZWN4KAY.mjs";
16
16
  import {
17
17
  ThreadAction
18
- } from "./chunk-E446MGLP.mjs";
18
+ } from "./chunk-XTZJQJY4.mjs";
19
19
  import {
20
20
  THREAD_ITEM,
21
21
  THREAD_PLUGIN,
@@ -37,7 +37,7 @@ import { SpaceCapabilities, ThreadEvents as ThreadEvents2 } from "@dxos/plugin-s
37
37
  import { ChannelType as ChannelType2, defineObjectForm, ThreadType } from "@dxos/plugin-space/types";
38
38
  import { RefArray } from "@dxos/react-client/echo";
39
39
  import { translations as threadTranslations } from "@dxos/react-ui-thread";
40
- import { MessageType, MessageTypeV1, MessageTypeV1ToV2 } from "@dxos/schema";
40
+ import { DataType } from "@dxos/schema";
41
41
 
42
42
  // packages/plugins/plugin-thread/src/translations.ts
43
43
  import { ChannelType } from "@dxos/plugin-space/types";
@@ -122,7 +122,7 @@ var ThreadPlugin = () => definePlugin(meta, [
122
122
  }
123
123
  }),
124
124
  contributes(Capabilities.Metadata, {
125
- id: MessageType.typename,
125
+ id: DataType.Message.typename,
126
126
  metadata: {
127
127
  // TODO(wittjosiah): Move out of metadata.
128
128
  loadReferences: (message) => []
@@ -167,15 +167,15 @@ var ThreadPlugin = () => definePlugin(meta, [
167
167
  activatesOn: ClientEvents.SetupSchema,
168
168
  activate: () => contributes(ClientCapabilities.Schema, [
169
169
  ThreadType,
170
- MessageType,
171
- MessageTypeV1
170
+ DataType.Message,
171
+ DataType.MessageV1
172
172
  ])
173
173
  }),
174
174
  defineModule({
175
175
  id: `${meta.id}/module/migration`,
176
176
  activatesOn: ClientEvents.SetupMigration,
177
177
  activate: () => contributes(ClientCapabilities.Migration, [
178
- MessageTypeV1ToV2
178
+ DataType.MessageV1ToV2
179
179
  ])
180
180
  }),
181
181
  defineModule({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events.ts", "../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadEvents {\n export const SetupActivity = Events.createStateEvent(`${THREAD_PLUGIN}/setup-activity`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, ThreadType } from '@dxos/plugin-space/types';\nimport { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { MessageType, MessageTypeV1, MessageTypeV1ToV2 } from '@dxos/schema';\n\nimport { AppGraphBuilder, IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { ThreadEvents as LocalThreadEvents } from './events';\nimport { meta, THREAD_ITEM } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\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: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n icon: 'ph--hash--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: MessageType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ReactiveEchoObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\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: ChannelType,\n getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType, MessageTypeV1]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [MessageTypeV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread, LocalThreadEvents.SetupActivity],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n 'object name placeholder': 'New channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
5
- "mappings": "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",
6
- "names": ["Events", "ThreadEvents", "SetupActivity", "Events", "createStateEvent", "THREAD_PLUGIN", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "ThreadEvents", "ChannelType", "defineObjectForm", "ThreadType", "RefArray", "translations", "threadTranslations", "MessageType", "MessageTypeV1", "MessageTypeV1ToV2", "ChannelType", "ChannelType", "typename", "THREAD_PLUGIN", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "ChannelType", "typename", "metadata", "icon", "ThreadType", "loadReferences", "thread", "RefArray", "loadAll", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "ClientCapabilities", "Schema", "MessageTypeV1", "SetupMigration", "Migration", "MessageTypeV1ToV2", "MarkdownEvents", "SetupExtensions", "Markdown", "SetupReactSurface", "activatesBefore", "ThreadEvents", "SetupThread", "LocalThreadEvents", "SetupActivity", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadEvents {\n export const SetupActivity = Events.createStateEvent(`${THREAD_PLUGIN}/setup-activity`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, ThreadType } from '@dxos/plugin-space/types';\nimport { type AnyLiveObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { DataType } from '@dxos/schema';\n\nimport { AppGraphBuilder, IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { ThreadEvents as LocalThreadEvents } from './events';\nimport { meta, THREAD_ITEM } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\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: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n icon: 'ph--hash--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: DataType.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: DataType.Message) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: AnyLiveObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\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: ChannelType,\n getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, DataType.Message, DataType.MessageV1]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [DataType.MessageV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread, LocalThreadEvents.SetupActivity],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n 'object name placeholder': 'New channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
5
+ "mappings": "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",
6
+ "names": ["Events", "ThreadEvents", "SetupActivity", "Events", "createStateEvent", "THREAD_PLUGIN", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "ThreadEvents", "ChannelType", "defineObjectForm", "ThreadType", "RefArray", "translations", "threadTranslations", "DataType", "ChannelType", "ChannelType", "typename", "THREAD_PLUGIN", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "ChannelType", "typename", "metadata", "icon", "ThreadType", "loadReferences", "thread", "RefArray", "loadAll", "messages", "DataType", "Message", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "ClientCapabilities", "Schema", "MessageV1", "SetupMigration", "Migration", "MessageV1ToV2", "MarkdownEvents", "SetupExtensions", "Markdown", "SetupReactSurface", "activatesBefore", "ThreadEvents", "SetupThread", "LocalThreadEvents", "SetupActivity", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
7
7
  }
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-WLY2HMDB.mjs";
5
5
  import {
6
6
  ThreadAction
7
- } from "./chunk-E446MGLP.mjs";
7
+ } from "./chunk-XTZJQJY4.mjs";
8
8
  import {
9
9
  THREAD_PLUGIN
10
10
  } from "./chunk-42F2DTMM.mjs";
@@ -19,15 +19,15 @@ import { log } from "@dxos/log";
19
19
  import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
20
20
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
21
21
  import { ChannelType, ThreadType } from "@dxos/plugin-space/types";
22
- import { create, fullyQualifiedId, getSpace, makeRef } from "@dxos/react-client/echo";
23
- import { MessageType } from "@dxos/schema";
22
+ import { live, fullyQualifiedId, getSpace, makeRef } from "@dxos/react-client/echo";
23
+ import { DataType } from "@dxos/schema";
24
24
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/capabilities/intent-resolver.ts";
25
25
  var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
26
26
  createResolver({
27
27
  intent: ThreadAction.CreateChannel,
28
28
  resolve: ({ spaceId, name }) => ({
29
29
  data: {
30
- object: create(ChannelType, {
30
+ object: live(ChannelType, {
31
31
  name,
32
32
  queue: refFromDXN(new DXN(DXN.kind.QUEUE, [
33
33
  QueueSubspaceTags.DATA,
@@ -58,7 +58,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
58
58
  }
59
59
  const { state } = context.requestCapability(ThreadCapabilities.MutableState);
60
60
  const subjectId = fullyQualifiedId(subject);
61
- const thread = create(ThreadType, {
61
+ const thread = live(ThreadType, {
62
62
  name,
63
63
  anchor: cursor,
64
64
  messages: [],
@@ -206,7 +206,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
206
206
  ]
207
207
  });
208
208
  const intents = [];
209
- const message = create(MessageType, {
209
+ const message = live(DataType.Message, {
210
210
  sender,
211
211
  created: (/* @__PURE__ */ new Date()).toISOString(),
212
212
  blocks: [
@@ -325,4 +325,4 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
325
325
  export {
326
326
  intent_resolver_default as default
327
327
  };
328
- //# sourceMappingURL=intent-resolver-OURFRSSF.mjs.map
328
+ //# sourceMappingURL=intent-resolver-GHN5XIMY.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 { Capabilities, contributes, createIntent, createResolver, type PluginsContext } from '@dxos/app-framework';\nimport { ObjectId, Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, QueueSubspaceTags } from '@dxos/keys';\nimport { refFromDXN } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { live, fullyQualifiedId, getSpace, makeRef } from '@dxos/react-client/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.CreateChannel,\n resolve: ({ spaceId, name }) => ({\n data: {\n object: live(ChannelType, {\n name,\n queue: refFromDXN(new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, spaceId, ObjectId.random()])),\n }),\n },\n }),\n }),\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, cursor, subject }) => {\n // Seed the threads array if it does not exist.\n if (subject?.threads === undefined) {\n try {\n // Static schema will throw an error if subject does not support threads array property.\n subject.threads = [];\n } catch (err) {\n log.error('Subject does not support threads array', { typename: subject?.typename });\n return;\n }\n }\n\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const thread = live(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(thread);\n } else {\n state.drafts[subjectId] = [thread];\n }\n\n return {\n data: { object: thread },\n intents: [\n createIntent(ThreadAction.Select, { current: fullyQualifiedId(thread) }),\n createIntent(DeckAction.ChangeCompanion, {\n primary: subjectId,\n companion: `${subjectId}${ATTENDABLE_PATH_SEPARATOR}comments`,\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n state.current = current;\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n invariant(space, 'Space not found');\n const spaceId = space.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: {\n spaceId,\n threadId: thread.id,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: ({ subject, thread }, undo) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remove it.\n const index = draft.findIndex((t) => t.id === thread.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(thread);\n if (!space || !subject.threads) {\n return;\n }\n\n if (!undo) {\n const index = subject.threads.findIndex((t: any) => t?.id === thread.id);\n const cursor = subject.threads[index]?.anchor;\n if (index !== -1) {\n subject.threads?.splice(index, 1);\n }\n\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: THREAD_PLUGIN }],\n data: { cursor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): SDK should do this automatically.\n const savedThread = space.db.add(thread);\n subject.threads.push(savedThread);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.AddMessage,\n resolve: ({ thread, subject, sender, text }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const space = getSpace(subject);\n invariant(space, 'Space not found');\n const intents = [];\n\n const message = live(DataType.Message, {\n sender,\n created: new Date().toISOString(),\n blocks: [{ type: 'text', text }],\n // TODO(wittjosiah): Context based on attention.\n // context: context ? makeRef(context) : undefined,\n });\n thread.messages.push(makeRef(message));\n\n if (state.drafts[subjectId]?.find((t) => t === thread)) {\n // Move draft to document.\n thread.status = 'active';\n subject.threads ? subject.threads.push(makeRef(thread)) : (subject.threads = [makeRef(thread)]);\n state.drafts[subjectId] = state.drafts[subjectId]?.filter(({ id }) => id !== thread.id);\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.create',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.add',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n threadLength: thread.messages.length,\n messageId: message.id,\n messageLength: text.length,\n },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {\n const space = getSpace(subject);\n invariant(space, 'Space not found');\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, thread })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: THREAD_PLUGIN }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n messageId: message.id,\n },\n }),\n ],\n };\n } else {\n if (messageIndex === undefined || !message) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, makeRef(message));\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.undo-delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n messageId: message.id,\n },\n }),\n ],\n };\n }\n },\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "createIntent", "createResolver", "ObjectId", "Ref", "invariant", "DXN", "QueueSubspaceTags", "refFromDXN", "log", "ATTENDABLE_PATH_SEPARATOR", "DeckAction", "ObservabilityAction", "ChannelType", "ThreadType", "live", "fullyQualifiedId", "getSpace", "makeRef", "DataType", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ThreadAction", "CreateChannel", "resolve", "spaceId", "name", "data", "object", "live", "ChannelType", "queue", "refFromDXN", "DXN", "kind", "QUEUE", "QueueSubspaceTags", "DATA", "ObjectId", "random", "Create", "cursor", "subject", "threads", "undefined", "err", "log", "error", "typename", "state", "requestCapability", "ThreadCapabilities", "MutableState", "subjectId", "fullyQualifiedId", "thread", "ThreadType", "anchor", "messages", "status", "draft", "drafts", "push", "intents", "createIntent", "Select", "current", "DeckAction", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "ToggleResolved", "space", "getSpace", "invariant", "id", "ObservabilityAction", "SendEvent", "properties", "threadId", "Delete", "undo", "index", "findIndex", "t", "splice", "db", "remove", "undoable", "message", "ns", "THREAD_PLUGIN", "savedThread", "add", "AddMessage", "sender", "text", "DataType", "Message", "created", "Date", "toISOString", "blocks", "type", "makeRef", "find", "filter", "threadLength", "length", "messageId", "messageLength", "DeleteMessage", "messageIndex", "Ref", "hasObjectId", "target"]
7
+ }
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-WLY2HMDB.mjs";
5
5
  import {
6
6
  ThreadAction
7
- } from "./chunk-E446MGLP.mjs";
7
+ } from "./chunk-XTZJQJY4.mjs";
8
8
  import "./chunk-42F2DTMM.mjs";
9
9
 
10
10
  // packages/plugins/plugin-thread/src/capabilities/markdown.ts
@@ -109,4 +109,4 @@ var markdown_default = (context) => contributes(MarkdownCapabilities.Extensions,
109
109
  export {
110
110
  markdown_default as default
111
111
  };
112
- //# sourceMappingURL=markdown-ZKU23UVD.mjs.map
112
+ //# sourceMappingURL=markdown-WMR5AZRI.mjs.map