@dxos/plugin-debug 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29

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 (198) hide show
  1. package/dist/lib/{browser/DebugGraph-7HXJ2PS2.mjs → neutral/DebugGraph-G4FWS57E.mjs} +4 -5
  2. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
  3. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs +59 -0
  4. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs.map +7 -0
  5. package/dist/lib/neutral/DebugPlugin.mjs +47 -0
  6. package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
  8. package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
  9. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs +224 -0
  10. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
  11. package/dist/lib/{browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs → neutral/DebugSpaceObjectsPanel-NISULU6U.mjs} +10 -26
  12. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
  13. package/dist/lib/{browser/DebugStatus-COQGH37G.mjs → neutral/DebugStatus-YB3KFP7G.mjs} +35 -39
  14. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
  15. package/dist/lib/{browser/DevtoolsOverviewContainer-C75NFVER.mjs → neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs} +9 -6
  16. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  17. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs +143 -0
  18. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs.map +7 -0
  19. package/dist/lib/{browser/Wireframe-KAGOKEFW.mjs → neutral/Wireframe-7SNRUKET.mjs} +8 -9
  20. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs.map +7 -0
  21. package/dist/lib/{browser/app-graph-builder-LGUQNXHD.mjs → neutral/app-graph-builder-YPYHL2K5.mjs} +210 -258
  22. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs.map +7 -0
  23. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  24. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  25. package/dist/lib/{browser/chunk-A5H5GRV6.mjs → neutral/chunk-3OGPOE7H.mjs} +2 -2
  26. package/dist/lib/{browser/chunk-A5H5GRV6.mjs.map → neutral/chunk-3OGPOE7H.mjs.map} +3 -3
  27. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  28. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  29. package/dist/lib/{browser/chunk-4UFQXPP7.mjs → neutral/chunk-NFIOTQRZ.mjs} +23 -12
  30. package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
  31. package/dist/lib/{browser/SpaceGenerator-SWSGJEEL.mjs → neutral/components/index.mjs} +60 -253
  32. package/dist/lib/neutral/components/index.mjs.map +7 -0
  33. package/dist/lib/neutral/containers/index.mjs +21 -0
  34. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  35. package/dist/lib/neutral/index.mjs +18 -0
  36. package/dist/lib/neutral/index.mjs.map +7 -0
  37. package/dist/lib/neutral/meta.json +1 -0
  38. package/dist/lib/neutral/meta.mjs +8 -0
  39. package/dist/lib/neutral/meta.mjs.map +7 -0
  40. package/dist/lib/neutral/plugin.mjs +12 -0
  41. package/dist/lib/neutral/plugin.mjs.map +7 -0
  42. package/dist/lib/{browser/react-context-I3USIAF6.mjs → neutral/react-context-MUZ3KVLU.mjs} +6 -6
  43. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  44. package/dist/lib/{browser/react-surface-BTVNKKVQ.mjs → neutral/react-surface-NH2H63KW.mjs} +153 -176
  45. package/dist/lib/neutral/react-surface-NH2H63KW.mjs.map +7 -0
  46. package/dist/lib/{browser/settings-SLTQJJNF.mjs → neutral/settings-MPM6YUP4.mjs} +7 -11
  47. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  48. package/dist/lib/neutral/translations.mjs +83 -0
  49. package/dist/lib/neutral/translations.mjs.map +7 -0
  50. package/dist/lib/neutral/types/index.mjs +14 -0
  51. package/dist/lib/neutral/types/index.mjs.map +7 -0
  52. package/dist/types/src/DebugPlugin.d.ts +2 -5
  53. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  54. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  55. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  56. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  57. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  58. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/index.d.ts +11 -4
  60. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  62. package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +2 -2
  63. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  64. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -1
  65. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  66. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  67. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  68. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +99 -0
  69. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  70. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  71. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  72. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -1
  73. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +2 -2
  74. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  75. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  76. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  77. package/dist/types/src/components/index.d.ts +2 -0
  78. package/dist/types/src/components/index.d.ts.map +1 -1
  79. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +2 -2
  80. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -1
  81. package/dist/types/src/containers/DebugGraph/index.d.ts +1 -2
  82. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -1
  83. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +3 -4
  84. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
  85. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +1 -2
  86. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -1
  87. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -1
  88. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
  89. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +1 -2
  90. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -1
  91. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -1
  92. package/dist/types/src/containers/DebugStatus/index.d.ts +1 -2
  93. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -1
  94. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -1
  95. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +1 -2
  96. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -1
  97. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +3 -1
  98. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  99. package/dist/types/src/containers/SpaceGenerator/index.d.ts +1 -2
  100. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -1
  101. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -1
  102. package/dist/types/src/containers/Wireframe/index.d.ts +1 -2
  103. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -1
  104. package/dist/types/src/containers/index.d.ts +0 -1
  105. package/dist/types/src/containers/index.d.ts.map +1 -1
  106. package/dist/types/src/index.d.ts +1 -1
  107. package/dist/types/src/index.d.ts.map +1 -1
  108. package/dist/types/src/plugin.d.ts +4 -0
  109. package/dist/types/src/plugin.d.ts.map +1 -0
  110. package/dist/types/src/translations.d.ts +80 -61
  111. package/dist/types/src/translations.d.ts.map +1 -1
  112. package/dist/types/src/types/Settings.d.ts +8 -0
  113. package/dist/types/src/types/Settings.d.ts.map +1 -0
  114. package/dist/types/src/types/index.d.ts +69 -0
  115. package/dist/types/src/types/index.d.ts.map +1 -0
  116. package/dist/types/tsconfig.tsbuildinfo +1 -1
  117. package/package.json +115 -64
  118. package/src/DebugPlugin.node.ts +18 -0
  119. package/src/DebugPlugin.test.ts +29 -0
  120. package/src/DebugPlugin.tsx +9 -11
  121. package/src/capabilities/app-graph-builder.ts +405 -0
  122. package/src/capabilities/index.ts +6 -4
  123. package/src/capabilities/{react-context/react-context.tsx → react-context.tsx} +7 -2
  124. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +169 -158
  125. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
  126. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  127. package/src/components/DebugSettings/DebugSettings.tsx +262 -0
  128. package/src/components/DebugSettings/index.ts +5 -0
  129. package/src/components/SpaceGenerator/ObjectGenerator.tsx +13 -15
  130. package/src/components/SpaceGenerator/draw-util.ts +8 -8
  131. package/src/components/SpaceGenerator/presets.ts +28 -50
  132. package/src/components/index.ts +4 -0
  133. package/src/containers/DebugGraph/DebugGraph.tsx +3 -2
  134. package/src/containers/DebugGraph/index.ts +1 -3
  135. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +47 -16
  136. package/src/containers/DebugObjectPanel/index.ts +1 -3
  137. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +10 -23
  138. package/src/containers/DebugSpaceObjectsPanel/index.ts +1 -3
  139. package/src/containers/DebugStatus/DebugStatus.tsx +41 -19
  140. package/src/containers/DebugStatus/index.ts +1 -3
  141. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +8 -1
  142. package/src/containers/DevtoolsOverviewContainer/index.ts +1 -3
  143. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +102 -103
  144. package/src/containers/SpaceGenerator/index.ts +1 -3
  145. package/src/containers/Wireframe/Wireframe.tsx +2 -6
  146. package/src/containers/Wireframe/index.ts +1 -3
  147. package/src/containers/index.ts +0 -1
  148. package/src/index.ts +1 -1
  149. package/src/meta.ts +1 -1
  150. package/src/plugin.ts +10 -0
  151. package/src/translations.ts +75 -60
  152. package/src/types/Settings.ts +16 -0
  153. package/src/{types.ts → types/index.ts} +15 -14
  154. package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs.map +0 -7
  155. package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs +0 -33
  156. package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs.map +0 -7
  157. package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs +0 -174
  158. package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs.map +0 -7
  159. package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs.map +0 -7
  160. package/dist/lib/browser/DebugStatus-COQGH37G.mjs.map +0 -7
  161. package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs.map +0 -7
  162. package/dist/lib/browser/SpaceGenerator-SWSGJEEL.mjs.map +0 -7
  163. package/dist/lib/browser/Wireframe-KAGOKEFW.mjs.map +0 -7
  164. package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-4UFQXPP7.mjs.map +0 -7
  166. package/dist/lib/browser/index.mjs +0 -132
  167. package/dist/lib/browser/index.mjs.map +0 -7
  168. package/dist/lib/browser/meta.json +0 -1
  169. package/dist/lib/browser/react-context-I3USIAF6.mjs.map +0 -7
  170. package/dist/lib/browser/react-surface-BTVNKKVQ.mjs.map +0 -7
  171. package/dist/lib/browser/settings-SLTQJJNF.mjs.map +0 -7
  172. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  173. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  174. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  175. package/dist/types/src/capabilities/react-context/index.d.ts +0 -7
  176. package/dist/types/src/capabilities/react-context/index.d.ts.map +0 -1
  177. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +0 -1
  178. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
  179. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  180. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  181. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  182. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  183. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  184. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +0 -10
  185. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +0 -1
  186. package/dist/types/src/containers/DebugSettings/index.d.ts +0 -3
  187. package/dist/types/src/containers/DebugSettings/index.d.ts.map +0 -1
  188. package/dist/types/src/types.d.ts +0 -68
  189. package/dist/types/src/types.d.ts.map +0 -1
  190. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -441
  191. package/src/capabilities/app-graph-builder/index.ts +0 -7
  192. package/src/capabilities/react-context/index.ts +0 -7
  193. package/src/capabilities/react-surface/index.ts +0 -7
  194. package/src/capabilities/settings/index.ts +0 -7
  195. package/src/containers/DebugSettings/DebugSettings.tsx +0 -201
  196. package/src/containers/DebugSettings/index.ts +0 -7
  197. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  198. /package/dist/types/src/capabilities/{react-context/react-context.d.ts → react-context.d.ts} +0 -0
@@ -3,73 +3,88 @@
3
3
  //
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
+ import { translations as introspectTranslations } from '@dxos/react-ui-introspect/translations';
6
7
 
7
- import { meta } from './meta';
8
+ import { meta } from '#meta';
8
9
 
9
10
  export const translations = [
11
+ ...introspectTranslations,
10
12
  {
11
13
  'en-US': {
12
14
  [meta.id]: {
13
- 'plugin name': 'Debug',
14
- 'settings title': 'Debug settings',
15
- 'mutation count': 'Number of mutations',
16
- 'mutation period': 'Mutation period',
17
- 'open devtools label': 'Open DevTools',
18
- 'devtools label': 'DevTools',
19
- 'devtools overview label': 'Stats',
20
- 'space objects label': 'Database',
21
- 'debug label': 'Debug',
22
- 'debug app graph label': 'App Graph',
23
- 'settings show debug panel': 'Show Debug panel.',
24
- 'settings show devtools panel': 'Show DevTools panel.',
25
- 'settings wireframe': 'Show wireframes.',
26
- 'settings repair': 'Run repair tool.',
27
- 'settings download diagnostics': 'Download diagnostics.',
28
- 'settings download logs': 'Download log buffer.',
29
- 'settings uploaded': 'Uploaded to IPFS',
30
- 'settings uploaded to clipboard': 'URL copied to clipboard.',
31
- 'settings repair success': 'Repair succeeded',
32
- 'settings repair failed': 'Repair failed',
33
- 'settings choose storage adaptor': 'Storage adaptor (worker reload required).',
34
- 'settings storage adaptor idb label': 'IndexedDB',
35
- 'settings storage adaptor opfs label': 'OPFS',
36
- 'settings data store label': 'Data Store',
37
- 'settings storage adapter changed alert':
15
+ 'plugin.name': 'Debug',
16
+ 'settings.title': 'Debug settings',
17
+ 'open-devtools.label': 'Open DevTools',
18
+ 'devtools.label': 'DevTools',
19
+ 'devtools-overview.label': 'Stats',
20
+ 'space-objects.label': 'Database',
21
+ 'debug.label': 'Debug',
22
+ 'generate-objects.label': 'Generate Objects',
23
+ 'debug-app-graph.label': 'App Graph',
24
+ 'debug-tools-explorer.label': 'Tools Explorer',
25
+
26
+ 'settings.wireframe.label': 'Show wireframes.',
27
+ 'settings.wireframe.description': 'Overlay wireframe outlines on UI components for debugging layout.',
28
+ 'settings.trace-all.label': 'Trace all requests (100% sampling).',
29
+ 'settings.trace-all.description':
30
+ 'Override the default 30% sampling rate to capture all traces. Requires page reload to take effect.',
31
+ 'settings.tracing-panel.label': 'Open tracing panel.',
32
+ 'settings.tracing-panel.description': 'Open the tracing dashboard to inspect captured spans.',
33
+ 'settings.repair.label': 'Run repair tool.',
34
+ 'settings.repair.description': 'Attempt to detect and fix inconsistencies in local data storage.',
35
+ 'settings.download-diagnostics.label': 'Download diagnostics.',
36
+ 'settings.download-diagnostics.description':
37
+ 'Export a JSON file containing client diagnostics for troubleshooting.',
38
+ 'settings.download-logs.label': 'Download log buffer.',
39
+ 'settings.download-logs.description': 'Export the in-memory log buffer as an NDJSON file.',
40
+ 'settings.uploaded.message': 'Settings uploaded.',
41
+ 'settings.uploaded.description': 'URL copied to clipboard.',
42
+ 'settings.choose-storage-adaptor.label': 'Storage adaptor (worker reload required).',
43
+ 'settings.choose-storage-adaptor.description':
44
+ 'Select the browser storage backend. Changing this requires a worker reload and may make existing data unavailable.',
45
+ 'settings.repair-success.message': 'Repair succeeded',
46
+ 'settings.repair-failed.message': 'Repair failed',
47
+
48
+ 'settings.storage-adaptor.idb.label': 'IndexedDB',
49
+ 'settings.storage-adaptor.opfs.label': 'OPFS',
50
+ 'settings.storage-adapter.changed-alert.message':
38
51
  'Warning: Swapping the storage adapter will make your data unavailable.',
39
- 'settings space fragmentation': 'Enable AM space fragmentation',
40
- 'open debug panel label': 'Show Debug',
41
- 'client label': 'Client',
42
- 'config label': 'Config',
43
- 'storage label': 'Storage',
44
- 'logs label': 'Logs',
45
- 'diagnostics label': 'Diagnostics',
46
- 'tracing label': 'Tracing',
47
- 'halo label': 'HALO',
48
- 'identity label': 'Identity',
49
- 'devices label': 'Devices',
50
- 'keyring label': 'Keyring',
51
- 'credentials label': 'Credentials',
52
- 'echo label': 'ECHO',
53
- 'spaces label': 'Spaces',
54
- 'space label': 'Space',
55
- 'feeds label': 'Feeds',
56
- 'objects label': 'Objects',
57
- 'schema label': 'Schema',
58
- 'automerge label': 'Automerge',
59
- 'queues label': 'Queues',
60
- 'members label': 'Members',
61
- 'metadata label': 'Metadata',
62
- 'mesh label': 'MESH',
63
- 'signal label': 'Signal',
64
- 'swarm label': 'Swarm',
65
- 'network label': 'Network',
66
- 'agent label': 'Agent',
67
- 'dashboard label': 'Dashboard',
68
- 'search label': 'Search',
69
- 'edge label': 'EDGE',
70
- 'workflows label': 'Workflows',
71
- 'traces label': 'Traces',
72
- 'testing label': 'Testing',
52
+
53
+ 'settings.data-store.label': 'Data Store',
54
+
55
+ 'open-debug-panel.label': 'Show Debug',
56
+ 'client.label': 'Client',
57
+ 'config.label': 'Config',
58
+ 'storage.label': 'Storage',
59
+ 'logs.label': 'Logs',
60
+ 'diagnostics.label': 'Diagnostics',
61
+ 'tracing.label': 'Tracing',
62
+ 'halo.label': 'HALO',
63
+ 'identity.label': 'Identity',
64
+ 'devices.label': 'Devices',
65
+ 'keyring.label': 'Keyring',
66
+ 'credentials.label': 'Credentials',
67
+ 'echo.label': 'ECHO',
68
+ 'spaces.label': 'Spaces',
69
+ 'space.label': 'Space',
70
+ 'feeds.label': 'Feeds',
71
+ 'objects.label': 'Objects',
72
+ 'schema.label': 'Schema',
73
+ 'automerge.label': 'Automerge',
74
+ 'queues.label': 'Queues',
75
+ 'members.label': 'Members',
76
+ 'metadata.label': 'Metadata',
77
+ 'mesh.label': 'MESH',
78
+ 'signal.label': 'Signal',
79
+ 'swarm.label': 'Swarm',
80
+ 'network.label': 'Network',
81
+ 'agent.label': 'Agent',
82
+ 'dashboard.label': 'Dashboard',
83
+ 'search.label': 'Search',
84
+ 'edge.label': 'EDGE',
85
+ 'workflows.label': 'Workflows',
86
+ 'traces.label': 'Traces',
87
+ 'testing.label': 'Testing',
73
88
  },
74
89
  },
75
90
  },
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ export const Settings = Schema.mutable(
10
+ Schema.Struct({
11
+ wireframe: Schema.optional(Schema.Boolean),
12
+ traceAll: Schema.optional(Schema.Boolean),
13
+ }),
14
+ );
15
+
16
+ export interface Settings extends Schema.Schema.Type<typeof Settings> {}
@@ -3,13 +3,22 @@
3
3
  //
4
4
 
5
5
  import { type Atom } from '@effect-atom/atom-react';
6
- import * as Schema from 'effect/Schema';
7
6
  import { type Context, createContext } from 'react';
8
7
 
9
8
  import { Capability } from '@dxos/app-framework';
10
9
  import type { TimerCallback, TimerOptions } from '@dxos/async';
10
+ import { type IdbLogStore } from '@dxos/log-store-idb';
11
11
 
12
- import { meta } from './meta';
12
+ import { meta } from '#meta';
13
+
14
+ import * as Settings from './Settings';
15
+
16
+ export * as Settings from './Settings';
17
+
18
+ export type DebugPluginOptions = {
19
+ /** Shared persistent log store for capturing and downloading logs. */
20
+ logStore?: IdbLogStore;
21
+ };
13
22
 
14
23
  export type DebugContextType = {
15
24
  running: boolean;
@@ -23,21 +32,14 @@ export const DebugContext: Context<DebugContextType> = createContext<DebugContex
23
32
  stop: () => {},
24
33
  });
25
34
 
26
- export const DebugSettingsSchema = Schema.mutable(
27
- Schema.Struct({
28
- wireframe: Schema.optional(Schema.Boolean),
29
- }),
30
- );
31
-
32
- export interface DebugSettingsProps extends Schema.Schema.Type<typeof DebugSettingsSchema> {}
33
-
34
35
  export namespace DebugCapabilities {
35
- export const Settings = Capability.make<Atom.Writable<DebugSettingsProps>>(`${meta.id}/capability/settings`);
36
+ export const Settings = Capability.make<Atom.Writable<Settings.Settings>>(`${meta.id}.capability.settings`);
36
37
  }
37
38
 
38
39
  export namespace Devtools {
39
- // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.
40
- export const id = 'dxos.org.plugin.debug.devtools';
40
+ export const id = `${meta.id}.devtools`;
41
+
42
+ export const ToolsExplorer = `${Devtools.id}.tools-explorer`;
41
43
 
42
44
  export namespace Client {
43
45
  export const id = `${Devtools.id}.client`;
@@ -45,7 +47,6 @@ export namespace Devtools {
45
47
  export const Storage = `${Devtools.Client.id}.storage`;
46
48
  export const Logs = `${Devtools.Client.id}.logs`;
47
49
  export const Diagnostics = `${Devtools.Client.id}.diagnostics`;
48
- export const Tracing = `${Devtools.Client.id}.tracing`;
49
50
  }
50
51
 
51
52
  export namespace Halo {
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DebugGraph/DebugGraph.tsx", "../../../src/containers/DebugGraph/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC } from 'react';\n\nimport { Tree } from '@dxos/devtools';\nimport { Graph } from '@dxos/plugin-graph';\n\nexport type DebugGraphProps = { graph: Graph.Graph; root: string };\nexport const DebugGraph: FC<DebugGraphProps> = ({ graph, root }) => {\n return <Tree data={Graph.toJSON(graph, root)} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugGraph } from './DebugGraph';\n\nexport default DebugGraph;\n"],
5
- "mappings": ";AAIA,OAAOA,WAAwB;AAE/B,SAASC,YAAY;AACrB,SAASC,aAAa;AAGf,IAAMC,aAAkC,CAAC,EAAEC,OAAOC,KAAI,MAAE;AAC7D,SAAO,sBAAA,cAACC,MAAAA;IAAKC,MAAMC,MAAMC,OAAOL,OAAOC,IAAAA;;AACzC;;;ACNA,IAAA,qBAAeK;",
6
- "names": ["React", "Tree", "Graph", "DebugGraph", "graph", "root", "Tree", "data", "Graph", "toJSON", "DebugGraph"]
7
- }
@@ -1,33 +0,0 @@
1
- // src/containers/DebugObjectPanel/DebugObjectPanel.tsx
2
- import React, { useState } from "react";
3
- import { ObjectsTree } from "@dxos/devtools";
4
- import { Filter, Obj, Query } from "@dxos/echo";
5
- import { useQuery } from "@dxos/react-client/echo";
6
- import { Clipboard, Grid, Panel, ScrollArea } from "@dxos/react-ui";
7
- import { Json } from "@dxos/react-ui-syntax-highlighter";
8
- var DebugObjectPanel = ({ object }) => {
9
- const db = Obj.getDatabase(object);
10
- const [selectedId, setSelectedId] = useState(null);
11
- const [selectedObject] = useQuery(db, Query.select(Filter.id(selectedId ?? object.id)).options({
12
- deleted: "include"
13
- }));
14
- return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(Panel.Root, null, /* @__PURE__ */ React.createElement(Panel.Content, {
15
- asChild: true
16
- }, /* @__PURE__ */ React.createElement(Grid, {
17
- rows: db ? 2 : 1,
18
- classNames: "divide-y divide-separator"
19
- }, db && /* @__PURE__ */ React.createElement(ScrollArea.Root, null, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React.createElement(ObjectsTree, {
20
- db,
21
- root: object,
22
- onSelect: (entity) => setSelectedId(entity.id)
23
- }))), /* @__PURE__ */ React.createElement(Json, {
24
- data: selectedObject
25
- })))));
26
- };
27
-
28
- // src/containers/DebugObjectPanel/index.ts
29
- var DebugObjectPanel_default = DebugObjectPanel;
30
- export {
31
- DebugObjectPanel_default as default
32
- };
33
- //# sourceMappingURL=DebugObjectPanel-3TCDNUNW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DebugObjectPanel/DebugObjectPanel.tsx", "../../../src/containers/DebugObjectPanel/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { ObjectsTree } from '@dxos/devtools';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport type { ObjectId } from '@dxos/keys';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Clipboard, Grid, Panel, ScrollArea } from '@dxos/react-ui';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: Obj.Unknown;\n};\n\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n const db = Obj.getDatabase(object);\n\n const [selectedId, setSelectedId] = useState<ObjectId | null>(null);\n const [selectedObject] = useQuery(\n db,\n Query.select(Filter.id(selectedId ?? object.id)).options({ deleted: 'include' }),\n );\n\n return (\n <Clipboard.Provider>\n <Panel.Root>\n <Panel.Content asChild>\n <Grid rows={db ? 2 : 1} classNames='divide-y divide-separator'>\n {db && (\n <ScrollArea.Root>\n <ScrollArea.Viewport>\n <ObjectsTree db={db} root={object} onSelect={(entity) => setSelectedId(entity.id)} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n )}\n <Json data={selectedObject} />\n </Grid>\n </Panel.Content>\n </Panel.Root>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { DebugObjectPanel } from './DebugObjectPanel';\n\nexport default DebugObjectPanel;\n"],
5
- "mappings": ";AAIA,OAAOA,SAASC,gBAAgB;AAEhC,SAASC,mBAAmB;AAC5B,SAASC,QAAQC,KAAKC,aAAa;AAEnC,SAASC,gBAAgB;AACzB,SAASC,WAAWC,MAAMC,OAAOC,kBAAkB;AACnD,SAASC,YAAY;AAMd,IAAMC,mBAAmB,CAAC,EAAEC,OAAM,MAAyB;AAChE,QAAMC,KAAKC,IAAIC,YAAYH,MAAAA;AAE3B,QAAM,CAACI,YAAYC,aAAAA,IAAiBC,SAA0B,IAAA;AAC9D,QAAM,CAACC,cAAAA,IAAkBC,SACvBP,IACAQ,MAAMC,OAAOC,OAAOC,GAAGR,cAAcJ,OAAOY,EAAE,CAAA,EAAGC,QAAQ;IAAEC,SAAS;EAAU,CAAA,CAAA;AAGhF,SACE,sBAAA,cAACC,UAAUC,UAAQ,MACjB,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACC,MAAAA;IAAKC,MAAMrB,KAAK,IAAI;IAAGsB,YAAW;KAChCtB,MACC,sBAAA,cAACuB,WAAWN,MAAI,MACd,sBAAA,cAACM,WAAWC,UAAQ,MAClB,sBAAA,cAACC,aAAAA;IAAYzB;IAAQ0B,MAAM3B;IAAQ4B,UAAU,CAACC,WAAWxB,cAAcwB,OAAOjB,EAAE;QAItF,sBAAA,cAACkB,MAAAA;IAAKC,MAAMxB;;AAMxB;;;ACtCA,IAAA,2BAAeyB;",
6
- "names": ["React", "useState", "ObjectsTree", "Filter", "Obj", "Query", "useQuery", "Clipboard", "Grid", "Panel", "ScrollArea", "Json", "DebugObjectPanel", "object", "db", "Obj", "getDatabase", "selectedId", "setSelectedId", "useState", "selectedObject", "useQuery", "Query", "select", "Filter", "id", "options", "deleted", "Clipboard", "Provider", "Panel", "Root", "Content", "asChild", "Grid", "rows", "classNames", "ScrollArea", "Viewport", "ObjectsTree", "root", "onSelect", "entity", "Json", "data", "DebugObjectPanel"]
7
- }
@@ -1,174 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-A5H5GRV6.mjs";
4
-
5
- // src/containers/DebugSettings/DebugSettings.tsx
6
- import React, { useEffect, useState } from "react";
7
- import { useCapabilities } from "@dxos/app-framework/ui";
8
- import { AppCapabilities } from "@dxos/app-toolkit";
9
- import { SaveConfig, Storage, defs } from "@dxos/config";
10
- import { log } from "@dxos/log";
11
- import { useClient } from "@dxos/react-client";
12
- import { Icon, IconButton, Input, Select, Toast, useFileDownload, useTranslation } from "@dxos/react-ui";
13
- import { Settings } from "@dxos/react-ui-form";
14
- import { setDeep } from "@dxos/util";
15
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/containers/DebugSettings/DebugSettings.tsx";
16
- var StorageAdapters = {
17
- opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,
18
- idb: defs.Runtime.Client.Storage.StorageDriver.IDB
19
- };
20
- var DebugSettings = ({ settings, onSettingsChange, logBuffer }) => {
21
- const { t } = useTranslation(meta.id);
22
- const [toast, setToast] = useState();
23
- const client = useClient();
24
- const download = useFileDownload();
25
- const [storageConfig, setStorageConfig] = useState({});
26
- const [upload] = useCapabilities(AppCapabilities.FileUploader);
27
- useEffect(() => {
28
- void Storage().then((config) => setStorageConfig(config));
29
- }, []);
30
- const handleToast = (toast2) => {
31
- setToast(toast2);
32
- const t2 = setTimeout(() => setToast(void 0), 5e3);
33
- return () => clearTimeout(t2);
34
- };
35
- const handleDownload = async () => {
36
- const data = await client.diagnostics();
37
- const file = new Blob([
38
- JSON.stringify(data, void 0, 2)
39
- ], {
40
- type: "text/plain"
41
- });
42
- const fileName = `composer-${(/* @__PURE__ */ new Date()).toISOString().replace(/\W/g, "-")}.json`;
43
- download(file, fileName);
44
- if (upload) {
45
- const info = await upload(client.spaces.default.db, new File([
46
- file
47
- ], fileName));
48
- if (!info) {
49
- log.error("diagnostics failed to upload to IPFS", void 0, {
50
- F: __dxlog_file,
51
- L: 65,
52
- S: void 0,
53
- C: (f, a) => f(...a)
54
- });
55
- return;
56
- }
57
- handleToast({
58
- title: t("settings uploaded"),
59
- description: t("settings uploaded to clipboard")
60
- });
61
- const url = client.config.values.runtime.services.ipfs.gateway + "/" + info.cid;
62
- void navigator.clipboard.writeText(url);
63
- handleToast({
64
- title: t("settings uploaded"),
65
- description: t("settings uploaded to clipboard")
66
- });
67
- log.info("diagnostics", {
68
- url
69
- }, {
70
- F: __dxlog_file,
71
- L: 80,
72
- S: void 0,
73
- C: (f, a) => f(...a)
74
- });
75
- }
76
- };
77
- const handleDownloadLogs = () => {
78
- const ndjson = logBuffer.serialize();
79
- const file = new Blob([
80
- ndjson
81
- ], {
82
- type: "application/x-ndjson"
83
- });
84
- const fileName = `composer-logs-${(/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace(/:/g, "-")}.ndjson`;
85
- download(file, fileName);
86
- };
87
- const handleRepair = async () => {
88
- try {
89
- const info = await client.repair();
90
- setStorageConfig(await Storage());
91
- handleToast({
92
- title: t("settings repair success"),
93
- description: JSON.stringify(info, void 0, 2)
94
- });
95
- } catch (err) {
96
- handleToast({
97
- title: t("settings repair failed"),
98
- description: err.message
99
- });
100
- }
101
- };
102
- return /* @__PURE__ */ React.createElement(Settings.Root, null, /* @__PURE__ */ React.createElement(Settings.Section, {
103
- title: t("settings title", {
104
- ns: meta.id
105
- })
106
- }, /* @__PURE__ */ React.createElement(Settings.Group, null, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
107
- title: t("settings wireframe")
108
- }, /* @__PURE__ */ React.createElement(Input.Switch, {
109
- checked: settings.wireframe,
110
- onCheckedChange: (checked) => onSettingsChange((s) => ({
111
- ...s,
112
- wireframe: !!checked
113
- }))
114
- })), /* @__PURE__ */ React.createElement(Settings.ItemInput, {
115
- title: t("settings download diagnostics")
116
- }, /* @__PURE__ */ React.createElement(IconButton, {
117
- icon: "ph--download-simple--regular",
118
- iconOnly: true,
119
- label: t("settings download diagnostics"),
120
- onClick: handleDownload
121
- })), /* @__PURE__ */ React.createElement(Settings.ItemInput, {
122
- title: t("settings download logs")
123
- }, /* @__PURE__ */ React.createElement(IconButton, {
124
- icon: "ph--download-simple--regular",
125
- iconOnly: true,
126
- label: t("settings download logs"),
127
- onClick: handleDownloadLogs
128
- })), /* @__PURE__ */ React.createElement(Settings.ItemInput, {
129
- title: t("settings repair")
130
- }, /* @__PURE__ */ React.createElement(IconButton, {
131
- icon: "ph--first-aid-kit--regular",
132
- iconOnly: true,
133
- label: t("settings repair"),
134
- onClick: handleRepair
135
- })), toast && /* @__PURE__ */ React.createElement(Toast.Root, null, /* @__PURE__ */ React.createElement(Toast.Body, null, /* @__PURE__ */ React.createElement(Toast.Title, null, /* @__PURE__ */ React.createElement(Icon, {
136
- icon: "ph--gift--duotone",
137
- size: 5,
138
- classNames: "inline mr-1"
139
- }), /* @__PURE__ */ React.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React.createElement(Settings.ItemInput, {
140
- title: t("settings choose storage adaptor")
141
- }, /* @__PURE__ */ React.createElement(Select.Root, {
142
- value: Object.entries(StorageAdapters).find(([_name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore)?.[0],
143
- onValueChange: (value) => {
144
- if (confirm(t("settings storage adapter changed alert"))) {
145
- updateConfig(storageConfig, setStorageConfig, [
146
- "runtime",
147
- "client",
148
- "storage",
149
- "dataStore"
150
- ], StorageAdapters[value]);
151
- }
152
- }
153
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
154
- placeholder: t("settings data store label")
155
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, Object.keys(StorageAdapters).map((key) => /* @__PURE__ */ React.createElement(Select.Option, {
156
- key,
157
- value: key
158
- }, t(`settings storage adaptor ${key} label`)))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))))));
159
- };
160
- var updateConfig = (config, setConfig, path, value) => {
161
- const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));
162
- setDeep(storageConfigCopy, path, value);
163
- setConfig(storageConfigCopy);
164
- queueMicrotask(async () => {
165
- await SaveConfig(storageConfigCopy);
166
- });
167
- };
168
-
169
- // src/containers/DebugSettings/index.ts
170
- var DebugSettings_default = DebugSettings;
171
- export {
172
- DebugSettings_default as default
173
- };
174
- //# sourceMappingURL=DebugSettings-JZMIUDYB.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DebugSettings/DebugSettings.tsx", "../../../src/containers/DebugSettings/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';\nimport { type LogBuffer, log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Icon, IconButton, Input, Select, Toast, useFileDownload, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport { setDeep } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { type DebugSettingsProps } from '../../types';\n\ntype Toast = {\n title: string;\n description?: string;\n};\n\nconst StorageAdapters = {\n opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,\n idb: defs.Runtime.Client.Storage.StorageDriver.IDB,\n} as const;\n\nexport type DebugSettingsComponentProps = {\n settings: DebugSettingsProps;\n onSettingsChange: (fn: (current: DebugSettingsProps) => DebugSettingsProps) => void;\n logBuffer: LogBuffer;\n};\n\nexport const DebugSettings = ({ settings, onSettingsChange, logBuffer }: DebugSettingsComponentProps) => {\n const { t } = useTranslation(meta.id);\n const [toast, setToast] = useState<Toast>();\n const client = useClient();\n const download = useFileDownload();\n // TODO(mykola): Get updates from other places that change Config.\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const [upload] = useCapabilities(AppCapabilities.FileUploader);\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = (toast: Toast) => {\n setToast(toast);\n const t = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(t);\n };\n\n const handleDownload = async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], {\n type: 'text/plain',\n });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (upload) {\n const info = await upload(client.spaces.default.db, new File([file], fileName));\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({\n title: t('settings uploaded'),\n description: t('settings uploaded to clipboard'),\n });\n\n // TODO(nf): move to IpfsPlugin?\n const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;\n void navigator.clipboard.writeText(url);\n handleToast({\n title: t('settings uploaded'),\n description: t('settings uploaded to clipboard'),\n });\n log.info('diagnostics', { url });\n }\n };\n\n const handleDownloadLogs = () => {\n const ndjson = logBuffer.serialize();\n const file = new Blob([ndjson], { type: 'application/x-ndjson' });\n const fileName = `composer-logs-${new Date().toISOString().slice(0, 19).replace(/:/g, '-')}.ndjson`;\n download(file, fileName);\n };\n\n const handleRepair = async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({\n title: t('settings repair success'),\n description: JSON.stringify(info, undefined, 2),\n });\n } catch (err: any) {\n handleToast({\n title: t('settings repair failed'),\n description: err.message,\n });\n }\n };\n\n return (\n <Settings.Root>\n <Settings.Section title={t('settings title', { ns: meta.id })}>\n <Settings.Group>\n <Settings.ItemInput title={t('settings wireframe')}>\n <Input.Switch\n checked={settings.wireframe}\n onCheckedChange={(checked) => onSettingsChange((s) => ({ ...s, wireframe: !!checked }))}\n />\n </Settings.ItemInput>\n <Settings.ItemInput title={t('settings download diagnostics')}>\n <IconButton\n icon='ph--download-simple--regular'\n iconOnly\n label={t('settings download diagnostics')}\n onClick={handleDownload}\n />\n </Settings.ItemInput>\n <Settings.ItemInput title={t('settings download logs')}>\n <IconButton\n icon='ph--download-simple--regular'\n iconOnly\n label={t('settings download logs')}\n onClick={handleDownloadLogs}\n />\n </Settings.ItemInput>\n <Settings.ItemInput title={t('settings repair')}>\n <IconButton\n icon='ph--first-aid-kit--regular'\n iconOnly\n label={t('settings repair')}\n onClick={handleRepair}\n />\n </Settings.ItemInput>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Body>\n <Toast.Title>\n <Icon icon='ph--gift--duotone' size={5} classNames='inline mr-1' />\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Body>\n </Toast.Root>\n )}\n\n <Settings.ItemInput title={t('settings choose storage adaptor')}>\n <Select.Root\n value={\n Object.entries(StorageAdapters).find(\n ([_name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={(value) => {\n if (confirm(t('settings storage adapter changed alert'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n }}\n >\n <Select.TriggerButton placeholder={t('settings data store label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Object.keys(StorageAdapters).map((key) => (\n <Select.Option key={key} value={key}>\n {t(`settings storage adaptor ${key} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Settings.ItemInput>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\n );\n};\n\nconst updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {\n const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));\n setDeep(storageConfigCopy, path, value);\n setConfig(storageConfigCopy);\n queueMicrotask(async () => {\n await SaveConfig(storageConfigCopy);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugSettings } from './DebugSettings';\n\nexport default DebugSettings;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useEffect", "useState", "useCapabilities", "AppCapabilities", "SaveConfig", "Storage", "defs", "log", "useClient", "Icon", "IconButton", "Input", "Select", "Toast", "useFileDownload", "useTranslation", "Settings", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "onSettingsChange", "logBuffer", "t", "useTranslation", "meta", "id", "toast", "setToast", "useState", "client", "useClient", "download", "useFileDownload", "storageConfig", "setStorageConfig", "upload", "useCapabilities", "AppCapabilities", "FileUploader", "useEffect", "then", "config", "handleToast", "setTimeout", "undefined", "clearTimeout", "handleDownload", "data", "diagnostics", "file", "Blob", "JSON", "stringify", "type", "fileName", "Date", "toISOString", "replace", "info", "spaces", "default", "db", "File", "log", "error", "title", "description", "url", "values", "runtime", "services", "ipfs", "gateway", "cid", "navigator", "clipboard", "writeText", "handleDownloadLogs", "ndjson", "serialize", "slice", "handleRepair", "repair", "err", "message", "Settings", "Root", "Section", "ns", "Group", "ItemInput", "Input", "Switch", "checked", "wireframe", "onCheckedChange", "s", "IconButton", "icon", "iconOnly", "label", "onClick", "Toast", "Body", "Title", "Icon", "size", "classNames", "span", "Description", "Select", "value", "Object", "entries", "find", "_name", "storage", "dataStore", "onValueChange", "confirm", "updateConfig", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "keys", "map", "key", "Option", "Arrow", "setConfig", "path", "storageConfigCopy", "parse", "setDeep", "queueMicrotask", "SaveConfig", "DebugSettings"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx", "../../../src/containers/DebugSpaceObjectsPanel/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { useCapability } from '@dxos/app-framework/ui';\nimport { useLayout } from '@dxos/app-toolkit/ui';\nimport { ObjectsTree } from '@dxos/devtools';\nimport { type Database, Filter, Query } from '@dxos/echo';\nimport type { ObjectId } from '@dxos/keys';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { parseId, useQuery } from '@dxos/react-client/echo';\nimport { Clipboard, Grid, Input, Panel, ScrollArea, Toolbar } from '@dxos/react-ui';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\n\nexport const DebugSpaceObjectsPanel = () => {\n const layout = useLayout();\n const client = useCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = spaceId ? client.spaces.get(spaceId) : undefined;\n if (!space) {\n return null;\n }\n\n return <DebugSpaceObjectsPanelMain database={space.db} />;\n};\n\nconst DebugSpaceObjectsPanelMain = ({ database }: { database: Database.Database }) => {\n const [selectedId, setSelectedId] = useState<ObjectId | null>(null);\n\n const [selectedObject] = useQuery(\n database,\n selectedId ? Query.select(Filter.id(selectedId)) : Query.select(Filter.nothing()),\n );\n\n return (\n <Clipboard.Provider>\n <Panel.Root>\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput disabled placeholder='Search...' />\n </Input.Root>\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <Grid rows={2} classNames='divide-y divide-separator'>\n <ScrollArea.Root>\n <ScrollArea.Viewport>\n <ObjectsTree db={database} onSelect={(entity) => setSelectedId(entity.id)} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n {selectedObject && <Json classNames='p-1' data={selectedObject} />}\n </Grid>\n </Panel.Content>\n </Panel.Root>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { DebugSpaceObjectsPanel } from './DebugSpaceObjectsPanel';\n\nexport default DebugSpaceObjectsPanel;\n"],
5
- "mappings": ";AAIA,OAAOA,SAASC,gBAAgB;AAEhC,SAASC,qBAAqB;AAC9B,SAASC,iBAAiB;AAC1B,SAASC,mBAAmB;AAC5B,SAAwBC,QAAQC,aAAa;AAE7C,SAASC,0BAA0B;AACnC,SAASC,SAASC,gBAAgB;AAClC,SAASC,WAAWC,MAAMC,OAAOC,OAAOC,YAAYC,eAAe;AACnE,SAASC,YAAY;AAEd,IAAMC,yBAAyB,MAAA;AACpC,QAAMC,SAASC,UAAAA;AACf,QAAMC,SAASC,cAAcC,mBAAmBC,MAAM;AACtD,QAAM,EAAEC,QAAO,IAAKC,QAAQP,OAAOQ,SAAS;AAC5C,QAAMC,QAAQH,UAAUJ,OAAOQ,OAAOC,IAAIL,OAAAA,IAAWM;AACrD,MAAI,CAACH,OAAO;AACV,WAAO;EACT;AAEA,SAAO,sBAAA,cAACI,4BAAAA;IAA2BC,UAAUL,MAAMM;;AACrD;AAEA,IAAMF,6BAA6B,CAAC,EAAEC,SAAQ,MAAmC;AAC/E,QAAM,CAACE,YAAYC,aAAAA,IAAiBC,SAA0B,IAAA;AAE9D,QAAM,CAACC,cAAAA,IAAkBC,SACvBN,UACAE,aAAaK,MAAMC,OAAOC,OAAOC,GAAGR,UAAAA,CAAAA,IAAeK,MAAMC,OAAOC,OAAOE,QAAO,CAAA,CAAA;AAGhF,SACE,sBAAA,cAACC,UAAUC,UAAQ,MACjB,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACD,QAAQD,MAAI,MACX,sBAAA,cAACG,MAAMH,MAAI,MACT,sBAAA,cAACG,MAAMC,WAAS;IAACC,UAAAA;IAASC,aAAY;SAI5C,sBAAA,cAACP,MAAMQ,SAAO;IAACL,SAAAA;KACb,sBAAA,cAACM,MAAAA;IAAKC,MAAM;IAAGC,YAAW;KACxB,sBAAA,cAACC,WAAWX,MAAI,MACd,sBAAA,cAACW,WAAWC,UAAQ,MAClB,sBAAA,cAACC,aAAAA;IAAY3B,IAAID;IAAU6B,UAAU,CAACC,WAAW3B,cAAc2B,OAAOpB,EAAE;QAG3EL,kBAAkB,sBAAA,cAAC0B,MAAAA;IAAKN,YAAW;IAAMO,MAAM3B;;AAM5D;;;ACrDA,IAAA,iCAAe4B;",
6
- "names": ["React", "useState", "useCapability", "useLayout", "ObjectsTree", "Filter", "Query", "ClientCapabilities", "parseId", "useQuery", "Clipboard", "Grid", "Input", "Panel", "ScrollArea", "Toolbar", "Json", "DebugSpaceObjectsPanel", "layout", "useLayout", "client", "useCapability", "ClientCapabilities", "Client", "spaceId", "parseId", "workspace", "space", "spaces", "get", "undefined", "DebugSpaceObjectsPanelMain", "database", "db", "selectedId", "setSelectedId", "useState", "selectedObject", "useQuery", "Query", "select", "Filter", "id", "nothing", "Clipboard", "Provider", "Panel", "Root", "Toolbar", "asChild", "Input", "TextInput", "disabled", "placeholder", "Content", "Grid", "rows", "classNames", "ScrollArea", "Viewport", "ObjectsTree", "onSelect", "entity", "Json", "data", "DebugSpaceObjectsPanel"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DebugStatus/DebugStatus.tsx", "../../../src/containers/DebugStatus/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { TimeoutError } from '@dxos/async';\nimport { useActiveSpace } from '@dxos/plugin-space';\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Icon } from '@dxos/react-ui';\n\nconst styles = {\n success: 'text-sky-300 dark:text-green-700',\n warning: 'text-orange-300 dark:text-orange-600',\n error: 'text-red-300 dark:text-red-600',\n};\n\n// TODO(burdon): Move out of debug plugin.\n// TODO(burdon): Make pluggable (move indicators to relevant plugins).\n// TODO(burdon): Vault heartbeat indicator (global scope)?\n\n/**\n * Ensure light doesn't flicker immediately after start.\n */\n// TODO(burdon): Move to @dxos/async (debounce?)\nconst _timer = (cb: (err?: Error) => void, options?: { min?: number; max?: number }) => {\n const min = options?.min ?? 500;\n let start: number;\n let pending: NodeJS.Timeout;\n let timeout: NodeJS.Timeout;\n return {\n start: () => {\n start = Date.now();\n clearTimeout(pending);\n if (options?.max) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n cb(new TimeoutError(options.max));\n }, options.max);\n }\n },\n stop: () => {\n clearTimeout(timeout);\n const delta = Date.now() - start;\n if (delta < min) {\n pending = setTimeout(() => {\n cb();\n }, min - delta);\n }\n },\n };\n};\n\n/**\n * Global error handler.\n */\n// TODO(burdon): Integrate with Sentry?\nconst ErrorIndicator = () => {\n const [, forceUpdate] = useState({});\n const errorRef = useRef<Error>(null);\n useEffect(() => {\n const errorListener = (event: any) => {\n const error: Error = event.error ?? event.reason;\n if (errorRef.current !== error) {\n errorRef.current = error;\n forceUpdate({});\n }\n };\n\n // TODO(burdon): Register globally?\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/error_event\n window.addEventListener('error', errorListener);\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n window.addEventListener('unhandledrejection', errorListener);\n\n return () => {\n window.removeEventListener('error', errorListener);\n window.removeEventListener('unhandledrejection', errorListener);\n };\n }, []);\n\n const handleReset = () => {\n errorRef.current = null;\n forceUpdate({});\n };\n\n if (errorRef.current) {\n return (\n <StatusBar.Button title={errorRef.current.message} onClick={handleReset}>\n <Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />\n </StatusBar.Button>\n );\n } else {\n return (\n <StatusBar.Item title='No errors.'>\n <Icon icon='ph--check--regular' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Swarm connection handler.\n */\nconst SwarmIndicator = () => {\n const [state, setState] = useState(0);\n const { swarm } = useNetworkStatus();\n useEffect(() => {\n setState(swarm === ConnectionState.ONLINE ? 0 : 1);\n }, [swarm]);\n\n if (state === 0) {\n return (\n <StatusBar.Item title='Connected to swarm.'>\n <Icon icon='ph--lightning--regular' size={4} />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item title='Disconnected from swarm.'>\n <Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Data saving indicator.\n */\n// TODO(burdon): Merge with SaveStatus.\nconst SavingIndicator = () => {\n const [state, _setState] = useState(0);\n const _space = useActiveSpace();\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // if (!space) {\n // return;\n // }\n // const { start, stop } = timer(() => setState(0), { min: 250 });\n // return space.db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setState(2);\n // stop();\n // } else if (duration === undefined) {\n // setState(1);\n // start();\n // } else {\n // stop();\n // }\n // });\n // }, [space]);\n\n switch (state) {\n case 2:\n return (\n <StatusBar.Item title='Edit not saved.'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item title='Saving...'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item title='Modified indicator.'>\n <Icon icon='ph--circle--duotone' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, ErrorIndicator];\n\nexport const DebugStatus = () => {\n return (\n <>\n {indicators.map((Indicator) => (\n <Indicator key={Indicator.name} />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugStatus } from './DebugStatus';\n\nexport default DebugStatus;\n"],
5
- "mappings": ";AAIA,OAAOA,SAASC,WAAWC,QAAQC,gBAAgB;AAEnD,SAASC,oBAAoB;AAC7B,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAChC,SAASC,wBAAwB;AACjC,SAASC,YAAY;AAErB,IAAMC,SAAS;EACbC,SAAS;EACTC,SAAS;EACTC,OAAO;AACT;AA0CA,IAAMC,iBAAiB,MAAA;AACrB,QAAM,CAAA,EAAGC,WAAAA,IAAeC,SAAS,CAAC,CAAA;AAClC,QAAMC,WAAWC,OAAc,IAAA;AAC/BC,YAAU,MAAA;AACR,UAAMC,gBAAgB,CAACC,UAAAA;AACrB,YAAMC,QAAeD,MAAMC,SAASD,MAAME;AAC1C,UAAIN,SAASO,YAAYF,OAAO;AAC9BL,iBAASO,UAAUF;AACnBP,oBAAY,CAAC,CAAA;MACf;IACF;AAIAU,WAAOC,iBAAiB,SAASN,aAAAA;AAGjCK,WAAOC,iBAAiB,sBAAsBN,aAAAA;AAE9C,WAAO,MAAA;AACLK,aAAOE,oBAAoB,SAASP,aAAAA;AACpCK,aAAOE,oBAAoB,sBAAsBP,aAAAA;IACnD;EACF,GAAG,CAAA,CAAE;AAEL,QAAMQ,cAAc,MAAA;AAClBX,aAASO,UAAU;AACnBT,gBAAY,CAAC,CAAA;EACf;AAEA,MAAIE,SAASO,SAAS;AACpB,WACE,sBAAA,cAACK,UAAUC,QAAM;MAACC,OAAOd,SAASO,QAAQQ;MAASC,SAASL;OAC1D,sBAAA,cAACM,MAAAA;MAAKC,MAAK;MAA8BC,MAAM;MAAGC,YAAYC,OAAOhB;;EAG3E,OAAO;AACL,WACE,sBAAA,cAACO,UAAUU,MAAI;MAACR,OAAM;OACpB,sBAAA,cAACG,MAAAA;MAAKC,MAAK;MAAqBC,MAAM;;EAG5C;AACF;AAKA,IAAMI,iBAAiB,MAAA;AACrB,QAAM,CAACC,OAAOC,QAAAA,IAAY1B,SAAS,CAAA;AACnC,QAAM,EAAE2B,MAAK,IAAKC,iBAAAA;AAClBzB,YAAU,MAAA;AACRuB,aAASC,UAAUE,gBAAgBC,SAAS,IAAI,CAAA;EAClD,GAAG;IAACH;GAAM;AAEV,MAAIF,UAAU,GAAG;AACf,WACE,sBAAA,cAACZ,UAAUU,MAAI;MAACR,OAAM;OACpB,sBAAA,cAACG,MAAAA;MAAKC,MAAK;MAAyBC,MAAM;;EAGhD,OAAO;AACL,WACE,sBAAA,cAACP,UAAUU,MAAI;MAACR,OAAM;OACpB,sBAAA,cAACG,MAAAA;MAAKC,MAAK;MAA+BC,MAAM;MAAGC,YAAYC,OAAOS;;EAG5E;AACF;AAMA,IAAMC,kBAAkB,MAAA;AACtB,QAAM,CAACP,OAAOQ,SAAAA,IAAajC,SAAS,CAAA;AACpC,QAAMkC,SAASC,eAAAA;AAoBf,UAAQV,OAAAA;IACN,KAAK;AACH,aACE,sBAAA,cAACZ,UAAUU,MAAI;QAACR,OAAM;SACpB,sBAAA,cAACG,MAAAA;QAAKC,MAAK;QAAsBC,MAAM;QAAGC,YAAYC,OAAOS;;IAGnE,KAAK;AACH,aACE,sBAAA,cAAClB,UAAUU,MAAI;QAACR,OAAM;SACpB,sBAAA,cAACG,MAAAA;QAAKC,MAAK;QAAsBC,MAAM;QAAGC,YAAYC,OAAOc;;IAGnE,KAAK;IACL;AACE,aACE,sBAAA,cAACvB,UAAUU,MAAI;QAACR,OAAM;SACpB,sBAAA,cAACG,MAAAA;QAAKC,MAAK;QAAsBC,MAAM;;EAG/C;AACF;AAEA,IAAMiB,aAAa;EAACL;EAAiBR;EAAgB1B;;AAE9C,IAAMwC,cAAc,MAAA;AACzB,SACE,sBAAA,cAAA,MAAA,UAAA,MACGD,WAAWE,IAAI,CAACC,cACf,sBAAA,cAACA,WAAAA;IAAUC,KAAKD,UAAUE;;AAIlC;;;ACtLA,IAAA,sBAAeC;",
6
- "names": ["React", "useEffect", "useRef", "useState", "TimeoutError", "useActiveSpace", "StatusBar", "ConnectionState", "useNetworkStatus", "Icon", "styles", "success", "warning", "error", "ErrorIndicator", "forceUpdate", "useState", "errorRef", "useRef", "useEffect", "errorListener", "event", "error", "reason", "current", "window", "addEventListener", "removeEventListener", "handleReset", "StatusBar", "Button", "title", "message", "onClick", "Icon", "icon", "size", "classNames", "styles", "Item", "SwarmIndicator", "state", "setState", "swarm", "useNetworkStatus", "ConnectionState", "ONLINE", "warning", "SavingIndicator", "_setState", "_space", "useActiveSpace", "success", "indicators", "DebugStatus", "map", "Indicator", "key", "name", "DebugStatus"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx", "../../../src/containers/DevtoolsOverviewContainer/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { StatsPanel, useStats } from '@dxos/devtools';\n\nexport const DevtoolsOverviewContainer = () => {\n const [stats, refreshStats] = useStats();\n\n return (\n <StatsPanel stats={stats} onRefresh={refreshStats}>\n <Surface.Surface role='devtools-overview' />\n </StatsPanel>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DevtoolsOverviewContainer } from './DevtoolsOverviewContainer';\n\nexport default DevtoolsOverviewContainer;\n"],
5
- "mappings": ";AAIA,OAAOA,WAAW;AAElB,SAASC,eAAe;AACxB,SAASC,YAAYC,gBAAgB;AAE9B,IAAMC,4BAA4B,MAAA;AACvC,QAAM,CAACC,OAAOC,YAAAA,IAAgBC,SAAAA;AAE9B,SACE,sBAAA,cAACC,YAAAA;IAAWH;IAAcI,WAAWH;KACnC,sBAAA,cAACI,QAAQA,SAAO;IAACC,MAAK;;AAG5B;;;ACXA,IAAA,oCAAeC;",
6
- "names": ["React", "Surface", "StatsPanel", "useStats", "DevtoolsOverviewContainer", "stats", "refreshStats", "useStats", "StatsPanel", "onRefresh", "Surface", "role", "DevtoolsOverviewContainer"]
7
- }