@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
package/PLUGIN.mdl CHANGED
@@ -4,7 +4,7 @@ name: DebugPlugin
4
4
  version: 0.1.0
5
5
  ---
6
6
 
7
- Developer debugging utilities for `DXOS` Composer — synthetic-object generation, a per-object Debug companion, a space-objects browser, a wireframe overlay, and a transient-stats panel. Rendered under a Debug node in the SYSTEM navigation group, a sibling of the Devtools inspector (`org.dxos.plugin.devtools`).
7
+ Developer debugging utilities for `DXOS` Composer — a debug panel (console, log viewer, and every developer tool as a navtree) docked as the deck's bottom drawer or floated as a window, synthetic-object generation, a per-object Debug companion, a space-objects browser, a wireframe overlay, and a transient-stats panel. The panel is a navtree over a hidden `root/debug` app-graph category that this plugin contributes; the Devtools inspector (`org.dxos.plugin.devtools`) attaches its tree there too. Nothing under `root/debug` appears in the main navtree, opens in the deck, or has a URL.
8
8
 
9
9
  ## Extensions
10
10
 
@@ -15,6 +15,7 @@ The following extension dialects are used in this document.
15
15
  | `type` | `org.dxos.mdl.type@1.0` |
16
16
  | `feat` | `org.dxos.mdl.feat@1.0` |
17
17
  | `component` | `org.dxos.mdl.component@1.0` |
18
+ | `test` | `org.dxos.mdl.test@1.0` |
18
19
 
19
20
  ## Types
20
21
 
@@ -32,11 +33,100 @@ type DebugPluginOptions
32
33
  persistStats?: boolean # persist the stats-panel store to localStorage (default true)
33
34
  ```
34
35
 
36
+ ```mdl
37
+ type DebugPanelMode
38
+ literals: docked | floating # docked = the deck's bottom drawer (default); floating = a FloatingPanel window
39
+ ```
40
+
41
+ ```mdl
42
+ type DebugPanelViewState
43
+ desc: Persisted (localStorage) so a debugging session survives the reloads it provokes; the floating window's open/closed state is not part of it (the drawer's is deck state).
44
+ fields:
45
+ nodeId?: string # qualified id of the selected page (e.g. root/debug/devtools/client/config)
46
+ open: string[] # path keys of the expanded branches
47
+ mode?: DebugPanelMode # which host shows the panel; absent reads as docked
48
+ position?: Point # where the floating panel was last dragged
49
+ size?: Size # the size the floating panel was last resized to
50
+ ```
51
+
52
+ ## App graph
53
+
54
+ ```mdl
55
+ feat DebugCategory
56
+ desc: |
57
+ A hidden `debug` category on the app-graph root: node `root/debug`, type
58
+ `GraphPath.GroupTypes.debug`, `data: null`, `disposition: hidden`, not draggable or droppable.
59
+ `hidden` is what the main navtree already filters, so no consumer has to learn about the
60
+ category. Tool plugins attach with `AppNodeMatcher.whenDebugGroup`; every tool is a global node
61
+ (no per-space enumeration) and a space-scoped tool resolves the active workspace's space at
62
+ render time. Nothing under `root/debug` declares a URL binding.
63
+ ```
64
+
65
+ | Node | Type | Article |
66
+ |-----------------------------|---------------------|----------------------------|
67
+ | `root/debug/debug` | `DebugNodes.id` | branch (no article); open with the console selected on a pristine panel |
68
+ | `root/debug/debug/console` | `DebugNodes.Console`| Console (agent debug shell)|
69
+ | `root/debug/debug/logs` | `DebugNodes.Logs` | Log viewer |
70
+ | `root/debug/debug/space` | `DebugNodes.SpaceType` | Generate objects (active space) |
71
+ | `root/debug/devtools/...` | contributed by `org.dxos.plugin.devtools` | Client / HALO / ECHO / MESH / EDGE inspectors, App Graph, SDK Explorer, CLI |
72
+
73
+ ## Components
74
+
75
+ ```mdl
76
+ component DebugPanel
77
+ desc: |
78
+ The debug surface in parts (`DebugPanel.Root` / `Body` / `Sidebar` / `Main`) with two hosts
79
+ that share one `Root` context, so selection and open branches carry over when the panel moves:
80
+ `DebugPanelDrawer` renders it in the deck's bottom drawer (`AppSurface.Drawer`,
81
+ `org.dxos.role.drawer`) and `DebugPanelStatus` hosts it in a `FloatingPanel`. `Root` owns the
82
+ selection, the expanded branches and the mode (DebugPanelViewState); `Body` is the `Splitter`
83
+ over `Sidebar` — a `Tree` over `root/debug` via `useGraphTreeModel`
84
+ (`@dxos/plugin-graph/hooks`) — and `Main`, the selected node's article surface.
85
+ `DebugPanelHeader` is the title-bar control both hosts share: a dock/float switch
86
+ (`debugPanel.mode`) and, for the drawer, a close (`debugPanel.close`). Selecting a row never
87
+ touches the deck, attention, or the URL; the drawer is not a plank and never takes attention.
88
+ props:
89
+ contextId?: string # view-state context; defaults to the status-rail singleton
90
+ state:
91
+ nodeId?: string # selected page
92
+ open: string[] # expanded branch path keys
93
+ mode: DebugPanelMode # docked (default) or floating
94
+ actions:
95
+ select(nodeId: string) # a leaf shows its article; a branch (data: null) toggles instead
96
+ setOpen(pathKey: string, isOpen: boolean)
97
+ setMode(mode: DebugPanelMode) # float: close the drawer, open the window; dock: close the window, open the drawer
98
+ layout: |
99
+ ┌─ Main.Drawer (docked, default) ──────────────────────┐
100
+ │ Debug ⇱ × │
101
+ ├─ Sidebar (Tree) ──┬─ Main (article surface) ────────┤
102
+ │ ▾ Debug │ │
103
+ │ ▸ Console │ Config JSON / log table / │
104
+ │ Logs │ generator / ... │
105
+ │ Generate obj. │ │
106
+ │ ▾ DevTools │ (console and logs stay mounted │
107
+ │ ▾ Client │ while another page is shown) │
108
+ │ Config │ │
109
+ └───────────────────┴──────────────────────────────────┘
110
+ Floating: the same Sidebar/Main under a FloatingPanel title bar (⇲ dock, — minimize, ×).
111
+ ```
112
+
35
113
  ## Features
36
114
 
115
+ ```mdl
116
+ feat DebugPanel
117
+ desc: |
118
+ A status-bar button shows the debug panel: docked (the default) it toggles the deck's bottom
119
+ drawer via `LayoutOperation.UpdateDrawer`, so the planks reflow above it, its height is dragged
120
+ from the top edge and persists with the deck's layout, and fullscreen hides it; floating, it
121
+ opens the panel as a window over the app. The title bar's dock/float control moves the panel
122
+ between the two with the same tool selected. The sidebar lists Debug (Console, Logs, Generate
123
+ objects — a pristine panel opens Debug with the console selected) and DevTools, and the
124
+ selection, open branches, and mode persist across reloads.
125
+ ```
126
+
37
127
  ```mdl
38
128
  feat GenerateObjects
39
- desc: Create configurable batches of synthetic ECHO objects into a space collection.
129
+ desc: Create configurable batches of synthetic ECHO objects into the active workspace's space, from the Debug → Generate objects page of the panel.
40
130
  ```
41
131
 
42
132
  ```mdl
@@ -56,5 +146,153 @@ feat Wireframe
56
146
 
57
147
  ```mdl
58
148
  feat StatsPanel
59
- desc: A transient-stats panel rendering the shared telemetry store.
149
+ desc: |
150
+ The shared telemetry store (`AppCapabilities.StatsPanel`) as one `StatCard` per plugin
151
+ compartment. Rendered on the plugin's own `org.dxos.plugin.debug.surface.stats` role (with an
152
+ empty-state card) and contributed to `AppSurface.DevtoolsOverview` at position 20 (no card when
153
+ the store is empty), so it stacks under the devtools cards in the Stats companion.
154
+ ```
155
+
156
+ ## QA
157
+
158
+ Executable tests. Each step carries a human instruction (`do`) and, where the step maps to an
159
+ invocable operation, an agent binding (`invoke`). Report failures by test and step number.
160
+
161
+ plugin-debug is a dev-only utility plugin: it defaults on in `isDev` builds (see
162
+ `packages/apps/composer-app/src/plugin-defs.tsx`), off otherwise.
163
+
164
+ ```mdl
165
+ test QA-1: Insert Lorem ipsum from the slash menu
166
+ desc: The one debug feature with a real operation behind it — the MenuExtension contribution used as the worked example in plugin-markdown's QA-3.
167
+ actors: both
168
+ status: unverified
169
+ given:
170
+ - an identity exists
171
+ - space: a space is open and contains at least one collection
172
+ - plugin-debug is enabled (dev-only default; see above)
173
+ - attendableId: an empty document is open in the editor, its attendable id
174
+ steps:
175
+ - name: Open the command menu
176
+ do: With the caret on an empty line, type `/`.
177
+ expect: the popup lists a "Debug" group containing "Lorem ipsum", below the built-in groups
178
+ note: |
179
+ NO `invoke` — opening the popup is a real keystroke and CodeMirror does not observe
180
+ synthetic input events. Human-only step; an agent run reports it unverified.
181
+ - name: Insert a paragraph
182
+ do: Select "Lorem ipsum".
183
+ invoke: org.dxos.operation.debug.insertLoremIpsum { subject: $given.attendableId, head: 0 }
184
+ expect: a paragraph of placeholder prose appears at the caret
185
+ assert: return view.state.doc.length > 0;
186
+ after:
187
+ - name: Clear the document
188
+ do: Select all and delete.
189
+ expect: the editor is empty and the document body is an empty string
190
+ ```
191
+
192
+ ```mdl
193
+ test QA-2: Generate synthetic objects into a collection
194
+ desc: The SpaceGenerator UI (GenerateObjects) — no operation exists behind it, so this is a human-only sanity check that the debug tooling itself works.
195
+ actors: human
196
+ covers: [GenerateObjects, SpaceObjectsBrowser]
197
+ status: unverified
198
+ given:
199
+ - an identity exists
200
+ - space: a space is open
201
+ - collection: a collection in that space, empty of synthetic objects
202
+ - plugin-debug is enabled (dev-only default; see above)
203
+ steps:
204
+ - name: Open the debug panel and generate objects
205
+ do: |
206
+ Click the status-bar debug button (terminal icon), then in the panel's sidebar open
207
+ Debug → Generate objects. Set the batch size (e.g. 5) and press `+` on
208
+ `org.dxos.type.document`.
209
+ expect: |
210
+ the type's count rises by 5, the documents appear in the space-objects browser, and the
211
+ main navtree's SYSTEM group still shows only Database (no DevTools or Debug node)
212
+ note: NO `invoke` — GenerateObjects has no operation; it is a UI-only synthetic-data generator.
213
+ after:
214
+ - name: Remove the generated objects
215
+ do: Select the generated documents in the space-objects browser and delete them.
216
+ expect: the collection returns to its prior state
217
+ ```
218
+
219
+ ```mdl
220
+ test QA-3: Walk the review-queue demo space
221
+ desc: |
222
+ The demo script for the Review template (`samples/review`): seed a space holding one project whose
223
+ finished tasks carry merged dxos/dxos pull requests with their screenshots and demo recordings,
224
+ and whose tasks in review carry the PRs still open — then walk it the way a reviewer would.
225
+ actors: both
226
+ status: passing # 2026-09-24, agent run recorded as a demo video
227
+ given:
228
+ - an identity exists
229
+ - defaultSpace: the default space, which is where the run returns to
230
+ - plugin-debug, plugin-projects, plugin-tasks, plugin-file and plugin-video are enabled (dev-only defaults)
231
+ - the browser can reach raw.githubusercontent.com, which serves the screenshots
232
+ before:
233
+ - name: Seed the space
234
+ do: Create a space from the "Composer — Review queue" template.
235
+ invoke: org.dxos.operation.debug.createSpaceFromTemplate { id: "org.dxos.plugin-debug.template.review" }
236
+ capture: seeded
237
+ expect: a space named "Composer — Review queue" appears in the space list
238
+ assert: return $snapshot.spaces.some((s) => s.id === $result.spaceId)
239
+ note: |
240
+ The template fetches four PNGs while it applies, so on a cold server the step takes up to a minute.
241
+ A screenshot the browser cannot reach is kept as an external blob naming its URL — this step still
242
+ passes, and the image step below is where that shows.
243
+ - name: Find the project
244
+ do: Open the space and expand Projects in the navtree.
245
+ invoke: org.dxos.operation.space.queryObjects { typename: "org.dxos.type.project" }
246
+ space: $seeded.spaceId
247
+ capture: projects
248
+ expect: Projects lists one project, "Composer polish"
249
+ assert: return $result.results.length === 1 && $result.results[0].label === 'Composer polish'
250
+ steps:
251
+ - name: Open the project's tasks
252
+ do: Click "Composer polish", then its Tasks tab.
253
+ invoke: org.dxos.operation.appToolkit.open { subject: ["root/$seeded.spaceId/ai/org.dxos.type.project/$projects.results[0].dxn.objectId"] }
254
+ expect: |
255
+ seven tasks: three done, each with a violet merged `#` pill and image or video tags; two in review,
256
+ each with a green open `#` pill and a video tag; one started; one to do
257
+ assert: |
258
+ const tasks = await dxos.spaces($seeded.spaceId).db.query(dxos.Filter.type(dxos.DXN.make('org.dxos.type.task'))).run();
259
+ const count = (status) => tasks.filter((task) => task.status === status).length;
260
+ const opened = $snapshot.planks.some((plank) => plank.subject?.dxn === $projects.results[0].dxn);
261
+ return opened && tasks.length === 7 && count('done') === 3 && count('review') === 2;
262
+ note: The Tasks tab is a view switch inside the plank, so the human clicks it; the agent judges from the database.
263
+ - name: Look at a finished task's screenshot
264
+ do: On "Run desktop OAuth in the system browser", click the `oauth-pending.png` tag.
265
+ expect: a preview card shows the screenshot of the sign-in form waiting on the provider
266
+ assert: |
267
+ const blobs = await dxos.spaces($seeded.spaceId).db.query(dxos.Filter.type(dxos.DXN.make('org.dxos.type.blob'))).run();
268
+ return blobs.length === 4 && blobs.every((blob) => blob.data._tag === 'inline' && blob.size > 0);
269
+ note: NO `invoke` — the tag is a pointer gesture on the task row, with no operation behind it.
270
+ - name: Review an open pull request
271
+ do: On "Switch identities in place instead of a reset and reload" (in review), click the `#13336` pill.
272
+ expect: the preview names dxos/dxos#13336, state open, by dmaretskyi
273
+ assert: |
274
+ const prs = await dxos.spaces($seeded.spaceId).db.query(dxos.Filter.type(dxos.DXN.make('org.dxos.type.pullRequest'))).run();
275
+ return prs.filter((pr) => pr.state === 'open').map((pr) => pr.number).sort().join() === '12952,13336';
276
+ note: NO `invoke` — as above.
277
+ - name: Watch a finished task's demo
278
+ do: On "Count down a toast's remaining time", click the "Toast countdown demo" tag, then Open from its ⋮ menu.
279
+ expect: |
280
+ the video opens in the project's plank (breadcrumb "Composer polish » Toast countdown demo") and plays
281
+ the toast counting down; the Transcript tab says transcripts are for YouTube videos only, and no error
282
+ toast appears
283
+ assert: |
284
+ return $snapshot.planks.some((plank) => plank.subject?.typename === 'org.dxos.type.video') &&
285
+ !$snapshot.toasts.some((toast) => toast.title === 'Transcription failed.') && $stepErrors.length === 0;
286
+ note: NO `invoke` — as above. The recording streams from its URL into the player; nothing is written.
287
+ after:
288
+ - name: Delete the space
289
+ do: Open the space's settings and delete the space.
290
+ invoke: org.dxos.operation.space.delete { space: Space($seeded.spaceId) }
291
+ expect: the space leaves the space list
292
+ assert: return !$snapshot.spaces.some((s) => s.id === $seeded.spaceId)
293
+ - name: Return to the default space
294
+ do: Pick the default space in the space list.
295
+ invoke: org.dxos.operation.appToolkit.switchWorkspace { subject: "root/$given.defaultSpace.id" }
296
+ expect: the workspace is the default space and no error is logged
297
+ assert: return $snapshot.layout.workspace === `root/${$given.defaultSpace.id}` && $stepErrors.length === 0
60
298
  ```
package/README.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @dxos/plugin-debug
2
2
 
3
- Developer debugging utilities for DXOS Composer: synthetic-object generation, a per-object Debug
4
- companion, a space-objects browser, a wireframe overlay, and a transient-stats panel. Rendered under
5
- a Debug node in the SYSTEM navigation group, alongside the Devtools inspector (`@dxos/plugin-devtools`).
3
+ Developer debugging utilities for DXOS Composer: a floating debug panel (console, log viewer, and a
4
+ navtree over the hidden `root/debug` app-graph category), synthetic-object generation, a per-object
5
+ Debug companion, a space-objects browser, a wireframe overlay, and a transient-stats panel. The
6
+ Devtools inspector (`@dxos/plugin-devtools`) attaches its tree to the same panel.
7
+
8
+ ## Agent debug port on HTTPS origins
9
+
10
+ **Settings → Debug → Agent debug port** lets a local agent evaluate code in the running app through
11
+ `.agents/skills/composer-forensics/scripts/composer-recovery.js`, which listens on
12
+ `https://127.0.0.1:9321`. An HTTPS page (a PR preview, `composer.space`, or local HTTPS) may only
13
+ reach that port over HTTPS with a certificate the browser trusts, so set one up once per machine:
14
+
15
+ ```bash
16
+ brew install mkcert
17
+ ```
18
+
19
+ ```bash
20
+ mkcert -install
21
+ ```
22
+
23
+ ```bash
24
+ mkcert -cert-file .agents/skills/composer-forensics/scripts/.recovery-tls/cert.pem -key-file .agents/skills/composer-forensics/scripts/.recovery-tls/key.pem localhost 127.0.0.1
25
+ ```
26
+
27
+ Then run the script with `COMPOSER_RECOVERY_HTTPS=1`. `mkcert -install` adds a local CA to the
28
+ system trust store, so a person runs it, not an agent. Without it the browser rejects the script's
29
+ self-signed fallback certificate and the session never connects.
@@ -1 +1 @@
1
- {"version":3,"file":"Debug.mjs","names":[],"sources":["../../src/types/Debug.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport type * as Atom from 'effect/unstable/reactivity/Atom';\n\nimport * as Capability from '@dxos/app-framework/Capability';\nimport { type IdbLogStore } from '@dxos/log-store-idb';\n\nimport { meta } from '#meta';\n\nimport * as Settings from './Settings';\n\nexport type DebugPluginOptions = {\n /** Shared persistent log store for capturing and downloading logs. */\n logStore?: IdbLogStore;\n /** Persist the stats-panel store to localStorage so it survives a reload. Defaults to `true`. */\n persistStats?: boolean;\n};\n\nexport namespace DebugCapabilities {\n export const Settings = Capability.makeSingleton<Atom.Writable<Settings.Settings>>()(\n `${meta.profile.key}.capability.settings`,\n );\n}\n"],"mappings":";;;;;AAoBO,IAAU;CAAV,SAAA,oBAAA;CACQ,mBAAA,WAAW,WAAW,cAAgD,CAAC,CAClF,GAAG,KAAK,QAAQ,IAAI,qBACtB;AACF,EAAA,CAAA,sBAAA,oBAAA,CAAA,EAAA"}
1
+ {"version":3,"file":"Debug.mjs","names":[],"sources":["../../src/types/Debug.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport type * as Atom from 'effect/reactivity/Atom';\n\nimport * as Capability from '@dxos/app-framework/Capability';\nimport { type IdbLogStore } from '@dxos/log-store-idb';\n\nimport { meta } from '#meta';\n\nimport * as Settings from './Settings.ts';\n\nexport type DebugPluginOptions = {\n /** Shared persistent log store for capturing and downloading logs. */\n logStore?: IdbLogStore;\n /** Persist the stats-panel store to localStorage so it survives a reload. Defaults to `true`. */\n persistStats?: boolean;\n};\n\nexport namespace DebugCapabilities {\n export const Settings = Capability.makeSingleton<Atom.Writable<Settings.Settings>>()(\n `${meta.profile.key}.capability.settings`,\n );\n}\n"],"mappings":";;;;;AAoBO,IAAU;CAAV,SAAA,oBAAA;CACQ,mBAAA,WAAW,WAAW,cAAgD,CAAC,CAClF,GAAG,KAAK,QAAQ,IAAI,qBACtB;AACF,EAAA,CAAA,sBAAA,oBAAA,CAAA,EAAA"}
@@ -1,7 +1,14 @@
1
1
  import { t as __exportAll } from "./chunk-rolldown-runtime.mjs";
2
2
  import { meta } from "#meta";
3
+ import * as GraphNode from "@dxos/graph/GraphNode";
3
4
  //#region src/types/DebugNodes.ts
4
5
  var DebugNodes_exports = /* @__PURE__ */ __exportAll({
6
+ CONSOLE_NODE_ID: () => CONSOLE_NODE_ID,
7
+ Console: () => Console,
8
+ DEBUG_NODE_ID: () => DEBUG_NODE_ID,
9
+ DEBUG_ROOT_ID: () => DEBUG_ROOT_ID,
10
+ LOGS_NODE_ID: () => LOGS_NODE_ID,
11
+ Logs: () => Logs,
5
12
  SpaceType: () => SpaceType,
6
13
  id: () => id,
7
14
  nodeId: () => nodeId
@@ -9,11 +16,23 @@ var DebugNodes_exports = /* @__PURE__ */ __exportAll({
9
16
  /** Extracts the last dot-separated segment of a namespaced ID string for use as a node segment id. */
10
17
  var nodeId = (fullId) => fullId.split(".").at(-1) ?? "";
11
18
  var debugId = meta.profile.key;
12
- /** Top-level Debug node (sibling of DevTools under the SYSTEM navtree group). */
19
+ /** Top-level Debug node, under the debug category. */
13
20
  var id = `${debugId}.debug`;
14
21
  /** Discriminator for the space-generator article surface (`node.data.type`). */
15
22
  var SpaceType = `${debugId}.space`;
23
+ /** Qualified id of the hidden debug category, the root of the debug panel's tree. */
24
+ var DEBUG_ROOT_ID = `${GraphNode.RootId}/debug`;
25
+ /** Qualified id of the Debug node, which hosts the panel's own pages. */
26
+ var DEBUG_NODE_ID = `${DEBUG_ROOT_ID}/${nodeId(id)}`;
27
+ /** Node data of the Effect-CLI console page. */
28
+ var Console = `${debugId}.console`;
29
+ /** Qualified id of the console page: what a pristine panel opens on. */
30
+ var CONSOLE_NODE_ID = `${DEBUG_NODE_ID}/${nodeId(Console)}`;
31
+ /** Node data of the log viewer page. */
32
+ var Logs = `${debugId}.logs`;
33
+ /** Qualified id of the log viewer page. */
34
+ var LOGS_NODE_ID = `${DEBUG_NODE_ID}/${nodeId(Logs)}`;
16
35
  //#endregion
17
- export { SpaceType, id, nodeId, DebugNodes_exports as t };
36
+ export { CONSOLE_NODE_ID, Console, DEBUG_NODE_ID, DEBUG_ROOT_ID, LOGS_NODE_ID, Logs, SpaceType, id, nodeId, DebugNodes_exports as t };
18
37
 
19
38
  //# sourceMappingURL=DebugNodes.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugNodes.mjs","names":[],"sources":["../../src/types/DebugNodes.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { meta } from '#meta';\n\n/** Extracts the last dot-separated segment of a namespaced ID string for use as a node segment id. */\nexport const nodeId = (fullId: string): string => fullId.split('.').at(-1) ?? '';\n\nconst debugId = meta.profile.key;\n\n/** Top-level Debug node (sibling of DevTools under the SYSTEM navtree group). */\nexport const id = `${debugId}.debug`;\n\n/** Discriminator for the space-generator article surface (`node.data.type`). */\nexport const SpaceType = `${debugId}.space`;\n"],"mappings":";;;;;;;;;AASA,IAAa,UAAU,WAA2B,OAAO,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK;AAE9E,IAAM,UAAU,KAAK,QAAQ;;AAG7B,IAAa,KAAK,GAAG,QAAQ;;AAG7B,IAAa,YAAY,GAAG,QAAQ"}
1
+ {"version":3,"file":"DebugNodes.mjs","names":[],"sources":["../../src/types/DebugNodes.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as GraphNode from '@dxos/graph/GraphNode';\n\nimport { meta } from '#meta';\n\n/** Extracts the last dot-separated segment of a namespaced ID string for use as a node segment id. */\nexport const nodeId = (fullId: string): string => fullId.split('.').at(-1) ?? '';\n\nconst debugId = meta.profile.key;\n\n/** Top-level Debug node, under the debug category. */\nexport const id = `${debugId}.debug`;\n\n/** Discriminator for the space-generator article surface (`node.data.type`). */\nexport const SpaceType = `${debugId}.space`;\n\n/** Qualified id of the hidden debug category, the root of the debug panel's tree. */\nexport const DEBUG_ROOT_ID = `${GraphNode.RootId}/debug`;\n\n/** Qualified id of the Debug node, which hosts the panel's own pages. */\nexport const DEBUG_NODE_ID = `${DEBUG_ROOT_ID}/${nodeId(id)}`;\n\n/** Node data of the Effect-CLI console page. */\nexport const Console = `${debugId}.console`;\n\n/** Qualified id of the console page: what a pristine panel opens on. */\nexport const CONSOLE_NODE_ID = `${DEBUG_NODE_ID}/${nodeId(Console)}`;\n\n/** Node data of the log viewer page. */\nexport const Logs = `${debugId}.logs`;\n\n/** Qualified id of the log viewer page. */\nexport const LOGS_NODE_ID = `${DEBUG_NODE_ID}/${nodeId(Logs)}`;\n"],"mappings":";;;;;;;;;;;;;;;;AAWA,IAAa,UAAU,WAA2B,OAAO,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK;AAE9E,IAAM,UAAU,KAAK,QAAQ;;AAG7B,IAAa,KAAK,GAAG,QAAQ;;AAG7B,IAAa,YAAY,GAAG,QAAQ;;AAGpC,IAAa,gBAAgB,GAAG,UAAU,OAAO;;AAGjD,IAAa,gBAAgB,GAAG,cAAc,GAAG,OAAO,EAAE;;AAG1D,IAAa,UAAU,GAAG,QAAQ;;AAGlC,IAAa,kBAAkB,GAAG,cAAc,GAAG,OAAO,OAAO;;AAGjE,IAAa,OAAO,GAAG,QAAQ;;AAG/B,IAAa,eAAe,GAAG,cAAc,GAAG,OAAO,IAAI"}
@@ -1,11 +1,18 @@
1
1
  import { t as __exportAll } from "./chunk-rolldown-runtime.mjs";
2
2
  import * as Capability from "@dxos/app-framework/Capability";
3
+ import * as Plugin from "@dxos/app-framework/Plugin";
3
4
  import { DXN } from "@dxos/echo";
4
5
  import * as Schema from "effect/Schema";
5
6
  import * as Operation from "@dxos/compute/Operation";
6
7
  import * as MarkdownOperation from "@dxos/plugin-markdown/MarkdownOperation";
7
8
  //#region src/types/DebugOperation.ts
8
- var DebugOperation_exports = /* @__PURE__ */ __exportAll({ InsertLoremIpsum: () => InsertLoremIpsum });
9
+ var DebugOperation_exports = /* @__PURE__ */ __exportAll({
10
+ CreateSpaceFromTemplate: () => CreateSpaceFromTemplate,
11
+ InsertLoremIpsum: () => InsertLoremIpsum,
12
+ OpenPage: () => OpenPage,
13
+ Snapshot: () => Snapshot,
14
+ Undo: () => Undo
15
+ });
9
16
  /**
10
17
  * Fills the document with placeholder prose from the slash menu — the cheapest way to get a
11
18
  * realistic amount of text in front of a layout or scrolling bug.
@@ -21,7 +28,164 @@ var InsertLoremIpsum = Operation.make({
21
28
  output: Schema.Void,
22
29
  services: [Capability.Service]
23
30
  });
31
+ /**
32
+ * Shows a page of the debug panel — a node under `root/debug`, which has no URL for
33
+ * `LayoutOperation.Open` — opening the docked drawer when the panel is docked.
34
+ */
35
+ var OpenPage = Operation.make({
36
+ meta: {
37
+ key: DXN.make("org.dxos.operation.debug.openPage"),
38
+ name: "Open debug page",
39
+ description: "Selects a page of the debug panel by its qualified graph id and shows the panel.",
40
+ icon: "ph--terminal-window--regular"
41
+ },
42
+ services: [Capability.Service],
43
+ input: Schema.Struct({ nodeId: Schema.String.annotate({ description: "Qualified graph id of the page, under `root/debug`." }) }),
44
+ output: Schema.Void
45
+ });
46
+ var LayoutSummary = Schema.Struct({
47
+ mode: Schema.String,
48
+ sidebarOpen: Schema.Boolean,
49
+ complementarySidebarOpen: Schema.Boolean,
50
+ dialogOpen: Schema.Boolean,
51
+ workspace: Schema.String,
52
+ active: Schema.Array(Schema.String).annotate({ description: "Graph path ids of the open planks — the ids layout open/close operations accept." }),
53
+ inactive: Schema.Array(Schema.String),
54
+ scrollIntoView: Schema.optional(Schema.String)
55
+ });
56
+ var SubjectSummary = Schema.Struct({
57
+ id: Schema.optional(Schema.String),
58
+ dxn: Schema.optional(Schema.String),
59
+ typename: Schema.optional(Schema.String),
60
+ name: Schema.optional(Schema.String),
61
+ text: Schema.optional(Schema.String).annotate({ description: "The current text of a markdown document, so an edit can be judged without the editor." })
62
+ });
63
+ var ActionSummary = Schema.Struct({
64
+ id: Schema.String,
65
+ label: Schema.optional(Schema.String),
66
+ icon: Schema.optional(Schema.String),
67
+ disabled: Schema.optional(Schema.Boolean),
68
+ operation: Schema.optional(Schema.String).annotate({ description: "Operation DXN embedded in the action id — invokable via the operation invoker." }),
69
+ group: Schema.optional(Schema.Boolean)
70
+ });
71
+ var CommentMessageSummary = Schema.Struct({
72
+ id: Schema.String,
73
+ sender: Schema.optional(Schema.String),
74
+ text: Schema.optional(Schema.String)
75
+ });
76
+ var CommentThreadSummary = Schema.Struct({
77
+ id: Schema.String,
78
+ anchorId: Schema.String.annotate({ description: "Id of the `AnchoredTo` relation that ties the thread to the subject." }),
79
+ anchor: Schema.optional(Schema.String),
80
+ status: Schema.optional(Schema.String),
81
+ messages: Schema.Array(CommentMessageSummary)
82
+ });
83
+ var PlankSummary = Schema.Struct({
84
+ id: Schema.String,
85
+ label: Schema.optional(Schema.String),
86
+ type: Schema.optional(Schema.String),
87
+ subject: Schema.optional(SubjectSummary),
88
+ actions: Schema.Array(ActionSummary),
89
+ comments: Schema.optional(Schema.Array(CommentThreadSummary)).annotate({ description: "Comment threads anchored to the plank's subject, when it is a database object." })
90
+ });
91
+ var SurfaceSummary = Schema.Struct({
92
+ id: Schema.optional(Schema.String),
93
+ role: Schema.optional(Schema.String),
94
+ component: Schema.optional(Schema.String)
95
+ });
96
+ var SpaceSummary = Schema.Struct({
97
+ id: Schema.String,
98
+ name: Schema.optional(Schema.String),
99
+ state: Schema.String.annotate({ description: "The `SpaceState` name, e.g. `SPACE_READY`." }),
100
+ default: Schema.optional(Schema.Boolean)
101
+ });
102
+ var ToastSummary = Schema.Struct({
103
+ title: Schema.optional(Schema.String),
104
+ description: Schema.optional(Schema.String),
105
+ actions: Schema.Array(Schema.String).annotate({ description: "Labels of the toast's buttons." })
106
+ });
107
+ var ErrorSummary = Schema.Struct({
108
+ timestamp: Schema.Number,
109
+ message: Schema.optional(Schema.String),
110
+ error: Schema.optional(Schema.String),
111
+ file: Schema.optional(Schema.String)
112
+ });
113
+ /**
114
+ * One JSON document describing the live UI state — layout, attention, open planks with their
115
+ * subjects and reachable actions, mounted surfaces, and plugin counts — so an agent can infer what
116
+ * the user sees and what it can do without screenshots. See app-framework/docs/INTROSPECTION.md.
117
+ */
118
+ var Snapshot = Operation.make({
119
+ meta: {
120
+ key: DXN.make("org.dxos.operation.debug.snapshot"),
121
+ name: "UI Snapshot",
122
+ description: "Returns a JSON snapshot of the live UI state: layout (mode, sidebars, open planks), attended items, each open plank with its subject object and the actions the UI offers for it (with their operation keys) and the comment threads on it, the mounted surfaces, the spaces, the visible toasts, the errors logged since `since` (a timestamp; default: the last minute), and plugin counts. Read-only.",
123
+ icon: "ph--camera--regular"
124
+ },
125
+ services: [Capability.Service, Plugin.Service],
126
+ input: Schema.Struct({ since: Schema.optional(Schema.Number).annotate({ description: "Only errors logged at or after this unix timestamp (ms) are reported." }) }),
127
+ output: Schema.Struct({
128
+ layout: Schema.optional(LayoutSummary),
129
+ attention: Schema.Array(Schema.String),
130
+ planks: Schema.Array(PlankSummary),
131
+ surfaces: Schema.Array(SurfaceSummary),
132
+ spaces: Schema.Array(SpaceSummary),
133
+ toasts: Schema.Array(ToastSummary),
134
+ errors: Schema.Array(ErrorSummary),
135
+ plugins: Schema.Struct({
136
+ installed: Schema.Number,
137
+ enabled: Schema.Number,
138
+ active: Schema.Number
139
+ })
140
+ })
141
+ }).pipe(Operation.mutation("none"));
142
+ /**
143
+ * Undoes the last undoable operation — what the notification toast's **Undo** button does — so an
144
+ * agent driving the app through operations can exercise the undo path it cannot click.
145
+ */
146
+ var Undo = Operation.make({
147
+ meta: {
148
+ key: DXN.make("org.dxos.operation.debug.revertLast"),
149
+ name: "Revert last operation",
150
+ description: "Undoes the last undoable operation, as the undo toast does. Fails when there is nothing to undo.",
151
+ icon: "ph--arrow-counter-clockwise--regular"
152
+ },
153
+ services: [Capability.Service],
154
+ input: Schema.Struct({}),
155
+ output: Schema.Struct({ undone: Schema.Boolean })
156
+ });
157
+ var SpaceTemplateSummary = Schema.Struct({
158
+ id: Schema.String,
159
+ label: Schema.String,
160
+ description: Schema.optional(Schema.String)
161
+ });
162
+ /**
163
+ * Creates a space from one of the templates plugins contribute, so an agent driving the debug port
164
+ * can seed a realistic space without clicking through the generator panel.
165
+ *
166
+ * TODO(wittjosiah): Reconcile with `SpaceOperation.Create`, which also takes a `template`. This adds
167
+ * only the listing (call without `id`) and deleting the space when the apply fails; the rest it
168
+ * hand-rolls because `Create` applies the template before the caller holds the space. Rollback
169
+ * belongs in `Create` for every caller or nowhere, and the listing belongs in a read-only
170
+ * operation rather than in a create that means something else when an argument is absent.
171
+ */
172
+ var CreateSpaceFromTemplate = Operation.make({
173
+ meta: {
174
+ key: DXN.make("org.dxos.operation.debug.createSpaceFromTemplate"),
175
+ name: "Create Space From Template",
176
+ description: "Creates a new space and fills it from a themed space template. Call without `id` to list what is available without creating anything; the listing is the only way to learn the ids.",
177
+ icon: "ph--dice-five--regular"
178
+ },
179
+ services: [Capability.Service, Plugin.Service],
180
+ input: Schema.Struct({ id: Schema.optional(Schema.String).annotate({ description: "Space template id. Omit to list the available templates without creating anything." }) }),
181
+ output: Schema.Struct({
182
+ applied: Schema.optional(SpaceTemplateSummary).annotate({ description: "The template that was written; absent when listing." }),
183
+ spaceId: Schema.optional(Schema.String),
184
+ subject: Schema.optional(Schema.Array(Schema.String)).annotate({ description: "Navigation path of the new space, for a follow-up open." }),
185
+ available: Schema.Array(SpaceTemplateSummary)
186
+ })
187
+ }).pipe(Operation.mutation("write"));
24
188
  //#endregion
25
- export { InsertLoremIpsum, DebugOperation_exports as t };
189
+ export { CreateSpaceFromTemplate, InsertLoremIpsum, OpenPage, Snapshot, Undo, DebugOperation_exports as t };
26
190
 
27
191
  //# sourceMappingURL=DebugOperation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugOperation.mjs","names":[],"sources":["../../src/types/DebugOperation.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as Operation from '@dxos/compute/Operation';\nimport { DXN } from '@dxos/echo';\nimport * as MarkdownOperation from '@dxos/plugin-markdown/MarkdownOperation';\n\n/**\n * Fills the document with placeholder prose from the slash menu — the cheapest way to get a\n * realistic amount of text in front of a layout or scrolling bug.\n */\nexport const InsertLoremIpsum = Operation.make({\n meta: {\n key: DXN.make('org.dxos.operation.debug.insertLoremIpsum'),\n name: 'Lorem ipsum',\n description: 'Inserts a paragraph of placeholder text at the cursor.',\n icon: 'ph--text-align-left--regular',\n },\n input: MarkdownOperation.EditorCommandInput,\n output: Schema.Void,\n // The handler resolves the live EditorView from a capability, which is the only route from the\n // operation layer to the editor.\n services: [Capability.Service],\n});\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAa,mBAAmB,UAAU,KAAK;CAC7C,MAAM;EACJ,KAAK,IAAI,KAAK,2CAA2C;EACzD,MAAM;EACN,aAAa;EACb,MAAM;CACR;CACA,OAAO,kBAAkB;CACzB,QAAQ,OAAO;CAGf,UAAU,CAAC,WAAW,OAAO;AAC/B,CAAC"}
1
+ {"version":3,"file":"DebugOperation.mjs","names":[],"sources":["../../src/types/DebugOperation.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as Plugin from '@dxos/app-framework/Plugin';\nimport * as Operation from '@dxos/compute/Operation';\nimport { DXN } from '@dxos/echo';\nimport * as MarkdownOperation from '@dxos/plugin-markdown/MarkdownOperation';\n\n/**\n * Fills the document with placeholder prose from the slash menu — the cheapest way to get a\n * realistic amount of text in front of a layout or scrolling bug.\n */\nexport const InsertLoremIpsum = Operation.make({\n meta: {\n key: DXN.make('org.dxos.operation.debug.insertLoremIpsum'),\n name: 'Lorem ipsum',\n description: 'Inserts a paragraph of placeholder text at the cursor.',\n icon: 'ph--text-align-left--regular',\n },\n input: MarkdownOperation.EditorCommandInput,\n output: Schema.Void,\n // The handler resolves the live EditorView from a capability, which is the only route from the\n // operation layer to the editor.\n services: [Capability.Service],\n});\n\n/**\n * Shows a page of the debug panel — a node under `root/debug`, which has no URL for\n * `LayoutOperation.Open` — opening the docked drawer when the panel is docked.\n */\nexport const OpenPage = Operation.make({\n meta: {\n key: DXN.make('org.dxos.operation.debug.openPage'),\n name: 'Open debug page',\n description: 'Selects a page of the debug panel by its qualified graph id and shows the panel.',\n icon: 'ph--terminal-window--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n nodeId: Schema.String.annotate({ description: 'Qualified graph id of the page, under `root/debug`.' }),\n }),\n output: Schema.Void,\n});\n\nconst LayoutSummary = Schema.Struct({\n mode: Schema.String,\n sidebarOpen: Schema.Boolean,\n complementarySidebarOpen: Schema.Boolean,\n dialogOpen: Schema.Boolean,\n workspace: Schema.String,\n active: Schema.Array(Schema.String).annotate({\n description: 'Graph path ids of the open planks — the ids layout open/close operations accept.',\n }),\n inactive: Schema.Array(Schema.String),\n scrollIntoView: Schema.optional(Schema.String),\n});\n\nconst SubjectSummary = Schema.Struct({\n id: Schema.optional(Schema.String),\n dxn: Schema.optional(Schema.String),\n typename: Schema.optional(Schema.String),\n name: Schema.optional(Schema.String),\n text: Schema.optional(Schema.String).annotate({\n description: 'The current text of a markdown document, so an edit can be judged without the editor.',\n }),\n});\n\nconst ActionSummary = Schema.Struct({\n id: Schema.String,\n label: Schema.optional(Schema.String),\n icon: Schema.optional(Schema.String),\n disabled: Schema.optional(Schema.Boolean),\n operation: Schema.optional(Schema.String).annotate({\n description: 'Operation DXN embedded in the action id — invokable via the operation invoker.',\n }),\n group: Schema.optional(Schema.Boolean),\n});\n\nconst CommentMessageSummary = Schema.Struct({\n id: Schema.String,\n sender: Schema.optional(Schema.String),\n text: Schema.optional(Schema.String),\n});\n\nconst CommentThreadSummary = Schema.Struct({\n id: Schema.String,\n anchorId: Schema.String.annotate({\n description: 'Id of the `AnchoredTo` relation that ties the thread to the subject.',\n }),\n anchor: Schema.optional(Schema.String),\n status: Schema.optional(Schema.String),\n messages: Schema.Array(CommentMessageSummary),\n});\n\nconst PlankSummary = Schema.Struct({\n id: Schema.String,\n label: Schema.optional(Schema.String),\n type: Schema.optional(Schema.String),\n subject: Schema.optional(SubjectSummary),\n actions: Schema.Array(ActionSummary),\n comments: Schema.optional(Schema.Array(CommentThreadSummary)).annotate({\n description: \"Comment threads anchored to the plank's subject, when it is a database object.\",\n }),\n});\n\nconst SurfaceSummary = Schema.Struct({\n id: Schema.optional(Schema.String),\n role: Schema.optional(Schema.String),\n component: Schema.optional(Schema.String),\n});\n\nconst SpaceSummary = Schema.Struct({\n id: Schema.String,\n name: Schema.optional(Schema.String),\n state: Schema.String.annotate({ description: 'The `SpaceState` name, e.g. `SPACE_READY`.' }),\n default: Schema.optional(Schema.Boolean),\n});\n\nconst ToastSummary = Schema.Struct({\n title: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n actions: Schema.Array(Schema.String).annotate({ description: \"Labels of the toast's buttons.\" }),\n});\n\nconst ErrorSummary = Schema.Struct({\n timestamp: Schema.Number,\n message: Schema.optional(Schema.String),\n error: Schema.optional(Schema.String),\n file: Schema.optional(Schema.String),\n});\n\n/**\n * One JSON document describing the live UI state — layout, attention, open planks with their\n * subjects and reachable actions, mounted surfaces, and plugin counts — so an agent can infer what\n * the user sees and what it can do without screenshots. See app-framework/docs/INTROSPECTION.md.\n */\nexport const Snapshot = Operation.make({\n meta: {\n key: DXN.make('org.dxos.operation.debug.snapshot'),\n name: 'UI Snapshot',\n description:\n 'Returns a JSON snapshot of the live UI state: layout (mode, sidebars, open planks), attended ' +\n 'items, each open plank with its subject object and the actions the UI offers for it (with ' +\n 'their operation keys) and the comment threads on it, the mounted surfaces, the spaces, the visible toasts, the errors ' +\n 'logged since `since` (a timestamp; default: the last minute), and plugin counts. Read-only.',\n icon: 'ph--camera--regular',\n },\n services: [Capability.Service, Plugin.Service],\n input: Schema.Struct({\n since: Schema.optional(Schema.Number).annotate({\n description: 'Only errors logged at or after this unix timestamp (ms) are reported.',\n }),\n }),\n output: Schema.Struct({\n layout: Schema.optional(LayoutSummary),\n attention: Schema.Array(Schema.String),\n planks: Schema.Array(PlankSummary),\n surfaces: Schema.Array(SurfaceSummary),\n spaces: Schema.Array(SpaceSummary),\n toasts: Schema.Array(ToastSummary),\n errors: Schema.Array(ErrorSummary),\n plugins: Schema.Struct({\n installed: Schema.Number,\n enabled: Schema.Number,\n active: Schema.Number,\n }),\n }),\n}).pipe(Operation.mutation('none'));\n\n/**\n * Undoes the last undoable operation — what the notification toast's **Undo** button does — so an\n * agent driving the app through operations can exercise the undo path it cannot click.\n */\nexport const Undo = Operation.make({\n meta: {\n key: DXN.make('org.dxos.operation.debug.revertLast'),\n name: 'Revert last operation',\n description: 'Undoes the last undoable operation, as the undo toast does. Fails when there is nothing to undo.',\n icon: 'ph--arrow-counter-clockwise--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({}),\n output: Schema.Struct({\n undone: Schema.Boolean,\n }),\n});\n\nconst SpaceTemplateSummary = Schema.Struct({\n id: Schema.String,\n label: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\n/**\n * Creates a space from one of the templates plugins contribute, so an agent driving the debug port\n * can seed a realistic space without clicking through the generator panel.\n *\n * TODO(wittjosiah): Reconcile with `SpaceOperation.Create`, which also takes a `template`. This adds\n * only the listing (call without `id`) and deleting the space when the apply fails; the rest it\n * hand-rolls because `Create` applies the template before the caller holds the space. Rollback\n * belongs in `Create` for every caller or nowhere, and the listing belongs in a read-only\n * operation rather than in a create that means something else when an argument is absent.\n */\nexport const CreateSpaceFromTemplate = Operation.make({\n meta: {\n key: DXN.make('org.dxos.operation.debug.createSpaceFromTemplate'),\n name: 'Create Space From Template',\n description:\n 'Creates a new space and fills it from a themed space template. Call without `id` to list ' +\n 'what is available without creating anything; the listing is the only way to learn the ids.',\n icon: 'ph--dice-five--regular',\n },\n // The contributing modules are demand-gated, so the handler fires the activation event itself.\n services: [Capability.Service, Plugin.Service],\n input: Schema.Struct({\n id: Schema.optional(Schema.String).annotate({\n description: 'Space template id. Omit to list the available templates without creating anything.',\n }),\n }),\n output: Schema.Struct({\n applied: Schema.optional(SpaceTemplateSummary).annotate({\n description: 'The template that was written; absent when listing.',\n }),\n spaceId: Schema.optional(Schema.String),\n subject: Schema.optional(Schema.Array(Schema.String)).annotate({\n description: 'Navigation path of the new space, for a follow-up open.',\n }),\n available: Schema.Array(SpaceTemplateSummary),\n }),\n}).pipe(Operation.mutation('write'));\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DebugPlugin.mjs","names":[],"sources":["../../src/DebugPlugin.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Plugin from '@dxos/app-framework/Plugin';\n\nimport { meta as pluginMeta } from '#meta';\n\n/** Plugin metadata, available without loading the plugin body. */\nexport const meta = pluginMeta;\n\n/** Constructs the plugin; the body loads on first enable. */\nexport const make = Plugin.lazy(meta, () => import('#plugin'));\n\nexport type { DebugPluginOptions } from './types/Debug';\n"],"mappings":";;;;;;;;;AAWA,IAAa,OAAO;;AAGpB,IAAa,OAAO,OAAO,KAAK,YAAY,OAAO,UAAU"}
1
+ {"version":3,"file":"DebugPlugin.mjs","names":[],"sources":["../../src/DebugPlugin.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Plugin from '@dxos/app-framework/Plugin';\n\nimport { meta as pluginMeta } from '#meta';\n\n/** Plugin metadata, available without loading the plugin body. */\nexport const meta = pluginMeta;\n\n/** Constructs the plugin; the body loads on first enable. */\nexport const make = Plugin.lazy(meta, () => import('#plugin'));\n\nexport type { DebugPluginOptions as Options } from './types/Debug.ts';\n"],"mappings":";;;;;;;;;AAWA,IAAa,OAAO;;AAGpB,IAAa,OAAO,OAAO,KAAK,YAAY,OAAO,UAAU"}
@@ -2,14 +2,19 @@ import { t as __exportAll } from "./chunk-rolldown-runtime.mjs";
2
2
  import { meta } from "#meta";
3
3
  import * as Role from "@dxos/app-framework/Role";
4
4
  //#region src/types/DebugSurface.ts
5
- var DebugSurface_exports = /* @__PURE__ */ __exportAll({ Stats: () => Stats });
5
+ var DebugSurface_exports = /* @__PURE__ */ __exportAll({
6
+ Page: () => Page,
7
+ Stats: () => Stats
8
+ });
6
9
  /**
7
10
  * Role token for the transient-stats panel — renders the {@link AppCapabilities.StatsPanel} store
8
11
  * (arbitrary reactive telemetry keyed by owner id). A layout targets this role (role-only dispatch);
9
12
  * the surface reads the store directly, so it needs no subject.
10
13
  */
11
14
  var Stats = Role.make(`${meta.profile.key}.surface.stats`);
15
+ /** Role token for a page of the debug panel; every node under `root/debug` registers its surface on it. */
16
+ var Page = Role.make(`${meta.profile.key}.surface.page`);
12
17
  //#endregion
13
- export { Stats, DebugSurface_exports as t };
18
+ export { Page, Stats, DebugSurface_exports as t };
14
19
 
15
20
  //# sourceMappingURL=DebugSurface.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugSurface.mjs","names":[],"sources":["../../src/types/DebugSurface.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Role from '@dxos/app-framework/Role';\n\nimport { meta } from '#meta';\n\n/**\n * Role token for the transient-stats panel — renders the {@link AppCapabilities.StatsPanel} store\n * (arbitrary reactive telemetry keyed by owner id). A layout targets this role (role-only dispatch);\n * the surface reads the store directly, so it needs no subject.\n */\nexport const Stats = Role.make<Record<string, unknown>>(`${meta.profile.key}.surface.stats`);\n"],"mappings":";;;;;;;;;;AAeA,IAAa,QAAQ,KAAK,KAA8B,GAAG,KAAK,QAAQ,IAAI,eAAe"}
1
+ {"version":3,"file":"DebugSurface.mjs","names":[],"sources":["../../src/types/DebugSurface.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Role from '@dxos/app-framework/Role';\nimport type * as AppSurface from '@dxos/app-toolkit/AppSurface';\n\nimport { meta } from '#meta';\n\n/**\n * Role token for the transient-stats panel — renders the {@link AppCapabilities.StatsPanel} store\n * (arbitrary reactive telemetry keyed by owner id). A layout targets this role (role-only dispatch);\n * the surface reads the store directly, so it needs no subject.\n */\nexport const Stats = Role.make<Record<string, unknown>>(`${meta.profile.key}.surface.stats`);\n\n/** Article data for a page of the debug panel, whose nodes have no URL for `LayoutOperation.Open`. */\nexport type PageData = AppSurface.ArticleData<unknown, { onNavigate: (nodeId: string) => void }>;\n\n/** Role token for a page of the debug panel; every node under `root/debug` registers its surface on it. */\nexport const Page = Role.make<PageData>(`${meta.profile.key}.surface.page`);\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAa,QAAQ,KAAK,KAA8B,GAAG,KAAK,QAAQ,IAAI,eAAe;;AAM3F,IAAa,OAAO,KAAK,KAAe,GAAG,KAAK,QAAQ,IAAI,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { n as make, r as makeTemplate } from "./chunk-IncidentSpace.mjs";
2
+ export { make, makeTemplate };
@@ -0,0 +1,2 @@
1
+ import { n as make, r as makeTemplate } from "./chunk-PipelineSpace.mjs";
2
+ export { make, makeTemplate };
@@ -0,0 +1,2 @@
1
+ import { i as makeTemplate, n as TEMPLATE_ID, r as make } from "./chunk-ReviewSpace.mjs";
2
+ export { TEMPLATE_ID, make, makeTemplate };
@@ -0,0 +1,2 @@
1
+ import { n as make, r as makeTemplate } from "./chunk-StockfishSpace.mjs";
2
+ export { make, makeTemplate };