@dxos/plugin-thread 0.8.4-main.ead640a → 0.8.4-main.effb148878

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 (600) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/ChannelArticle-UJHPOUWA.mjs +28 -0
  4. package/dist/lib/neutral/ChannelArticle-UJHPOUWA.mjs.map +7 -0
  5. package/dist/lib/neutral/ChannelChat-LZEDFJVD.mjs +10 -0
  6. package/dist/lib/neutral/CommentsCompanion-3H3ZVIBH.mjs +208 -0
  7. package/dist/lib/neutral/CommentsCompanion-3H3ZVIBH.mjs.map +7 -0
  8. package/dist/lib/neutral/ThreadContainer-QWB6WRMI.mjs +61 -0
  9. package/dist/lib/neutral/ThreadContainer-QWB6WRMI.mjs.map +7 -0
  10. package/dist/lib/neutral/ThreadPlugin.mjs +96 -0
  11. package/dist/lib/neutral/ThreadPlugin.mjs.map +7 -0
  12. package/dist/lib/neutral/ThreadPlugin.node.mjs +40 -0
  13. package/dist/lib/neutral/ThreadPlugin.node.mjs.map +7 -0
  14. package/dist/lib/neutral/ThreadPlugin.workerd.mjs +24 -0
  15. package/dist/lib/neutral/ThreadPlugin.workerd.mjs.map +7 -0
  16. package/dist/lib/neutral/ThreadSettings-5MKTDK3A.mjs +15 -0
  17. package/dist/lib/neutral/ThreadSettings-5MKTDK3A.mjs.map +7 -0
  18. package/dist/lib/neutral/add-message-DATVSMVU.mjs +122 -0
  19. package/dist/lib/neutral/add-message-DATVSMVU.mjs.map +7 -0
  20. package/dist/lib/neutral/agent-runner-JK2Y4RU3.mjs +244 -0
  21. package/dist/lib/neutral/agent-runner-JK2Y4RU3.mjs.map +7 -0
  22. package/dist/lib/neutral/app-graph-builder-ACCHZXZA.mjs +120 -0
  23. package/dist/lib/neutral/app-graph-builder-ACCHZXZA.mjs.map +7 -0
  24. package/dist/lib/neutral/append-channel-message-4ACLATZY.mjs +40 -0
  25. package/dist/lib/neutral/append-channel-message-4ACLATZY.mjs.map +7 -0
  26. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs +15 -0
  27. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs.map +7 -0
  28. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  29. package/dist/lib/neutral/capabilities/index.mjs +27 -0
  30. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-5T5LPLBN.mjs +36 -0
  32. package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-6HC3NAXD.mjs +164 -0
  34. package/dist/lib/neutral/chunk-6HC3NAXD.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-BHEZLLXG.mjs +55 -0
  36. package/dist/lib/neutral/chunk-BHEZLLXG.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-D3SCNWLT.mjs +335 -0
  38. package/dist/lib/neutral/chunk-D3SCNWLT.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  40. package/dist/lib/{browser/chunk-CP7E2HRE.mjs → neutral/chunk-JLY4NVTA.mjs} +12 -5
  41. package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-QFDT33VT.mjs +69 -0
  43. package/dist/lib/neutral/chunk-QFDT33VT.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-TT6PWRR5.mjs +8 -0
  45. package/dist/lib/neutral/chunk-TT6PWRR5.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-WMP3QCOR.mjs +46 -0
  47. package/dist/lib/neutral/chunk-WMP3QCOR.mjs.map +7 -0
  48. package/dist/lib/neutral/components/index.mjs +541 -0
  49. package/dist/lib/neutral/components/index.mjs.map +7 -0
  50. package/dist/lib/neutral/containers/index.mjs +15 -0
  51. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  52. package/dist/lib/neutral/create-2NJDD73M.mjs +61 -0
  53. package/dist/lib/neutral/create-2NJDD73M.mjs.map +7 -0
  54. package/dist/lib/neutral/create-channel-RYSV44N3.mjs +19 -0
  55. package/dist/lib/neutral/create-channel-RYSV44N3.mjs.map +7 -0
  56. package/dist/lib/neutral/create-object-D5XEG7MQ.mjs +28 -0
  57. package/dist/lib/neutral/create-object-D5XEG7MQ.mjs.map +7 -0
  58. package/dist/lib/neutral/create-proposals-7UZYZ32V.mjs +56 -0
  59. package/dist/lib/neutral/create-proposals-7UZYZ32V.mjs.map +7 -0
  60. package/dist/lib/neutral/delete-JVGAPD46.mjs +57 -0
  61. package/dist/lib/neutral/delete-JVGAPD46.mjs.map +7 -0
  62. package/dist/lib/neutral/delete-message-5EGR3HWH.mjs +54 -0
  63. package/dist/lib/neutral/delete-message-5EGR3HWH.mjs.map +7 -0
  64. package/dist/lib/neutral/hooks/index.mjs +10 -0
  65. package/dist/lib/neutral/index.mjs +32 -0
  66. package/dist/lib/neutral/markdown-B6RNVR2H.mjs +83 -0
  67. package/dist/lib/neutral/markdown-B6RNVR2H.mjs.map +7 -0
  68. package/dist/lib/neutral/meta.json +1 -0
  69. package/dist/lib/neutral/meta.mjs +10 -0
  70. package/dist/lib/neutral/on-create-space-ZQF55KSO.mjs +23 -0
  71. package/dist/lib/neutral/on-create-space-ZQF55KSO.mjs.map +7 -0
  72. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs +13 -0
  73. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs.map +7 -0
  74. package/dist/lib/neutral/operations/index.mjs +8 -0
  75. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  76. package/dist/lib/neutral/plugin.mjs +16 -0
  77. package/dist/lib/neutral/plugin.mjs.map +7 -0
  78. package/dist/lib/neutral/react-surface-ZSIQHN5P.mjs +76 -0
  79. package/dist/lib/neutral/react-surface-ZSIQHN5P.mjs.map +7 -0
  80. package/dist/lib/neutral/respond-to-thread-LVLDZON3.mjs +32 -0
  81. package/dist/lib/neutral/respond-to-thread-LVLDZON3.mjs.map +7 -0
  82. package/dist/lib/neutral/restore-Z5PYV7I2.mjs +32 -0
  83. package/dist/lib/neutral/restore-Z5PYV7I2.mjs.map +7 -0
  84. package/dist/lib/neutral/restore-message-B263PLUH.mjs +33 -0
  85. package/dist/lib/neutral/restore-message-B263PLUH.mjs.map +7 -0
  86. package/dist/lib/neutral/select-GXDEAH5D.mjs +24 -0
  87. package/dist/lib/neutral/select-GXDEAH5D.mjs.map +7 -0
  88. package/dist/lib/neutral/set-agent-config-7HHS6KZZ.mjs +20 -0
  89. package/dist/lib/neutral/set-agent-config-7HHS6KZZ.mjs.map +7 -0
  90. package/dist/lib/neutral/settings-HK4EB6TF.mjs +30 -0
  91. package/dist/lib/neutral/settings-HK4EB6TF.mjs.map +7 -0
  92. package/dist/lib/neutral/state-UU7VEAKV.mjs +22 -0
  93. package/dist/lib/neutral/state-UU7VEAKV.mjs.map +7 -0
  94. package/dist/lib/neutral/testing/index.mjs +58 -0
  95. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  96. package/dist/lib/neutral/toggle-resolved-LBVNAVVF.mjs +36 -0
  97. package/dist/lib/neutral/toggle-resolved-LBVNAVVF.mjs.map +7 -0
  98. package/dist/lib/neutral/translations.mjs +91 -0
  99. package/dist/lib/neutral/translations.mjs.map +7 -0
  100. package/dist/lib/neutral/types/index.mjs +16 -0
  101. package/dist/lib/neutral/types/index.mjs.map +7 -0
  102. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs +54 -0
  103. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs.map +7 -0
  104. package/dist/types/src/ThreadPlugin.d.ts +3 -1
  105. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  106. package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
  107. package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
  108. package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
  109. package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
  110. package/dist/types/src/ThreadPlugin.workerd.d.ts +4 -0
  111. package/dist/types/src/ThreadPlugin.workerd.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/index.d.ts +2 -0
  113. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/thread-blueprint.d.ts +4 -0
  115. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/agent-runner.d.ts +22 -0
  117. package/dist/types/src/capabilities/agent-runner.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  119. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  120. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  121. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  123. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/index.d.ts +16 -15
  125. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/markdown.d.ts +3 -2
  127. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  129. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  131. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/settings.d.ts +5 -2
  133. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/state.d.ts +5 -5
  135. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  136. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  137. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  138. package/dist/types/src/components/Chat/Chat.d.ts +51 -0
  139. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  140. package/dist/types/src/components/Chat/index.d.ts +2 -0
  141. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  142. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  143. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  144. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +160 -0
  145. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  146. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts +14 -0
  147. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  148. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  149. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  150. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
  151. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
  152. package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
  153. package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
  154. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts +6 -0
  155. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  156. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
  157. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
  158. package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
  159. package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
  160. package/dist/types/src/components/index.d.ts +5 -10
  161. package/dist/types/src/components/index.d.ts.map +1 -1
  162. package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts +13 -0
  163. package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts.map +1 -0
  164. package/dist/types/src/containers/ChannelArticle/ChannelArticle.stories.d.ts +162 -0
  165. package/dist/types/src/containers/ChannelArticle/ChannelArticle.stories.d.ts.map +1 -0
  166. package/dist/types/src/containers/ChannelArticle/index.d.ts +2 -0
  167. package/dist/types/src/containers/ChannelArticle/index.d.ts.map +1 -0
  168. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
  169. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  170. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  171. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  172. package/dist/types/src/containers/CommentsCompanion/CommentsCompanion.d.ts +11 -0
  173. package/dist/types/src/containers/CommentsCompanion/CommentsCompanion.d.ts.map +1 -0
  174. package/dist/types/src/containers/CommentsCompanion/CommentsCompanion.stories.d.ts +198 -0
  175. package/dist/types/src/containers/CommentsCompanion/CommentsCompanion.stories.d.ts.map +1 -0
  176. package/dist/types/src/containers/CommentsCompanion/index.d.ts +2 -0
  177. package/dist/types/src/containers/CommentsCompanion/index.d.ts.map +1 -0
  178. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  179. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  180. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts +162 -0
  181. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  182. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  183. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  184. package/dist/types/src/containers/index.d.ts +6 -0
  185. package/dist/types/src/containers/index.d.ts.map +1 -0
  186. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  187. package/dist/types/src/extensions/command.d.ts.map +1 -0
  188. package/dist/types/src/extensions/index.d.ts +1 -0
  189. package/dist/types/src/extensions/index.d.ts.map +1 -1
  190. package/dist/types/src/extensions/threads.d.ts +9 -4
  191. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  192. package/dist/types/src/hooks/analytics.d.ts +2 -3
  193. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  194. package/dist/types/src/hooks/index.d.ts +0 -4
  195. package/dist/types/src/hooks/index.d.ts.map +1 -1
  196. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  197. package/dist/types/src/index.d.ts +2 -3
  198. package/dist/types/src/index.d.ts.map +1 -1
  199. package/dist/types/src/meta.d.ts +2 -2
  200. package/dist/types/src/meta.d.ts.map +1 -1
  201. package/dist/types/src/operations/add-message.d.ts +5 -0
  202. package/dist/types/src/operations/add-message.d.ts.map +1 -0
  203. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  204. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  205. package/dist/types/src/operations/create-channel.d.ts +5 -0
  206. package/dist/types/src/operations/create-channel.d.ts.map +1 -0
  207. package/dist/types/src/operations/create-proposals.d.ts +5 -0
  208. package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
  209. package/dist/types/src/operations/create.d.ts +5 -0
  210. package/dist/types/src/operations/create.d.ts.map +1 -0
  211. package/dist/types/src/operations/delete-message.d.ts +5 -0
  212. package/dist/types/src/operations/delete-message.d.ts.map +1 -0
  213. package/dist/types/src/operations/delete.d.ts +5 -0
  214. package/dist/types/src/operations/delete.d.ts.map +1 -0
  215. package/dist/types/src/operations/index.d.ts +3 -0
  216. package/dist/types/src/operations/index.d.ts.map +1 -0
  217. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  218. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  219. package/dist/types/src/operations/respond-to-thread.d.ts +5 -0
  220. package/dist/types/src/operations/respond-to-thread.d.ts.map +1 -0
  221. package/dist/types/src/operations/restore-message.d.ts +5 -0
  222. package/dist/types/src/operations/restore-message.d.ts.map +1 -0
  223. package/dist/types/src/operations/restore.d.ts +5 -0
  224. package/dist/types/src/operations/restore.d.ts.map +1 -0
  225. package/dist/types/src/operations/select.d.ts +5 -0
  226. package/dist/types/src/operations/select.d.ts.map +1 -0
  227. package/dist/types/src/operations/set-agent-config.d.ts +5 -0
  228. package/dist/types/src/operations/set-agent-config.d.ts.map +1 -0
  229. package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
  230. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
  231. package/dist/types/src/plugin.d.ts +4 -0
  232. package/dist/types/src/plugin.d.ts.map +1 -0
  233. package/dist/types/src/should-trigger-agent.d.ts +22 -0
  234. package/dist/types/src/should-trigger-agent.d.ts.map +1 -0
  235. package/dist/types/src/should-trigger-agent.test.d.ts +2 -0
  236. package/dist/types/src/should-trigger-agent.test.d.ts.map +1 -0
  237. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +4 -4
  238. package/dist/types/src/testing/data.d.ts.map +1 -0
  239. package/dist/types/src/testing/index.d.ts +1 -1
  240. package/dist/types/src/testing/index.d.ts.map +1 -1
  241. package/dist/types/src/translations.d.ts +142 -74
  242. package/dist/types/src/translations.d.ts.map +1 -1
  243. package/dist/types/src/types/AgentIdentity.d.ts +27 -0
  244. package/dist/types/src/types/AgentIdentity.d.ts.map +1 -0
  245. package/dist/types/src/types/Settings.d.ts +5 -0
  246. package/dist/types/src/types/Settings.d.ts.map +1 -0
  247. package/dist/types/src/types/ThreadCapabilities.d.ts +34 -0
  248. package/dist/types/src/types/ThreadCapabilities.d.ts.map +1 -0
  249. package/dist/types/src/types/ThreadOperation.d.ts +2409 -0
  250. package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
  251. package/dist/types/src/types/index.d.ts +4 -1
  252. package/dist/types/src/types/index.d.ts.map +1 -1
  253. package/dist/types/src/types/types.d.ts +3 -458
  254. package/dist/types/src/types/types.d.ts.map +1 -1
  255. package/dist/types/src/util.d.ts +6 -3
  256. package/dist/types/src/util.d.ts.map +1 -1
  257. package/dist/types/tsconfig.tsbuildinfo +1 -1
  258. package/package.json +156 -85
  259. package/src/ThreadPlugin.node.ts +39 -0
  260. package/src/ThreadPlugin.test.ts +37 -0
  261. package/src/ThreadPlugin.tsx +58 -125
  262. package/src/ThreadPlugin.workerd.ts +20 -0
  263. package/src/blueprints/index.ts +5 -0
  264. package/src/blueprints/thread-blueprint.ts +36 -0
  265. package/src/capabilities/agent-runner.ts +291 -0
  266. package/src/capabilities/app-graph-builder.ts +124 -165
  267. package/src/capabilities/blueprint-definition.ts +19 -0
  268. package/src/capabilities/create-object.ts +30 -0
  269. package/src/capabilities/index.ts +16 -12
  270. package/src/capabilities/markdown.ts +53 -36
  271. package/src/capabilities/operation-handler.ts +16 -0
  272. package/src/capabilities/react-surface.tsx +64 -78
  273. package/src/capabilities/settings.ts +26 -12
  274. package/src/capabilities/state.ts +14 -18
  275. package/src/capabilities/undo-mappings.ts +46 -0
  276. package/src/components/Chat/Chat.tsx +259 -0
  277. package/src/components/Chat/index.ts +5 -0
  278. package/src/components/CommentsPanel/CommentsPanel.stories.tsx +94 -0
  279. package/src/components/CommentsPanel/CommentsPanel.tsx +71 -0
  280. package/src/components/CommentsPanel/CommentsThread.tsx +176 -0
  281. package/src/components/CommentsPanel/index.ts +6 -0
  282. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +83 -47
  283. package/src/components/MessagePanel/index.ts +5 -0
  284. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +32 -0
  285. package/src/components/ThreadSettings/ThreadSettings.tsx +19 -0
  286. package/src/components/ThreadSettings/index.ts +5 -0
  287. package/src/components/index.ts +5 -12
  288. package/src/containers/ChannelArticle/ChannelArticle.stories.tsx +105 -0
  289. package/src/containers/ChannelArticle/ChannelArticle.tsx +42 -0
  290. package/src/containers/ChannelArticle/index.ts +5 -0
  291. package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
  292. package/src/containers/ChannelChat/index.ts +8 -0
  293. package/src/containers/CommentsCompanion/CommentsCompanion.stories.tsx +339 -0
  294. package/src/containers/CommentsCompanion/CommentsCompanion.tsx +216 -0
  295. package/src/containers/CommentsCompanion/index.ts +5 -0
  296. package/src/containers/ThreadContainer/ThreadContainer.stories.tsx +86 -0
  297. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  298. package/src/containers/ThreadContainer/index.ts +8 -0
  299. package/src/containers/index.ts +10 -0
  300. package/src/{components/command-extension.ts → extensions/command.ts} +3 -3
  301. package/src/extensions/index.ts +1 -0
  302. package/src/extensions/threads.ts +88 -43
  303. package/src/hooks/analytics.ts +22 -21
  304. package/src/hooks/index.ts +0 -4
  305. package/src/index.ts +4 -4
  306. package/src/meta.ts +37 -7
  307. package/src/operations/add-message.ts +94 -0
  308. package/src/operations/append-channel-message.ts +37 -0
  309. package/src/operations/create-channel.ts +20 -0
  310. package/src/operations/create-proposals.ts +49 -0
  311. package/src/operations/create.ts +63 -0
  312. package/src/operations/delete-message.ts +53 -0
  313. package/src/operations/delete.ts +63 -0
  314. package/src/operations/index.ts +22 -0
  315. package/src/operations/on-create-space.ts +27 -0
  316. package/src/operations/respond-to-thread.ts +32 -0
  317. package/src/operations/restore-message.ts +38 -0
  318. package/src/operations/restore.ts +38 -0
  319. package/src/operations/select.ts +24 -0
  320. package/src/operations/set-agent-config.ts +24 -0
  321. package/src/operations/toggle-resolved.ts +41 -0
  322. package/src/plugin.ts +11 -0
  323. package/src/should-trigger-agent.test.ts +72 -0
  324. package/src/should-trigger-agent.ts +50 -0
  325. package/src/testing/data.ts +49 -0
  326. package/src/testing/index.ts +1 -1
  327. package/src/translations.ts +75 -75
  328. package/src/types/AgentIdentity.ts +35 -0
  329. package/src/types/Settings.ts +10 -0
  330. package/src/types/ThreadCapabilities.ts +46 -0
  331. package/src/types/ThreadOperation.ts +217 -0
  332. package/src/types/index.ts +5 -1
  333. package/src/types/types.ts +4 -109
  334. package/src/util.ts +37 -5
  335. package/dist/lib/browser/ChannelContainer-BGDGZHV4.mjs +0 -16
  336. package/dist/lib/browser/ChatContainer-75KJZ4XR.mjs +0 -15
  337. package/dist/lib/browser/app-graph-builder-ODKIAXR7.mjs +0 -171
  338. package/dist/lib/browser/app-graph-builder-ODKIAXR7.mjs.map +0 -7
  339. package/dist/lib/browser/call-manager-BCKLI4QD.mjs +0 -24
  340. package/dist/lib/browser/call-manager-BCKLI4QD.mjs.map +0 -7
  341. package/dist/lib/browser/chunk-2MUYQOQE.mjs +0 -23
  342. package/dist/lib/browser/chunk-2MUYQOQE.mjs.map +0 -7
  343. package/dist/lib/browser/chunk-B7YQ7QR2.mjs +0 -376
  344. package/dist/lib/browser/chunk-B7YQ7QR2.mjs.map +0 -7
  345. package/dist/lib/browser/chunk-CMCVHULC.mjs +0 -986
  346. package/dist/lib/browser/chunk-CMCVHULC.mjs.map +0 -7
  347. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +0 -7
  348. package/dist/lib/browser/chunk-HDEQRBOC.mjs +0 -181
  349. package/dist/lib/browser/chunk-HDEQRBOC.mjs.map +0 -7
  350. package/dist/lib/browser/chunk-L326LSNS.mjs +0 -18
  351. package/dist/lib/browser/chunk-L326LSNS.mjs.map +0 -7
  352. package/dist/lib/browser/chunk-T4KJ5JR4.mjs +0 -15
  353. package/dist/lib/browser/chunk-T4KJ5JR4.mjs.map +0 -7
  354. package/dist/lib/browser/chunk-VJMKS4CZ.mjs +0 -619
  355. package/dist/lib/browser/chunk-VJMKS4CZ.mjs.map +0 -7
  356. package/dist/lib/browser/chunk-VTYX3SIM.mjs +0 -147
  357. package/dist/lib/browser/chunk-VTYX3SIM.mjs.map +0 -7
  358. package/dist/lib/browser/chunk-XYUJXHYV.mjs +0 -106
  359. package/dist/lib/browser/chunk-XYUJXHYV.mjs.map +0 -7
  360. package/dist/lib/browser/chunk-ZCEU5K23.mjs +0 -1890
  361. package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +0 -7
  362. package/dist/lib/browser/index.mjs +0 -312
  363. package/dist/lib/browser/index.mjs.map +0 -7
  364. package/dist/lib/browser/intent-resolver-VOQD3TQ2.mjs +0 -427
  365. package/dist/lib/browser/intent-resolver-VOQD3TQ2.mjs.map +0 -7
  366. package/dist/lib/browser/markdown-R6MGRIA6.mjs +0 -169
  367. package/dist/lib/browser/markdown-R6MGRIA6.mjs.map +0 -7
  368. package/dist/lib/browser/meta.json +0 -1
  369. package/dist/lib/browser/react-root-UMSBTN6H.mjs +0 -28
  370. package/dist/lib/browser/react-root-UMSBTN6H.mjs.map +0 -7
  371. package/dist/lib/browser/react-surface-SXMQEWKE.mjs +0 -109
  372. package/dist/lib/browser/react-surface-SXMQEWKE.mjs.map +0 -7
  373. package/dist/lib/browser/settings-TCNF54PN.mjs +0 -22
  374. package/dist/lib/browser/settings-TCNF54PN.mjs.map +0 -7
  375. package/dist/lib/browser/state-ZQ4IPOJT.mjs +0 -34
  376. package/dist/lib/browser/state-ZQ4IPOJT.mjs.map +0 -7
  377. package/dist/lib/browser/toolkit-JF4B4QIO.mjs +0 -84
  378. package/dist/lib/browser/toolkit-JF4B4QIO.mjs.map +0 -7
  379. package/dist/lib/browser/types/index.mjs +0 -16
  380. package/dist/lib/node-esm/ChannelContainer-OXC6BTU7.mjs +0 -17
  381. package/dist/lib/node-esm/ChatContainer-SH6LTFQL.mjs +0 -16
  382. package/dist/lib/node-esm/app-graph-builder-DMPT3MY6.mjs +0 -172
  383. package/dist/lib/node-esm/app-graph-builder-DMPT3MY6.mjs.map +0 -7
  384. package/dist/lib/node-esm/call-manager-Q7RY2YP4.mjs +0 -25
  385. package/dist/lib/node-esm/call-manager-Q7RY2YP4.mjs.map +0 -7
  386. package/dist/lib/node-esm/chunk-2KZ4ODHU.mjs +0 -987
  387. package/dist/lib/node-esm/chunk-2KZ4ODHU.mjs.map +0 -7
  388. package/dist/lib/node-esm/chunk-2MMJF7DW.mjs +0 -182
  389. package/dist/lib/node-esm/chunk-2MMJF7DW.mjs.map +0 -7
  390. package/dist/lib/node-esm/chunk-2V3WSLUZ.mjs +0 -108
  391. package/dist/lib/node-esm/chunk-2V3WSLUZ.mjs.map +0 -7
  392. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs +0 -33
  393. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +0 -7
  394. package/dist/lib/node-esm/chunk-BAMZXJS4.mjs +0 -148
  395. package/dist/lib/node-esm/chunk-BAMZXJS4.mjs.map +0 -7
  396. package/dist/lib/node-esm/chunk-BTGKI5IK.mjs +0 -377
  397. package/dist/lib/node-esm/chunk-BTGKI5IK.mjs.map +0 -7
  398. package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs +0 -25
  399. package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-LCHTNRK7.mjs +0 -19
  401. package/dist/lib/node-esm/chunk-LCHTNRK7.mjs.map +0 -7
  402. package/dist/lib/node-esm/chunk-NHSIAEDW.mjs +0 -620
  403. package/dist/lib/node-esm/chunk-NHSIAEDW.mjs.map +0 -7
  404. package/dist/lib/node-esm/chunk-OBVAURUU.mjs +0 -17
  405. package/dist/lib/node-esm/chunk-OBVAURUU.mjs.map +0 -7
  406. package/dist/lib/node-esm/chunk-TIPIOH2J.mjs +0 -1891
  407. package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +0 -7
  408. package/dist/lib/node-esm/index.mjs +0 -313
  409. package/dist/lib/node-esm/index.mjs.map +0 -7
  410. package/dist/lib/node-esm/intent-resolver-AKVH66PH.mjs +0 -428
  411. package/dist/lib/node-esm/intent-resolver-AKVH66PH.mjs.map +0 -7
  412. package/dist/lib/node-esm/markdown-MYGTDXT6.mjs +0 -170
  413. package/dist/lib/node-esm/markdown-MYGTDXT6.mjs.map +0 -7
  414. package/dist/lib/node-esm/meta.json +0 -1
  415. package/dist/lib/node-esm/react-root-W6AVTL5M.mjs +0 -29
  416. package/dist/lib/node-esm/react-root-W6AVTL5M.mjs.map +0 -7
  417. package/dist/lib/node-esm/react-surface-NLSZJGMO.mjs +0 -110
  418. package/dist/lib/node-esm/react-surface-NLSZJGMO.mjs.map +0 -7
  419. package/dist/lib/node-esm/settings-ZQHGVFBY.mjs +0 -23
  420. package/dist/lib/node-esm/settings-ZQHGVFBY.mjs.map +0 -7
  421. package/dist/lib/node-esm/state-FSLLJ5TZ.mjs +0 -35
  422. package/dist/lib/node-esm/state-FSLLJ5TZ.mjs.map +0 -7
  423. package/dist/lib/node-esm/toolkit-DHPKJITO.mjs +0 -85
  424. package/dist/lib/node-esm/toolkit-DHPKJITO.mjs.map +0 -7
  425. package/dist/lib/node-esm/types/index.mjs +0 -17
  426. package/dist/types/src/calls/call-manager.d.ts +0 -77
  427. package/dist/types/src/calls/call-manager.d.ts.map +0 -1
  428. package/dist/types/src/calls/call-swarm-synchronizer.d.ts +0 -66
  429. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +0 -1
  430. package/dist/types/src/calls/index.d.ts +0 -7
  431. package/dist/types/src/calls/index.d.ts.map +0 -1
  432. package/dist/types/src/calls/media-manager.d.ts +0 -60
  433. package/dist/types/src/calls/media-manager.d.ts.map +0 -1
  434. package/dist/types/src/calls/speaking-monitor.d.ts +0 -24
  435. package/dist/types/src/calls/speaking-monitor.d.ts.map +0 -1
  436. package/dist/types/src/calls/types.d.ts +0 -45
  437. package/dist/types/src/calls/types.d.ts.map +0 -1
  438. package/dist/types/src/calls/util/audio.d.ts +0 -6
  439. package/dist/types/src/calls/util/audio.d.ts.map +0 -1
  440. package/dist/types/src/calls/util/calls-service.d.ts +0 -77
  441. package/dist/types/src/calls/util/calls-service.d.ts.map +0 -1
  442. package/dist/types/src/calls/util/history-cache.d.ts +0 -11
  443. package/dist/types/src/calls/util/history-cache.d.ts.map +0 -1
  444. package/dist/types/src/calls/util/index.d.ts +0 -5
  445. package/dist/types/src/calls/util/index.d.ts.map +0 -1
  446. package/dist/types/src/calls/util/media.d.ts +0 -6
  447. package/dist/types/src/calls/util/media.d.ts.map +0 -1
  448. package/dist/types/src/calls/util/stub-media-streams.d.ts +0 -18
  449. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +0 -1
  450. package/dist/types/src/calls/util/task-scheduling.d.ts +0 -17
  451. package/dist/types/src/calls/util/task-scheduling.d.ts.map +0 -1
  452. package/dist/types/src/calls-service.stories.d.ts +0 -23
  453. package/dist/types/src/calls-service.stories.d.ts.map +0 -1
  454. package/dist/types/src/capabilities/call-manager.d.ts +0 -5
  455. package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
  456. package/dist/types/src/capabilities/capabilities.d.ts +0 -27
  457. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  458. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  459. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  460. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  461. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  462. package/dist/types/src/capabilities/toolkit.d.ts +0 -6
  463. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  464. package/dist/types/src/components/Call/Call.d.ts +0 -17
  465. package/dist/types/src/components/Call/Call.d.ts.map +0 -1
  466. package/dist/types/src/components/Call/Toolbar.d.ts +0 -16
  467. package/dist/types/src/components/Call/Toolbar.d.ts.map +0 -1
  468. package/dist/types/src/components/Call/index.d.ts +0 -3
  469. package/dist/types/src/components/Call/index.d.ts.map +0 -1
  470. package/dist/types/src/components/CallDebugPanel.d.ts +0 -15
  471. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  472. package/dist/types/src/components/CallSidebar.d.ts +0 -4
  473. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  474. package/dist/types/src/components/ChannelContainer.d.ts +0 -14
  475. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  476. package/dist/types/src/components/ChannelContainer.stories.d.ts +0 -93
  477. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  478. package/dist/types/src/components/Chat.stories.d.ts +0 -93
  479. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  480. package/dist/types/src/components/ChatContainer.d.ts +0 -17
  481. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  482. package/dist/types/src/components/Comments.stories.d.ts +0 -158
  483. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  484. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  485. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  486. package/dist/types/src/components/CommentsThreadContainer.d.ts +0 -14
  487. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  488. package/dist/types/src/components/Lobby/Lobby.d.ts +0 -15
  489. package/dist/types/src/components/Lobby/Lobby.d.ts.map +0 -1
  490. package/dist/types/src/components/Lobby/index.d.ts +0 -2
  491. package/dist/types/src/components/Lobby/index.d.ts.map +0 -1
  492. package/dist/types/src/components/Media/AudioStream.d.ts +0 -6
  493. package/dist/types/src/components/Media/AudioStream.d.ts.map +0 -1
  494. package/dist/types/src/components/Media/VideoObject.d.ts +0 -15
  495. package/dist/types/src/components/Media/VideoObject.d.ts.map +0 -1
  496. package/dist/types/src/components/Media/VideoObject.stories.d.ts +0 -22
  497. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +0 -1
  498. package/dist/types/src/components/Media/index.d.ts +0 -3
  499. package/dist/types/src/components/Media/index.d.ts.map +0 -1
  500. package/dist/types/src/components/MessageContainer.d.ts +0 -14
  501. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  502. package/dist/types/src/components/Participant/Participant.d.ts +0 -6
  503. package/dist/types/src/components/Participant/Participant.d.ts.map +0 -1
  504. package/dist/types/src/components/Participant/ParticipantGrid.d.ts +0 -11
  505. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +0 -1
  506. package/dist/types/src/components/Participant/index.d.ts +0 -3
  507. package/dist/types/src/components/Participant/index.d.ts.map +0 -1
  508. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts +0 -12
  509. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  510. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +0 -162
  511. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  512. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts +0 -32
  513. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +0 -1
  514. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +0 -176
  515. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +0 -1
  516. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts +0 -21
  517. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +0 -1
  518. package/dist/types/src/components/ResponsiveGrid/index.d.ts +0 -4
  519. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +0 -1
  520. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  521. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  522. package/dist/types/src/components/ThreadSettings.d.ts +0 -6
  523. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  524. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  525. package/dist/types/src/components/testing.d.ts.map +0 -1
  526. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +0 -2
  527. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +0 -1
  528. package/dist/types/src/hooks/useDebugMode.d.ts +0 -2
  529. package/dist/types/src/hooks/useDebugMode.d.ts.map +0 -1
  530. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts +0 -2
  531. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +0 -1
  532. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +0 -3
  533. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +0 -1
  534. package/dist/types/src/testing/stories.d.ts +0 -2
  535. package/dist/types/src/testing/stories.d.ts.map +0 -1
  536. package/dist/types/src/types/schema.d.ts +0 -179
  537. package/dist/types/src/types/schema.d.ts.map +0 -1
  538. package/src/calls/call-manager.ts +0 -246
  539. package/src/calls/call-swarm-synchronizer.ts +0 -350
  540. package/src/calls/index.ts +0 -10
  541. package/src/calls/media-manager.ts +0 -375
  542. package/src/calls/speaking-monitor.ts +0 -85
  543. package/src/calls/types.ts +0 -74
  544. package/src/calls/util/audio.ts +0 -58
  545. package/src/calls/util/calls-service.ts +0 -581
  546. package/src/calls/util/history-cache.ts +0 -27
  547. package/src/calls/util/index.ts +0 -8
  548. package/src/calls/util/media.ts +0 -52
  549. package/src/calls/util/stub-media-streams.ts +0 -127
  550. package/src/calls/util/task-scheduling.ts +0 -92
  551. package/src/calls-service.stories.tsx +0 -229
  552. package/src/capabilities/call-manager.ts +0 -20
  553. package/src/capabilities/capabilities.ts +0 -33
  554. package/src/capabilities/intent-resolver.ts +0 -348
  555. package/src/capabilities/react-root.tsx +0 -17
  556. package/src/capabilities/toolkit.ts +0 -82
  557. package/src/components/Call/Call.tsx +0 -89
  558. package/src/components/Call/Toolbar.tsx +0 -182
  559. package/src/components/Call/index.ts +0 -6
  560. package/src/components/CallDebugPanel.tsx +0 -174
  561. package/src/components/CallSidebar.tsx +0 -18
  562. package/src/components/ChannelContainer.stories.tsx +0 -59
  563. package/src/components/ChannelContainer.tsx +0 -201
  564. package/src/components/Chat.stories.tsx +0 -91
  565. package/src/components/ChatContainer.tsx +0 -145
  566. package/src/components/Comments.stories.tsx +0 -91
  567. package/src/components/CommentsContainer.tsx +0 -72
  568. package/src/components/CommentsThreadContainer.tsx +0 -169
  569. package/src/components/Lobby/Lobby.tsx +0 -119
  570. package/src/components/Lobby/index.ts +0 -5
  571. package/src/components/Media/AudioStream.tsx +0 -67
  572. package/src/components/Media/VideoObject.stories.tsx +0 -60
  573. package/src/components/Media/VideoObject.tsx +0 -58
  574. package/src/components/Media/index.ts +0 -6
  575. package/src/components/Participant/Participant.tsx +0 -63
  576. package/src/components/Participant/ParticipantGrid.tsx +0 -89
  577. package/src/components/Participant/index.ts +0 -6
  578. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +0 -54
  579. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +0 -31
  580. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +0 -158
  581. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +0 -341
  582. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +0 -131
  583. package/src/components/ResponsiveGrid/index.ts +0 -7
  584. package/src/components/ThreadComplementary.tsx +0 -181
  585. package/src/components/ThreadSettings.tsx +0 -16
  586. package/src/components/testing.ts +0 -51
  587. package/src/hooks/useBlackCanvasStreamTrack.tsx +0 -27
  588. package/src/hooks/useDebugMode.ts +0 -25
  589. package/src/hooks/useInaudibleAudioStreamTrack.tsx +0 -27
  590. package/src/hooks/useVideoStreamTrack.tsx +0 -36
  591. package/src/testing/stories.ts +0 -54
  592. package/src/types/schema.ts +0 -33
  593. package/src/typings/peermetrics-webrtc-stats.d.ts +0 -46
  594. package/src/typings.d.ts +0 -8
  595. /package/dist/lib/{browser/ChannelContainer-BGDGZHV4.mjs.map → neutral/ChannelChat-LZEDFJVD.mjs.map} +0 -0
  596. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  597. /package/dist/lib/{browser/ChatContainer-75KJZ4XR.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  598. /package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
  599. /package/dist/lib/{node-esm/ChannelContainer-OXC6BTU7.mjs.map → neutral/index.mjs.map} +0 -0
  600. /package/dist/lib/{node-esm/ChatContainer-SH6LTFQL.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -0,0 +1,335 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/types/AgentIdentity.ts
6
+ import { Capability } from "@dxos/app-framework";
7
+ import { meta } from "#meta";
8
+ var AgentIdentity = Capability.make(`${meta.id}.capability.agent-identity`);
9
+ var DEFAULT_AGENT_IDENTITY = {
10
+ name: "Kai"
11
+ };
12
+
13
+ // src/types/Settings.ts
14
+ var Settings_exports = {};
15
+ __export(Settings_exports, {
16
+ Settings: () => Settings
17
+ });
18
+ import * as Schema from "effect/Schema";
19
+ var Settings = Schema.mutable(Schema.Struct({}));
20
+
21
+ // src/types/ThreadCapabilities.ts
22
+ var ThreadCapabilities_exports = {};
23
+ __export(ThreadCapabilities_exports, {
24
+ AgentRunner: () => AgentRunner,
25
+ CommentConfig: () => CommentConfig,
26
+ Settings: () => Settings2,
27
+ State: () => State,
28
+ ViewState: () => ViewState
29
+ });
30
+ import { Capability as Capability2 } from "@dxos/app-framework";
31
+ import { AppCapabilities } from "@dxos/app-toolkit";
32
+ import { meta as meta2 } from "#meta";
33
+ var Settings2 = Capability2.make(`${meta2.id}.capability.settings`);
34
+ var CommentConfig = AppCapabilities.CommentConfig;
35
+ var State = Capability2.make(`${meta2.id}.capability.state`);
36
+ var ViewState = Capability2.make(`${meta2.id}.capability.view-state`);
37
+ var AgentRunner = Capability2.make(`${meta2.id}.capability.agent-runner`);
38
+
39
+ // src/types/ThreadOperation.ts
40
+ var ThreadOperation_exports = {};
41
+ __export(ThreadOperation_exports, {
42
+ AddMessage: () => AddMessage,
43
+ AppendChannelMessage: () => AppendChannelMessage,
44
+ Create: () => Create,
45
+ CreateChannel: () => CreateChannel,
46
+ CreateProposals: () => CreateProposals,
47
+ Delete: () => Delete,
48
+ DeleteMessage: () => DeleteMessage,
49
+ DeleteMessageOutput: () => DeleteMessageOutput,
50
+ DeleteOutput: () => DeleteOutput,
51
+ OnCreateSpace: () => OnCreateSpace,
52
+ RespondToThread: () => RespondToThread,
53
+ Restore: () => Restore,
54
+ RestoreMessage: () => RestoreMessage,
55
+ Select: () => Select,
56
+ SetAgentConfig: () => SetAgentConfig,
57
+ ToggleResolved: () => ToggleResolved
58
+ });
59
+ import * as Schema2 from "effect/Schema";
60
+ import { Capability as Capability3 } from "@dxos/app-framework";
61
+ import { SpaceSchema } from "@dxos/client-protocol";
62
+ import { Operation } from "@dxos/compute";
63
+ import { Collection, Database, Key, Obj, Ref, Type } from "@dxos/echo";
64
+ import { Markdown } from "@dxos/plugin-markdown";
65
+ import { Actor, AnchoredTo, Channel, Message, Thread } from "@dxos/types";
66
+ import { meta as meta3 } from "#meta";
67
+ var THREAD_OPERATION = `${meta3.id}.operation`;
68
+ var OnCreateSpace = Operation.make({
69
+ meta: {
70
+ key: `${THREAD_OPERATION}.on-create-space`,
71
+ name: "On Create Space",
72
+ icon: "ph--chat-text--regular"
73
+ },
74
+ services: [
75
+ Capability3.Service
76
+ ],
77
+ input: Schema2.Struct({
78
+ space: SpaceSchema,
79
+ rootCollection: Type.getSchema(Collection.Collection),
80
+ isDefault: Schema2.Boolean.pipe(Schema2.optional)
81
+ }),
82
+ output: Schema2.Void
83
+ });
84
+ var CreateChannel = Operation.make({
85
+ meta: {
86
+ key: `${THREAD_OPERATION}.create-channel`,
87
+ name: "Create Channel",
88
+ icon: "ph--hash--regular"
89
+ },
90
+ services: [
91
+ Capability3.Service
92
+ ],
93
+ input: Schema2.Struct({
94
+ spaceId: Key.SpaceId,
95
+ name: Schema2.optional(Schema2.String)
96
+ }),
97
+ output: Schema2.Struct({
98
+ object: Type.getSchema(Channel.Channel)
99
+ })
100
+ });
101
+ var AppendChannelMessage = Operation.make({
102
+ meta: {
103
+ key: `${THREAD_OPERATION}.append-channel-message`,
104
+ name: "Append Channel Message",
105
+ icon: "ph--chat-text--regular"
106
+ },
107
+ // Note: Feed.FeedService is provided inside the handler from space.queues, not at the
108
+ // operation level — the runtime can't fulfill it without a space context.
109
+ services: [
110
+ Capability3.Service
111
+ ],
112
+ input: Schema2.Struct({
113
+ channel: Type.getSchema(Channel.Channel),
114
+ sender: Actor.Actor,
115
+ text: Schema2.String
116
+ }),
117
+ output: Schema2.Void
118
+ });
119
+ var Create = Operation.make({
120
+ meta: {
121
+ key: `${THREAD_OPERATION}.create`,
122
+ name: "Create Thread",
123
+ icon: "ph--chat-text--regular"
124
+ },
125
+ services: [
126
+ Capability3.Service
127
+ ],
128
+ input: Schema2.Struct({
129
+ name: Schema2.optional(Schema2.String),
130
+ anchor: Schema2.optional(Schema2.String),
131
+ subject: Obj.Unknown
132
+ }),
133
+ output: Schema2.Void
134
+ });
135
+ var DeleteOutput = Schema2.Struct({
136
+ thread: Type.getSchema(Thread.Thread).annotations({
137
+ description: "The deleted thread."
138
+ }),
139
+ anchor: Type.getSchema(AnchoredTo.AnchoredTo).annotations({
140
+ description: "The deleted anchor."
141
+ })
142
+ }).pipe(Schema2.partial);
143
+ var Delete = Operation.make({
144
+ meta: {
145
+ key: `${THREAD_OPERATION}.delete`,
146
+ name: "Delete Thread",
147
+ icon: "ph--trash--regular"
148
+ },
149
+ services: [
150
+ Capability3.Service
151
+ ],
152
+ input: Schema2.Struct({
153
+ anchor: Type.getSchema(AnchoredTo.AnchoredTo),
154
+ subject: Obj.Unknown,
155
+ thread: Schema2.optional(Type.getSchema(Thread.Thread))
156
+ }),
157
+ output: DeleteOutput
158
+ });
159
+ var Select = Operation.make({
160
+ meta: {
161
+ key: `${THREAD_OPERATION}.select`,
162
+ name: "Select Thread",
163
+ icon: "ph--check--regular"
164
+ },
165
+ services: [
166
+ Capability3.Service
167
+ ],
168
+ input: Schema2.Struct({
169
+ current: Schema2.String
170
+ }),
171
+ output: Schema2.Void
172
+ });
173
+ var ToggleResolved = Operation.make({
174
+ meta: {
175
+ key: `${THREAD_OPERATION}.toggle-resolved`,
176
+ name: "Toggle Resolved",
177
+ icon: "ph--check-circle--regular"
178
+ },
179
+ services: [
180
+ Capability3.Service
181
+ ],
182
+ input: Schema2.Struct({
183
+ thread: Type.getSchema(Thread.Thread)
184
+ }),
185
+ output: Schema2.Void
186
+ });
187
+ var AddMessage = Operation.make({
188
+ meta: {
189
+ key: `${THREAD_OPERATION}.add-message`,
190
+ name: "Add Message",
191
+ icon: "ph--chat-text--regular"
192
+ },
193
+ services: [
194
+ Capability3.Service
195
+ ],
196
+ input: Schema2.Struct({
197
+ subject: Obj.Unknown,
198
+ anchor: Type.getSchema(AnchoredTo.AnchoredTo),
199
+ sender: Actor.Actor,
200
+ text: Schema2.String
201
+ }),
202
+ output: Schema2.Void
203
+ });
204
+ var DeleteMessageOutput = Schema2.partial(Schema2.Struct({
205
+ message: Type.getSchema(Message.Message).annotations({
206
+ description: "The deleted message."
207
+ }),
208
+ messageIndex: Schema2.Number.annotations({
209
+ description: "The index the message was at."
210
+ })
211
+ }));
212
+ var DeleteMessage = Operation.make({
213
+ meta: {
214
+ key: `${THREAD_OPERATION}.delete-message`,
215
+ name: "Delete Message",
216
+ icon: "ph--trash--regular"
217
+ },
218
+ services: [
219
+ Capability3.Service
220
+ ],
221
+ input: Schema2.Struct({
222
+ anchor: Type.getSchema(AnchoredTo.AnchoredTo),
223
+ subject: Obj.Unknown,
224
+ messageId: Schema2.String
225
+ }),
226
+ output: DeleteMessageOutput
227
+ });
228
+ var Restore = Operation.make({
229
+ meta: {
230
+ key: `${THREAD_OPERATION}.restore`,
231
+ name: "Restore Thread",
232
+ icon: "ph--clock-counter-clockwise--regular"
233
+ },
234
+ services: [
235
+ Capability3.Service
236
+ ],
237
+ input: Schema2.Struct({
238
+ thread: Type.getSchema(Thread.Thread).annotations({
239
+ description: "The thread to restore."
240
+ }),
241
+ anchor: Type.getSchema(AnchoredTo.AnchoredTo).annotations({
242
+ description: "The anchor relation to restore."
243
+ })
244
+ }),
245
+ output: Schema2.Void
246
+ });
247
+ var RestoreMessage = Operation.make({
248
+ meta: {
249
+ key: `${THREAD_OPERATION}.restore-message`,
250
+ name: "Restore Message",
251
+ icon: "ph--clock-counter-clockwise--regular"
252
+ },
253
+ services: [
254
+ Capability3.Service
255
+ ],
256
+ input: Schema2.Struct({
257
+ anchor: Type.getSchema(AnchoredTo.AnchoredTo).annotations({
258
+ description: "The anchor of the thread."
259
+ }),
260
+ message: Type.getSchema(Message.Message).annotations({
261
+ description: "The message to restore."
262
+ }),
263
+ messageIndex: Schema2.Number.annotations({
264
+ description: "The index to restore the message at."
265
+ })
266
+ }),
267
+ output: Schema2.Void
268
+ });
269
+ var RespondToThread = Operation.make({
270
+ meta: {
271
+ key: `${THREAD_OPERATION}.respond-to-thread`,
272
+ name: "Respond to Thread",
273
+ description: "Runs one comment-thread agent turn against the given thread + subject."
274
+ },
275
+ services: [
276
+ Capability3.Service
277
+ ],
278
+ input: Schema2.Struct({
279
+ thread: Ref.Ref(Thread.Thread).annotations({
280
+ description: "The thread to respond to."
281
+ }),
282
+ subject: Ref.Ref(Obj.Unknown).annotations({
283
+ description: "The object the thread is anchored to."
284
+ })
285
+ }),
286
+ output: Schema2.Void
287
+ });
288
+ var SetAgentConfig = Operation.make({
289
+ meta: {
290
+ key: `${THREAD_OPERATION}.set-agent-config`,
291
+ name: "Set Agent Config",
292
+ description: "Updates thread.agent. Undefined config disables the agent."
293
+ },
294
+ services: [
295
+ Database.Service
296
+ ],
297
+ input: Schema2.Struct({
298
+ thread: Ref.Ref(Thread.Thread).annotations({
299
+ description: "The thread to configure."
300
+ }),
301
+ config: Schema2.optional(Thread.AgentConfig).annotations({
302
+ description: "New agent config; omit to disable."
303
+ })
304
+ }),
305
+ output: Schema2.Void
306
+ });
307
+ var CreateProposals = Operation.make({
308
+ meta: {
309
+ key: "org.dxos.function.thread.create-proposals",
310
+ name: "Create Proposals",
311
+ description: "Proposes a set of changes to a document.",
312
+ icon: "ph--sparkle--regular"
313
+ },
314
+ input: Schema2.Struct({
315
+ doc: Ref.Ref(Markdown.Document).annotations({
316
+ description: "The ID of the document."
317
+ }),
318
+ diffs: Schema2.Array(Schema2.String).annotations({
319
+ description: "The diffs to propose for the document."
320
+ })
321
+ }),
322
+ output: Schema2.Void,
323
+ services: [
324
+ Database.Service
325
+ ]
326
+ });
327
+
328
+ export {
329
+ AgentIdentity,
330
+ DEFAULT_AGENT_IDENTITY,
331
+ Settings_exports,
332
+ ThreadCapabilities_exports,
333
+ ThreadOperation_exports
334
+ };
335
+ //# sourceMappingURL=chunk-D3SCNWLT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/AgentIdentity.ts", "../../../src/types/Settings.ts", "../../../src/types/ThreadCapabilities.ts", "../../../src/types/ThreadOperation.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\n/**\n * Runtime identity of the comment-thread AI agent.\n *\n * Resolved via a Capability contribution at plugin activation, never stored on\n * Thread.Thread. Renaming the agent globally (e.g. via plugin settings)\n * immediately affects gating and sender metadata on every opted-in thread —\n * past and future.\n *\n * - `name`: display name and @mention token (case-insensitive match).\n * - `identityDid`: optional ECHO DID stamped on assistant messages.\n * - `avatar`: optional icon hint.\n */\nexport interface AgentIdentity {\n readonly name: string;\n readonly identityDid?: string;\n readonly avatar?: string;\n}\n\nexport const AgentIdentity = Capability.make<AgentIdentity>(`${meta.id}.capability.agent-identity`);\n\n/**\n * Built-in default identity used by ThreadPlugin when no host has contributed\n * a stronger `AgentIdentity`. Hosts that want to override (e.g. a workspace-\n * scoped bot record, a settings panel) must contribute their identity earlier\n * in plugin order so `Capability.get` returns it first.\n */\nexport const DEFAULT_AGENT_IDENTITY: AgentIdentity = { name: 'Kai' };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nexport const Settings = Schema.mutable(Schema.Struct({}));\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type Obj } from '@dxos/echo';\nimport { type Thread } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nimport { type ThreadState, type ViewStore } from '../types';\n\nexport const Settings = Capability.make<Atom.Writable<import('./Settings').Settings>>(`${meta.id}.capability.settings`);\n\n/** Comment configuration contributed per typename by plugins that support commenting. */\nexport type CommentConfig = AppCapabilities.CommentConfig;\nexport const CommentConfig: Capability.InterfaceDef<AppCapabilities.CommentConfig> = AppCapabilities.CommentConfig;\n\n/** Thread state (drafts, toolbar state, current selection). */\nexport const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}.capability.state`);\n\n/** Per-subject view state (e.g., showResolvedThreads). */\nexport const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}.capability.view-state`);\n\n/**\n * Runs one comment-thread agent turn against a thread/subject pair.\n *\n * `run` may depend on `Capability.Service` so implementations can read\n * `AgentIdentity` and any other contributed capabilities. The caller\n * (RespondToThread operation handler) already provides `Capability.Service`.\n *\n * The default implementation (built atop AiSession) is not yet wired; storybook\n * and tests contribute stub implementations via `Capability.contributes` to\n * exercise the trigger plumbing without making network calls.\n */\nexport interface AgentRunner {\n run(input: { thread: Thread.Thread; subject: Obj.Any }): Effect.Effect<void, Error, Capability.Service>;\n}\n\nexport const AgentRunner = Capability.make<AgentRunner>(`${meta.id}.capability.agent-runner`);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { SpaceSchema } from '@dxos/client-protocol';\nimport { Operation } from '@dxos/compute';\nimport { Collection, Database, Key, Obj, Ref, Type } from '@dxos/echo';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { Actor, AnchoredTo, Channel, Message, Thread } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nconst THREAD_OPERATION = `${meta.id}.operation`;\n\nexport const OnCreateSpace = Operation.make({\n meta: { key: `${THREAD_OPERATION}.on-create-space`, name: 'On Create Space', icon: 'ph--chat-text--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Type.getSchema(Collection.Collection),\n isDefault: Schema.Boolean.pipe(Schema.optional),\n }),\n output: Schema.Void,\n});\n\nexport const CreateChannel = Operation.make({\n meta: { key: `${THREAD_OPERATION}.create-channel`, name: 'Create Channel', icon: 'ph--hash--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n spaceId: Key.SpaceId,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Channel.Channel),\n }),\n});\n\nexport const AppendChannelMessage = Operation.make({\n meta: {\n key: `${THREAD_OPERATION}.append-channel-message`,\n name: 'Append Channel Message',\n icon: 'ph--chat-text--regular',\n },\n // Note: Feed.FeedService is provided inside the handler from space.queues, not at the\n // operation level — the runtime can't fulfill it without a space context.\n services: [Capability.Service],\n input: Schema.Struct({\n channel: Type.getSchema(Channel.Channel),\n sender: Actor.Actor,\n text: Schema.String,\n }),\n output: Schema.Void,\n});\n\nexport const Create = Operation.make({\n meta: { key: `${THREAD_OPERATION}.create`, name: 'Create Thread', icon: 'ph--chat-text--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n anchor: Schema.optional(Schema.String),\n subject: Obj.Unknown,\n }),\n output: Schema.Void,\n});\n\nexport const DeleteOutput = Schema.Struct({\n thread: Type.getSchema(Thread.Thread).annotations({ description: 'The deleted thread.' }),\n anchor: Type.getSchema(AnchoredTo.AnchoredTo).annotations({ description: 'The deleted anchor.' }),\n}).pipe(Schema.partial);\n\nexport type DeleteOutput = Schema.Schema.Type<typeof DeleteOutput>;\n\nexport const Delete = Operation.make({\n meta: { key: `${THREAD_OPERATION}.delete`, name: 'Delete Thread', icon: 'ph--trash--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n anchor: Type.getSchema(AnchoredTo.AnchoredTo),\n subject: Obj.Unknown,\n thread: Schema.optional(Type.getSchema(Thread.Thread)),\n }),\n output: DeleteOutput,\n});\n\nexport const Select = Operation.make({\n meta: { key: `${THREAD_OPERATION}.select`, name: 'Select Thread', icon: 'ph--check--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n current: Schema.String,\n }),\n output: Schema.Void,\n});\n\nexport const ToggleResolved = Operation.make({\n meta: { key: `${THREAD_OPERATION}.toggle-resolved`, name: 'Toggle Resolved', icon: 'ph--check-circle--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n thread: Type.getSchema(Thread.Thread),\n }),\n output: Schema.Void,\n});\n\nexport const AddMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}.add-message`, name: 'Add Message', icon: 'ph--chat-text--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n subject: Obj.Unknown,\n anchor: Type.getSchema(AnchoredTo.AnchoredTo),\n sender: Actor.Actor,\n text: Schema.String,\n }),\n output: Schema.Void,\n});\n\nexport const DeleteMessageOutput = Schema.partial(\n Schema.Struct({\n message: Type.getSchema(Message.Message).annotations({ description: 'The deleted message.' }),\n messageIndex: Schema.Number.annotations({ description: 'The index the message was at.' }),\n }),\n);\n\nexport type DeleteMessageOutput = Schema.Schema.Type<typeof DeleteMessageOutput>;\n\nexport const DeleteMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}.delete-message`, name: 'Delete Message', icon: 'ph--trash--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n anchor: Type.getSchema(AnchoredTo.AnchoredTo),\n subject: Obj.Unknown,\n messageId: Schema.String,\n }),\n output: DeleteMessageOutput,\n});\n\n/**\n * Restore a deleted thread (inverse of Delete).\n */\nexport const Restore = Operation.make({\n meta: { key: `${THREAD_OPERATION}.restore`, name: 'Restore Thread', icon: 'ph--clock-counter-clockwise--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n thread: Type.getSchema(Thread.Thread).annotations({ description: 'The thread to restore.' }),\n anchor: Type.getSchema(AnchoredTo.AnchoredTo).annotations({ description: 'The anchor relation to restore.' }),\n }),\n output: Schema.Void,\n});\n\n/**\n * Restore a deleted message (inverse of DeleteMessage).\n */\nexport const RestoreMessage = Operation.make({\n meta: {\n key: `${THREAD_OPERATION}.restore-message`,\n name: 'Restore Message',\n icon: 'ph--clock-counter-clockwise--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n anchor: Type.getSchema(AnchoredTo.AnchoredTo).annotations({ description: 'The anchor of the thread.' }),\n message: Type.getSchema(Message.Message).annotations({ description: 'The message to restore.' }),\n messageIndex: Schema.Number.annotations({ description: 'The index to restore the message at.' }),\n }),\n output: Schema.Void,\n});\n\nexport const RespondToThread = Operation.make({\n meta: {\n key: `${THREAD_OPERATION}.respond-to-thread`,\n name: 'Respond to Thread',\n description: 'Runs one comment-thread agent turn against the given thread + subject.',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n thread: Ref.Ref(Thread.Thread).annotations({ description: 'The thread to respond to.' }),\n subject: Ref.Ref(Obj.Unknown).annotations({ description: 'The object the thread is anchored to.' }),\n }),\n output: Schema.Void,\n});\n\nexport const SetAgentConfig = Operation.make({\n meta: {\n key: `${THREAD_OPERATION}.set-agent-config`,\n name: 'Set Agent Config',\n description: 'Updates thread.agent. Undefined config disables the agent.',\n },\n services: [Database.Service],\n input: Schema.Struct({\n thread: Ref.Ref(Thread.Thread).annotations({ description: 'The thread to configure.' }),\n config: Schema.optional(Thread.AgentConfig).annotations({\n description: 'New agent config; omit to disable.',\n }),\n }),\n output: Schema.Void,\n});\n\nexport const CreateProposals = Operation.make({\n meta: {\n key: 'org.dxos.function.thread.create-proposals',\n name: 'Create Proposals',\n description: 'Proposes a set of changes to a document.',\n icon: 'ph--sparkle--regular',\n },\n input: Schema.Struct({\n doc: Ref.Ref(Markdown.Document).annotations({\n description: 'The ID of the document.',\n }),\n diffs: Schema.Array(Schema.String).annotations({\n description: 'The diffs to propose for the document.',\n }),\n }),\n output: Schema.Void,\n services: [Database.Service],\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Capability", "meta", "AgentIdentity", "make", "id", "DEFAULT_AGENT_IDENTITY", "name", "Schema", "Settings", "mutable", "Struct", "Settings", "Capability", "AppCapabilities", "meta", "make", "id", "CommentConfig", "State", "ViewState", "AgentRunner", "Schema", "Capability", "SpaceSchema", "Operation", "Collection", "Database", "Key", "Obj", "Ref", "Type", "Markdown", "Actor", "AnchoredTo", "Channel", "Message", "Thread", "meta", "THREAD_OPERATION", "id", "OnCreateSpace", "make", "key", "name", "icon", "services", "Service", "input", "Struct", "space", "rootCollection", "getSchema", "isDefault", "Boolean", "pipe", "optional", "output", "Void", "CreateChannel", "spaceId", "SpaceId", "String", "object", "AppendChannelMessage", "channel", "sender", "text", "Create", "anchor", "subject", "Unknown", "DeleteOutput", "thread", "annotations", "description", "partial", "Delete", "Select", "current", "ToggleResolved", "AddMessage", "DeleteMessageOutput", "message", "messageIndex", "Number", "DeleteMessage", "messageId", "Restore", "RestoreMessage", "RespondToThread", "SetAgentConfig", "config", "AgentConfig", "CreateProposals", "doc", "Document", "diffs", "Array"]
7
+ }
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -1,13 +1,20 @@
1
1
  // src/util.ts
2
2
  import * as Match from "effect/Match";
3
3
  import { generateName } from "@dxos/display-name";
4
- import { hexToFallback } from "@dxos/util";
5
- var getMessageMetadata = (id, identity) => {
6
- const fallback = hexToFallback(identity?.identityKey.toHex() ?? "0");
4
+ import { hexToFallback, toFallback } from "@dxos/util";
5
+ var hashString = (s) => {
6
+ let h = 0;
7
+ for (let i = 0; i < s.length; i++) {
8
+ h = h * 31 + s.charCodeAt(i) | 0;
9
+ }
10
+ return h >>> 0;
11
+ };
12
+ var getMessageMetadata = (id, identity, fallbackSender) => {
13
+ const fallback = identity?.identityKey ? hexToFallback(identity.identityKey.toHex()) : toFallback(hashString(fallbackSender?.name ?? fallbackSender?.email ?? "0"));
7
14
  return {
8
15
  id,
9
16
  authorId: identity?.did,
10
- authorName: identity?.profile?.displayName ?? (identity?.identityKey ? generateName(identity.identityKey.toHex()) : void 0),
17
+ authorName: identity?.profile?.displayName ?? (identity?.identityKey ? generateName(identity.identityKey.toHex()) : void 0) ?? fallbackSender?.name ?? fallbackSender?.email,
11
18
  authorAvatarProps: {
12
19
  hue: identity?.profile?.data?.hue ?? fallback.hue,
13
20
  emoji: identity?.profile?.data?.emoji ?? fallback.emoji
@@ -28,4 +35,4 @@ export {
28
35
  getMessageMetadata,
29
36
  getAnchor
30
37
  };
31
- //# sourceMappingURL=chunk-CP7E2HRE.mjs.map
38
+ //# sourceMappingURL=chunk-JLY4NVTA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Match from 'effect/Match';\n\nimport { generateName } from '@dxos/display-name';\nimport { type PublicKey } from '@dxos/react-client';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type Selection } from '@dxos/react-ui-attention';\nimport { type MessageMetadata } from '@dxos/react-ui-thread';\nimport { hexToFallback, toFallback } from '@dxos/util';\n\nexport type MessagePropertiesProvider = (identityKey: PublicKey | undefined) => MessageMetadata;\n\n/**\n * Stable hash for an arbitrary string — used as the avatar-fallback seed for\n * external senders who have no DXOS identity (e.g. Slack/Discord-synced\n * messages). djb2-ish, only stability matters.\n *\n * Coerced to unsigned 32-bit via `>>> 0` because `toFallback` does a plain\n * modulo against `idEmoji.length * idHue.length` and JavaScript's `%`\n * preserves the sign of the dividend — a negative hash would index\n * `idEmoji[-x]` and `idHue[-x]` to `undefined`, causing the avatar to fall\n * through to `Avatar.Content`'s default red/ghost.\n */\nconst hashString = (s: string): number => {\n let h = 0;\n for (let i = 0; i < s.length; i++) {\n h = (h * 31 + s.charCodeAt(i)) | 0;\n }\n return h >>> 0;\n};\n\nexport const getMessageMetadata = (\n id: string,\n identity?: Identity,\n /**\n * Externally-sourced sender info (Slack/Discord/etc). Used only when no\n * matching DXOS `identity` is available — provides `name`/`email` for the\n * author label and a stable seed for the avatar fallback.\n */\n fallbackSender?: { name?: string; email?: string },\n): MessageMetadata => {\n const fallback = identity?.identityKey\n ? hexToFallback(identity.identityKey.toHex())\n : toFallback(hashString(fallbackSender?.name ?? fallbackSender?.email ?? '0'));\n return {\n id,\n authorId: identity?.did,\n authorName:\n identity?.profile?.displayName ??\n (identity?.identityKey ? generateName(identity.identityKey.toHex()) : undefined) ??\n fallbackSender?.name ??\n fallbackSender?.email,\n authorAvatarProps: {\n hue: identity?.profile?.data?.hue ?? fallback.hue,\n emoji: identity?.profile?.data?.emoji ?? fallback.emoji,\n },\n };\n};\n\nexport const getAnchor = Match.type<Selection | undefined>().pipe(\n Match.when({ mode: 'single' }, (s) => s.id),\n Match.when({ mode: 'multi' }, (s) => (s.ids.length > 0 ? s.ids.join(',') : undefined)),\n Match.when({ mode: 'range' }, (s) => (s.from && s.to ? `${s.from}:${s.to}` : undefined)),\n Match.when({ mode: 'multi-range' }, (s) => s.ranges[0] && `${s.ranges[0].from}:${s.ranges[0].to}`),\n Match.when(undefined, () => undefined),\n Match.exhaustive,\n);\n"],
5
+ "mappings": ";AAIA,YAAYA,WAAW;AAEvB,SAASC,oBAAoB;AAK7B,SAASC,eAAeC,kBAAkB;AAe1C,IAAMC,aAAa,CAACC,MAAAA;AAClB,MAAIC,IAAI;AACR,WAASC,IAAI,GAAGA,IAAIF,EAAEG,QAAQD,KAAK;AACjCD,QAAKA,IAAI,KAAKD,EAAEI,WAAWF,CAAAA,IAAM;EACnC;AACA,SAAOD,MAAM;AACf;AAEO,IAAMI,qBAAqB,CAChCC,IACAC,UAMAC,mBAAAA;AAEA,QAAMC,WAAWF,UAAUG,cACvBb,cAAcU,SAASG,YAAYC,MAAK,CAAA,IACxCb,WAAWC,WAAWS,gBAAgBI,QAAQJ,gBAAgBK,SAAS,GAAA,CAAA;AAC3E,SAAO;IACLP;IACAQ,UAAUP,UAAUQ;IACpBC,YACET,UAAUU,SAASC,gBAClBX,UAAUG,cAAcd,aAAaW,SAASG,YAAYC,MAAK,CAAA,IAAMQ,WACtEX,gBAAgBI,QAChBJ,gBAAgBK;IAClBO,mBAAmB;MACjBC,KAAKd,UAAUU,SAASK,MAAMD,OAAOZ,SAASY;MAC9CE,OAAOhB,UAAUU,SAASK,MAAMC,SAASd,SAASc;IACpD;EACF;AACF;AAEO,IAAMC,YAAkBC,WAAI,EAA0BC,KACrDC,WAAK;EAAEC,MAAM;AAAS,GAAG,CAAC5B,MAAMA,EAAEM,EAAE,GACpCqB,WAAK;EAAEC,MAAM;AAAQ,GAAG,CAAC5B,MAAOA,EAAE6B,IAAI1B,SAAS,IAAIH,EAAE6B,IAAIC,KAAK,GAAA,IAAOX,MAAAA,GACrEQ,WAAK;EAAEC,MAAM;AAAQ,GAAG,CAAC5B,MAAOA,EAAE+B,QAAQ/B,EAAEgC,KAAK,GAAGhC,EAAE+B,IAAI,IAAI/B,EAAEgC,EAAE,KAAKb,MAAAA,GACvEQ,WAAK;EAAEC,MAAM;AAAc,GAAG,CAAC5B,MAAMA,EAAEiC,OAAO,CAAA,KAAM,GAAGjC,EAAEiC,OAAO,CAAA,EAAGF,IAAI,IAAI/B,EAAEiC,OAAO,CAAA,EAAGD,EAAE,EAAE,GAC3FL,WAAKR,QAAW,MAAMA,MAAAA,GACtBe,gBAAU;",
6
+ "names": ["Match", "generateName", "hexToFallback", "toFallback", "hashString", "s", "h", "i", "length", "charCodeAt", "getMessageMetadata", "id", "identity", "fallbackSender", "fallback", "identityKey", "toHex", "name", "email", "authorId", "did", "authorName", "profile", "displayName", "undefined", "authorAvatarProps", "hue", "data", "emoji", "getAnchor", "type", "pipe", "when", "mode", "ids", "join", "from", "to", "ranges", "exhaustive"]
7
+ }
@@ -0,0 +1,69 @@
1
+ // src/hooks/analytics.ts
2
+ import { useCallback } from "react";
3
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
4
+ import { Obj } from "@dxos/echo";
5
+ import { ObservabilityOperation } from "@dxos/plugin-observability";
6
+ import { useOnTransition } from "@dxos/react-ui";
7
+ var useOnEditAnalytics = (message, textBlock, editing) => {
8
+ const { invokePromise } = useOperationInvoker();
9
+ const onEdit = useCallback(() => {
10
+ if (!message || !textBlock) {
11
+ return;
12
+ }
13
+ const db = Obj.getDatabase(message);
14
+ if (!db) {
15
+ return;
16
+ }
17
+ void invokePromise(ObservabilityOperation.SendEvent, {
18
+ name: "threads.message.update",
19
+ properties: {
20
+ spaceId: db.spaceId,
21
+ messageId: message.id,
22
+ messageLength: textBlock?.text.length
23
+ }
24
+ });
25
+ }, [
26
+ invokePromise,
27
+ message,
28
+ textBlock
29
+ ]);
30
+ useOnTransition(editing, true, false, onEdit);
31
+ };
32
+
33
+ // src/hooks/useStatus.ts
34
+ import { useEffect, useState } from "react";
35
+ var useStatus = (space, channel) => {
36
+ const [processing, setProcessing] = useState(false);
37
+ useEffect(() => {
38
+ if (!space || !channel) {
39
+ return;
40
+ }
41
+ const unsubscribe = space.listen(`status/${channel}`, (status) => {
42
+ const { event } = status.payload ?? {};
43
+ setProcessing(event === "processing");
44
+ });
45
+ const t = setInterval(() => {
46
+ setProcessing((prev) => {
47
+ if (typeof prev?.ts === "number" && Date.now() - prev.ts > 3e4) {
48
+ return void 0;
49
+ } else {
50
+ return prev;
51
+ }
52
+ });
53
+ }, 1e3);
54
+ return () => {
55
+ unsubscribe();
56
+ clearInterval(t);
57
+ };
58
+ }, [
59
+ space,
60
+ channel
61
+ ]);
62
+ return processing;
63
+ };
64
+
65
+ export {
66
+ useOnEditAnalytics,
67
+ useStatus
68
+ };
69
+ //# sourceMappingURL=chunk-QFDT33VT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/analytics.ts", "../../../src/hooks/useStatus.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type ContentBlock } from '@dxos/types';\n\nexport const useOnEditAnalytics = (\n message: any | undefined,\n textBlock: ContentBlock.Text | undefined,\n editing: boolean,\n) => {\n const { invokePromise } = useOperationInvoker();\n\n const onEdit = useCallback(() => {\n if (!message || !textBlock) {\n return;\n }\n\n const db = Obj.getDatabase(message);\n if (!db) {\n return;\n }\n\n void invokePromise(ObservabilityOperation.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: db.spaceId,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n });\n }, [invokePromise, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n", "//\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"],
5
+ "mappings": ";AAIA,SAASA,mBAAmB;AAE5B,SAASC,2BAA2B;AACpC,SAASC,WAAW;AACpB,SAASC,8BAA8B;AACvC,SAASC,uBAAuB;AAGzB,IAAMC,qBAAqB,CAChCC,SACAC,WACAC,YAAAA;AAEA,QAAM,EAAEC,cAAa,IAAKR,oBAAAA;AAE1B,QAAMS,SAASV,YAAY,MAAA;AACzB,QAAI,CAACM,WAAW,CAACC,WAAW;AAC1B;IACF;AAEA,UAAMI,KAAKT,IAAIU,YAAYN,OAAAA;AAC3B,QAAI,CAACK,IAAI;AACP;IACF;AAEA,SAAKF,cAAcN,uBAAuBU,WAAW;MACnDC,MAAM;MACNC,YAAY;QACVC,SAASL,GAAGK;QACZC,WAAWX,QAAQY;QACnBC,eAAeZ,WAAWa,KAAKC;MACjC;IACF,CAAA;EACF,GAAG;IAACZ;IAAeH;IAASC;GAAU;AAEtCH,kBAAgBI,SAAS,MAAM,OAAOE,MAAAA;AACxC;;;ACpCA,SAASY,WAAWC,gBAAgB;AAK7B,IAAMC,YAAY,CAACC,OAAeC,YAAAA;AACvC,QAAM,CAACC,YAAYC,aAAAA,IAAiBL,SAAS,KAAA;AAC7CD,YAAU,MAAA;AACR,QAAI,CAACG,SAAS,CAACC,SAAS;AACtB;IACF;AAEA,UAAMG,cAAcJ,MAAMK,OAAO,UAAUJ,OAAAA,IAAW,CAACK,WAAAA;AACrD,YAAM,EAAEC,MAAK,IAAKD,OAAOE,WAAW,CAAC;AACrCL,oBAAcI,UAAU,YAAA;IAC1B,CAAA;AAEA,UAAME,IAAIC,YAAY,MAAA;AACpBP,oBAAc,CAACQ,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;IAACT;IAAOC;GAAQ;AAEnB,SAAOC;AACT;",
6
+ "names": ["useCallback", "useOperationInvoker", "Obj", "ObservabilityOperation", "useOnTransition", "useOnEditAnalytics", "message", "textBlock", "editing", "invokePromise", "onEdit", "db", "getDatabase", "SendEvent", "name", "properties", "spaceId", "messageId", "id", "messageLength", "text", "length", "useEffect", "useState", "useStatus", "space", "channel", "processing", "setProcessing", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var ThreadOperationHandlerSet = OperationHandlerSet.lazy(() => import("./add-message-DATVSMVU.mjs"), () => import("./append-channel-message-4ACLATZY.mjs"), () => import("./create-2NJDD73M.mjs"), () => import("./create-channel-RYSV44N3.mjs"), () => import("./create-proposals-7UZYZ32V.mjs"), () => import("./delete-JVGAPD46.mjs"), () => import("./delete-message-5EGR3HWH.mjs"), () => import("./on-create-space-ZQF55KSO.mjs"), () => import("./respond-to-thread-LVLDZON3.mjs"), () => import("./restore-Z5PYV7I2.mjs"), () => import("./restore-message-B263PLUH.mjs"), () => import("./select-GXDEAH5D.mjs"), () => import("./set-agent-config-7HHS6KZZ.mjs"), () => import("./toggle-resolved-LBVNAVVF.mjs"));
4
+
5
+ export {
6
+ ThreadOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-TT6PWRR5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const ThreadOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./add-message'),\n () => import('./append-channel-message'),\n () => import('./create'),\n () => import('./create-channel'),\n () => import('./create-proposals'),\n () => import('./delete'),\n () => import('./delete-message'),\n () => import('./on-create-space'),\n () => import('./respond-to-thread'),\n () => import('./restore'),\n () => import('./restore-message'),\n () => import('./select'),\n () => import('./set-agent-config'),\n () => import('./toggle-resolved'),\n);\n"],
5
+ "mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,4BAA4BD,oBAAoBE,KAC3D,MAAM,OAAO,4BAAA,GACb,MAAM,OAAO,uCAAA,GACb,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,+BAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,+BAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,kCAAA,GACb,MAAM,OAAO,wBAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,gCAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "ThreadOperationHandlerSet", "lazy"]
7
+ }
@@ -0,0 +1,46 @@
1
+ // src/meta.ts
2
+ import { trim } from "@dxos/util";
3
+ var meta = {
4
+ id: "org.dxos.plugin.thread",
5
+ name: "Threads",
6
+ author: "DXOS",
7
+ description: trim`
8
+ ThreadPlugin renders comment threads anchored to ECHO objects and provides a
9
+ persistent chat channel attached to every workspace. Threads can be created
10
+ inline on any Markdown document, letting collaborators leave contextual
11
+ comments and hold focused discussions without leaving the document surface.
12
+
13
+ Each thread carries an optional AI agent configuration that controls how the
14
+ built-in assistant participates in the conversation. Threads can be set to
15
+ off, mention-only (the agent responds only when @-mentioned by name), or
16
+ auto mode (the agent replies to every new user message). The agent identity —
17
+ display name, DID, and avatar — is resolved at runtime from a pluggable
18
+ Effect capability so host applications can substitute their own assistant
19
+ persona.
20
+
21
+ When the agent is enabled, it executes one LLM turn per trigger via the
22
+ AgentRunner capability. The runner has access to edit tools that can splice
23
+ a replacement range into the anchored document span or replace the entire
24
+ document content, so the assistant can propose inline edits in addition to
25
+ posting chat replies. A self-loop guard prevents the agent from responding
26
+ to its own messages, and resolved threads are excluded from triggering.
27
+
28
+ The toggle UI appears as a per-thread icon button in the CommentsPanel
29
+ header. Clicking it opens a popover with three radio options (off / mention /
30
+ auto) and a read-only label showing the active agent name. All state changes
31
+ go through the SetAgentConfig operation rather than direct schema writes,
32
+ keeping mutation logic in one place and making the feature testable with
33
+ stub runners in storybook.
34
+ `,
35
+ icon: "ph--video-conference--regular",
36
+ iconHue: "rose",
37
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread",
38
+ spec: "PLUGIN.mdl"
39
+ };
40
+ var THREAD_ITEM = `${meta.id}.item`;
41
+
42
+ export {
43
+ meta,
44
+ THREAD_ITEM
45
+ };
46
+ //# sourceMappingURL=chunk-WMP3QCOR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.thread',\n name: 'Threads',\n author: 'DXOS',\n description: trim`\n ThreadPlugin renders comment threads anchored to ECHO objects and provides a\n persistent chat channel attached to every workspace. Threads can be created\n inline on any Markdown document, letting collaborators leave contextual\n comments and hold focused discussions without leaving the document surface.\n\n Each thread carries an optional AI agent configuration that controls how the\n built-in assistant participates in the conversation. Threads can be set to\n off, mention-only (the agent responds only when @-mentioned by name), or\n auto mode (the agent replies to every new user message). The agent identity —\n display name, DID, and avatar — is resolved at runtime from a pluggable\n Effect capability so host applications can substitute their own assistant\n persona.\n\n When the agent is enabled, it executes one LLM turn per trigger via the\n AgentRunner capability. The runner has access to edit tools that can splice\n a replacement range into the anchored document span or replace the entire\n document content, so the assistant can propose inline edits in addition to\n posting chat replies. A self-loop guard prevents the agent from responding\n to its own messages, and resolved threads are excluded from triggering.\n\n The toggle UI appears as a per-thread icon button in the CommentsPanel\n header. Clicking it opens a popover with three radio options (off / mention /\n auto) and a read-only label showing the active agent name. All state changes\n go through the SetAgentConfig operation rather than direct schema writes,\n keeping mutation logic in one place and making the feature testable with\n stub runners in storybook.\n `,\n icon: 'ph--video-conference--regular',\n iconHue: 'rose',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',\n spec: 'PLUGIN.mdl',\n};\n\nexport const THREAD_ITEM = `${meta.id}.item`;\n"],
5
+ "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,QAAQ;EACRC,aAAaL;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BbM,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;AACR;AAEO,IAAMC,cAAc,GAAGT,KAAKC,EAAE;",
6
+ "names": ["trim", "meta", "id", "name", "author", "description", "icon", "iconHue", "source", "spec", "THREAD_ITEM"]
7
+ }