groove-dev 0.26.39 → 0.27.1

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 (915) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/CLAUDE.md +31 -19
  3. package/node_modules/@groove-dev/cli/package.json +1 -1
  4. package/node_modules/@groove-dev/daemon/integrations-registry.json +548 -0
  5. package/node_modules/@groove-dev/daemon/package.json +1 -1
  6. package/node_modules/@groove-dev/daemon/src/api.js +172 -4
  7. package/node_modules/@groove-dev/daemon/src/classifier.js +20 -1
  8. package/node_modules/@groove-dev/daemon/src/firstrun.js +14 -1
  9. package/node_modules/@groove-dev/daemon/src/gateways/manager.js +2 -2
  10. package/node_modules/@groove-dev/daemon/src/index.js +3 -1
  11. package/node_modules/@groove-dev/daemon/src/introducer.js +56 -5
  12. package/node_modules/@groove-dev/daemon/src/journalist.js +72 -10
  13. package/node_modules/@groove-dev/daemon/src/lockmanager.js +60 -0
  14. package/node_modules/@groove-dev/daemon/src/mcp-manager.js +2 -1
  15. package/node_modules/@groove-dev/daemon/src/memory.js +370 -0
  16. package/node_modules/@groove-dev/daemon/src/pm.js +1 -1
  17. package/node_modules/@groove-dev/daemon/src/process.js +20 -1
  18. package/node_modules/@groove-dev/daemon/src/rotator.js +184 -5
  19. package/node_modules/@groove-dev/daemon/src/router.js +43 -0
  20. package/node_modules/@groove-dev/daemon/src/tokentracker.js +62 -8
  21. package/node_modules/@groove-dev/daemon/src/validate.js +0 -13
  22. package/node_modules/@groove-dev/daemon/test/journalist.test.js +5 -2
  23. package/node_modules/@groove-dev/daemon/test/lockmanager.test.js +64 -0
  24. package/node_modules/@groove-dev/daemon/test/memory.test.js +252 -0
  25. package/node_modules/@groove-dev/daemon/test/rotator.test.js +156 -0
  26. package/node_modules/@groove-dev/daemon/test/router.test.js +64 -0
  27. package/node_modules/@groove-dev/daemon/test/tokentracker.test.js +78 -0
  28. package/node_modules/@groove-dev/gui/dist/assets/index-Bl1_J0sN.js +652 -0
  29. package/node_modules/@groove-dev/gui/dist/assets/index-DjORRpF0.css +1 -0
  30. package/node_modules/@groove-dev/gui/dist/index.html +2 -2
  31. package/node_modules/@groove-dev/gui/package.json +1 -4
  32. package/node_modules/@groove-dev/gui/src/components/agents/spawn-wizard.jsx +18 -0
  33. package/node_modules/@groove-dev/gui/src/components/dashboard/cache-ring.jsx +6 -2
  34. package/node_modules/@groove-dev/gui/src/components/dashboard/intel-panel.jsx +251 -8
  35. package/node_modules/@groove-dev/gui/src/components/dashboard/team-burn-panel.jsx +55 -0
  36. package/node_modules/@groove-dev/gui/src/components/marketplace/marketplace-card.jsx +22 -4
  37. package/node_modules/@groove-dev/gui/src/lib/format.js +0 -6
  38. package/node_modules/@groove-dev/gui/src/lib/hooks/use-dashboard.js +18 -1
  39. package/node_modules/@groove-dev/gui/src/stores/groove.js +41 -16
  40. package/node_modules/@groove-dev/gui/src/views/dashboard.jsx +9 -2
  41. package/node_modules/@groove-dev/gui/src/views/marketplace.jsx +103 -77
  42. package/package.json +2 -8
  43. package/packages/cli/package.json +1 -1
  44. package/packages/daemon/integrations-registry.json +548 -0
  45. package/packages/daemon/package.json +1 -1
  46. package/packages/daemon/src/api.js +172 -4
  47. package/packages/daemon/src/classifier.js +20 -1
  48. package/packages/daemon/src/firstrun.js +14 -1
  49. package/packages/daemon/src/gateways/manager.js +2 -2
  50. package/packages/daemon/src/index.js +3 -1
  51. package/packages/daemon/src/introducer.js +56 -5
  52. package/packages/daemon/src/journalist.js +72 -10
  53. package/packages/daemon/src/lockmanager.js +60 -0
  54. package/packages/daemon/src/mcp-manager.js +2 -1
  55. package/packages/daemon/src/memory.js +370 -0
  56. package/packages/daemon/src/pm.js +1 -1
  57. package/packages/daemon/src/process.js +20 -1
  58. package/packages/daemon/src/rotator.js +184 -5
  59. package/packages/daemon/src/router.js +43 -0
  60. package/packages/daemon/src/tokentracker.js +62 -8
  61. package/packages/daemon/src/validate.js +0 -13
  62. package/packages/gui/dist/assets/index-Bl1_J0sN.js +652 -0
  63. package/packages/gui/dist/assets/index-DjORRpF0.css +1 -0
  64. package/packages/gui/dist/index.html +2 -2
  65. package/packages/gui/package.json +1 -4
  66. package/packages/gui/src/components/agents/spawn-wizard.jsx +18 -0
  67. package/packages/gui/src/components/dashboard/cache-ring.jsx +6 -2
  68. package/packages/gui/src/components/dashboard/intel-panel.jsx +251 -8
  69. package/packages/gui/src/components/dashboard/team-burn-panel.jsx +55 -0
  70. package/packages/gui/src/components/marketplace/marketplace-card.jsx +22 -4
  71. package/packages/gui/src/lib/format.js +0 -6
  72. package/packages/gui/src/lib/hooks/use-dashboard.js +18 -1
  73. package/packages/gui/src/stores/groove.js +41 -16
  74. package/packages/gui/src/views/dashboard.jsx +9 -2
  75. package/packages/gui/src/views/marketplace.jsx +103 -77
  76. package/docs-manager/DOCS-WORKFLOW.md +0 -176
  77. package/node_modules/@groove-dev/gui/dist/assets/index-BkY43sei.css +0 -1
  78. package/node_modules/@groove-dev/gui/dist/assets/index-DmKZLrXU.js +0 -652
  79. package/node_modules/@groove-dev/gui/dist/groove-logo-short.png +0 -0
  80. package/node_modules/@groove-dev/gui/dist/groove-logo.png +0 -0
  81. package/node_modules/@groove-dev/gui/public/groove-logo-short.png +0 -0
  82. package/node_modules/@groove-dev/gui/public/groove-logo.png +0 -0
  83. package/node_modules/@groove-dev/gui/src/components/ui/dropdown-menu.jsx +0 -60
  84. package/node_modules/@groove-dev/gui/src/lib/hooks/use-media-query.js +0 -18
  85. package/node_modules/@radix-ui/react-dropdown-menu/LICENSE +0 -21
  86. package/node_modules/@radix-ui/react-dropdown-menu/README.md +0 -3
  87. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts +0 -97
  88. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.ts +0 -97
  89. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +0 -337
  90. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +0 -7
  91. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs +0 -305
  92. package/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs.map +0 -7
  93. package/node_modules/@radix-ui/react-dropdown-menu/package.json +0 -75
  94. package/node_modules/@radix-ui/react-popover/LICENSE +0 -21
  95. package/node_modules/@radix-ui/react-popover/README.md +0 -3
  96. package/node_modules/@radix-ui/react-popover/dist/index.d.mts +0 -85
  97. package/node_modules/@radix-ui/react-popover/dist/index.d.ts +0 -85
  98. package/node_modules/@radix-ui/react-popover/dist/index.js +0 -352
  99. package/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -7
  100. package/node_modules/@radix-ui/react-popover/dist/index.mjs +0 -320
  101. package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +0 -7
  102. package/node_modules/@radix-ui/react-popover/package.json +0 -82
  103. package/node_modules/@radix-ui/react-separator/LICENSE +0 -21
  104. package/node_modules/@radix-ui/react-separator/README.md +0 -3
  105. package/node_modules/@radix-ui/react-separator/dist/index.d.mts +0 -21
  106. package/node_modules/@radix-ui/react-separator/dist/index.d.ts +0 -21
  107. package/node_modules/@radix-ui/react-separator/dist/index.js +0 -65
  108. package/node_modules/@radix-ui/react-separator/dist/index.js.map +0 -7
  109. package/node_modules/@radix-ui/react-separator/dist/index.mjs +0 -32
  110. package/node_modules/@radix-ui/react-separator/dist/index.mjs.map +0 -7
  111. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/LICENSE +0 -21
  112. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/README.md +0 -3
  113. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.mts +0 -52
  114. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.ts +0 -52
  115. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js +0 -80
  116. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -7
  117. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -47
  118. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +0 -7
  119. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/package.json +0 -69
  120. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/LICENSE +0 -21
  121. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/README.md +0 -3
  122. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.d.mts +0 -22
  123. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.d.ts +0 -22
  124. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js +0 -152
  125. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -7
  126. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.mjs +0 -119
  127. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.mjs.map +0 -7
  128. package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/package.json +0 -64
  129. package/node_modules/@radix-ui/react-separator/package.json +0 -69
  130. package/packages/gui/dist/assets/index-BkY43sei.css +0 -1
  131. package/packages/gui/dist/assets/index-DmKZLrXU.js +0 -652
  132. package/packages/gui/dist/groove-logo-short.png +0 -0
  133. package/packages/gui/dist/groove-logo.png +0 -0
  134. package/packages/gui/public/groove-logo-short.png +0 -0
  135. package/packages/gui/public/groove-logo.png +0 -0
  136. package/packages/gui/src/components/ui/dropdown-menu.jsx +0 -60
  137. package/packages/gui/src/lib/hooks/use-media-query.js +0 -18
  138. package/slides/convert-slides.js +0 -1120
  139. package/slides/deck.pptx +0 -0
  140. package/slides/index.html +0 -825
  141. package/slides/node_modules/.package-lock.json +0 -527
  142. package/slides/node_modules/@types/node/LICENSE +0 -21
  143. package/slides/node_modules/@types/node/README.md +0 -15
  144. package/slides/node_modules/@types/node/assert/strict.d.ts +0 -111
  145. package/slides/node_modules/@types/node/assert.d.ts +0 -1078
  146. package/slides/node_modules/@types/node/async_hooks.d.ts +0 -603
  147. package/slides/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  148. package/slides/node_modules/@types/node/buffer.d.ts +0 -1934
  149. package/slides/node_modules/@types/node/child_process.d.ts +0 -1476
  150. package/slides/node_modules/@types/node/cluster.d.ts +0 -578
  151. package/slides/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  152. package/slides/node_modules/@types/node/compatibility/index.d.ts +0 -9
  153. package/slides/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  154. package/slides/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  155. package/slides/node_modules/@types/node/console.d.ts +0 -452
  156. package/slides/node_modules/@types/node/constants.d.ts +0 -21
  157. package/slides/node_modules/@types/node/crypto.d.ts +0 -4545
  158. package/slides/node_modules/@types/node/dgram.d.ts +0 -600
  159. package/slides/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  160. package/slides/node_modules/@types/node/dns/promises.d.ts +0 -503
  161. package/slides/node_modules/@types/node/dns.d.ts +0 -923
  162. package/slides/node_modules/@types/node/domain.d.ts +0 -170
  163. package/slides/node_modules/@types/node/events.d.ts +0 -976
  164. package/slides/node_modules/@types/node/fs/promises.d.ts +0 -1295
  165. package/slides/node_modules/@types/node/fs.d.ts +0 -4461
  166. package/slides/node_modules/@types/node/globals.d.ts +0 -172
  167. package/slides/node_modules/@types/node/globals.typedarray.d.ts +0 -38
  168. package/slides/node_modules/@types/node/http.d.ts +0 -2089
  169. package/slides/node_modules/@types/node/http2.d.ts +0 -2644
  170. package/slides/node_modules/@types/node/https.d.ts +0 -579
  171. package/slides/node_modules/@types/node/index.d.ts +0 -97
  172. package/slides/node_modules/@types/node/inspector.d.ts +0 -253
  173. package/slides/node_modules/@types/node/inspector.generated.d.ts +0 -4052
  174. package/slides/node_modules/@types/node/module.d.ts +0 -891
  175. package/slides/node_modules/@types/node/net.d.ts +0 -1076
  176. package/slides/node_modules/@types/node/os.d.ts +0 -506
  177. package/slides/node_modules/@types/node/package.json +0 -145
  178. package/slides/node_modules/@types/node/path.d.ts +0 -200
  179. package/slides/node_modules/@types/node/perf_hooks.d.ts +0 -968
  180. package/slides/node_modules/@types/node/process.d.ts +0 -2084
  181. package/slides/node_modules/@types/node/punycode.d.ts +0 -117
  182. package/slides/node_modules/@types/node/querystring.d.ts +0 -152
  183. package/slides/node_modules/@types/node/readline/promises.d.ts +0 -161
  184. package/slides/node_modules/@types/node/readline.d.ts +0 -594
  185. package/slides/node_modules/@types/node/repl.d.ts +0 -428
  186. package/slides/node_modules/@types/node/sea.d.ts +0 -153
  187. package/slides/node_modules/@types/node/sqlite.d.ts +0 -721
  188. package/slides/node_modules/@types/node/stream/consumers.d.ts +0 -38
  189. package/slides/node_modules/@types/node/stream/promises.d.ts +0 -90
  190. package/slides/node_modules/@types/node/stream/web.d.ts +0 -622
  191. package/slides/node_modules/@types/node/stream.d.ts +0 -1687
  192. package/slides/node_modules/@types/node/string_decoder.d.ts +0 -67
  193. package/slides/node_modules/@types/node/test.d.ts +0 -2163
  194. package/slides/node_modules/@types/node/timers/promises.d.ts +0 -108
  195. package/slides/node_modules/@types/node/timers.d.ts +0 -287
  196. package/slides/node_modules/@types/node/tls.d.ts +0 -1319
  197. package/slides/node_modules/@types/node/trace_events.d.ts +0 -197
  198. package/slides/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  199. package/slides/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
  200. package/slides/node_modules/@types/node/ts5.6/index.d.ts +0 -97
  201. package/slides/node_modules/@types/node/tty.d.ts +0 -208
  202. package/slides/node_modules/@types/node/url.d.ts +0 -984
  203. package/slides/node_modules/@types/node/util.d.ts +0 -2606
  204. package/slides/node_modules/@types/node/v8.d.ts +0 -920
  205. package/slides/node_modules/@types/node/vm.d.ts +0 -1000
  206. package/slides/node_modules/@types/node/wasi.d.ts +0 -181
  207. package/slides/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  208. package/slides/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  209. package/slides/node_modules/@types/node/web-globals/events.d.ts +0 -97
  210. package/slides/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
  211. package/slides/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
  212. package/slides/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  213. package/slides/node_modules/@types/node/worker_threads.d.ts +0 -784
  214. package/slides/node_modules/@types/node/zlib.d.ts +0 -747
  215. package/slides/node_modules/base64-js/LICENSE +0 -21
  216. package/slides/node_modules/base64-js/README.md +0 -34
  217. package/slides/node_modules/base64-js/base64js.min.js +0 -1
  218. package/slides/node_modules/base64-js/index.d.ts +0 -3
  219. package/slides/node_modules/base64-js/index.js +0 -150
  220. package/slides/node_modules/base64-js/package.json +0 -47
  221. package/slides/node_modules/bl/.travis.yml +0 -17
  222. package/slides/node_modules/bl/BufferList.js +0 -396
  223. package/slides/node_modules/bl/LICENSE.md +0 -13
  224. package/slides/node_modules/bl/README.md +0 -247
  225. package/slides/node_modules/bl/bl.js +0 -84
  226. package/slides/node_modules/bl/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  227. package/slides/node_modules/bl/node_modules/readable-stream/GOVERNANCE.md +0 -136
  228. package/slides/node_modules/bl/node_modules/readable-stream/LICENSE +0 -47
  229. package/slides/node_modules/bl/node_modules/readable-stream/README.md +0 -106
  230. package/slides/node_modules/bl/node_modules/readable-stream/errors-browser.js +0 -127
  231. package/slides/node_modules/bl/node_modules/readable-stream/errors.js +0 -116
  232. package/slides/node_modules/bl/node_modules/readable-stream/experimentalWarning.js +0 -17
  233. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  234. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  235. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  236. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  237. package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  238. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  239. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  240. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  241. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  242. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  243. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  244. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  245. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  246. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  247. package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  248. package/slides/node_modules/bl/node_modules/readable-stream/package.json +0 -68
  249. package/slides/node_modules/bl/node_modules/readable-stream/readable-browser.js +0 -9
  250. package/slides/node_modules/bl/node_modules/readable-stream/readable.js +0 -16
  251. package/slides/node_modules/bl/package.json +0 -37
  252. package/slides/node_modules/bl/test/convert.js +0 -21
  253. package/slides/node_modules/bl/test/indexOf.js +0 -492
  254. package/slides/node_modules/bl/test/isBufferList.js +0 -32
  255. package/slides/node_modules/bl/test/test.js +0 -869
  256. package/slides/node_modules/buffer/AUTHORS.md +0 -70
  257. package/slides/node_modules/buffer/LICENSE +0 -21
  258. package/slides/node_modules/buffer/README.md +0 -410
  259. package/slides/node_modules/buffer/index.d.ts +0 -186
  260. package/slides/node_modules/buffer/index.js +0 -1817
  261. package/slides/node_modules/buffer/package.json +0 -96
  262. package/slides/node_modules/canvas/Readme.md +0 -657
  263. package/slides/node_modules/canvas/binding.gyp +0 -229
  264. package/slides/node_modules/canvas/browser.js +0 -31
  265. package/slides/node_modules/canvas/build/Makefile +0 -347
  266. package/slides/node_modules/canvas/build/Release/canvas.node +0 -0
  267. package/slides/node_modules/canvas/build/Release/libX11.6.dylib +0 -0
  268. package/slides/node_modules/canvas/build/Release/libXau.6.dylib +0 -0
  269. package/slides/node_modules/canvas/build/Release/libXdmcp.6.dylib +0 -0
  270. package/slides/node_modules/canvas/build/Release/libXext.6.dylib +0 -0
  271. package/slides/node_modules/canvas/build/Release/libXrender.1.dylib +0 -0
  272. package/slides/node_modules/canvas/build/Release/libcairo-gobject.2.dylib +0 -0
  273. package/slides/node_modules/canvas/build/Release/libcairo.2.dylib +0 -0
  274. package/slides/node_modules/canvas/build/Release/libdatrie.1.dylib +0 -0
  275. package/slides/node_modules/canvas/build/Release/libfontconfig.1.dylib +0 -0
  276. package/slides/node_modules/canvas/build/Release/libfreetype.6.dylib +0 -0
  277. package/slides/node_modules/canvas/build/Release/libfribidi.0.dylib +0 -0
  278. package/slides/node_modules/canvas/build/Release/libgdk_pixbuf-2.0.0.dylib +0 -0
  279. package/slides/node_modules/canvas/build/Release/libgif.7.2.0.dylib +0 -0
  280. package/slides/node_modules/canvas/build/Release/libgio-2.0.0.dylib +0 -0
  281. package/slides/node_modules/canvas/build/Release/libglib-2.0.0.dylib +0 -0
  282. package/slides/node_modules/canvas/build/Release/libgmodule-2.0.0.dylib +0 -0
  283. package/slides/node_modules/canvas/build/Release/libgobject-2.0.0.dylib +0 -0
  284. package/slides/node_modules/canvas/build/Release/libgraphite2.3.2.1.dylib +0 -0
  285. package/slides/node_modules/canvas/build/Release/libharfbuzz.0.dylib +0 -0
  286. package/slides/node_modules/canvas/build/Release/libintl.8.dylib +0 -0
  287. package/slides/node_modules/canvas/build/Release/libjpeg.8.3.2.dylib +0 -0
  288. package/slides/node_modules/canvas/build/Release/libpango-1.0.0.dylib +0 -0
  289. package/slides/node_modules/canvas/build/Release/libpangocairo-1.0.0.dylib +0 -0
  290. package/slides/node_modules/canvas/build/Release/libpangoft2-1.0.0.dylib +0 -0
  291. package/slides/node_modules/canvas/build/Release/libpcre2-8.0.dylib +0 -0
  292. package/slides/node_modules/canvas/build/Release/libpixman-1.0.dylib +0 -0
  293. package/slides/node_modules/canvas/build/Release/libpng16.16.dylib +0 -0
  294. package/slides/node_modules/canvas/build/Release/librsvg-2.2.dylib +0 -0
  295. package/slides/node_modules/canvas/build/Release/libthai.0.dylib +0 -0
  296. package/slides/node_modules/canvas/build/Release/libxcb-render.0.0.0.dylib +0 -0
  297. package/slides/node_modules/canvas/build/Release/libxcb-shm.0.0.0.dylib +0 -0
  298. package/slides/node_modules/canvas/build/Release/libxcb.1.1.0.dylib +0 -0
  299. package/slides/node_modules/canvas/build/binding.Makefile +0 -6
  300. package/slides/node_modules/canvas/build/canvas.target.mk +0 -299
  301. package/slides/node_modules/canvas/build/gyp-mac-tool +0 -766
  302. package/slides/node_modules/canvas/index.d.ts +0 -507
  303. package/slides/node_modules/canvas/index.js +0 -94
  304. package/slides/node_modules/canvas/lib/DOMMatrix.js +0 -678
  305. package/slides/node_modules/canvas/lib/bindings.js +0 -43
  306. package/slides/node_modules/canvas/lib/canvas.js +0 -113
  307. package/slides/node_modules/canvas/lib/context2d.js +0 -11
  308. package/slides/node_modules/canvas/lib/image.js +0 -97
  309. package/slides/node_modules/canvas/lib/jpegstream.js +0 -41
  310. package/slides/node_modules/canvas/lib/pattern.js +0 -15
  311. package/slides/node_modules/canvas/lib/pdfstream.js +0 -35
  312. package/slides/node_modules/canvas/lib/pngstream.js +0 -42
  313. package/slides/node_modules/canvas/package.json +0 -71
  314. package/slides/node_modules/canvas/src/Backends.h +0 -9
  315. package/slides/node_modules/canvas/src/Canvas.cc +0 -1026
  316. package/slides/node_modules/canvas/src/Canvas.h +0 -128
  317. package/slides/node_modules/canvas/src/CanvasError.h +0 -37
  318. package/slides/node_modules/canvas/src/CanvasGradient.cc +0 -113
  319. package/slides/node_modules/canvas/src/CanvasGradient.h +0 -20
  320. package/slides/node_modules/canvas/src/CanvasPattern.cc +0 -129
  321. package/slides/node_modules/canvas/src/CanvasPattern.h +0 -33
  322. package/slides/node_modules/canvas/src/CanvasRenderingContext2d.cc +0 -3527
  323. package/slides/node_modules/canvas/src/CanvasRenderingContext2d.h +0 -238
  324. package/slides/node_modules/canvas/src/CharData.h +0 -233
  325. package/slides/node_modules/canvas/src/FontParser.cc +0 -605
  326. package/slides/node_modules/canvas/src/FontParser.h +0 -115
  327. package/slides/node_modules/canvas/src/Image.cc +0 -1719
  328. package/slides/node_modules/canvas/src/Image.h +0 -146
  329. package/slides/node_modules/canvas/src/ImageData.cc +0 -138
  330. package/slides/node_modules/canvas/src/ImageData.h +0 -26
  331. package/slides/node_modules/canvas/src/InstanceData.h +0 -12
  332. package/slides/node_modules/canvas/src/JPEGStream.h +0 -157
  333. package/slides/node_modules/canvas/src/PNG.h +0 -292
  334. package/slides/node_modules/canvas/src/Point.h +0 -11
  335. package/slides/node_modules/canvas/src/Util.h +0 -9
  336. package/slides/node_modules/canvas/src/bmp/BMPParser.cc +0 -459
  337. package/slides/node_modules/canvas/src/bmp/BMPParser.h +0 -60
  338. package/slides/node_modules/canvas/src/bmp/LICENSE.md +0 -24
  339. package/slides/node_modules/canvas/src/closure.cc +0 -52
  340. package/slides/node_modules/canvas/src/closure.h +0 -98
  341. package/slides/node_modules/canvas/src/color.cc +0 -796
  342. package/slides/node_modules/canvas/src/color.h +0 -30
  343. package/slides/node_modules/canvas/src/dll_visibility.h +0 -20
  344. package/slides/node_modules/canvas/src/init.cc +0 -114
  345. package/slides/node_modules/canvas/src/register_font.cc +0 -352
  346. package/slides/node_modules/canvas/src/register_font.h +0 -7
  347. package/slides/node_modules/canvas/util/has_lib.js +0 -119
  348. package/slides/node_modules/canvas/util/win_jpeg_lookup.js +0 -21
  349. package/slides/node_modules/chownr/LICENSE +0 -15
  350. package/slides/node_modules/chownr/README.md +0 -3
  351. package/slides/node_modules/chownr/chownr.js +0 -167
  352. package/slides/node_modules/chownr/package.json +0 -29
  353. package/slides/node_modules/core-util-is/LICENSE +0 -19
  354. package/slides/node_modules/core-util-is/README.md +0 -3
  355. package/slides/node_modules/core-util-is/lib/util.js +0 -107
  356. package/slides/node_modules/core-util-is/package.json +0 -38
  357. package/slides/node_modules/decompress-response/index.d.ts +0 -22
  358. package/slides/node_modules/decompress-response/index.js +0 -58
  359. package/slides/node_modules/decompress-response/license +0 -9
  360. package/slides/node_modules/decompress-response/package.json +0 -56
  361. package/slides/node_modules/decompress-response/readme.md +0 -48
  362. package/slides/node_modules/deep-extend/CHANGELOG.md +0 -46
  363. package/slides/node_modules/deep-extend/LICENSE +0 -20
  364. package/slides/node_modules/deep-extend/README.md +0 -91
  365. package/slides/node_modules/deep-extend/index.js +0 -1
  366. package/slides/node_modules/deep-extend/lib/deep-extend.js +0 -150
  367. package/slides/node_modules/deep-extend/package.json +0 -62
  368. package/slides/node_modules/detect-libc/LICENSE +0 -201
  369. package/slides/node_modules/detect-libc/README.md +0 -163
  370. package/slides/node_modules/detect-libc/index.d.ts +0 -14
  371. package/slides/node_modules/detect-libc/lib/detect-libc.js +0 -313
  372. package/slides/node_modules/detect-libc/lib/elf.js +0 -39
  373. package/slides/node_modules/detect-libc/lib/filesystem.js +0 -51
  374. package/slides/node_modules/detect-libc/lib/process.js +0 -24
  375. package/slides/node_modules/detect-libc/package.json +0 -44
  376. package/slides/node_modules/end-of-stream/LICENSE +0 -21
  377. package/slides/node_modules/end-of-stream/README.md +0 -54
  378. package/slides/node_modules/end-of-stream/index.js +0 -96
  379. package/slides/node_modules/end-of-stream/package.json +0 -37
  380. package/slides/node_modules/expand-template/.travis.yml +0 -6
  381. package/slides/node_modules/expand-template/LICENSE +0 -21
  382. package/slides/node_modules/expand-template/README.md +0 -43
  383. package/slides/node_modules/expand-template/index.js +0 -26
  384. package/slides/node_modules/expand-template/package.json +0 -29
  385. package/slides/node_modules/expand-template/test.js +0 -67
  386. package/slides/node_modules/fs-constants/LICENSE +0 -21
  387. package/slides/node_modules/fs-constants/README.md +0 -26
  388. package/slides/node_modules/fs-constants/browser.js +0 -1
  389. package/slides/node_modules/fs-constants/index.js +0 -1
  390. package/slides/node_modules/fs-constants/package.json +0 -19
  391. package/slides/node_modules/github-from-package/.travis.yml +0 -4
  392. package/slides/node_modules/github-from-package/LICENSE +0 -18
  393. package/slides/node_modules/github-from-package/example/package.json +0 -8
  394. package/slides/node_modules/github-from-package/example/url.js +0 -3
  395. package/slides/node_modules/github-from-package/index.js +0 -17
  396. package/slides/node_modules/github-from-package/package.json +0 -30
  397. package/slides/node_modules/github-from-package/readme.markdown +0 -53
  398. package/slides/node_modules/github-from-package/test/a.json +0 -8
  399. package/slides/node_modules/github-from-package/test/b.json +0 -5
  400. package/slides/node_modules/github-from-package/test/c.json +0 -5
  401. package/slides/node_modules/github-from-package/test/d.json +0 -7
  402. package/slides/node_modules/github-from-package/test/e.json +0 -5
  403. package/slides/node_modules/github-from-package/test/url.js +0 -19
  404. package/slides/node_modules/https/package.json +0 -15
  405. package/slides/node_modules/ieee754/LICENSE +0 -11
  406. package/slides/node_modules/ieee754/README.md +0 -51
  407. package/slides/node_modules/ieee754/index.d.ts +0 -10
  408. package/slides/node_modules/ieee754/index.js +0 -85
  409. package/slides/node_modules/ieee754/package.json +0 -52
  410. package/slides/node_modules/image-size/LICENSE +0 -9
  411. package/slides/node_modules/image-size/Readme.md +0 -184
  412. package/slides/node_modules/image-size/bin/image-size.js +0 -53
  413. package/slides/node_modules/image-size/dist/detector.d.ts +0 -2
  414. package/slides/node_modules/image-size/dist/detector.js +0 -30
  415. package/slides/node_modules/image-size/dist/index.d.ts +0 -10
  416. package/slides/node_modules/image-size/dist/index.js +0 -129
  417. package/slides/node_modules/image-size/dist/types/bmp.d.ts +0 -2
  418. package/slides/node_modules/image-size/dist/types/bmp.js +0 -11
  419. package/slides/node_modules/image-size/dist/types/cur.d.ts +0 -2
  420. package/slides/node_modules/image-size/dist/types/cur.js +0 -17
  421. package/slides/node_modules/image-size/dist/types/dds.d.ts +0 -2
  422. package/slides/node_modules/image-size/dist/types/dds.js +0 -11
  423. package/slides/node_modules/image-size/dist/types/gif.d.ts +0 -2
  424. package/slides/node_modules/image-size/dist/types/gif.js +0 -12
  425. package/slides/node_modules/image-size/dist/types/heif.d.ts +0 -2
  426. package/slides/node_modules/image-size/dist/types/heif.js +0 -40
  427. package/slides/node_modules/image-size/dist/types/icns.d.ts +0 -2
  428. package/slides/node_modules/image-size/dist/types/icns.js +0 -101
  429. package/slides/node_modules/image-size/dist/types/ico.d.ts +0 -2
  430. package/slides/node_modules/image-size/dist/types/ico.js +0 -68
  431. package/slides/node_modules/image-size/dist/types/index.d.ts +0 -23
  432. package/slides/node_modules/image-size/dist/types/index.js +0 -46
  433. package/slides/node_modules/image-size/dist/types/interface.d.ts +0 -13
  434. package/slides/node_modules/image-size/dist/types/interface.js +0 -2
  435. package/slides/node_modules/image-size/dist/types/j2c.d.ts +0 -2
  436. package/slides/node_modules/image-size/dist/types/j2c.js +0 -12
  437. package/slides/node_modules/image-size/dist/types/jp2.d.ts +0 -2
  438. package/slides/node_modules/image-size/dist/types/jp2.js +0 -27
  439. package/slides/node_modules/image-size/dist/types/jpg.d.ts +0 -2
  440. package/slides/node_modules/image-size/dist/types/jpg.js +0 -123
  441. package/slides/node_modules/image-size/dist/types/jxl-stream.d.ts +0 -2
  442. package/slides/node_modules/image-size/dist/types/jxl-stream.js +0 -45
  443. package/slides/node_modules/image-size/dist/types/jxl.d.ts +0 -2
  444. package/slides/node_modules/image-size/dist/types/jxl.js +0 -59
  445. package/slides/node_modules/image-size/dist/types/ktx.d.ts +0 -2
  446. package/slides/node_modules/image-size/dist/types/ktx.js +0 -19
  447. package/slides/node_modules/image-size/dist/types/png.d.ts +0 -2
  448. package/slides/node_modules/image-size/dist/types/png.js +0 -35
  449. package/slides/node_modules/image-size/dist/types/pnm.d.ts +0 -2
  450. package/slides/node_modules/image-size/dist/types/pnm.js +0 -72
  451. package/slides/node_modules/image-size/dist/types/psd.d.ts +0 -2
  452. package/slides/node_modules/image-size/dist/types/psd.js +0 -11
  453. package/slides/node_modules/image-size/dist/types/svg.d.ts +0 -2
  454. package/slides/node_modules/image-size/dist/types/svg.js +0 -90
  455. package/slides/node_modules/image-size/dist/types/tga.d.ts +0 -2
  456. package/slides/node_modules/image-size/dist/types/tga.js +0 -15
  457. package/slides/node_modules/image-size/dist/types/tiff.d.ts +0 -2
  458. package/slides/node_modules/image-size/dist/types/tiff.js +0 -95
  459. package/slides/node_modules/image-size/dist/types/utils.d.ts +0 -15
  460. package/slides/node_modules/image-size/dist/types/utils.js +0 -75
  461. package/slides/node_modules/image-size/dist/types/webp.d.ts +0 -2
  462. package/slides/node_modules/image-size/dist/types/webp.js +0 -60
  463. package/slides/node_modules/image-size/dist/utils/bit-reader.d.ts +0 -10
  464. package/slides/node_modules/image-size/dist/utils/bit-reader.js +0 -44
  465. package/slides/node_modules/image-size/package.json +0 -81
  466. package/slides/node_modules/immediate/LICENSE.txt +0 -20
  467. package/slides/node_modules/immediate/README.md +0 -93
  468. package/slides/node_modules/immediate/dist/immediate.js +0 -75
  469. package/slides/node_modules/immediate/dist/immediate.min.js +0 -1
  470. package/slides/node_modules/immediate/lib/browser.js +0 -69
  471. package/slides/node_modules/immediate/lib/index.js +0 -73
  472. package/slides/node_modules/immediate/package.json +0 -42
  473. package/slides/node_modules/inherits/LICENSE +0 -16
  474. package/slides/node_modules/inherits/README.md +0 -42
  475. package/slides/node_modules/inherits/inherits.js +0 -9
  476. package/slides/node_modules/inherits/inherits_browser.js +0 -27
  477. package/slides/node_modules/inherits/package.json +0 -29
  478. package/slides/node_modules/ini/LICENSE +0 -15
  479. package/slides/node_modules/ini/README.md +0 -102
  480. package/slides/node_modules/ini/ini.js +0 -206
  481. package/slides/node_modules/ini/package.json +0 -33
  482. package/slides/node_modules/isarray/.travis.yml +0 -4
  483. package/slides/node_modules/isarray/Makefile +0 -6
  484. package/slides/node_modules/isarray/README.md +0 -60
  485. package/slides/node_modules/isarray/component.json +0 -19
  486. package/slides/node_modules/isarray/index.js +0 -5
  487. package/slides/node_modules/isarray/package.json +0 -45
  488. package/slides/node_modules/isarray/test.js +0 -20
  489. package/slides/node_modules/jszip/.codeclimate.yml +0 -16
  490. package/slides/node_modules/jszip/.editorconfig +0 -8
  491. package/slides/node_modules/jszip/.eslintrc.js +0 -43
  492. package/slides/node_modules/jszip/.github/workflows/pr.yaml +0 -58
  493. package/slides/node_modules/jszip/.jekyll-metadata +0 -0
  494. package/slides/node_modules/jszip/.travis.yml +0 -17
  495. package/slides/node_modules/jszip/CHANGES.md +0 -204
  496. package/slides/node_modules/jszip/LICENSE.markdown +0 -651
  497. package/slides/node_modules/jszip/README.markdown +0 -33
  498. package/slides/node_modules/jszip/deps.js +0 -37
  499. package/slides/node_modules/jszip/dist/jszip.js +0 -11577
  500. package/slides/node_modules/jszip/dist/jszip.min.js +0 -13
  501. package/slides/node_modules/jszip/graph.svg +0 -601
  502. package/slides/node_modules/jszip/index.d.ts +0 -330
  503. package/slides/node_modules/jszip/lib/base64.js +0 -106
  504. package/slides/node_modules/jszip/lib/compressedObject.js +0 -74
  505. package/slides/node_modules/jszip/lib/compressions.js +0 -14
  506. package/slides/node_modules/jszip/lib/crc32.js +0 -77
  507. package/slides/node_modules/jszip/lib/defaults.js +0 -11
  508. package/slides/node_modules/jszip/lib/external.js +0 -18
  509. package/slides/node_modules/jszip/lib/flate.js +0 -85
  510. package/slides/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
  511. package/slides/node_modules/jszip/lib/generate/index.js +0 -57
  512. package/slides/node_modules/jszip/lib/index.js +0 -55
  513. package/slides/node_modules/jszip/lib/license_header.js +0 -11
  514. package/slides/node_modules/jszip/lib/load.js +0 -88
  515. package/slides/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  516. package/slides/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  517. package/slides/node_modules/jszip/lib/nodejsUtils.js +0 -57
  518. package/slides/node_modules/jszip/lib/object.js +0 -384
  519. package/slides/node_modules/jszip/lib/readable-stream-browser.js +0 -10
  520. package/slides/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  521. package/slides/node_modules/jszip/lib/reader/DataReader.js +0 -116
  522. package/slides/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  523. package/slides/node_modules/jszip/lib/reader/StringReader.js +0 -38
  524. package/slides/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  525. package/slides/node_modules/jszip/lib/reader/readerFor.js +0 -28
  526. package/slides/node_modules/jszip/lib/signature.js +0 -7
  527. package/slides/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  528. package/slides/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  529. package/slides/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  530. package/slides/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  531. package/slides/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  532. package/slides/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
  533. package/slides/node_modules/jszip/lib/support.js +0 -38
  534. package/slides/node_modules/jszip/lib/utf8.js +0 -275
  535. package/slides/node_modules/jszip/lib/utils.js +0 -501
  536. package/slides/node_modules/jszip/lib/zipEntries.js +0 -261
  537. package/slides/node_modules/jszip/lib/zipEntry.js +0 -293
  538. package/slides/node_modules/jszip/lib/zipObject.js +0 -133
  539. package/slides/node_modules/jszip/package.json +0 -67
  540. package/slides/node_modules/jszip/sponsors.md +0 -21
  541. package/slides/node_modules/jszip/tsconfig.json +0 -101
  542. package/slides/node_modules/jszip/vendor/FileSaver.js +0 -247
  543. package/slides/node_modules/lie/README.md +0 -62
  544. package/slides/node_modules/lie/dist/lie.js +0 -350
  545. package/slides/node_modules/lie/dist/lie.min.js +0 -1
  546. package/slides/node_modules/lie/dist/lie.polyfill.js +0 -358
  547. package/slides/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  548. package/slides/node_modules/lie/lib/browser.js +0 -273
  549. package/slides/node_modules/lie/lib/index.js +0 -298
  550. package/slides/node_modules/lie/license.md +0 -7
  551. package/slides/node_modules/lie/lie.d.ts +0 -244
  552. package/slides/node_modules/lie/package.json +0 -69
  553. package/slides/node_modules/lie/polyfill.js +0 -4
  554. package/slides/node_modules/mimic-response/index.d.ts +0 -17
  555. package/slides/node_modules/mimic-response/index.js +0 -77
  556. package/slides/node_modules/mimic-response/license +0 -9
  557. package/slides/node_modules/mimic-response/package.json +0 -42
  558. package/slides/node_modules/mimic-response/readme.md +0 -78
  559. package/slides/node_modules/minimist/.eslintrc +0 -29
  560. package/slides/node_modules/minimist/.github/FUNDING.yml +0 -12
  561. package/slides/node_modules/minimist/.nycrc +0 -14
  562. package/slides/node_modules/minimist/CHANGELOG.md +0 -298
  563. package/slides/node_modules/minimist/LICENSE +0 -18
  564. package/slides/node_modules/minimist/README.md +0 -121
  565. package/slides/node_modules/minimist/example/parse.js +0 -4
  566. package/slides/node_modules/minimist/index.js +0 -263
  567. package/slides/node_modules/minimist/package.json +0 -75
  568. package/slides/node_modules/minimist/test/all_bool.js +0 -34
  569. package/slides/node_modules/minimist/test/bool.js +0 -177
  570. package/slides/node_modules/minimist/test/dash.js +0 -43
  571. package/slides/node_modules/minimist/test/default_bool.js +0 -37
  572. package/slides/node_modules/minimist/test/dotted.js +0 -24
  573. package/slides/node_modules/minimist/test/kv_short.js +0 -32
  574. package/slides/node_modules/minimist/test/long.js +0 -33
  575. package/slides/node_modules/minimist/test/num.js +0 -38
  576. package/slides/node_modules/minimist/test/parse.js +0 -209
  577. package/slides/node_modules/minimist/test/parse_modified.js +0 -11
  578. package/slides/node_modules/minimist/test/proto.js +0 -64
  579. package/slides/node_modules/minimist/test/short.js +0 -69
  580. package/slides/node_modules/minimist/test/stop_early.js +0 -17
  581. package/slides/node_modules/minimist/test/unknown.js +0 -104
  582. package/slides/node_modules/minimist/test/whitespace.js +0 -10
  583. package/slides/node_modules/mkdirp-classic/LICENSE +0 -21
  584. package/slides/node_modules/mkdirp-classic/README.md +0 -18
  585. package/slides/node_modules/mkdirp-classic/index.js +0 -98
  586. package/slides/node_modules/mkdirp-classic/package.json +0 -18
  587. package/slides/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  588. package/slides/node_modules/napi-build-utils/LICENSE +0 -21
  589. package/slides/node_modules/napi-build-utils/README.md +0 -52
  590. package/slides/node_modules/napi-build-utils/index.js +0 -214
  591. package/slides/node_modules/napi-build-utils/index.md +0 -0
  592. package/slides/node_modules/napi-build-utils/package.json +0 -42
  593. package/slides/node_modules/node-abi/LICENSE +0 -21
  594. package/slides/node_modules/node-abi/README.md +0 -54
  595. package/slides/node_modules/node-abi/abi_registry.json +0 -439
  596. package/slides/node_modules/node-abi/index.js +0 -179
  597. package/slides/node_modules/node-abi/package.json +0 -45
  598. package/slides/node_modules/node-addon-api/LICENSE.md +0 -9
  599. package/slides/node_modules/node-addon-api/README.md +0 -319
  600. package/slides/node_modules/node-addon-api/common.gypi +0 -20
  601. package/slides/node_modules/node-addon-api/except.gypi +0 -25
  602. package/slides/node_modules/node-addon-api/index.js +0 -12
  603. package/slides/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
  604. package/slides/node_modules/node-addon-api/napi-inl.h +0 -6607
  605. package/slides/node_modules/node-addon-api/napi.h +0 -3201
  606. package/slides/node_modules/node-addon-api/node_addon_api.gyp +0 -32
  607. package/slides/node_modules/node-addon-api/node_api.gyp +0 -9
  608. package/slides/node_modules/node-addon-api/noexcept.gypi +0 -26
  609. package/slides/node_modules/node-addon-api/nothing.c +0 -0
  610. package/slides/node_modules/node-addon-api/package-support.json +0 -21
  611. package/slides/node_modules/node-addon-api/package.json +0 -480
  612. package/slides/node_modules/node-addon-api/tools/README.md +0 -73
  613. package/slides/node_modules/node-addon-api/tools/check-napi.js +0 -99
  614. package/slides/node_modules/node-addon-api/tools/clang-format.js +0 -71
  615. package/slides/node_modules/node-addon-api/tools/conversion.js +0 -301
  616. package/slides/node_modules/node-addon-api/tools/eslint-format.js +0 -79
  617. package/slides/node_modules/once/LICENSE +0 -15
  618. package/slides/node_modules/once/README.md +0 -79
  619. package/slides/node_modules/once/once.js +0 -42
  620. package/slides/node_modules/once/package.json +0 -33
  621. package/slides/node_modules/pako/CHANGELOG.md +0 -164
  622. package/slides/node_modules/pako/LICENSE +0 -21
  623. package/slides/node_modules/pako/README.md +0 -191
  624. package/slides/node_modules/pako/dist/pako.js +0 -6818
  625. package/slides/node_modules/pako/dist/pako.min.js +0 -1
  626. package/slides/node_modules/pako/dist/pako_deflate.js +0 -3997
  627. package/slides/node_modules/pako/dist/pako_deflate.min.js +0 -1
  628. package/slides/node_modules/pako/dist/pako_inflate.js +0 -3300
  629. package/slides/node_modules/pako/dist/pako_inflate.min.js +0 -1
  630. package/slides/node_modules/pako/index.js +0 -14
  631. package/slides/node_modules/pako/lib/deflate.js +0 -400
  632. package/slides/node_modules/pako/lib/inflate.js +0 -423
  633. package/slides/node_modules/pako/lib/utils/common.js +0 -105
  634. package/slides/node_modules/pako/lib/utils/strings.js +0 -187
  635. package/slides/node_modules/pako/lib/zlib/README +0 -59
  636. package/slides/node_modules/pako/lib/zlib/adler32.js +0 -51
  637. package/slides/node_modules/pako/lib/zlib/constants.js +0 -68
  638. package/slides/node_modules/pako/lib/zlib/crc32.js +0 -59
  639. package/slides/node_modules/pako/lib/zlib/deflate.js +0 -1874
  640. package/slides/node_modules/pako/lib/zlib/gzheader.js +0 -58
  641. package/slides/node_modules/pako/lib/zlib/inffast.js +0 -345
  642. package/slides/node_modules/pako/lib/zlib/inflate.js +0 -1556
  643. package/slides/node_modules/pako/lib/zlib/inftrees.js +0 -343
  644. package/slides/node_modules/pako/lib/zlib/messages.js +0 -32
  645. package/slides/node_modules/pako/lib/zlib/trees.js +0 -1222
  646. package/slides/node_modules/pako/lib/zlib/zstream.js +0 -47
  647. package/slides/node_modules/pako/package.json +0 -44
  648. package/slides/node_modules/pptxgenjs/LICENSE +0 -21
  649. package/slides/node_modules/pptxgenjs/README.md +0 -224
  650. package/slides/node_modules/pptxgenjs/dist/pptxgen.bundle.js +0 -96
  651. package/slides/node_modules/pptxgenjs/dist/pptxgen.bundle.js.map +0 -1
  652. package/slides/node_modules/pptxgenjs/dist/pptxgen.cjs.js +0 -7370
  653. package/slides/node_modules/pptxgenjs/dist/pptxgen.es.js +0 -7368
  654. package/slides/node_modules/pptxgenjs/dist/pptxgen.min.js +0 -96
  655. package/slides/node_modules/pptxgenjs/dist/pptxgen.min.js.map +0 -1
  656. package/slides/node_modules/pptxgenjs/package.json +0 -96
  657. package/slides/node_modules/pptxgenjs/types/index.d.ts +0 -2679
  658. package/slides/node_modules/prebuild-install/CHANGELOG.md +0 -131
  659. package/slides/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  660. package/slides/node_modules/prebuild-install/LICENSE +0 -21
  661. package/slides/node_modules/prebuild-install/README.md +0 -163
  662. package/slides/node_modules/prebuild-install/asset.js +0 -44
  663. package/slides/node_modules/prebuild-install/bin.js +0 -78
  664. package/slides/node_modules/prebuild-install/download.js +0 -142
  665. package/slides/node_modules/prebuild-install/error.js +0 -14
  666. package/slides/node_modules/prebuild-install/help.txt +0 -16
  667. package/slides/node_modules/prebuild-install/index.js +0 -1
  668. package/slides/node_modules/prebuild-install/log.js +0 -33
  669. package/slides/node_modules/prebuild-install/package.json +0 -67
  670. package/slides/node_modules/prebuild-install/proxy.js +0 -35
  671. package/slides/node_modules/prebuild-install/rc.js +0 -64
  672. package/slides/node_modules/prebuild-install/util.js +0 -143
  673. package/slides/node_modules/process-nextick-args/index.js +0 -45
  674. package/slides/node_modules/process-nextick-args/license.md +0 -19
  675. package/slides/node_modules/process-nextick-args/package.json +0 -25
  676. package/slides/node_modules/process-nextick-args/readme.md +0 -18
  677. package/slides/node_modules/pump/.github/FUNDING.yml +0 -2
  678. package/slides/node_modules/pump/.travis.yml +0 -5
  679. package/slides/node_modules/pump/LICENSE +0 -21
  680. package/slides/node_modules/pump/README.md +0 -74
  681. package/slides/node_modules/pump/SECURITY.md +0 -5
  682. package/slides/node_modules/pump/empty.js +0 -1
  683. package/slides/node_modules/pump/index.js +0 -86
  684. package/slides/node_modules/pump/package.json +0 -30
  685. package/slides/node_modules/pump/test-browser.js +0 -66
  686. package/slides/node_modules/pump/test-node.js +0 -53
  687. package/slides/node_modules/queue/LICENSE +0 -8
  688. package/slides/node_modules/queue/index.d.ts +0 -173
  689. package/slides/node_modules/queue/index.js +0 -195
  690. package/slides/node_modules/queue/package.json +0 -43
  691. package/slides/node_modules/queue/readme.md +0 -221
  692. package/slides/node_modules/rc/LICENSE.APACHE2 +0 -15
  693. package/slides/node_modules/rc/LICENSE.BSD +0 -26
  694. package/slides/node_modules/rc/LICENSE.MIT +0 -24
  695. package/slides/node_modules/rc/README.md +0 -227
  696. package/slides/node_modules/rc/browser.js +0 -7
  697. package/slides/node_modules/rc/cli.js +0 -4
  698. package/slides/node_modules/rc/index.js +0 -53
  699. package/slides/node_modules/rc/lib/utils.js +0 -104
  700. package/slides/node_modules/rc/package.json +0 -29
  701. package/slides/node_modules/rc/test/ini.js +0 -16
  702. package/slides/node_modules/rc/test/nested-env-vars.js +0 -50
  703. package/slides/node_modules/rc/test/test.js +0 -59
  704. package/slides/node_modules/readable-stream/.travis.yml +0 -34
  705. package/slides/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  706. package/slides/node_modules/readable-stream/GOVERNANCE.md +0 -136
  707. package/slides/node_modules/readable-stream/LICENSE +0 -47
  708. package/slides/node_modules/readable-stream/README.md +0 -58
  709. package/slides/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  710. package/slides/node_modules/readable-stream/duplex-browser.js +0 -1
  711. package/slides/node_modules/readable-stream/duplex.js +0 -1
  712. package/slides/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  713. package/slides/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  714. package/slides/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  715. package/slides/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  716. package/slides/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  717. package/slides/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  718. package/slides/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  719. package/slides/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  720. package/slides/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  721. package/slides/node_modules/readable-stream/package.json +0 -52
  722. package/slides/node_modules/readable-stream/passthrough.js +0 -1
  723. package/slides/node_modules/readable-stream/readable-browser.js +0 -7
  724. package/slides/node_modules/readable-stream/readable.js +0 -19
  725. package/slides/node_modules/readable-stream/transform.js +0 -1
  726. package/slides/node_modules/readable-stream/writable-browser.js +0 -1
  727. package/slides/node_modules/readable-stream/writable.js +0 -8
  728. package/slides/node_modules/safe-buffer/LICENSE +0 -21
  729. package/slides/node_modules/safe-buffer/README.md +0 -584
  730. package/slides/node_modules/safe-buffer/index.d.ts +0 -187
  731. package/slides/node_modules/safe-buffer/index.js +0 -62
  732. package/slides/node_modules/safe-buffer/package.json +0 -37
  733. package/slides/node_modules/semver/LICENSE +0 -15
  734. package/slides/node_modules/semver/README.md +0 -665
  735. package/slides/node_modules/semver/bin/semver.js +0 -191
  736. package/slides/node_modules/semver/classes/comparator.js +0 -143
  737. package/slides/node_modules/semver/classes/index.js +0 -7
  738. package/slides/node_modules/semver/classes/range.js +0 -557
  739. package/slides/node_modules/semver/classes/semver.js +0 -333
  740. package/slides/node_modules/semver/functions/clean.js +0 -8
  741. package/slides/node_modules/semver/functions/cmp.js +0 -54
  742. package/slides/node_modules/semver/functions/coerce.js +0 -62
  743. package/slides/node_modules/semver/functions/compare-build.js +0 -9
  744. package/slides/node_modules/semver/functions/compare-loose.js +0 -5
  745. package/slides/node_modules/semver/functions/compare.js +0 -7
  746. package/slides/node_modules/semver/functions/diff.js +0 -60
  747. package/slides/node_modules/semver/functions/eq.js +0 -5
  748. package/slides/node_modules/semver/functions/gt.js +0 -5
  749. package/slides/node_modules/semver/functions/gte.js +0 -5
  750. package/slides/node_modules/semver/functions/inc.js +0 -21
  751. package/slides/node_modules/semver/functions/lt.js +0 -5
  752. package/slides/node_modules/semver/functions/lte.js +0 -5
  753. package/slides/node_modules/semver/functions/major.js +0 -5
  754. package/slides/node_modules/semver/functions/minor.js +0 -5
  755. package/slides/node_modules/semver/functions/neq.js +0 -5
  756. package/slides/node_modules/semver/functions/parse.js +0 -18
  757. package/slides/node_modules/semver/functions/patch.js +0 -5
  758. package/slides/node_modules/semver/functions/prerelease.js +0 -8
  759. package/slides/node_modules/semver/functions/rcompare.js +0 -5
  760. package/slides/node_modules/semver/functions/rsort.js +0 -5
  761. package/slides/node_modules/semver/functions/satisfies.js +0 -12
  762. package/slides/node_modules/semver/functions/sort.js +0 -5
  763. package/slides/node_modules/semver/functions/valid.js +0 -8
  764. package/slides/node_modules/semver/index.js +0 -91
  765. package/slides/node_modules/semver/internal/constants.js +0 -37
  766. package/slides/node_modules/semver/internal/debug.js +0 -11
  767. package/slides/node_modules/semver/internal/identifiers.js +0 -29
  768. package/slides/node_modules/semver/internal/lrucache.js +0 -42
  769. package/slides/node_modules/semver/internal/parse-options.js +0 -17
  770. package/slides/node_modules/semver/internal/re.js +0 -223
  771. package/slides/node_modules/semver/package.json +0 -78
  772. package/slides/node_modules/semver/preload.js +0 -4
  773. package/slides/node_modules/semver/range.bnf +0 -16
  774. package/slides/node_modules/semver/ranges/gtr.js +0 -6
  775. package/slides/node_modules/semver/ranges/intersects.js +0 -9
  776. package/slides/node_modules/semver/ranges/ltr.js +0 -6
  777. package/slides/node_modules/semver/ranges/max-satisfying.js +0 -27
  778. package/slides/node_modules/semver/ranges/min-satisfying.js +0 -26
  779. package/slides/node_modules/semver/ranges/min-version.js +0 -63
  780. package/slides/node_modules/semver/ranges/outside.js +0 -82
  781. package/slides/node_modules/semver/ranges/simplify.js +0 -49
  782. package/slides/node_modules/semver/ranges/subset.js +0 -249
  783. package/slides/node_modules/semver/ranges/to-comparators.js +0 -10
  784. package/slides/node_modules/semver/ranges/valid.js +0 -13
  785. package/slides/node_modules/setimmediate/LICENSE.txt +0 -20
  786. package/slides/node_modules/setimmediate/package.json +0 -30
  787. package/slides/node_modules/setimmediate/setImmediate.js +0 -186
  788. package/slides/node_modules/simple-concat/.travis.yml +0 -3
  789. package/slides/node_modules/simple-concat/LICENSE +0 -20
  790. package/slides/node_modules/simple-concat/README.md +0 -44
  791. package/slides/node_modules/simple-concat/index.js +0 -15
  792. package/slides/node_modules/simple-concat/package.json +0 -47
  793. package/slides/node_modules/simple-concat/test/basic.js +0 -41
  794. package/slides/node_modules/simple-get/.github/dependabot.yml +0 -15
  795. package/slides/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  796. package/slides/node_modules/simple-get/LICENSE +0 -20
  797. package/slides/node_modules/simple-get/README.md +0 -333
  798. package/slides/node_modules/simple-get/index.js +0 -108
  799. package/slides/node_modules/simple-get/package.json +0 -67
  800. package/slides/node_modules/string_decoder/.travis.yml +0 -50
  801. package/slides/node_modules/string_decoder/LICENSE +0 -48
  802. package/slides/node_modules/string_decoder/README.md +0 -47
  803. package/slides/node_modules/string_decoder/lib/string_decoder.js +0 -296
  804. package/slides/node_modules/string_decoder/package.json +0 -31
  805. package/slides/node_modules/strip-json-comments/index.js +0 -70
  806. package/slides/node_modules/strip-json-comments/license +0 -21
  807. package/slides/node_modules/strip-json-comments/package.json +0 -42
  808. package/slides/node_modules/strip-json-comments/readme.md +0 -64
  809. package/slides/node_modules/tar-fs/.travis.yml +0 -6
  810. package/slides/node_modules/tar-fs/LICENSE +0 -21
  811. package/slides/node_modules/tar-fs/README.md +0 -165
  812. package/slides/node_modules/tar-fs/index.js +0 -363
  813. package/slides/node_modules/tar-fs/package.json +0 -41
  814. package/slides/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  815. package/slides/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  816. package/slides/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  817. package/slides/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  818. package/slides/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  819. package/slides/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  820. package/slides/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  821. package/slides/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  822. package/slides/node_modules/tar-fs/test/fixtures/e/file +0 -0
  823. package/slides/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  824. package/slides/node_modules/tar-fs/test/index.js +0 -346
  825. package/slides/node_modules/tar-stream/LICENSE +0 -21
  826. package/slides/node_modules/tar-stream/README.md +0 -168
  827. package/slides/node_modules/tar-stream/extract.js +0 -257
  828. package/slides/node_modules/tar-stream/headers.js +0 -295
  829. package/slides/node_modules/tar-stream/index.js +0 -2
  830. package/slides/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  831. package/slides/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
  832. package/slides/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
  833. package/slides/node_modules/tar-stream/node_modules/readable-stream/README.md +0 -106
  834. package/slides/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +0 -127
  835. package/slides/node_modules/tar-stream/node_modules/readable-stream/errors.js +0 -116
  836. package/slides/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +0 -17
  837. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  838. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  839. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  840. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  841. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  842. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  843. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  844. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  845. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  846. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  847. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  848. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  849. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  850. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  851. package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  852. package/slides/node_modules/tar-stream/node_modules/readable-stream/package.json +0 -68
  853. package/slides/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +0 -9
  854. package/slides/node_modules/tar-stream/node_modules/readable-stream/readable.js +0 -16
  855. package/slides/node_modules/tar-stream/pack.js +0 -255
  856. package/slides/node_modules/tar-stream/package.json +0 -58
  857. package/slides/node_modules/tar-stream/sandbox.js +0 -11
  858. package/slides/node_modules/tunnel-agent/LICENSE +0 -55
  859. package/slides/node_modules/tunnel-agent/README.md +0 -4
  860. package/slides/node_modules/tunnel-agent/index.js +0 -244
  861. package/slides/node_modules/tunnel-agent/package.json +0 -22
  862. package/slides/node_modules/undici-types/LICENSE +0 -21
  863. package/slides/node_modules/undici-types/README.md +0 -6
  864. package/slides/node_modules/undici-types/agent.d.ts +0 -31
  865. package/slides/node_modules/undici-types/api.d.ts +0 -43
  866. package/slides/node_modules/undici-types/balanced-pool.d.ts +0 -29
  867. package/slides/node_modules/undici-types/cache.d.ts +0 -36
  868. package/slides/node_modules/undici-types/client.d.ts +0 -108
  869. package/slides/node_modules/undici-types/connector.d.ts +0 -34
  870. package/slides/node_modules/undici-types/content-type.d.ts +0 -21
  871. package/slides/node_modules/undici-types/cookies.d.ts +0 -28
  872. package/slides/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
  873. package/slides/node_modules/undici-types/dispatcher.d.ts +0 -256
  874. package/slides/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
  875. package/slides/node_modules/undici-types/errors.d.ts +0 -149
  876. package/slides/node_modules/undici-types/eventsource.d.ts +0 -61
  877. package/slides/node_modules/undici-types/fetch.d.ts +0 -209
  878. package/slides/node_modules/undici-types/file.d.ts +0 -39
  879. package/slides/node_modules/undici-types/filereader.d.ts +0 -54
  880. package/slides/node_modules/undici-types/formdata.d.ts +0 -108
  881. package/slides/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  882. package/slides/node_modules/undici-types/global-origin.d.ts +0 -7
  883. package/slides/node_modules/undici-types/handlers.d.ts +0 -15
  884. package/slides/node_modules/undici-types/header.d.ts +0 -4
  885. package/slides/node_modules/undici-types/index.d.ts +0 -71
  886. package/slides/node_modules/undici-types/interceptors.d.ts +0 -17
  887. package/slides/node_modules/undici-types/mock-agent.d.ts +0 -50
  888. package/slides/node_modules/undici-types/mock-client.d.ts +0 -25
  889. package/slides/node_modules/undici-types/mock-errors.d.ts +0 -12
  890. package/slides/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  891. package/slides/node_modules/undici-types/mock-pool.d.ts +0 -25
  892. package/slides/node_modules/undici-types/package.json +0 -55
  893. package/slides/node_modules/undici-types/patch.d.ts +0 -33
  894. package/slides/node_modules/undici-types/pool-stats.d.ts +0 -19
  895. package/slides/node_modules/undici-types/pool.d.ts +0 -39
  896. package/slides/node_modules/undici-types/proxy-agent.d.ts +0 -28
  897. package/slides/node_modules/undici-types/readable.d.ts +0 -65
  898. package/slides/node_modules/undici-types/retry-agent.d.ts +0 -8
  899. package/slides/node_modules/undici-types/retry-handler.d.ts +0 -116
  900. package/slides/node_modules/undici-types/util.d.ts +0 -18
  901. package/slides/node_modules/undici-types/webidl.d.ts +0 -228
  902. package/slides/node_modules/undici-types/websocket.d.ts +0 -150
  903. package/slides/node_modules/util-deprecate/History.md +0 -16
  904. package/slides/node_modules/util-deprecate/LICENSE +0 -24
  905. package/slides/node_modules/util-deprecate/README.md +0 -53
  906. package/slides/node_modules/util-deprecate/browser.js +0 -67
  907. package/slides/node_modules/util-deprecate/node.js +0 -6
  908. package/slides/node_modules/util-deprecate/package.json +0 -27
  909. package/slides/node_modules/wrappy/LICENSE +0 -15
  910. package/slides/node_modules/wrappy/README.md +0 -36
  911. package/slides/node_modules/wrappy/package.json +0 -29
  912. package/slides/node_modules/wrappy/wrappy.js +0 -33
  913. package/slides/package-lock.json +0 -536
  914. package/slides/package.json +0 -16
  915. package/slides/slides.json +0 -238
@@ -0,0 +1,55 @@
1
+ // FSL-1.1-Apache-2.0 — see LICENSE
2
+ import { memo } from 'react';
3
+ import { fmtNum, fmtDollar } from '../../lib/format';
4
+ import { HEX } from '../../lib/theme-hex';
5
+ import { ScrollArea } from '../ui/scroll-area';
6
+
7
+ export const TeamBurnPanel = memo(function TeamBurnPanel({ teams = [] }) {
8
+ const totalTokens = teams.reduce((s, t) => s + (t.totalTokens || 0), 0);
9
+ const maxTokens = teams.reduce((m, t) => Math.max(m, t.totalTokens || 0), 0);
10
+
11
+ return (
12
+ <div className="flex flex-col h-full">
13
+ <div className="px-3 pt-2.5 pb-1 flex-shrink-0 flex items-center justify-between">
14
+ <span className="text-2xs font-mono text-text-3 uppercase tracking-widest">Team Burn</span>
15
+ <span className="text-2xs font-mono text-text-3">{fmtNum(totalTokens)} total</span>
16
+ </div>
17
+ <ScrollArea className="flex-1 min-h-0">
18
+ {teams.length === 0 ? (
19
+ <div className="px-3 py-6 text-center text-xs text-text-3 font-mono">No team activity yet</div>
20
+ ) : (
21
+ <div className="px-3 pb-2 space-y-1.5">
22
+ {teams.map((t) => {
23
+ const pct = maxTokens > 0 ? (t.totalTokens / maxTokens) * 100 : 0;
24
+ return (
25
+ <div key={t.teamId} className="space-y-1">
26
+ <div className="flex items-center justify-between gap-2 min-w-0">
27
+ <div className="flex items-center gap-1.5 min-w-0">
28
+ <span className="text-xs font-semibold text-text-0 font-sans truncate">{t.teamName}</span>
29
+ {t.isDefault && (
30
+ <span className="text-[9px] font-mono text-text-3 uppercase tracking-wider">default</span>
31
+ )}
32
+ <span className="text-2xs font-mono text-text-3 flex-shrink-0">
33
+ {t.agentCount} {t.agentCount === 1 ? 'agent' : 'agents'}
34
+ </span>
35
+ </div>
36
+ <div className="flex items-center gap-2 flex-shrink-0 font-mono text-2xs">
37
+ <span className="text-text-1">{fmtNum(t.totalTokens)}</span>
38
+ <span className="text-text-3">{fmtDollar(t.totalCostUsd)}</span>
39
+ </div>
40
+ </div>
41
+ <div className="h-0.5 bg-surface-2 rounded-sm overflow-hidden">
42
+ <div
43
+ className="h-full rounded-sm transition-all"
44
+ style={{ width: `${pct}%`, background: HEX.accent }}
45
+ />
46
+ </div>
47
+ </div>
48
+ );
49
+ })}
50
+ </div>
51
+ )}
52
+ </ScrollArea>
53
+ </div>
54
+ );
55
+ });
@@ -5,7 +5,7 @@ import { Badge } from '../ui/badge';
5
5
  import { fmtNum } from '../../lib/format';
6
6
 
7
7
  // Well-known integration logos via CDN (simple-icons on cdn.simpleicons.org)
8
- const INTEGRATION_LOGOS = {
8
+ export const INTEGRATION_LOGOS = {
9
9
  'google-workspace': 'https://cdn.simpleicons.org/google/white',
10
10
  github: 'https://cdn.simpleicons.org/github/white',
11
11
  stripe: 'https://cdn.simpleicons.org/stripe/635BFF',
@@ -21,6 +21,24 @@ const INTEGRATION_LOGOS = {
21
21
  linear: 'https://cdn.simpleicons.org/linear/5E6AD2',
22
22
  'brave-search': 'https://cdn.simpleicons.org/brave/FB542B',
23
23
  'home-assistant': 'https://cdn.simpleicons.org/homeassistant/18BCF2',
24
+ sentry: 'https://cdn.simpleicons.org/sentry/362D59',
25
+ elevenlabs: 'https://cdn.simpleicons.org/elevenlabs/white',
26
+ hubspot: 'https://cdn.simpleicons.org/hubspot/FF7A59',
27
+ jira: 'https://cdn.simpleicons.org/jira/0052CC',
28
+ sendgrid: 'https://cdn.simpleicons.org/sendgrid/1A82E2',
29
+ resend: 'https://cdn.simpleicons.org/resend/white',
30
+ replicate: 'https://cdn.simpleicons.org/replicate/white',
31
+ vercel: 'https://cdn.simpleicons.org/vercel/white',
32
+ supabase: 'https://cdn.simpleicons.org/supabase/3FCF8E',
33
+ mixpanel: 'https://cdn.simpleicons.org/mixpanel/7856FF',
34
+ datadog: 'https://cdn.simpleicons.org/datadog/632CA6',
35
+ airtable: 'https://cdn.simpleicons.org/airtable/18BFFF',
36
+ zendesk: 'https://cdn.simpleicons.org/zendesk/03363D',
37
+ intercom: 'https://cdn.simpleicons.org/intercom/6AFDEF',
38
+ twilio: 'https://cdn.simpleicons.org/twilio/F22F46',
39
+ telnyx: 'https://cdn.simpleicons.org/telnyx/00C08B',
40
+ aws: 'https://cdn.simpleicons.org/amazonaws/FF9900',
41
+ plaid: 'https://cdn.simpleicons.org/plaid/white',
24
42
  };
25
43
 
26
44
  function ItemIcon({ item, size = 40 }) {
@@ -64,7 +82,7 @@ function ItemIcon({ item, size = 40 }) {
64
82
  );
65
83
  }
66
84
 
67
- export function MarketplaceCard({ item, onClick, className }) {
85
+ export function MarketplaceCard({ item, onClick, className, statusBadge }) {
68
86
  const installed = item.installed;
69
87
 
70
88
  return (
@@ -109,11 +127,11 @@ export function MarketplaceCard({ item, onClick, className }) {
109
127
  </span>
110
128
  )}
111
129
  <span className="flex-1" />
112
- {installed && (
130
+ {statusBadge || (installed && (
113
131
  <Badge variant="accent" className="text-2xs">
114
132
  {item._installedCount ? `${item._installedCount} active` : 'Installed'}
115
133
  </Badge>
116
- )}
134
+ ))}
117
135
  </div>
118
136
  </button>
119
137
  );
@@ -42,9 +42,3 @@ export function timeAgo(ts) {
42
42
  if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
43
43
  return `${Math.floor(diff / 86400)}d ago`;
44
44
  }
45
-
46
- export function formatDuration(ms) {
47
- if (!ms) return '0s';
48
- const s = Math.floor(ms / 1000);
49
- return fmtUptime(s);
50
- }
@@ -8,6 +8,8 @@ export function useDashboard() {
8
8
  const agents = useGrooveStore((s) => s.agents);
9
9
 
10
10
  const [data, setData] = useState(null);
11
+ const [teamBurn, setTeamBurn] = useState([]);
12
+ const [memory, setMemory] = useState({ constraints: [], discoveries: [], roles: [], specializations: null });
11
13
  const [loading, setLoading] = useState(true);
12
14
  const [kpiHistory, setKpiHistory] = useState({
13
15
  tokens: [], cost: [], saved: [], efficiency: [],
@@ -21,9 +23,23 @@ export function useDashboard() {
21
23
 
22
24
  async function fetch() {
23
25
  try {
24
- const d = await api.get('/dashboard');
26
+ const [d, teams, constraints, discoveries, chainRoles, specs] = await Promise.all([
27
+ api.get('/dashboard'),
28
+ api.get('/tokens/by-team').catch(() => ({ teams: [] })),
29
+ api.get('/memory/constraints').catch(() => ({ constraints: [] })),
30
+ api.get('/memory/discoveries?limit=20').catch(() => ({ discoveries: [] })),
31
+ api.get('/memory/handoff-chain').catch(() => ({ roles: [] })),
32
+ api.get('/memory/specializations').catch(() => ({ perAgent: {}, perProjectRole: {} })),
33
+ ]);
25
34
  if (!alive) return;
26
35
  setData(d);
36
+ setTeamBurn(teams?.teams || []);
37
+ setMemory({
38
+ constraints: constraints?.constraints || [],
39
+ discoveries: discoveries?.discoveries || [],
40
+ roles: chainRoles?.roles || [],
41
+ specializations: specs || { perAgent: {}, perProjectRole: {} },
42
+ });
27
43
  setLoading(false);
28
44
  lastFetch.current = Date.now();
29
45
 
@@ -70,5 +86,6 @@ export function useDashboard() {
70
86
  data, loading, agents, connected, kpiHistory,
71
87
  lastFetch: lastFetch.current,
72
88
  agentBreakdown, routing, rotation, adaptive, journalist, rotating,
89
+ teamBurn, memory,
73
90
  };
74
91
  }
@@ -58,8 +58,6 @@ export const useGrooveStore = create((set, get) => ({
58
58
  chatHistory: loadJSON('groove:chatHistory'),
59
59
  chatInputs: {}, // Per-agent draft input text — persists across tab switches
60
60
  tokenTimeline: {},
61
- dashTelemetry: {},
62
- ccChartTimeline: [],
63
61
 
64
62
  // ── Approvals ─────────────────────────────────────────────
65
63
  pendingApprovals: [],
@@ -251,25 +249,52 @@ export const useGrooveStore = create((set, get) => ({
251
249
  break;
252
250
 
253
251
  case 'rotation:start':
254
- get().addToast('info', `Rotating ${msg.agentName}...`);
252
+ // Silent — rotation must feel seamless to the user.
253
+ // Visibility is available in dashboard Intel panel for curious users.
255
254
  break;
256
255
 
257
256
  case 'rotation:complete': {
258
- get().addToast('success', `Rotated ${msg.agentName}`, `Saved ${msg.tokensSaved} tokens`);
259
- const panel = get().detailPanel;
260
- if (panel?.type === 'agent' && panel.agentId === msg.oldAgentId && msg.newAgentId) {
261
- set((s) => {
262
- const chatHistory = { ...s.chatHistory };
263
- const tokenTimeline = { ...s.tokenTimeline };
264
- const activityLog = { ...s.activityLog };
265
- if (chatHistory[msg.oldAgentId]?.length) chatHistory[msg.newAgentId] = [...chatHistory[msg.oldAgentId]];
266
- if (tokenTimeline[msg.oldAgentId]?.length) tokenTimeline[msg.newAgentId] = [...tokenTimeline[msg.oldAgentId]];
267
- if (activityLog[msg.oldAgentId]?.length) activityLog[msg.newAgentId] = [...activityLog[msg.oldAgentId]];
257
+ // Silent toast seamless infinite sessions are the whole promise.
258
+ // Migrate all agent-keyed state to the new ID ALWAYS, not just when
259
+ // the old agent's panel is open. Chat history, activity log, token
260
+ // timeline all carry forward so no state is orphaned.
261
+ if (!msg.newAgentId || !msg.oldAgentId) break;
262
+ set((s) => {
263
+ const chatHistory = { ...s.chatHistory };
264
+ const tokenTimeline = { ...s.tokenTimeline };
265
+ const activityLog = { ...s.activityLog };
266
+ const chatInputs = { ...s.chatInputs };
267
+ if (chatHistory[msg.oldAgentId]?.length) {
268
+ chatHistory[msg.newAgentId] = [...chatHistory[msg.oldAgentId]];
269
+ delete chatHistory[msg.oldAgentId];
270
+ }
271
+ if (tokenTimeline[msg.oldAgentId]?.length) {
272
+ tokenTimeline[msg.newAgentId] = [...tokenTimeline[msg.oldAgentId]];
273
+ delete tokenTimeline[msg.oldAgentId];
274
+ }
275
+ if (activityLog[msg.oldAgentId]?.length) {
276
+ activityLog[msg.newAgentId] = [...activityLog[msg.oldAgentId]];
277
+ delete activityLog[msg.oldAgentId];
278
+ }
279
+ if (chatInputs[msg.oldAgentId]) {
280
+ chatInputs[msg.newAgentId] = chatInputs[msg.oldAgentId];
281
+ delete chatInputs[msg.oldAgentId];
282
+ }
283
+ // Only redirect the detail panel if the user was actively viewing
284
+ // the old agent. Otherwise leave their current view alone.
285
+ const panel = s.detailPanel;
286
+ let detailPanel = panel;
287
+ let teamDetailPanels = s.teamDetailPanels;
288
+ if (panel?.type === 'agent' && panel.agentId === msg.oldAgentId) {
268
289
  const newPanel = { type: 'agent', agentId: msg.newAgentId };
290
+ detailPanel = newPanel;
269
291
  const tid = get().activeTeamId;
270
- return { chatHistory, tokenTimeline, activityLog, detailPanel: newPanel, teamDetailPanels: { ...s.teamDetailPanels, [tid]: newPanel } };
271
- });
272
- }
292
+ teamDetailPanels = { ...s.teamDetailPanels, [tid]: newPanel };
293
+ }
294
+ // Persist the migration to localStorage so it survives a reload
295
+ try { localStorage.setItem('groove:chatHistory', JSON.stringify(chatHistory)); } catch {}
296
+ return { chatHistory, tokenTimeline, activityLog, chatInputs, detailPanel, teamDetailPanels };
297
+ });
273
298
  break;
274
299
  }
275
300
 
@@ -8,6 +8,7 @@ import { TokenChart } from '../components/dashboard/token-chart';
8
8
  import { CacheRing } from '../components/dashboard/cache-ring';
9
9
  import { RoutingChart } from '../components/dashboard/routing-chart';
10
10
  import { IntelPanel } from '../components/dashboard/intel-panel';
11
+ import { TeamBurnPanel } from '../components/dashboard/team-burn-panel';
11
12
  import { ActivityFeed } from '../components/dashboard/activity-feed';
12
13
  import { Skeleton } from '../components/ui/skeleton';
13
14
  import { HEX } from '../lib/theme-hex';
@@ -34,7 +35,7 @@ function DashboardSkeleton() {
34
35
  export default function DashboardView() {
35
36
  const {
36
37
  data, loading, agents, connected, kpiHistory, lastFetch,
37
- agentBreakdown, routing, rotation, adaptive, journalist, rotating,
38
+ agentBreakdown, routing, rotation, adaptive, journalist, rotating, teamBurn, memory,
38
39
  } = useDashboard();
39
40
 
40
41
  const teams = useGrooveStore((s) => s.teams);
@@ -72,6 +73,7 @@ export default function DashboardView() {
72
73
  totalTurns: rawTokens.totalTurns || 0,
73
74
  agentCount: rawTokens.agentCount || 0,
74
75
  savings: rawTokens.savings || {},
76
+ internalOverhead: rawTokens.internalOverhead || { tokens: 0, costUsd: 0, components: {} },
75
77
  };
76
78
 
77
79
  const ioRatio = tokens.totalOutputTokens > 0 ? (tokens.totalInputTokens / tokens.totalOutputTokens).toFixed(1) : '—';
@@ -145,15 +147,20 @@ export default function DashboardView() {
145
147
  <FleetPanel agentBreakdown={agentBreakdown} rotating={rotating} teams={teams} />
146
148
  </div>
147
149
 
148
- <div className="col-span-2 min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border">
150
+ <div className="min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border">
149
151
  <IntelPanel
150
152
  tokens={tokens}
151
153
  rotation={rotation}
152
154
  adaptive={adaptive}
153
155
  journalist={journalist}
154
156
  agentBreakdown={agentBreakdown}
157
+ memory={memory}
155
158
  />
156
159
  </div>
160
+
161
+ <div className="min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border">
162
+ <TeamBurnPanel teams={teamBurn} />
163
+ </div>
157
164
  </div>
158
165
 
159
166
  <div className="flex-shrink-0 bg-surface-1 border-t border-border">
@@ -383,15 +383,24 @@ function MyLibrary() {
383
383
  const authenticated = useGrooveStore((s) => s.marketplaceAuthenticated);
384
384
  const login = useGrooveStore((s) => s.marketplaceLogin);
385
385
  const [purchases, setPurchases] = useState([]);
386
- const [installed, setInstalled] = useState([]);
386
+ const [installedSkills, setInstalledSkills] = useState([]);
387
+ const [installedIntegrations, setInstalledIntegrations] = useState([]);
387
388
  const [loading, setLoading] = useState(true);
388
- const [busyId, setBusyId] = useState(null);
389
+ const [libraryFilter, setLibraryFilter] = useState('all');
390
+ const [librarySearch, setLibrarySearch] = useState('');
391
+ const [selectedSkill, setSelectedSkill] = useState(null);
392
+ const [wizardIntegration, setWizardIntegration] = useState(null);
393
+ const [showWizard, setShowWizard] = useState(false);
389
394
  const toast = useToast();
390
395
  const fileRef = useRef(null);
391
396
 
392
397
  const refreshInstalled = async () => {
393
- const data = await api.get('/skills/installed');
394
- setInstalled(Array.isArray(data) ? data : data.skills || []);
398
+ const [skillsData, intData] = await Promise.all([
399
+ api.get('/skills/installed').catch(() => []),
400
+ api.get('/integrations/installed').catch(() => []),
401
+ ]);
402
+ setInstalledSkills(Array.isArray(skillsData) ? skillsData : skillsData.skills || []);
403
+ setInstalledIntegrations(Array.isArray(intData) ? intData : intData.integrations || []);
395
404
  };
396
405
 
397
406
  useEffect(() => {
@@ -399,32 +408,14 @@ function MyLibrary() {
399
408
  Promise.all([
400
409
  authenticated ? api.get('/auth/purchases').then((d) => d.purchases || []).catch(() => []) : Promise.resolve([]),
401
410
  api.get('/skills/installed').then((d) => Array.isArray(d) ? d : d.skills || []).catch(() => []),
402
- ]).then(([p, i]) => {
411
+ api.get('/integrations/installed').then((d) => Array.isArray(d) ? d : d.integrations || []).catch(() => []),
412
+ ]).then(([p, s, i]) => {
403
413
  setPurchases(p);
404
- setInstalled(i);
414
+ setInstalledSkills(s);
415
+ setInstalledIntegrations(i);
405
416
  }).finally(() => setLoading(false));
406
417
  }, [authenticated]);
407
418
 
408
- async function handleUpdate(s) {
409
- setBusyId(s.id);
410
- try {
411
- await api.post(`/skills/${s.id}/update`);
412
- toast.success(`${s.name || s.id} updated`);
413
- await refreshInstalled();
414
- } catch (err) { toast.error('Update failed', err.message); }
415
- setBusyId(null);
416
- }
417
-
418
- async function handleUninstall(s) {
419
- setBusyId(s.id);
420
- try {
421
- await api.delete(`/skills/${s.id}`);
422
- toast.success(`${s.name || s.id} uninstalled`);
423
- await refreshInstalled();
424
- } catch (err) { toast.error('Uninstall failed', err.message); }
425
- setBusyId(null);
426
- }
427
-
428
419
  async function handleImport(e) {
429
420
  const file = e.target.files?.[0];
430
421
  if (!file) return;
@@ -440,6 +431,35 @@ function MyLibrary() {
440
431
  e.target.value = '';
441
432
  }
442
433
 
434
+ if (selectedSkill) {
435
+ return <SkillDetail skill={selectedSkill} onBack={() => setSelectedSkill(null)} />;
436
+ }
437
+
438
+ const searchLower = librarySearch.toLowerCase();
439
+ const filteredSkills = (libraryFilter === 'all' || libraryFilter === 'skills')
440
+ ? installedSkills.filter((s) => !searchLower || (s.name || s.id || '').toLowerCase().includes(searchLower) || (s.description || '').toLowerCase().includes(searchLower))
441
+ : [];
442
+ const filteredIntegrations = (libraryFilter === 'all' || libraryFilter === 'integrations')
443
+ ? installedIntegrations.filter((i) => !searchLower || (i.name || i.id || '').toLowerCase().includes(searchLower) || (i.description || '').toLowerCase().includes(searchLower))
444
+ : [];
445
+
446
+ const allItems = [
447
+ ...filteredSkills.map((s) => ({ ...s, _type: 'skill' })),
448
+ ...filteredIntegrations.map((i) => ({ ...i, _type: 'integration' })),
449
+ ];
450
+
451
+ const filters = [
452
+ { id: 'all', label: 'All' },
453
+ { id: 'skills', label: 'Skills' },
454
+ { id: 'integrations', label: 'Integrations' },
455
+ ];
456
+
457
+ const emptyMessages = {
458
+ all: 'No skills or integrations installed yet. Visit the Marketplace to get started.',
459
+ skills: 'No skills installed.',
460
+ integrations: 'No integrations installed.',
461
+ };
462
+
443
463
  if (loading) {
444
464
  return (
445
465
  <div className="p-5 space-y-3">
@@ -450,9 +470,28 @@ function MyLibrary() {
450
470
 
451
471
  return (
452
472
  <ScrollArea className="h-full">
453
- <div className="px-5 py-4 space-y-6">
454
- {/* Import button */}
455
- <div className="flex items-center gap-3">
473
+ <div className="px-5 py-4 space-y-5">
474
+ {/* Search + filter pills + import */}
475
+ <div className="flex items-center gap-3 flex-wrap">
476
+ <div className="w-72">
477
+ <SearchBar value={librarySearch} onChange={setLibrarySearch} placeholder="Search library..." />
478
+ </div>
479
+ <div className="flex items-center gap-1">
480
+ {filters.map((f) => (
481
+ <button
482
+ key={f.id}
483
+ onClick={() => setLibraryFilter(f.id)}
484
+ className={`px-3 py-1.5 text-xs font-semibold font-sans rounded-full cursor-pointer select-none transition-colors ${
485
+ libraryFilter === f.id
486
+ ? 'bg-accent/15 text-accent border border-accent/25'
487
+ : 'text-text-3 hover:text-text-1 border border-transparent hover:border-border-subtle'
488
+ }`}
489
+ >
490
+ {f.label}
491
+ </button>
492
+ ))}
493
+ </div>
494
+ <div className="flex-1" />
456
495
  <input ref={fileRef} type="file" accept=".md" onChange={handleImport} className="hidden" />
457
496
  <Button
458
497
  variant="secondary"
@@ -461,9 +500,9 @@ function MyLibrary() {
461
500
  className="gap-1.5"
462
501
  >
463
502
  <Upload size={13} />
464
- Import .md Skill
503
+ Import .md
465
504
  </Button>
466
- <span className="text-2xs text-text-4 font-sans">Drop a markdown skill file to install locally</span>
505
+ <span className="text-2xs text-text-4 font-mono flex-shrink-0">{allItems.length}</span>
467
506
  </div>
468
507
 
469
508
  {/* Purchases */}
@@ -507,53 +546,40 @@ function MyLibrary() {
507
546
  </div>
508
547
  )}
509
548
 
510
- {/* Installed Skills */}
511
- <div>
512
- <h3 className="text-xs font-semibold text-text-2 font-sans uppercase tracking-wider mb-3 flex items-center gap-1.5">
513
- <Package size={12} />
514
- Installed ({installed.length})
515
- </h3>
516
- {installed.length === 0 ? (
517
- <div className="bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center">
518
- <Download size={20} className="mx-auto text-text-4 mb-2" />
519
- <p className="text-xs text-text-3 font-sans">No skills installed — browse the Skills tab or import a .md file</p>
520
- </div>
521
- ) : (
522
- <div className="space-y-1.5">
523
- {installed.map((s) => (
524
- <div key={s.id} className="flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-1 border border-border-subtle group">
525
- <div className="w-8 h-8 rounded-md bg-accent/10 flex items-center justify-center text-sm flex-shrink-0">
526
- {s.icon || s.name?.[0]?.toUpperCase() || '?'}
527
- </div>
528
- <div className="flex-1 min-w-0">
529
- <div className="text-xs font-semibold text-text-0 font-sans truncate">{s.name || s.id}</div>
530
- <div className="text-2xs text-text-3 font-sans truncate">{s.description || s.category || 'local skill'}</div>
531
- </div>
532
- <div className="flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
533
- <button
534
- onClick={() => handleUpdate(s)}
535
- disabled={busyId === s.id}
536
- title="Pull latest version"
537
- className="p-1.5 rounded text-text-3 hover:text-accent hover:bg-accent/10 cursor-pointer transition-colors disabled:opacity-50"
538
- >
539
- <RefreshCw size={12} className={busyId === s.id ? 'animate-spin' : ''} />
540
- </button>
541
- <button
542
- onClick={() => handleUninstall(s)}
543
- disabled={busyId === s.id}
544
- title="Uninstall"
545
- className="p-1.5 rounded text-text-3 hover:text-error hover:bg-error/10 cursor-pointer transition-colors disabled:opacity-50"
546
- >
547
- <Trash2 size={12} />
548
- </button>
549
- </div>
550
- <Badge variant="accent" className="text-2xs flex-shrink-0">Installed</Badge>
551
- </div>
552
- ))}
553
- </div>
554
- )}
555
- </div>
549
+ {/* Card grid */}
550
+ {allItems.length > 0 ? (
551
+ <div className="grid gap-3" style={{ gridTemplateColumns: 'repeat(auto-fill, minmax(240px, 1fr))' }}>
552
+ {allItems.map((item) => item._type === 'skill' ? (
553
+ <MarketplaceCard
554
+ key={`skill-${item.id}`}
555
+ item={{ ...item, installed: true }}
556
+ onClick={() => setSelectedSkill(item)}
557
+ />
558
+ ) : (
559
+ <MarketplaceCard
560
+ key={`int-${item.id}`}
561
+ item={{ ...item, installed: true }}
562
+ onClick={() => { setWizardIntegration(item); setShowWizard(true); }}
563
+ statusBadge={
564
+ <Badge variant={item.configured ? 'success' : 'warning'} className="text-2xs">
565
+ {item.configured ? 'Active' : 'Not configured'}
566
+ </Badge>
567
+ }
568
+ />
569
+ ))}
570
+ </div>
571
+ ) : (
572
+ <div className="text-center py-16 text-text-4 font-sans text-sm">
573
+ {emptyMessages[libraryFilter]}
574
+ </div>
575
+ )}
556
576
  </div>
577
+
578
+ <IntegrationWizard
579
+ integration={wizardIntegration}
580
+ open={showWizard}
581
+ onClose={() => { setShowWizard(false); setWizardIntegration(null); refreshInstalled(); }}
582
+ />
557
583
  </ScrollArea>
558
584
  );
559
585
  }