@dxos/plugin-debug 0.12.0-next-73daef452f1464b62efdbca75fb0067c1066f264 → 0.13.0

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 (501) hide show
  1. package/PLUGIN.mdl +241 -3
  2. package/README.md +27 -3
  3. package/dist/lib/Debug.mjs.map +1 -1
  4. package/dist/lib/DebugNodes.mjs +21 -2
  5. package/dist/lib/DebugNodes.mjs.map +1 -1
  6. package/dist/lib/DebugOperation.mjs +166 -2
  7. package/dist/lib/DebugOperation.mjs.map +1 -1
  8. package/dist/lib/DebugPlugin.mjs.map +1 -1
  9. package/dist/lib/DebugSurface.mjs +7 -2
  10. package/dist/lib/DebugSurface.mjs.map +1 -1
  11. package/dist/lib/IncidentSpace.mjs +2 -0
  12. package/dist/lib/PipelineSpace.mjs +2 -0
  13. package/dist/lib/ReviewSpace.mjs +2 -0
  14. package/dist/lib/StockfishSpace.mjs +2 -0
  15. package/dist/lib/TidepoolSpace.mjs +2 -0
  16. package/dist/lib/WeatherSpace.mjs +2 -0
  17. package/dist/lib/WorkerSpace.mjs +2 -0
  18. package/dist/lib/capabilities.browser.mjs +71 -0
  19. package/dist/lib/capabilities.browser.mjs.map +1 -0
  20. package/dist/lib/capabilities.mjs +17 -7
  21. package/dist/lib/capabilities.mjs.map +1 -1
  22. package/dist/lib/capabilities.node.mjs +13 -3
  23. package/dist/lib/capabilities.node.mjs.map +1 -1
  24. package/dist/lib/capabilities.tauri.mjs +71 -0
  25. package/dist/lib/capabilities.tauri.mjs.map +1 -0
  26. package/dist/lib/capabilities.workerd.mjs +3 -1
  27. package/dist/lib/capabilities.workerd.mjs.map +1 -1
  28. package/dist/lib/chunk-DebugConsole.mjs +241 -0
  29. package/dist/lib/chunk-DebugConsole.mjs.map +1 -0
  30. package/dist/lib/chunk-DebugObjectPanel.mjs +12 -16
  31. package/dist/lib/chunk-DebugObjectPanel.mjs.map +1 -1
  32. package/dist/lib/chunk-DebugPanelDrawer.mjs +48 -0
  33. package/dist/lib/chunk-DebugPanelDrawer.mjs.map +1 -0
  34. package/dist/lib/chunk-DebugPanelHeader.mjs +280 -0
  35. package/dist/lib/chunk-DebugPanelHeader.mjs.map +1 -0
  36. package/dist/lib/chunk-DebugPanelStatus.mjs +127 -0
  37. package/dist/lib/chunk-DebugPanelStatus.mjs.map +1 -0
  38. package/dist/lib/chunk-DebugSettings.mjs +81 -70
  39. package/dist/lib/chunk-DebugSettings.mjs.map +1 -1
  40. package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs +21 -12
  41. package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs.map +1 -1
  42. package/dist/lib/chunk-DebugStatus.mjs +12 -12
  43. package/dist/lib/chunk-DebugStatus.mjs.map +1 -1
  44. package/dist/lib/chunk-IncidentSpace.mjs +269 -0
  45. package/dist/lib/chunk-IncidentSpace.mjs.map +1 -0
  46. package/dist/lib/chunk-LoggerPanel.mjs +18 -0
  47. package/dist/lib/chunk-LoggerPanel.mjs.map +1 -0
  48. package/dist/lib/chunk-PLUGIN.mjs +6 -0
  49. package/dist/lib/chunk-PLUGIN.mjs.map +1 -0
  50. package/dist/lib/chunk-PipelineSpace.mjs +378 -0
  51. package/dist/lib/chunk-PipelineSpace.mjs.map +1 -0
  52. package/dist/lib/chunk-ReviewSpace.mjs +356 -0
  53. package/dist/lib/chunk-ReviewSpace.mjs.map +1 -0
  54. package/dist/lib/chunk-SpaceGenerator.mjs +107 -73
  55. package/dist/lib/chunk-SpaceGenerator.mjs.map +1 -1
  56. package/dist/lib/chunk-StatsPanel.mjs +28 -35
  57. package/dist/lib/chunk-StatsPanel.mjs.map +1 -1
  58. package/dist/lib/chunk-StockfishSpace.mjs +563 -0
  59. package/dist/lib/chunk-StockfishSpace.mjs.map +1 -0
  60. package/dist/lib/chunk-TidepoolSpace.mjs +544 -0
  61. package/dist/lib/chunk-TidepoolSpace.mjs.map +1 -0
  62. package/dist/lib/chunk-WeatherSpace.mjs +206 -0
  63. package/dist/lib/chunk-WeatherSpace.mjs.map +1 -0
  64. package/dist/lib/chunk-Wireframe.mjs +6 -6
  65. package/dist/lib/chunk-Wireframe.mjs.map +1 -1
  66. package/dist/lib/chunk-WorkerSpace.mjs +177 -0
  67. package/dist/lib/chunk-WorkerSpace.mjs.map +1 -0
  68. package/dist/lib/chunk-app-graph-builder.mjs +72 -40
  69. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -1
  70. package/dist/lib/chunk-create-space-from-template.mjs +55 -0
  71. package/dist/lib/chunk-create-space-from-template.mjs.map +1 -0
  72. package/dist/lib/chunk-errors.mjs +13 -0
  73. package/dist/lib/chunk-errors.mjs.map +1 -0
  74. package/dist/lib/chunk-graph-retention.mjs +14 -0
  75. package/dist/lib/chunk-graph-retention.mjs.map +1 -0
  76. package/dist/lib/chunk-insert-lorem-ipsum.mjs +2 -2
  77. package/dist/lib/chunk-log-recording.mjs +29 -1
  78. package/dist/lib/chunk-log-recording.mjs.map +1 -1
  79. package/dist/lib/chunk-open-page.mjs +29 -0
  80. package/dist/lib/chunk-open-page.mjs.map +1 -0
  81. package/dist/lib/chunk-operation-handler.mjs +5 -0
  82. package/dist/lib/chunk-operation-handler.mjs.map +1 -1
  83. package/dist/lib/chunk-react-surface.mjs +73 -71
  84. package/dist/lib/chunk-react-surface.mjs.map +1 -1
  85. package/dist/lib/chunk-settings.mjs +2 -2
  86. package/dist/lib/chunk-settings.mjs.map +1 -1
  87. package/dist/lib/chunk-snapshot.mjs +170 -0
  88. package/dist/lib/chunk-snapshot.mjs.map +1 -0
  89. package/dist/lib/chunk-space-templates.mjs +21 -0
  90. package/dist/lib/chunk-space-templates.mjs.map +1 -0
  91. package/dist/lib/chunk-stats-panel.mjs +1 -1
  92. package/dist/lib/chunk-stats-panel.mjs.map +1 -1
  93. package/dist/lib/chunk-undo.mjs +17 -0
  94. package/dist/lib/chunk-undo.mjs.map +1 -0
  95. package/dist/lib/chunk-view-state.mjs +37 -0
  96. package/dist/lib/chunk-view-state.mjs.map +1 -0
  97. package/dist/lib/components.mjs +68 -28
  98. package/dist/lib/components.mjs.map +1 -1
  99. package/dist/lib/containers.mjs +5 -2
  100. package/dist/lib/containers.mjs.map +1 -1
  101. package/dist/lib/index.mjs +8 -2
  102. package/dist/lib/meta.mjs +3 -2
  103. package/dist/lib/meta.mjs.map +1 -1
  104. package/dist/lib/operations.mjs +7 -1
  105. package/dist/lib/operations.mjs.map +1 -1
  106. package/dist/lib/plugin.mjs +2 -2
  107. package/dist/lib/plugin.mjs.map +1 -1
  108. package/dist/lib/translations.mjs +13 -4
  109. package/dist/lib/translations.mjs.map +1 -1
  110. package/dist/types/scripts/build-template-archive.d.ts +2 -0
  111. package/dist/types/scripts/build-template-archive.d.ts.map +1 -0
  112. package/dist/types/src/DebugPlugin.d.ts +2 -2
  113. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/DebugSurfaces.d.ts +4 -5
  115. package/dist/types/src/capabilities/DebugSurfaces.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/app-graph-builder.d.ts +31 -0
  117. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  118. package/dist/types/src/capabilities/app-graph-builder.test.d.ts +2 -0
  119. package/dist/types/src/capabilities/app-graph-builder.test.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/gen/browser.d.ts +14 -0
  121. package/dist/types/src/capabilities/gen/browser.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/gen/node.d.ts +2 -0
  123. package/dist/types/src/capabilities/gen/node.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/gen/tauri.d.ts +14 -0
  125. package/dist/types/src/capabilities/gen/tauri.d.ts.map +1 -0
  126. package/dist/types/src/capabilities/gen/workerd.d.ts +2 -0
  127. package/dist/types/src/capabilities/gen/workerd.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/graph-retention.d.ts +5 -0
  129. package/dist/types/src/capabilities/graph-retention.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/index.d.ts +2 -0
  131. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/log-recording.d.ts +4 -0
  133. package/dist/types/src/capabilities/log-recording.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/space-templates.d.ts +14 -0
  136. package/dist/types/src/capabilities/space-templates.d.ts.map +1 -0
  137. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts +4 -3
  138. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -1
  139. package/dist/types/src/components/SchemaTable/index.d.ts +1 -1
  140. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -1
  141. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +2 -1
  142. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  143. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  144. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  145. package/dist/types/src/components/SpaceGenerator/presets.d.ts +1 -1
  146. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  147. package/dist/types/src/components/index.d.ts +2 -2
  148. package/dist/types/src/components/index.d.ts.map +1 -1
  149. package/dist/types/src/containers/DebugConsole/DebugConsole.d.ts +12 -0
  150. package/dist/types/src/containers/DebugConsole/DebugConsole.d.ts.map +1 -0
  151. package/dist/types/src/containers/DebugConsole/DebugConsole.stories.d.ts +103 -0
  152. package/dist/types/src/containers/DebugConsole/DebugConsole.stories.d.ts.map +1 -0
  153. package/dist/types/src/containers/DebugConsole/cli.d.ts +24 -0
  154. package/dist/types/src/containers/DebugConsole/cli.d.ts.map +1 -0
  155. package/dist/types/src/containers/DebugConsole/index.d.ts +2 -0
  156. package/dist/types/src/containers/DebugConsole/index.d.ts.map +1 -0
  157. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +1 -1
  158. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
  159. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +1 -1
  160. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -1
  161. package/dist/types/src/containers/DebugPanel/DebugPanel.d.ts +30 -0
  162. package/dist/types/src/containers/DebugPanel/DebugPanel.d.ts.map +1 -0
  163. package/dist/types/src/containers/DebugPanel/DebugPanel.stories.d.ts +126 -0
  164. package/dist/types/src/containers/DebugPanel/DebugPanel.stories.d.ts.map +1 -0
  165. package/dist/types/src/containers/DebugPanel/DebugPanelContext.d.ts +16 -0
  166. package/dist/types/src/containers/DebugPanel/DebugPanelContext.d.ts.map +1 -0
  167. package/dist/types/src/containers/DebugPanel/DebugPanelHeader.d.ts +14 -0
  168. package/dist/types/src/containers/DebugPanel/DebugPanelHeader.d.ts.map +1 -0
  169. package/dist/types/src/containers/DebugPanel/DebugPanelMain.d.ts +6 -0
  170. package/dist/types/src/containers/DebugPanel/DebugPanelMain.d.ts.map +1 -0
  171. package/dist/types/src/containers/DebugPanel/DebugPanelSidebar.d.ts +6 -0
  172. package/dist/types/src/containers/DebugPanel/DebugPanelSidebar.d.ts.map +1 -0
  173. package/dist/types/src/containers/DebugPanel/index.d.ts +7 -0
  174. package/dist/types/src/containers/DebugPanel/index.d.ts.map +1 -0
  175. package/dist/types/src/containers/DebugPanel/view-state.d.ts +46 -0
  176. package/dist/types/src/containers/DebugPanel/view-state.d.ts.map +1 -0
  177. package/dist/types/src/containers/DebugPanelDrawer/DebugPanelDrawer.d.ts +10 -0
  178. package/dist/types/src/containers/DebugPanelDrawer/DebugPanelDrawer.d.ts.map +1 -0
  179. package/dist/types/src/containers/DebugPanelDrawer/DebugPanelDrawer.stories.d.ts +114 -0
  180. package/dist/types/src/containers/DebugPanelDrawer/DebugPanelDrawer.stories.d.ts.map +1 -0
  181. package/dist/types/src/containers/DebugPanelDrawer/index.d.ts +2 -0
  182. package/dist/types/src/containers/DebugPanelDrawer/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/DebugPanelStatus/DebugPanelStatus.d.ts +11 -0
  184. package/dist/types/src/containers/DebugPanelStatus/DebugPanelStatus.d.ts.map +1 -0
  185. package/dist/types/src/containers/DebugPanelStatus/DebugPanelStatus.stories.d.ts +107 -0
  186. package/dist/types/src/containers/DebugPanelStatus/DebugPanelStatus.stories.d.ts.map +1 -0
  187. package/dist/types/src/containers/DebugPanelStatus/index.d.ts +2 -0
  188. package/dist/types/src/containers/DebugPanelStatus/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.d.ts.map +1 -1
  190. package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.stories.d.ts +13 -4
  191. package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.stories.d.ts.map +1 -1
  192. package/dist/types/src/containers/DebugPortSettings/index.d.ts +1 -1
  193. package/dist/types/src/containers/DebugPortSettings/index.d.ts.map +1 -1
  194. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +2 -2
  195. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -1
  196. package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts +14 -5
  197. package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts.map +1 -1
  198. package/dist/types/src/containers/DebugSettings/index.d.ts +1 -1
  199. package/dist/types/src/containers/DebugSettings/index.d.ts.map +1 -1
  200. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +1 -1
  201. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
  202. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +1 -1
  203. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -1
  204. package/dist/types/src/containers/DebugStatus/index.d.ts +1 -1
  205. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -1
  206. package/dist/types/src/containers/LoggerPanel/LoggerPanel.d.ts +6 -0
  207. package/dist/types/src/containers/LoggerPanel/LoggerPanel.d.ts.map +1 -0
  208. package/dist/types/src/containers/LoggerPanel/LoggerPanel.stories.d.ts +107 -0
  209. package/dist/types/src/containers/LoggerPanel/LoggerPanel.stories.d.ts.map +1 -0
  210. package/dist/types/src/containers/LoggerPanel/index.d.ts +2 -0
  211. package/dist/types/src/containers/LoggerPanel/index.d.ts.map +1 -0
  212. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  213. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -4
  214. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
  215. package/dist/types/src/containers/SpaceGenerator/index.d.ts +1 -1
  216. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -1
  217. package/dist/types/src/containers/StatsPanel/StatsPanel.d.ts +5 -1
  218. package/dist/types/src/containers/StatsPanel/StatsPanel.d.ts.map +1 -1
  219. package/dist/types/src/containers/StatsPanel/index.d.ts +1 -1
  220. package/dist/types/src/containers/StatsPanel/index.d.ts.map +1 -1
  221. package/dist/types/src/containers/Wireframe/Wireframe.d.ts +2 -2
  222. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -1
  223. package/dist/types/src/containers/Wireframe/index.d.ts +1 -1
  224. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -1
  225. package/dist/types/src/containers/index.d.ts +7 -1
  226. package/dist/types/src/containers/index.d.ts.map +1 -1
  227. package/dist/types/src/errors.d.ts +123 -0
  228. package/dist/types/src/errors.d.ts.map +1 -0
  229. package/dist/types/src/index.d.ts +2 -2
  230. package/dist/types/src/index.d.ts.map +1 -1
  231. package/dist/types/src/operations/DebugOperationHandlerSet.d.ts.map +1 -1
  232. package/dist/types/src/operations/create-space-from-template.d.ts +5 -0
  233. package/dist/types/src/operations/create-space-from-template.d.ts.map +1 -0
  234. package/dist/types/src/operations/errors.d.ts +33 -0
  235. package/dist/types/src/operations/errors.d.ts.map +1 -0
  236. package/dist/types/src/operations/index.d.ts +1 -1
  237. package/dist/types/src/operations/index.d.ts.map +1 -1
  238. package/dist/types/src/operations/open-page.d.ts +5 -0
  239. package/dist/types/src/operations/open-page.d.ts.map +1 -0
  240. package/dist/types/src/operations/snapshot.d.ts +5 -0
  241. package/dist/types/src/operations/snapshot.d.ts.map +1 -0
  242. package/dist/types/src/operations/snapshot.test.d.ts +2 -0
  243. package/dist/types/src/operations/snapshot.test.d.ts.map +1 -0
  244. package/dist/types/src/operations/undo.d.ts +5 -0
  245. package/dist/types/src/operations/undo.d.ts.map +1 -0
  246. package/dist/types/src/operations/undo.test.d.ts +2 -0
  247. package/dist/types/src/operations/undo.test.d.ts.map +1 -0
  248. package/dist/types/src/plugin.d.ts.map +1 -1
  249. package/dist/types/src/samples/crm/PipelineSpace.d.ts +21 -0
  250. package/dist/types/src/samples/crm/PipelineSpace.d.ts.map +1 -0
  251. package/dist/types/src/samples/crm/PipelineSpace.test.d.ts +2 -0
  252. package/dist/types/src/samples/crm/PipelineSpace.test.d.ts.map +1 -0
  253. package/dist/types/src/samples/crm/accounts.d.ts +55 -0
  254. package/dist/types/src/samples/crm/accounts.d.ts.map +1 -0
  255. package/dist/types/src/samples/crm/inbox.d.ts +14 -0
  256. package/dist/types/src/samples/crm/inbox.d.ts.map +1 -0
  257. package/dist/types/src/samples/crm/pipeline.d.ts +9 -0
  258. package/dist/types/src/samples/crm/pipeline.d.ts.map +1 -0
  259. package/dist/types/src/samples/crm/util.d.ts +14 -0
  260. package/dist/types/src/samples/crm/util.d.ts.map +1 -0
  261. package/dist/types/src/samples/incident/IncidentSpace.d.ts +21 -0
  262. package/dist/types/src/samples/incident/IncidentSpace.d.ts.map +1 -0
  263. package/dist/types/src/samples/incident/IncidentSpace.test.d.ts +2 -0
  264. package/dist/types/src/samples/incident/IncidentSpace.test.d.ts.map +1 -0
  265. package/dist/types/src/samples/incident/docs.d.ts +14 -0
  266. package/dist/types/src/samples/incident/docs.d.ts.map +1 -0
  267. package/dist/types/src/samples/incident/project.d.ts +16 -0
  268. package/dist/types/src/samples/incident/project.d.ts.map +1 -0
  269. package/dist/types/src/samples/incident/tasks.d.ts +9 -0
  270. package/dist/types/src/samples/incident/tasks.d.ts.map +1 -0
  271. package/dist/types/src/samples/incident/util.d.ts +32 -0
  272. package/dist/types/src/samples/incident/util.d.ts.map +1 -0
  273. package/dist/types/src/samples/index.d.ts +8 -0
  274. package/dist/types/src/samples/index.d.ts.map +1 -0
  275. package/dist/types/src/samples/review/ReviewSpace.d.ts +19 -0
  276. package/dist/types/src/samples/review/ReviewSpace.d.ts.map +1 -0
  277. package/dist/types/src/samples/review/ReviewSpace.test.d.ts +2 -0
  278. package/dist/types/src/samples/review/ReviewSpace.test.d.ts.map +1 -0
  279. package/dist/types/src/samples/review/assets.d.ts +19 -0
  280. package/dist/types/src/samples/review/assets.d.ts.map +1 -0
  281. package/dist/types/src/samples/review/util.d.ts +4 -0
  282. package/dist/types/src/samples/review/util.d.ts.map +1 -0
  283. package/dist/types/src/samples/review/work.d.ts +15 -0
  284. package/dist/types/src/samples/review/work.d.ts.map +1 -0
  285. package/dist/types/src/samples/stockfish/StockfishSpace.d.ts +27 -0
  286. package/dist/types/src/samples/stockfish/StockfishSpace.d.ts.map +1 -0
  287. package/dist/types/src/samples/stockfish/StockfishSpace.test.d.ts +2 -0
  288. package/dist/types/src/samples/stockfish/StockfishSpace.test.d.ts.map +1 -0
  289. package/dist/types/src/samples/stockfish/docs.d.ts +8 -0
  290. package/dist/types/src/samples/stockfish/docs.d.ts.map +1 -0
  291. package/dist/types/src/samples/stockfish/game.d.ts +10 -0
  292. package/dist/types/src/samples/stockfish/game.d.ts.map +1 -0
  293. package/dist/types/src/samples/stockfish/project.d.ts +31 -0
  294. package/dist/types/src/samples/stockfish/project.d.ts.map +1 -0
  295. package/dist/types/src/samples/stockfish/run.test.d.ts +2 -0
  296. package/dist/types/src/samples/stockfish/run.test.d.ts.map +1 -0
  297. package/dist/types/src/samples/stockfish/skill.d.ts +8 -0
  298. package/dist/types/src/samples/stockfish/skill.d.ts.map +1 -0
  299. package/dist/types/src/samples/stockfish/tasks.d.ts +12 -0
  300. package/dist/types/src/samples/stockfish/tasks.d.ts.map +1 -0
  301. package/dist/types/src/samples/stockfish/util.d.ts +14 -0
  302. package/dist/types/src/samples/stockfish/util.d.ts.map +1 -0
  303. package/dist/types/src/samples/tidepool/TidepoolSpace.d.ts +22 -0
  304. package/dist/types/src/samples/tidepool/TidepoolSpace.d.ts.map +1 -0
  305. package/dist/types/src/samples/tidepool/TidepoolSpace.test.d.ts +2 -0
  306. package/dist/types/src/samples/tidepool/TidepoolSpace.test.d.ts.map +1 -0
  307. package/dist/types/src/samples/tidepool/docs.d.ts +12 -0
  308. package/dist/types/src/samples/tidepool/docs.d.ts.map +1 -0
  309. package/dist/types/src/samples/tidepool/project.d.ts +20 -0
  310. package/dist/types/src/samples/tidepool/project.d.ts.map +1 -0
  311. package/dist/types/src/samples/tidepool/tasks.d.ts +14 -0
  312. package/dist/types/src/samples/tidepool/tasks.d.ts.map +1 -0
  313. package/dist/types/src/samples/tidepool/team.d.ts +9 -0
  314. package/dist/types/src/samples/tidepool/team.d.ts.map +1 -0
  315. package/dist/types/src/samples/tidepool/util.d.ts +14 -0
  316. package/dist/types/src/samples/tidepool/util.d.ts.map +1 -0
  317. package/dist/types/src/samples/weather/WeatherSpace.d.ts +21 -0
  318. package/dist/types/src/samples/weather/WeatherSpace.d.ts.map +1 -0
  319. package/dist/types/src/samples/weather/WeatherSpace.test.d.ts +2 -0
  320. package/dist/types/src/samples/weather/WeatherSpace.test.d.ts.map +1 -0
  321. package/dist/types/src/samples/weather/project.d.ts +20 -0
  322. package/dist/types/src/samples/weather/project.d.ts.map +1 -0
  323. package/dist/types/src/samples/weather/skill.d.ts +12 -0
  324. package/dist/types/src/samples/weather/skill.d.ts.map +1 -0
  325. package/dist/types/src/samples/weather/tasks.d.ts +9 -0
  326. package/dist/types/src/samples/weather/tasks.d.ts.map +1 -0
  327. package/dist/types/src/samples/weather/util.d.ts +16 -0
  328. package/dist/types/src/samples/weather/util.d.ts.map +1 -0
  329. package/dist/types/src/samples/worker/WorkerSpace.d.ts +22 -0
  330. package/dist/types/src/samples/worker/WorkerSpace.d.ts.map +1 -0
  331. package/dist/types/src/samples/worker/WorkerSpace.test.d.ts +2 -0
  332. package/dist/types/src/samples/worker/WorkerSpace.test.d.ts.map +1 -0
  333. package/dist/types/src/samples/worker/project.d.ts +18 -0
  334. package/dist/types/src/samples/worker/project.d.ts.map +1 -0
  335. package/dist/types/src/samples/worker/tasks.d.ts +9 -0
  336. package/dist/types/src/samples/worker/tasks.d.ts.map +1 -0
  337. package/dist/types/src/samples/worker/util.d.ts +14 -0
  338. package/dist/types/src/samples/worker/util.d.ts.map +1 -0
  339. package/dist/types/src/stories/SpaceTemplates.stories.d.ts +114 -0
  340. package/dist/types/src/stories/SpaceTemplates.stories.d.ts.map +1 -0
  341. package/dist/types/src/testing/index.d.ts +3 -0
  342. package/dist/types/src/testing/index.d.ts.map +1 -0
  343. package/dist/types/src/testing/stub-drawer-plugin.d.ts +8 -0
  344. package/dist/types/src/testing/stub-drawer-plugin.d.ts.map +1 -0
  345. package/dist/types/src/testing/stub-tools-plugin.d.ts +19 -0
  346. package/dist/types/src/testing/stub-tools-plugin.d.ts.map +1 -0
  347. package/dist/types/src/translations.d.ts +13 -4
  348. package/dist/types/src/translations.d.ts.map +1 -1
  349. package/dist/types/src/types/Debug.d.ts +2 -2
  350. package/dist/types/src/types/Debug.d.ts.map +1 -1
  351. package/dist/types/src/types/DebugNodes.d.ts +13 -1
  352. package/dist/types/src/types/DebugNodes.d.ts.map +1 -1
  353. package/dist/types/src/types/DebugOperation.d.ts +119 -0
  354. package/dist/types/src/types/DebugOperation.d.ts.map +1 -1
  355. package/dist/types/src/types/DebugSurface.d.ts +7 -0
  356. package/dist/types/src/types/DebugSurface.d.ts.map +1 -1
  357. package/dist/types/src/types/index.d.ts +6 -6
  358. package/dist/types/src/types/index.d.ts.map +1 -1
  359. package/dist/types/tsconfig.tsbuildinfo +1 -1
  360. package/dx.config.ts +3 -2
  361. package/package.json +129 -73
  362. package/scripts/build-template-archive.ts +65 -0
  363. package/src/DebugPlugin.ts +1 -1
  364. package/src/capabilities/DebugSurfaces.tsx +85 -71
  365. package/src/capabilities/app-graph-builder.test.ts +45 -0
  366. package/src/capabilities/app-graph-builder.ts +83 -46
  367. package/src/capabilities/gen/browser.ts +85 -0
  368. package/src/capabilities/gen/node.ts +15 -8
  369. package/src/capabilities/gen/tauri.ts +85 -0
  370. package/src/capabilities/gen/workerd.ts +11 -4
  371. package/src/capabilities/graph-retention.ts +23 -0
  372. package/src/capabilities/index.ts +18 -10
  373. package/src/capabilities/log-recording.ts +20 -1
  374. package/src/capabilities/operation-handler.ts +9 -0
  375. package/src/capabilities/react-surface.ts +33 -29
  376. package/src/capabilities/settings.ts +2 -2
  377. package/src/capabilities/space-templates.ts +25 -0
  378. package/src/capabilities/stats-panel.ts +1 -1
  379. package/src/components/SchemaTable/SchemaTable.tsx +44 -10
  380. package/src/components/SchemaTable/index.ts +1 -1
  381. package/src/components/SpaceGenerator/ObjectGenerator.tsx +22 -2
  382. package/src/components/SpaceGenerator/index.ts +2 -2
  383. package/src/components/SpaceGenerator/presets.ts +4 -4
  384. package/src/components/index.ts +2 -2
  385. package/src/containers/DebugConsole/DebugConsole.stories.tsx +29 -0
  386. package/src/containers/DebugConsole/DebugConsole.tsx +94 -0
  387. package/src/containers/DebugConsole/cli.ts +296 -0
  388. package/src/containers/DebugConsole/index.ts +5 -0
  389. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +44 -44
  390. package/src/containers/DebugObjectPanel/index.ts +1 -1
  391. package/src/containers/DebugPanel/DebugPanel.stories.tsx +118 -0
  392. package/src/containers/DebugPanel/DebugPanel.tsx +72 -0
  393. package/src/containers/DebugPanel/DebugPanelContext.ts +33 -0
  394. package/src/containers/DebugPanel/DebugPanelHeader.tsx +54 -0
  395. package/src/containers/DebugPanel/DebugPanelMain.tsx +116 -0
  396. package/src/containers/DebugPanel/DebugPanelSidebar.tsx +123 -0
  397. package/src/containers/DebugPanel/index.ts +10 -0
  398. package/src/containers/DebugPanel/view-state.ts +60 -0
  399. package/src/containers/DebugPanelDrawer/DebugPanelDrawer.stories.tsx +92 -0
  400. package/src/containers/DebugPanelDrawer/DebugPanelDrawer.tsx +72 -0
  401. package/src/containers/DebugPanelDrawer/index.ts +5 -0
  402. package/src/containers/DebugPanelStatus/DebugPanelStatus.stories.tsx +119 -0
  403. package/src/containers/DebugPanelStatus/DebugPanelStatus.tsx +167 -0
  404. package/src/containers/DebugPanelStatus/index.ts +5 -0
  405. package/src/containers/DebugPortSettings/DebugPortSettings.stories.tsx +2 -2
  406. package/src/containers/DebugPortSettings/DebugPortSettings.tsx +33 -40
  407. package/src/containers/DebugPortSettings/index.ts +1 -1
  408. package/src/containers/DebugSettings/DebugSettings.stories.tsx +1 -1
  409. package/src/containers/DebugSettings/DebugSettings.tsx +71 -64
  410. package/src/containers/DebugSettings/index.ts +1 -1
  411. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +39 -28
  412. package/src/containers/DebugSpaceObjectsPanel/index.ts +1 -1
  413. package/src/containers/DebugStatus/DebugStatus.tsx +10 -10
  414. package/src/containers/DebugStatus/index.ts +1 -1
  415. package/src/containers/LoggerPanel/LoggerPanel.stories.tsx +62 -0
  416. package/src/containers/LoggerPanel/LoggerPanel.tsx +28 -0
  417. package/src/containers/LoggerPanel/index.ts +5 -0
  418. package/src/containers/SpaceGenerator/SpaceGenerator.stories.tsx +8 -8
  419. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +102 -73
  420. package/src/containers/SpaceGenerator/index.ts +1 -1
  421. package/src/containers/StatsPanel/StatsPanel.tsx +32 -31
  422. package/src/containers/StatsPanel/index.ts +1 -1
  423. package/src/containers/Wireframe/Wireframe.tsx +8 -7
  424. package/src/containers/Wireframe/index.ts +1 -1
  425. package/src/containers/index.ts +22 -9
  426. package/src/errors.ts +23 -0
  427. package/src/index.ts +2 -2
  428. package/src/meta.ts +1 -1
  429. package/src/operations/DebugOperationHandlerSet.ts +5 -1
  430. package/src/operations/create-space-from-template.ts +57 -0
  431. package/src/operations/errors.ts +8 -0
  432. package/src/operations/index.ts +1 -1
  433. package/src/operations/open-page.ts +51 -0
  434. package/src/operations/snapshot.test.ts +57 -0
  435. package/src/operations/snapshot.ts +243 -0
  436. package/src/operations/undo.test.ts +19 -0
  437. package/src/operations/undo.ts +28 -0
  438. package/src/plugin.tsx +4 -0
  439. package/src/samples/crm/PipelineSpace.test.ts +55 -0
  440. package/src/samples/crm/PipelineSpace.ts +52 -0
  441. package/src/samples/crm/accounts.ts +153 -0
  442. package/src/samples/crm/inbox.ts +158 -0
  443. package/src/samples/crm/pipeline.ts +70 -0
  444. package/src/samples/crm/util.ts +18 -0
  445. package/src/samples/incident/IncidentSpace.test.ts +68 -0
  446. package/src/samples/incident/IncidentSpace.ts +61 -0
  447. package/src/samples/incident/docs.ts +111 -0
  448. package/src/samples/incident/project.ts +61 -0
  449. package/src/samples/incident/tasks.ts +101 -0
  450. package/src/samples/incident/util.ts +24 -0
  451. package/src/samples/index.ts +11 -0
  452. package/src/samples/review/ReviewSpace.test.ts +89 -0
  453. package/src/samples/review/ReviewSpace.ts +47 -0
  454. package/src/samples/review/assets.ts +123 -0
  455. package/src/samples/review/util.ts +10 -0
  456. package/src/samples/review/work.ts +249 -0
  457. package/src/samples/stockfish/StockfishSpace.test.ts +129 -0
  458. package/src/samples/stockfish/StockfishSpace.ts +70 -0
  459. package/src/samples/stockfish/docs.ts +65 -0
  460. package/src/samples/stockfish/game.ts +47 -0
  461. package/src/samples/stockfish/project.ts +87 -0
  462. package/src/samples/stockfish/run.test.ts +193 -0
  463. package/src/samples/stockfish/skill.ts +154 -0
  464. package/src/samples/stockfish/tasks.ts +306 -0
  465. package/src/samples/stockfish/util.ts +17 -0
  466. package/src/samples/tidepool/TidepoolSpace.test.ts +61 -0
  467. package/src/samples/tidepool/TidepoolSpace.ts +65 -0
  468. package/src/samples/tidepool/docs.ts +140 -0
  469. package/src/samples/tidepool/project.ts +57 -0
  470. package/src/samples/tidepool/tasks.ts +252 -0
  471. package/src/samples/tidepool/team.ts +87 -0
  472. package/src/samples/tidepool/util.ts +18 -0
  473. package/src/samples/weather/WeatherSpace.test.ts +93 -0
  474. package/src/samples/weather/WeatherSpace.ts +59 -0
  475. package/src/samples/weather/project.ts +76 -0
  476. package/src/samples/weather/skill.ts +45 -0
  477. package/src/samples/weather/tasks.ts +98 -0
  478. package/src/samples/weather/util.ts +21 -0
  479. package/src/samples/worker/WorkerSpace.test.ts +102 -0
  480. package/src/samples/worker/WorkerSpace.ts +56 -0
  481. package/src/samples/worker/project.ts +72 -0
  482. package/src/samples/worker/tasks.ts +119 -0
  483. package/src/samples/worker/util.ts +17 -0
  484. package/src/stories/SpaceTemplates.stories.tsx +105 -0
  485. package/src/testing/index.ts +6 -0
  486. package/src/testing/stub-drawer-plugin.ts +65 -0
  487. package/src/testing/stub-tools-plugin.tsx +95 -0
  488. package/src/translations.ts +15 -6
  489. package/src/types/Debug.ts +2 -2
  490. package/src/types/DebugNodes.ts +21 -1
  491. package/src/types/DebugOperation.ts +206 -0
  492. package/src/types/DebugSurface.ts +7 -0
  493. package/src/types/index.ts +6 -6
  494. package/dist/lib/chunk-LogStatus.mjs +0 -44
  495. package/dist/lib/chunk-LogStatus.mjs.map +0 -1
  496. package/dist/types/src/containers/LogStatus/LogStatus.d.ts +0 -6
  497. package/dist/types/src/containers/LogStatus/LogStatus.d.ts.map +0 -1
  498. package/dist/types/src/containers/LogStatus/index.d.ts +0 -2
  499. package/dist/types/src/containers/LogStatus/index.d.ts.map +0 -1
  500. package/src/containers/LogStatus/LogStatus.tsx +0 -51
  501. package/src/containers/LogStatus/index.ts +0 -5
@@ -0,0 +1,378 @@
1
+ import { t as __exportAll } from "./chunk-rolldown-runtime.mjs";
2
+ import * as Effect from "effect/Effect";
3
+ import * as SampleSpace from "@dxos/app-toolkit/SampleSpace";
4
+ import { Database, Feed, Filter, JsonSchema, Obj, Query, Ref, Tag, View } from "@dxos/echo";
5
+ import { Message, Organization, Person, Pipeline } from "@dxos/types";
6
+ import * as Mailbox from "@dxos/plugin-inbox/Mailbox";
7
+ import * as SystemTags from "@dxos/plugin-inbox/SystemTags";
8
+ import { TagIndex, ViewModel } from "@dxos/schema";
9
+ //#region src/samples/crm/accounts.ts
10
+ var ACCOUNT_SEEDS = [
11
+ {
12
+ key: "meridian",
13
+ name: "Meridian Health",
14
+ description: "Renewed for a third year. Two hundred seats, expanding into their research arm.",
15
+ status: "active",
16
+ website: "https://meridianhealth.example"
17
+ },
18
+ {
19
+ key: "bellweather",
20
+ name: "Bellweather Logistics",
21
+ description: "Signed in March. Rolling out to dispatch first, then the depots.",
22
+ status: "active",
23
+ website: "https://bellweather.example"
24
+ },
25
+ {
26
+ key: "foxglove",
27
+ name: "Foxglove Studios",
28
+ description: "Verbal yes on a 40-seat plan; waiting on their finance sign-off.",
29
+ status: "commit",
30
+ website: "https://foxglove.example"
31
+ },
32
+ {
33
+ key: "northgate",
34
+ name: "Northgate Credit Union",
35
+ description: "Security review passed. Procurement is the only thing left.",
36
+ status: "commit",
37
+ website: "https://northgatecu.example"
38
+ },
39
+ {
40
+ key: "quarry",
41
+ name: "Quarry Analytics",
42
+ description: "Pilot running with eight users. Champion is the head of data.",
43
+ status: "qualified",
44
+ website: "https://quarry.example"
45
+ },
46
+ {
47
+ key: "saltbox",
48
+ name: "Saltbox Provisions",
49
+ description: "Inbound from the newsletter. Budget unclear, timeline unclear.",
50
+ status: "prospect",
51
+ website: "https://saltbox.example"
52
+ },
53
+ {
54
+ key: "tinderbox",
55
+ name: "Tinderbox Media",
56
+ description: "Went quiet after the second call. Re-engage next quarter, or close it out.",
57
+ status: "reject",
58
+ website: "https://tinderbox.example"
59
+ }
60
+ ];
61
+ /** The accounts, each already at its pipeline stage. */
62
+ var Accounts = SampleSpace.phase("accounts", {
63
+ schemas: [Organization.Organization],
64
+ run: () => SampleSpace.seed(ACCOUNT_SEEDS, (seed) => Database.add(Organization.make({
65
+ name: seed.name,
66
+ description: seed.description,
67
+ status: seed.status,
68
+ website: seed.website
69
+ })))
70
+ });
71
+ var CONTACT_SEEDS = [
72
+ {
73
+ key: "dara",
74
+ fullName: "Dara Osei",
75
+ jobTitle: "Director of IT",
76
+ accountKey: "meridian",
77
+ email: "dara.osei@meridianhealth.example"
78
+ },
79
+ {
80
+ key: "wes",
81
+ fullName: "Wes Kowalski",
82
+ jobTitle: "Head of Dispatch",
83
+ accountKey: "bellweather",
84
+ email: "wes@bellweather.example"
85
+ },
86
+ {
87
+ key: "ines",
88
+ fullName: "Inés Baptista",
89
+ jobTitle: "Studio Producer",
90
+ accountKey: "foxglove",
91
+ email: "ines@foxglove.example"
92
+ },
93
+ {
94
+ key: "gil",
95
+ fullName: "Gil Ferreira",
96
+ jobTitle: "CISO",
97
+ accountKey: "northgate",
98
+ email: "g.ferreira@northgatecu.example"
99
+ },
100
+ {
101
+ key: "mo",
102
+ fullName: "Mo Haddad",
103
+ jobTitle: "Head of Data",
104
+ accountKey: "quarry",
105
+ email: "mo@quarry.example"
106
+ },
107
+ {
108
+ key: "ruth",
109
+ fullName: "Ruth Lindqvist",
110
+ jobTitle: "Owner",
111
+ accountKey: "saltbox",
112
+ email: "ruth@saltbox.example"
113
+ },
114
+ {
115
+ key: "jonas",
116
+ fullName: "Jonas Vail",
117
+ jobTitle: "Creative Director",
118
+ accountKey: "tinderbox",
119
+ email: "jonas@tinderbox.example"
120
+ }
121
+ ];
122
+ /** One named contact per account — whoever the mail in this space is actually with. */
123
+ var Contacts = SampleSpace.phase("contacts", {
124
+ schemas: [Person.Person],
125
+ run: (accounts) => SampleSpace.seed(CONTACT_SEEDS, (seed) => Database.add(Person.make({
126
+ fullName: seed.fullName,
127
+ jobTitle: seed.jobTitle,
128
+ organization: Ref.make(accounts[seed.accountKey]),
129
+ emails: [{
130
+ label: "Work",
131
+ value: seed.email
132
+ }]
133
+ })))
134
+ });
135
+ /** Contact seeds, for the phases that need a name and address rather than the object. */
136
+ var contactSeed = (key) => {
137
+ const seed = CONTACT_SEEDS.find((seed) => seed.key === key);
138
+ if (!seed) throw new Error(`No CONTACT_SEEDS entry for "${key}".`);
139
+ return seed;
140
+ };
141
+ //#endregion
142
+ //#region src/samples/crm/util.ts
143
+ /** Stable reference date so regenerations are reproducible. Override with NOW=2026-05-20 env. */
144
+ var REFERENCE = process.env.NOW ? new Date(process.env.NOW) : /* @__PURE__ */ new Date("2026-05-20T15:00:00Z");
145
+ /**
146
+ * Bound to the same reference the definition declares, so the pure content builders can date their
147
+ * objects without every one of them being an effect.
148
+ */
149
+ var clock = SampleSpace.makeClock(REFERENCE);
150
+ var daysAgo = clock.daysAgo;
151
+ clock.daysFromNow;
152
+ //#endregion
153
+ //#region src/samples/crm/inbox.ts
154
+ var OWNER = {
155
+ role: "user",
156
+ name: "Priya Raman",
157
+ email: "priya@northwind-sales.example"
158
+ };
159
+ var EMAIL_SEEDS = [
160
+ {
161
+ from: "ruth",
162
+ subject: "Question from the newsletter",
163
+ body: "We are twelve people and drowning in spreadsheets. Is there a plan that makes sense at our size?",
164
+ daysAgo: 12
165
+ },
166
+ {
167
+ from: "owner",
168
+ subject: "Re: Question from the newsletter",
169
+ body: "There is — the team plan starts at ten seats. Happy to walk you through it. Are you free Thursday?",
170
+ daysAgo: 11
171
+ },
172
+ {
173
+ from: "mo",
174
+ subject: "Pilot week two",
175
+ body: "Eight of us are in it daily now. The import took a morning and nobody has asked me to undo it, which is high praise here.",
176
+ daysAgo: 9,
177
+ tags: ["important"]
178
+ },
179
+ {
180
+ from: "gil",
181
+ subject: "Security review — outcome",
182
+ body: "Review is closed with no findings. Procurement has the paperwork; expect two weeks of silence and then a PO.",
183
+ daysAgo: 6,
184
+ tags: ["important", "starred"]
185
+ },
186
+ {
187
+ from: "ines",
188
+ subject: "Finance sign-off",
189
+ body: "We are a yes at 40 seats. Finance wants the invoice dated next quarter — workable?",
190
+ daysAgo: 4,
191
+ tags: ["starred"]
192
+ },
193
+ {
194
+ from: "owner",
195
+ subject: "Re: Finance sign-off",
196
+ body: "Workable. I will date it the first of the quarter and note the seat count on the order form.",
197
+ daysAgo: 4
198
+ },
199
+ {
200
+ from: "dara",
201
+ subject: "Adding the research arm",
202
+ body: "Renewal is signed. Separately: research wants in, roughly 60 more seats. Who do I talk to about pricing that?",
203
+ daysAgo: 2,
204
+ tags: ["important"]
205
+ },
206
+ {
207
+ from: "wes",
208
+ subject: "Depot rollout order",
209
+ body: "Dispatch is live and quiet. We would like to do the depots north-to-south rather than all at once.",
210
+ daysAgo: 1
211
+ }
212
+ ];
213
+ var textBlock = (text) => ({
214
+ _tag: "text",
215
+ text
216
+ });
217
+ var senderOf = (seed) => {
218
+ if (seed.from === "owner") return OWNER;
219
+ const { fullName, email } = contactSeed(seed.from);
220
+ return {
221
+ role: "user",
222
+ name: fullName,
223
+ email
224
+ };
225
+ };
226
+ var threadIdFor = (subject) => `thread-${subject.replace(/^(\s*(re|fwd?):\s*)+/i, "").trim().normalize("NFKD").replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "").toLowerCase() || "thread"}`;
227
+ /**
228
+ * The shared sales inbox. Mail the owner sent is tagged `sent`; everything else is `inbox`, which is
229
+ * what the mailbox's folders resolve against. Feed messages are immutable, so tag membership lives
230
+ * in the mailbox's child `TagIndex`.
231
+ */
232
+ var Inbox = SampleSpace.phase("inbox", {
233
+ schemas: [
234
+ Mailbox.Mailbox,
235
+ Message.Message,
236
+ TagIndex.TagIndex,
237
+ Tag.Tag,
238
+ Feed.Feed
239
+ ],
240
+ run: () => Effect.gen(function* () {
241
+ const mailbox = yield* Database.add(Mailbox.make({ name: "Sales" }));
242
+ const index = mailbox.tags.target;
243
+ const feed = mailbox.feed.target;
244
+ if (!index || !feed) return yield* Effect.fail(new SampleSpace.SampleSpaceError({ context: { reason: "mailbox-incomplete" } }));
245
+ const messages = EMAIL_SEEDS.map((seed) => {
246
+ const threadId = threadIdFor(seed.subject);
247
+ return Message.make({
248
+ created: daysAgo(seed.daysAgo),
249
+ sender: senderOf(seed),
250
+ blocks: [textBlock(seed.body)],
251
+ threadId,
252
+ properties: {
253
+ subject: seed.subject,
254
+ threadId
255
+ }
256
+ });
257
+ });
258
+ yield* SampleSpace.tagBatch(messages.flatMap((message, index) => {
259
+ const seed = EMAIL_SEEDS[index];
260
+ return [...seed.from === "owner" ? ["sent"] : ["inbox"], ...seed.tags ?? []].map((key) => ({
261
+ object: message,
262
+ key
263
+ }));
264
+ }), {
265
+ index,
266
+ resolve: (db, key) => SystemTags.findOrCreateSystemTag(db, key)
267
+ });
268
+ Obj.update(mailbox, (mailbox) => {
269
+ mailbox.subscriptions = Mailbox.deriveSubscriptions(messages);
270
+ });
271
+ yield* SampleSpace.appendToFeed(feed, messages);
272
+ return {
273
+ mailbox,
274
+ messages
275
+ };
276
+ })
277
+ });
278
+ //#endregion
279
+ //#region src/samples/crm/pipeline.ts
280
+ var STAGES = [
281
+ {
282
+ name: "Prospect",
283
+ status: "prospect"
284
+ },
285
+ {
286
+ name: "Qualified",
287
+ status: "qualified"
288
+ },
289
+ {
290
+ name: "Commit",
291
+ status: "commit"
292
+ },
293
+ {
294
+ name: "Closed won",
295
+ status: "active"
296
+ },
297
+ {
298
+ name: "Closed lost",
299
+ status: "reject"
300
+ }
301
+ ];
302
+ var FIELDS = [
303
+ "name",
304
+ "status",
305
+ "website",
306
+ "description"
307
+ ];
308
+ /** The board, plus a Table over every account for the flat view of the same data. */
309
+ var PipelineBoard = SampleSpace.phase("pipeline", {
310
+ schemas: [Pipeline.Pipeline, View.View],
311
+ run: (accounts) => Effect.gen(function* () {
312
+ const jsonSchema = JsonSchema.toJsonSchema(Organization.Organization);
313
+ const columns = yield* Effect.forEach(STAGES, (stage) => Effect.gen(function* () {
314
+ const view = yield* Database.add(ViewModel.make({
315
+ query: Query.select(Filter.type(Organization.Organization, { status: stage.status })),
316
+ queryRaw: void 0,
317
+ jsonSchema,
318
+ fields: FIELDS
319
+ }));
320
+ const order = Object.values(accounts).filter((account) => account.status === stage.status).map((account) => account.id);
321
+ return {
322
+ name: stage.name,
323
+ order,
324
+ view: Ref.make(view)
325
+ };
326
+ }));
327
+ return { pipeline: yield* Database.add(Pipeline.make({
328
+ name: "Sales pipeline",
329
+ description: "Every account, by stage. Moving a card changes the account status.",
330
+ columns
331
+ })) };
332
+ })
333
+ });
334
+ //#endregion
335
+ //#region src/samples/crm/PipelineSpace.ts
336
+ var PipelineSpace_exports = /* @__PURE__ */ __exportAll({
337
+ make: () => make,
338
+ makeTemplate: () => makeTemplate
339
+ });
340
+ var phases = {
341
+ accounts: Accounts,
342
+ contacts: Contacts,
343
+ pipeline: PipelineBoard,
344
+ inbox: Inbox
345
+ };
346
+ /**
347
+ * A CRM template: seven accounts spread across the pipeline stages, one named contact each, a
348
+ * board whose columns are views filtered on `Organization.status`, and the mail thread behind each
349
+ * stage.
350
+ *
351
+ * Nothing is filed into a collection: Organization, Person, Pipeline and Mailbox are not
352
+ * collection-item types, so they live directly in the space DB and surface through their own
353
+ * containers and the database viewer.
354
+ */
355
+ var make = () => SampleSpace.make({
356
+ space: {
357
+ name: "Northwind Sales",
358
+ icon: "handshake",
359
+ hue: "purple"
360
+ },
361
+ reference: REFERENCE,
362
+ phases,
363
+ build: (phases) => Effect.gen(function* () {
364
+ const accounts = yield* phases.accounts();
365
+ yield* phases.contacts(accounts);
366
+ yield* phases.pipeline(accounts);
367
+ yield* phases.inbox();
368
+ })
369
+ });
370
+ var makeTemplate = () => SampleSpace.makeTemplate({
371
+ id: "org.dxos.plugin-debug.template.pipeline",
372
+ description: "Seven accounts across the pipeline stages, a contact each, and the mail behind them.",
373
+ definition: make()
374
+ });
375
+ //#endregion
376
+ export { make as n, makeTemplate as r, PipelineSpace_exports as t };
377
+
378
+ //# sourceMappingURL=chunk-PipelineSpace.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-PipelineSpace.mjs","names":[],"sources":["../../src/samples/crm/accounts.ts","../../src/samples/crm/util.ts","../../src/samples/crm/inbox.ts","../../src/samples/crm/pipeline.ts","../../src/samples/crm/PipelineSpace.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as SampleSpace from '@dxos/app-toolkit/SampleSpace';\nimport { Database, Ref } from '@dxos/echo';\nimport { Organization, Person } from '@dxos/types';\n\n//\n// Accounts and the people at them. `status` is the pipeline stage: every column of the board is a\n// view filtered on it, so the seeds here are what the board is a picture of.\n//\n\nexport type AccountKey = 'meridian' | 'bellweather' | 'foxglove' | 'northgate' | 'quarry' | 'saltbox' | 'tinderbox';\n\nexport type AccountMap = Record<AccountKey, Organization.Organization>;\n\nconst ACCOUNT_SEEDS = [\n {\n key: 'meridian',\n name: 'Meridian Health',\n description: 'Renewed for a third year. Two hundred seats, expanding into their research arm.',\n status: 'active',\n website: 'https://meridianhealth.example',\n },\n {\n key: 'bellweather',\n name: 'Bellweather Logistics',\n description: 'Signed in March. Rolling out to dispatch first, then the depots.',\n status: 'active',\n website: 'https://bellweather.example',\n },\n {\n key: 'foxglove',\n name: 'Foxglove Studios',\n description: 'Verbal yes on a 40-seat plan; waiting on their finance sign-off.',\n status: 'commit',\n website: 'https://foxglove.example',\n },\n {\n key: 'northgate',\n name: 'Northgate Credit Union',\n description: 'Security review passed. Procurement is the only thing left.',\n status: 'commit',\n website: 'https://northgatecu.example',\n },\n {\n key: 'quarry',\n name: 'Quarry Analytics',\n description: 'Pilot running with eight users. Champion is the head of data.',\n status: 'qualified',\n website: 'https://quarry.example',\n },\n {\n key: 'saltbox',\n name: 'Saltbox Provisions',\n description: 'Inbound from the newsletter. Budget unclear, timeline unclear.',\n status: 'prospect',\n website: 'https://saltbox.example',\n },\n {\n key: 'tinderbox',\n name: 'Tinderbox Media',\n description: 'Went quiet after the second call. Re-engage next quarter, or close it out.',\n status: 'reject',\n website: 'https://tinderbox.example',\n },\n] as const;\n\n/** The accounts, each already at its pipeline stage. */\nexport const Accounts: SampleSpace.Phase<AccountMap> = SampleSpace.phase('accounts', {\n schemas: [Organization.Organization],\n run: () =>\n SampleSpace.seed(ACCOUNT_SEEDS, (seed) =>\n Database.add(\n Organization.make({\n name: seed.name,\n description: seed.description,\n status: seed.status,\n website: seed.website,\n }),\n ),\n ),\n});\n\nexport type ContactKey = 'dara' | 'wes' | 'ines' | 'gil' | 'mo' | 'ruth' | 'jonas';\n\nexport type ContactMap = Record<ContactKey, Person.Person>;\n\nconst CONTACT_SEEDS = [\n {\n key: 'dara',\n fullName: 'Dara Osei',\n jobTitle: 'Director of IT',\n accountKey: 'meridian',\n email: 'dara.osei@meridianhealth.example',\n },\n {\n key: 'wes',\n fullName: 'Wes Kowalski',\n jobTitle: 'Head of Dispatch',\n accountKey: 'bellweather',\n email: 'wes@bellweather.example',\n },\n {\n key: 'ines',\n fullName: 'Inés Baptista',\n jobTitle: 'Studio Producer',\n accountKey: 'foxglove',\n email: 'ines@foxglove.example',\n },\n {\n key: 'gil',\n fullName: 'Gil Ferreira',\n jobTitle: 'CISO',\n accountKey: 'northgate',\n email: 'g.ferreira@northgatecu.example',\n },\n { key: 'mo', fullName: 'Mo Haddad', jobTitle: 'Head of Data', accountKey: 'quarry', email: 'mo@quarry.example' },\n { key: 'ruth', fullName: 'Ruth Lindqvist', jobTitle: 'Owner', accountKey: 'saltbox', email: 'ruth@saltbox.example' },\n {\n key: 'jonas',\n fullName: 'Jonas Vail',\n jobTitle: 'Creative Director',\n accountKey: 'tinderbox',\n email: 'jonas@tinderbox.example',\n },\n] as const;\n\n/** One named contact per account — whoever the mail in this space is actually with. */\nexport const Contacts: SampleSpace.Phase<ContactMap, AccountMap> = SampleSpace.phase('contacts', {\n schemas: [Person.Person],\n run: (accounts: AccountMap) =>\n SampleSpace.seed(CONTACT_SEEDS, (seed) =>\n Database.add(\n Person.make({\n fullName: seed.fullName,\n jobTitle: seed.jobTitle,\n organization: Ref.make(accounts[seed.accountKey]),\n emails: [{ label: 'Work', value: seed.email }],\n }),\n ),\n ),\n});\n\n/** Contact seeds, for the phases that need a name and address rather than the object. */\nexport const contactSeed = (key: ContactKey) => {\n const seed = CONTACT_SEEDS.find((seed) => seed.key === key);\n if (!seed) {\n throw new Error(`No CONTACT_SEEDS entry for \"${key}\".`);\n }\n return seed;\n};\n","//\n// Copyright 2026 DXOS.org\n//\n\nimport * as SampleSpace from '@dxos/app-toolkit/SampleSpace';\n\n/** Stable reference date so regenerations are reproducible. Override with NOW=2026-05-20 env. */\nexport const REFERENCE = process.env.NOW ? new Date(process.env.NOW) : new Date('2026-05-20T15:00:00Z');\n\n/**\n * Bound to the same reference the definition declares, so the pure content builders can date their\n * objects without every one of them being an effect.\n */\nexport const clock = SampleSpace.makeClock(REFERENCE);\n\nexport const daysAgo = clock.daysAgo;\n\nexport const daysFromNow = clock.daysFromNow;\n","//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport * as SampleSpace from '@dxos/app-toolkit/SampleSpace';\nimport { Database, Feed, Obj, Tag } from '@dxos/echo';\nimport * as Mailbox from '@dxos/plugin-inbox/Mailbox';\nimport * as SystemTags from '@dxos/plugin-inbox/SystemTags';\nimport { TagIndex } from '@dxos/schema';\nimport { type Actor, type ContentBlock, Message } from '@dxos/types';\n\nimport { type ContactKey, contactSeed } from './accounts.ts';\nimport { daysAgo } from './util.ts';\n\n//\n// The account mail: the thread behind each pipeline stage.\n//\n// Deliberately small — the point is that a stage has a conversation attached, not that the mailbox\n// is full. Threading is by subject: a reply reuses its root's subject, so the conversation list\n// groups them without an id scheme.\n//\n\nconst OWNER: Actor.Actor = { role: 'user', name: 'Priya Raman', email: 'priya@northwind-sales.example' };\n\ntype EmailSeed = {\n readonly from: ContactKey | 'owner';\n readonly subject: string;\n readonly body: string;\n /** Days before the reference date. */\n readonly daysAgo: number;\n readonly tags?: ReadonlyArray<SystemTags.SystemTagId>;\n};\n\nconst EMAIL_SEEDS: ReadonlyArray<EmailSeed> = [\n {\n from: 'ruth',\n subject: 'Question from the newsletter',\n body: 'We are twelve people and drowning in spreadsheets. Is there a plan that makes sense at our size?',\n daysAgo: 12,\n },\n {\n from: 'owner',\n subject: 'Re: Question from the newsletter',\n body: 'There is — the team plan starts at ten seats. Happy to walk you through it. Are you free Thursday?',\n daysAgo: 11,\n },\n {\n from: 'mo',\n subject: 'Pilot week two',\n body: 'Eight of us are in it daily now. The import took a morning and nobody has asked me to undo it, which is high praise here.',\n daysAgo: 9,\n tags: ['important'],\n },\n {\n from: 'gil',\n subject: 'Security review — outcome',\n body: 'Review is closed with no findings. Procurement has the paperwork; expect two weeks of silence and then a PO.',\n daysAgo: 6,\n tags: ['important', 'starred'],\n },\n {\n from: 'ines',\n subject: 'Finance sign-off',\n body: 'We are a yes at 40 seats. Finance wants the invoice dated next quarter — workable?',\n daysAgo: 4,\n tags: ['starred'],\n },\n {\n from: 'owner',\n subject: 'Re: Finance sign-off',\n body: 'Workable. I will date it the first of the quarter and note the seat count on the order form.',\n daysAgo: 4,\n },\n {\n from: 'dara',\n subject: 'Adding the research arm',\n body: 'Renewal is signed. Separately: research wants in, roughly 60 more seats. Who do I talk to about pricing that?',\n daysAgo: 2,\n tags: ['important'],\n },\n {\n from: 'wes',\n subject: 'Depot rollout order',\n body: 'Dispatch is live and quiet. We would like to do the depots north-to-south rather than all at once.',\n daysAgo: 1,\n },\n];\n\nconst textBlock = (text: string): ContentBlock.Text => ({ _tag: 'text', text }) satisfies ContentBlock.Text;\n\nconst senderOf = (seed: EmailSeed): Actor.Actor => {\n if (seed.from === 'owner') {\n return OWNER;\n }\n const { fullName, email } = contactSeed(seed.from);\n return { role: 'user', name: fullName, email };\n};\n\n// Strip a reply prefix so a reply lands in its root's thread.\nconst threadIdFor = (subject: string): string =>\n `thread-${\n subject\n .replace(/^(\\s*(re|fwd?):\\s*)+/i, '')\n .trim()\n .normalize('NFKD')\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase() || 'thread'\n }`;\n\nexport type InboxResult = { mailbox: Mailbox.Mailbox; messages: Message.Message[] };\n\n/**\n * The shared sales inbox. Mail the owner sent is tagged `sent`; everything else is `inbox`, which is\n * what the mailbox's folders resolve against. Feed messages are immutable, so tag membership lives\n * in the mailbox's child `TagIndex`.\n */\nexport const Inbox: SampleSpace.Phase<InboxResult> = SampleSpace.phase('inbox', {\n schemas: [Mailbox.Mailbox, Message.Message, TagIndex.TagIndex, Tag.Tag, Feed.Feed],\n run: () =>\n Effect.gen(function* () {\n const mailbox = yield* Database.add(Mailbox.make({ name: 'Sales' }));\n const index = mailbox.tags.target;\n const feed = mailbox.feed.target;\n if (!index || !feed) {\n return yield* Effect.fail(new SampleSpace.SampleSpaceError({ context: { reason: 'mailbox-incomplete' } }));\n }\n\n const messages = EMAIL_SEEDS.map((seed) => {\n const threadId = threadIdFor(seed.subject);\n return Message.make({\n created: daysAgo(seed.daysAgo),\n sender: senderOf(seed),\n blocks: [textBlock(seed.body)],\n threadId,\n properties: { subject: seed.subject, threadId },\n });\n });\n\n yield* SampleSpace.tagBatch(\n messages.flatMap((message, index) => {\n const seed = EMAIL_SEEDS[index];\n const keys = [...(seed.from === 'owner' ? ['sent'] : ['inbox']), ...(seed.tags ?? [])];\n return keys.map((key) => ({ object: message, key }));\n }),\n { index, resolve: (db, key) => SystemTags.findOrCreateSystemTag(db, key as SystemTags.SystemTagId) },\n );\n\n Obj.update(mailbox, (mailbox) => {\n mailbox.subscriptions = Mailbox.deriveSubscriptions(messages);\n });\n\n yield* SampleSpace.appendToFeed(feed, messages);\n return { mailbox, messages };\n }),\n});\n","//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport * as SampleSpace from '@dxos/app-toolkit/SampleSpace';\nimport { Database, Filter, JsonSchema, Query, Ref, View } from '@dxos/echo';\nimport { ViewModel } from '@dxos/schema';\nimport { Organization, Pipeline } from '@dxos/types';\n\nimport { type AccountMap } from './accounts.ts';\n\n//\n// The pipeline board.\n//\n// A `Pipeline` column is a `View` plus an explicit `order` of object ids, so each stage is a query\n// (`status = 'qualified'`) rather than a hand-maintained membership list — an account moves stage by\n// having its `status` changed, which is what the board's drag does at runtime.\n//\n\nconst STAGES = [\n { name: 'Prospect', status: 'prospect' },\n { name: 'Qualified', status: 'qualified' },\n { name: 'Commit', status: 'commit' },\n { name: 'Closed won', status: 'active' },\n { name: 'Closed lost', status: 'reject' },\n] as const;\n\nconst FIELDS = ['name', 'status', 'website', 'description'];\n\nexport type PipelineResult = { pipeline: Pipeline.Pipeline };\n\n/** The board, plus a Table over every account for the flat view of the same data. */\nexport const PipelineBoard: SampleSpace.Phase<PipelineResult, AccountMap> = SampleSpace.phase('pipeline', {\n schemas: [Pipeline.Pipeline, View.View],\n run: (accounts: AccountMap) =>\n Effect.gen(function* () {\n const jsonSchema = JsonSchema.toJsonSchema(Organization.Organization);\n\n const columns = yield* Effect.forEach(STAGES, (stage) =>\n Effect.gen(function* () {\n const view = yield* Database.add(\n ViewModel.make({\n query: Query.select(Filter.type(Organization.Organization, { status: stage.status })),\n queryRaw: undefined,\n jsonSchema,\n fields: FIELDS,\n }),\n );\n // The column's order is explicit so a board that has been rearranged keeps its order; the\n // seeds are listed in the order the stage should read.\n const order = Object.values(accounts)\n .filter((account) => account.status === stage.status)\n .map((account) => account.id);\n return { name: stage.name, order, view: Ref.make(view) };\n }),\n );\n\n const pipeline = yield* Database.add(\n Pipeline.make({\n name: 'Sales pipeline',\n description: 'Every account, by stage. Moving a card changes the account status.',\n columns,\n }),\n );\n\n return { pipeline };\n }),\n});\n","//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Effect from 'effect/Effect';\n\nimport type * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';\nimport * as SampleSpace from '@dxos/app-toolkit/SampleSpace';\n\nimport { Accounts, Contacts } from './accounts.ts';\nimport { Inbox } from './inbox.ts';\nimport { PipelineBoard } from './pipeline.ts';\nimport { REFERENCE } from './util.ts';\n\nconst phases = {\n accounts: Accounts,\n contacts: Contacts,\n pipeline: PipelineBoard,\n inbox: Inbox,\n};\n\n/**\n * A CRM template: seven accounts spread across the pipeline stages, one named contact each, a\n * board whose columns are views filtered on `Organization.status`, and the mail thread behind each\n * stage.\n *\n * Nothing is filed into a collection: Organization, Person, Pipeline and Mailbox are not\n * collection-item types, so they live directly in the space DB and surface through their own\n * containers and the database viewer.\n */\nexport const make = (): SampleSpace.Definition<typeof phases, void> =>\n SampleSpace.make({\n space: { name: 'Northwind Sales', icon: 'handshake', hue: 'purple' },\n reference: REFERENCE,\n phases,\n build: (phases) =>\n Effect.gen(function* () {\n const accounts = yield* phases.accounts();\n yield* phases.contacts(accounts);\n yield* phases.pipeline(accounts);\n yield* phases.inbox();\n }),\n });\n\nexport const makeTemplate = (): AppCapabilities.SpaceTemplate =>\n SampleSpace.makeTemplate({\n id: 'org.dxos.plugin-debug.template.pipeline',\n description: 'Seven accounts across the pipeline stages, a contact each, and the mail behind them.',\n definition: make(),\n });\n"],"mappings":"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"}