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
package/slides/index.html DELETED
@@ -1,825 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>GROOVE — Intelligent Orchestration for AI Coding Agents</title>
6
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5/dist/reveal.css">
7
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5/dist/theme/black.css">
8
- <style>
9
- :root {
10
- --bg-1: #0F172A; --bg-2: #1E293B; --bg-3: #334155;
11
- --surface: rgba(255,255,255,0.04);
12
- --border: rgba(255,255,255,0.08);
13
- --text: #F5F5F5; --muted: #94A3B8;
14
- --accent: #4338CA; --accent-light: #6366F1;
15
- --amber: #D97706; --amber-light: #F59E0B;
16
- --rose: #E11D48;
17
- }
18
- .reveal { font-family: Arial, Helvetica, sans-serif; color: var(--text); }
19
- .reveal h1, .reveal h2, .reveal h3 { font-family: Georgia, 'Times New Roman', serif; text-transform: none; }
20
- .reveal .slides section {
21
- text-align: left; padding: 3rem; height: 100%; box-sizing: border-box;
22
- }
23
- .reveal .slides section::after {
24
- content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
25
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
26
- }
27
- .reveal .slides section > * { position: relative; z-index: 2; }
28
-
29
- /* Backgrounds */
30
- .bg-steel { background: linear-gradient(135deg, #0F172A, #1E293B, #334155); }
31
- .bg-midnight { background: linear-gradient(135deg, #0B0B1A, #1A1A3E, #0F0F2A); }
32
- .bg-ink { background: linear-gradient(145deg, #0C0C1D, #151530, #1A1A2E); }
33
- .bg-obsidian { background: linear-gradient(160deg, #121215, #1C1917, #0C0A09); }
34
- .bg-deep { background: linear-gradient(135deg, #0A0A1F, #12123A, #1A1A50); }
35
-
36
- /* Typography */
37
- .label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.25em; color: var(--accent-light); font-family: Arial, sans-serif; font-weight: 700; margin-bottom: 0.75rem; }
38
- .brand { font-size: 11px; font-weight: 700; color: var(--text); letter-spacing: 0.05em; position: absolute; top: 1.5rem; left: 3rem; z-index: 10; }
39
- .category { font-size: 9px; font-weight: 700; color: var(--muted); letter-spacing: 0.3em; text-transform: uppercase; position: absolute; top: 1.5rem; right: 3rem; z-index: 10; }
40
- .divider { border: none; border-top: 1px solid rgba(255,255,255,0.06); margin: 1.5rem 0; }
41
- .accent-block { border-left: 3px solid var(--accent); padding-left: 1.5rem; }
42
- .col-row { display: flex; gap: 3rem; }
43
- .col-row > div { flex: 1; }
44
-
45
- /* Slide-specific */
46
- .hero-number { font-family: Georgia, serif; font-size: 72px; font-weight: 700; color: var(--accent-light); line-height: 1; }
47
- .hero-unit { font-size: 18px; color: var(--text); font-weight: 700; margin-top: 0.25rem; }
48
- .pain-word { position: absolute; font-style: italic; color: rgba(255,255,255,0.15); font-family: Arial, sans-serif; }
49
-
50
- /* Responsive slides */
51
- .reveal .slides { width: 960px !important; height: 540px !important; }
52
- .slide-content { position: relative; width: 100%; height: 100%; }
53
- </style>
54
- </head>
55
- <body>
56
- <div class="reveal"><div class="slides">
57
-
58
- <!-- ═══════════════════════════════════════════════════════════
59
- SLIDE 1 — TITLE
60
- ═══════════════════════════════════════════════════════════ -->
61
- <section class="bg-steel">
62
- <div class="slide-content" style="display:flex; align-items:center; justify-content:space-between;">
63
- <div style="max-width:55%; padding-top:1rem;">
64
- <div class="label" style="margin-bottom:1.5rem;">INVESTOR PRESENTATION — 2026</div>
65
- <h1 style="font-size:56px; margin:0; line-height:1.1; color:#F5F5F5; font-weight:700;">GROOVE.</h1>
66
- <p style="font-size:22px; color:var(--muted); margin-top:1rem; line-height:1.5; max-width:420px;">
67
- The intelligent orchestration layer<br>for AI coding agents.
68
- </p>
69
- <hr class="divider" style="max-width:280px; margin-top:2rem;">
70
- <p style="font-size:12px; color:var(--muted); letter-spacing:0.1em;">groovedev.ai</p>
71
- </div>
72
- <div style="position:absolute; right:-60px; top:-40px;">
73
- <svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" style="width:420px; height:420px; opacity:0.85;">
74
- <defs>
75
- <radialGradient id="orb1" cx="35%" cy="30%" r="60%">
76
- <stop offset="0%" stop-color="#6366F1" stop-opacity="0.5"/>
77
- <stop offset="40%" stop-color="#4338CA" stop-opacity="0.3"/>
78
- <stop offset="100%" stop-color="#1E1B4B" stop-opacity="0.05"/>
79
- </radialGradient>
80
- <radialGradient id="hl1" cx="30%" cy="25%" r="25%">
81
- <stop offset="0%" stop-color="#fff" stop-opacity="0.25"/>
82
- <stop offset="100%" stop-color="#fff" stop-opacity="0"/>
83
- </radialGradient>
84
- <filter id="glow1"><feGaussianBlur stdDeviation="20" result="blur"/><feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
85
- </defs>
86
- <circle cx="250" cy="250" r="220" fill="url(#orb1)" filter="url(#glow1)"/>
87
- <circle cx="250" cy="250" r="220" fill="url(#hl1)"/>
88
- <ellipse cx="250" cy="430" rx="180" ry="20" fill="#000" opacity="0.15" filter="url(#glow1)"/>
89
- </svg>
90
- </div>
91
- </div>
92
- </section>
93
-
94
- <!-- ═══════════════════════════════════════════════════════════
95
- SLIDE 2 — THE PROBLEM
96
- ═══════════════════════════════════════════════════════════ -->
97
- <section class="bg-midnight">
98
- <span class="brand">GROOVE.</span>
99
- <span class="category">THE PROBLEM</span>
100
- <div class="slide-content" style="padding-top:2.5rem;">
101
- <div class="label">WHY THIS MATTERS</div>
102
- <h2 style="font-size:40px; margin:0; line-height:1.2; max-width:52%;">AI coding tools are broken<br>at the multi-agent level.</h2>
103
- <p style="font-size:15px; color:var(--muted); margin-top:1rem; max-width:48%; line-height:1.6;">
104
- Agents clash on files. Context degrades mid-session. Every new session starts blind. Tokens vanish with zero transparency.
105
- </p>
106
- <!-- Scattered pain words -->
107
- <span class="pain-word" style="right:80px; top:60px; font-size:22px; opacity:0.18;">Agents Clash</span>
108
- <span class="pain-word" style="right:40px; top:160px; font-size:17px; opacity:0.13;">Cold-Start Tax</span>
109
- <span class="pain-word" style="right:120px; top:250px; font-size:20px; opacity:0.16;">Context Decay</span>
110
- <span class="pain-word" style="right:20px; top:330px; font-size:15px; opacity:0.11;">Invisible Waste</span>
111
- <span class="pain-word" style="right:90px; top:400px; font-size:18px; opacity:0.14;">Terminal-Only</span>
112
- <span class="pain-word" style="right:200px; top:120px; font-size:14px; opacity:0.10;">No Coordination</span>
113
- <span class="pain-word" style="right:180px; top:360px; font-size:16px; opacity:0.12;">Session Loss</span>
114
- <!-- Atmospheric blob -->
115
- <svg viewBox="0 0 600 600" style="position:absolute; right:-80px; bottom:-120px; width:450px; opacity:0.4; z-index:1;">
116
- <defs>
117
- <radialGradient id="blob-p" cx="40%" cy="40%">
118
- <stop offset="0%" stop-color="#E11D48" stop-opacity="0.35"/>
119
- <stop offset="100%" stop-color="#E11D48" stop-opacity="0"/>
120
- </radialGradient>
121
- <filter id="blob-blur-p"><feGaussianBlur stdDeviation="35"/></filter>
122
- </defs>
123
- <path d="M300,80 C420,80 520,180 500,300 C480,420 380,520 260,500 C140,480 60,380 80,260 C100,140 180,80 300,80 Z" fill="url(#blob-p)" filter="url(#blob-blur-p)"/>
124
- </svg>
125
- </div>
126
- </section>
127
-
128
- <!-- ═══════════════════════════════════════════════════════════
129
- SLIDE 3 — THE COST OF CHAOS
130
- ═══════════════════════════════════════════════════════════ -->
131
- <section class="bg-ink">
132
- <span class="brand">GROOVE.</span>
133
- <span class="category">MARKET REALITY</span>
134
- <div class="slide-content" style="padding-top:2.5rem;">
135
- <div class="label">THE TOKEN CRISIS</div>
136
- <h2 style="font-size:36px; margin:0; line-height:1.2; max-width:55%;">Providers subsidize billions<br>in wasted compute.</h2>
137
- <div style="display:flex; gap:4rem; margin-top:2.5rem; align-items:flex-end;">
138
- <div>
139
- <div class="hero-number" style="color:var(--amber);">$600M</div>
140
- <div class="hero-unit">Annual subsidy burn<br><span style="font-size:12px; color:var(--muted);">per 10K Max subscribers</span></div>
141
- </div>
142
- <div style="flex:1; max-width:340px;">
143
- <svg viewBox="0 0 400 200" style="width:100%;">
144
- <defs>
145
- <linearGradient id="bar-g1" x1="0" y1="1" x2="0" y2="0">
146
- <stop offset="0%" stop-color="#D97706" stop-opacity="0.15"/>
147
- <stop offset="100%" stop-color="#D97706" stop-opacity="0.7"/>
148
- </linearGradient>
149
- <linearGradient id="bar-g2" x1="0" y1="1" x2="0" y2="0">
150
- <stop offset="0%" stop-color="#4338CA" stop-opacity="0.15"/>
151
- <stop offset="100%" stop-color="#4338CA" stop-opacity="0.7"/>
152
- </linearGradient>
153
- </defs>
154
- <!-- Bars: User pays vs Actual cost -->
155
- <rect x="30" y="165" width="55" height="25" rx="4" fill="url(#bar-g2)" style="filter:drop-shadow(0 -2px 6px rgba(67,56,202,0.3))"/>
156
- <rect x="110" y="30" width="55" height="160" rx="4" fill="url(#bar-g1)" style="filter:drop-shadow(0 -3px 10px rgba(217,119,6,0.4))"/>
157
- <rect x="200" y="155" width="55" height="35" rx="4" fill="url(#bar-g2)" style="filter:drop-shadow(0 -2px 6px rgba(67,56,202,0.3))"/>
158
- <rect x="280" y="10" width="55" height="180" rx="4" fill="url(#bar-g1)" style="filter:drop-shadow(0 -3px 10px rgba(217,119,6,0.4))"/>
159
- <!-- Labels -->
160
- <text x="57" y="198" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">$20</text>
161
- <text x="137" y="198" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">$200-500</text>
162
- <text x="227" y="198" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">$200</text>
163
- <text x="307" y="198" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">$3-5K</text>
164
- <!-- Group labels -->
165
- <text x="95" y="12" text-anchor="middle" fill="rgba(255,255,255,0.4)" font-size="10" font-family="Arial" font-weight="bold">Pro</text>
166
- <text x="265" y="12" text-anchor="middle" fill="rgba(255,255,255,0.4)" font-size="10" font-family="Arial" font-weight="bold">Max</text>
167
- <text x="57" y="158" text-anchor="middle" fill="rgba(255,255,255,0.35)" font-size="8" font-family="Arial">Pays</text>
168
- <text x="137" y="24" text-anchor="middle" fill="rgba(255,255,255,0.35)" font-size="8" font-family="Arial">Costs</text>
169
- </svg>
170
- </div>
171
- </div>
172
- </div>
173
- </section>
174
-
175
- <!-- ═══════════════════════════════════════════════════════════
176
- SLIDE 4 — THE SOLUTION / 6-LAYER ARCHITECTURE
177
- ═══════════════════════════════════════════════════════════ -->
178
- <section class="bg-steel">
179
- <span class="brand">GROOVE.</span>
180
- <span class="category">THE SOLUTION</span>
181
- <div class="slide-content" style="padding-top:2.5rem;">
182
- <div class="label">SIX-LAYER ORCHESTRATION</div>
183
- <h2 style="font-size:34px; margin:0 0 1.5rem; line-height:1.2; max-width:50%;">The coordination layer your agents are missing.</h2>
184
- <div style="display:flex; gap:0.5rem; margin-top:0.5rem;">
185
- <!-- Left: stacked layers -->
186
- <div style="flex:1; max-width:52%;">
187
- <div style="display:flex; flex-direction:column; gap:3px;">
188
- <div class="accent-block" style="padding:0.35rem 0 0.35rem 1rem; border-color:#6366F1;">
189
- <span style="font-size:10px; color:#6366F1; font-weight:700; letter-spacing:0.15em;">01</span>
190
- <span style="font-size:13px; color:var(--text); font-weight:700; margin-left:0.5rem;">Process Management</span>
191
- <span style="font-size:11px; color:var(--muted); margin-left:0.5rem;">Spawn, kill, monitor across providers</span>
192
- </div>
193
- <div class="accent-block" style="padding:0.35rem 0 0.35rem 1rem; border-color:#818CF8;">
194
- <span style="font-size:10px; color:#818CF8; font-weight:700; letter-spacing:0.15em;">02</span>
195
- <span style="font-size:13px; color:var(--text); font-weight:700; margin-left:0.5rem;">Coordination</span>
196
- <span style="font-size:11px; color:var(--muted); margin-left:0.5rem;">File locks, introductions, conflict prevention</span>
197
- </div>
198
- <div class="accent-block" style="padding:0.35rem 0 0.35rem 1rem; border-color:#A78BFA;">
199
- <span style="font-size:10px; color:#A78BFA; font-weight:700; letter-spacing:0.15em;">03</span>
200
- <span style="font-size:13px; color:var(--text); font-weight:700; margin-left:0.5rem;">Intelligence</span>
201
- <span style="font-size:11px; color:var(--muted); margin-left:0.5rem;">Journalist, rotation, degradation detection</span>
202
- </div>
203
- <div class="accent-block" style="padding:0.35rem 0 0.35rem 1rem; border-color:#D97706;">
204
- <span style="font-size:10px; color:#D97706; font-weight:700; letter-spacing:0.15em;">04</span>
205
- <span style="font-size:13px; color:var(--text); font-weight:700; margin-left:0.5rem;">Cost Optimization</span>
206
- <span style="font-size:11px; color:var(--muted); margin-left:0.5rem;">Adaptive routing, token tracking, savings</span>
207
- </div>
208
- <div class="accent-block" style="padding:0.35rem 0 0.35rem 1rem; border-color:#F59E0B;">
209
- <span style="font-size:10px; color:#F59E0B; font-weight:700; letter-spacing:0.15em;">05</span>
210
- <span style="font-size:13px; color:var(--text); font-weight:700; margin-left:0.5rem;">Integration</span>
211
- <span style="font-size:11px; color:var(--muted); margin-left:0.5rem;">MCP servers, federation, scheduling</span>
212
- </div>
213
- <div class="accent-block" style="padding:0.35rem 0 0.35rem 1rem; border-color:#FBBF24;">
214
- <span style="font-size:10px; color:#FBBF24; font-weight:700; letter-spacing:0.15em;">06</span>
215
- <span style="font-size:13px; color:var(--text); font-weight:700; margin-left:0.5rem;">Interface</span>
216
- <span style="font-size:11px; color:var(--muted); margin-left:0.5rem;">REST API, WebSocket, React GUI, CLI</span>
217
- </div>
218
- </div>
219
- </div>
220
- <!-- Right: node network -->
221
- <div style="flex:1; display:flex; align-items:center; justify-content:center;">
222
- <svg viewBox="0 0 320 280" style="width:300px;">
223
- <defs>
224
- <filter id="ng"><feGaussianBlur stdDeviation="3" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
225
- </defs>
226
- <!-- Connections -->
227
- <path d="M160,30 C160,80 80,80 80,110" fill="none" stroke="#6366F1" stroke-width="1.5" opacity="0.4" filter="url(#ng)"/>
228
- <path d="M160,30 C160,80 240,80 240,110" fill="none" stroke="#6366F1" stroke-width="1.5" opacity="0.4" filter="url(#ng)"/>
229
- <path d="M80,110 C80,160 120,160 120,190" fill="none" stroke="#818CF8" stroke-width="1.5" opacity="0.35" filter="url(#ng)"/>
230
- <path d="M80,110 C50,160 70,190 80,210" fill="none" stroke="#818CF8" stroke-width="1.5" opacity="0.35" filter="url(#ng)"/>
231
- <path d="M240,110 C240,160 200,160 200,190" fill="none" stroke="#A78BFA" stroke-width="1.5" opacity="0.35" filter="url(#ng)"/>
232
- <path d="M240,110 C270,160 250,190 240,210" fill="none" stroke="#A78BFA" stroke-width="1.5" opacity="0.35" filter="url(#ng)"/>
233
- <path d="M120,190 C140,230 170,240 160,260" fill="none" stroke="#D97706" stroke-width="1.5" opacity="0.3" filter="url(#ng)"/>
234
- <path d="M200,190 C180,230 170,240 160,260" fill="none" stroke="#D97706" stroke-width="1.5" opacity="0.3" filter="url(#ng)"/>
235
- <!-- Nodes -->
236
- <circle cx="160" cy="30" r="18" fill="rgba(255,255,255,0.05)" stroke="#6366F1" stroke-width="2" filter="url(#ng)"/>
237
- <text x="160" y="34" text-anchor="middle" fill="white" font-size="8" font-family="Arial" font-weight="700">GROOVE</text>
238
- <circle cx="80" cy="110" r="15" fill="rgba(255,255,255,0.04)" stroke="#818CF8" stroke-width="1.5"/>
239
- <text x="80" y="114" text-anchor="middle" fill="white" font-size="7" font-family="Arial">Claude</text>
240
- <circle cx="240" cy="110" r="15" fill="rgba(255,255,255,0.04)" stroke="#A78BFA" stroke-width="1.5"/>
241
- <text x="240" y="114" text-anchor="middle" fill="white" font-size="7" font-family="Arial">Codex</text>
242
- <circle cx="120" cy="190" r="13" fill="rgba(255,255,255,0.03)" stroke="#D97706" stroke-width="1.5"/>
243
- <text x="120" y="194" text-anchor="middle" fill="white" font-size="7" font-family="Arial">Gemini</text>
244
- <circle cx="200" cy="190" r="13" fill="rgba(255,255,255,0.03)" stroke="#F59E0B" stroke-width="1.5"/>
245
- <text x="200" y="194" text-anchor="middle" fill="white" font-size="7" font-family="Arial">Ollama</text>
246
- <circle cx="80" cy="210" r="11" fill="rgba(255,255,255,0.03)" stroke="#818CF8" stroke-width="1"/>
247
- <text x="80" y="214" text-anchor="middle" fill="white" font-size="6" font-family="Arial">Aider</text>
248
- <circle cx="240" cy="210" r="11" fill="rgba(255,255,255,0.03)" stroke="#A78BFA" stroke-width="1"/>
249
- <text x="240" y="214" text-anchor="middle" fill="white" font-size="6" font-family="Arial">Future</text>
250
- <circle cx="160" cy="260" r="16" fill="rgba(255,255,255,0.04)" stroke="#FBBF24" stroke-width="1.5"/>
251
- <text x="160" y="264" text-anchor="middle" fill="white" font-size="7" font-family="Arial">GUI</text>
252
- </svg>
253
- </div>
254
- </div>
255
- </div>
256
- </section>
257
-
258
- <!-- ═══════════════════════════════════════════════════════════
259
- SLIDE 5 — ZERO COLD-START (THE JOURNALIST)
260
- ═══════════════════════════════════════════════════════════ -->
261
- <section class="bg-obsidian">
262
- <span class="brand">GROOVE.</span>
263
- <span class="category">INTELLIGENCE</span>
264
- <div class="slide-content" style="padding-top:2.5rem;">
265
- <div class="label">ZERO COLD-START</div>
266
- <h2 style="font-size:36px; margin:0; line-height:1.2; max-width:52%;">Open a new session.<br>It already knows everything.</h2>
267
- <p style="font-size:14px; color:var(--muted); margin-top:0.75rem; max-width:46%; line-height:1.6;">
268
- The Journalist synthesizes all agent activity into living documentation. New agents read one file and know the entire project state.
269
- </p>
270
- <!-- Spline area chart showing context growth -->
271
- <svg viewBox="0 0 800 220" style="width:100%; margin-top:1.5rem;">
272
- <defs>
273
- <linearGradient id="area-j" x1="0" y1="0" x2="0" y2="1">
274
- <stop offset="0%" stop-color="#4338CA" stop-opacity="0.25"/>
275
- <stop offset="100%" stop-color="#4338CA" stop-opacity="0"/>
276
- </linearGradient>
277
- <filter id="glow-j"><feGaussianBlur stdDeviation="2"/></filter>
278
- </defs>
279
- <!-- Grid lines -->
280
- <line x1="40" y1="30" x2="40" y2="190" stroke="rgba(255,255,255,0.04)" stroke-width="1"/>
281
- <line x1="40" y1="190" x2="780" y2="190" stroke="rgba(255,255,255,0.06)" stroke-width="1"/>
282
- <line x1="40" y1="140" x2="780" y2="140" stroke="rgba(255,255,255,0.03)" stroke-width="1" stroke-dasharray="4"/>
283
- <line x1="40" y1="90" x2="780" y2="90" stroke="rgba(255,255,255,0.03)" stroke-width="1" stroke-dasharray="4"/>
284
- <!-- Area fill -->
285
- <path d="M40,185 C120,180 200,160 300,130 S450,70 550,55 C620,45 700,38 780,32 L780,190 L40,190 Z" fill="url(#area-j)"/>
286
- <!-- Spline -->
287
- <path d="M40,185 C120,180 200,160 300,130 S450,70 550,55 C620,45 700,38 780,32" fill="none" stroke="#6366F1" stroke-width="2.5" stroke-linecap="round" style="filter:drop-shadow(0 0 6px #4338CA)"/>
288
- <!-- Data points -->
289
- <circle cx="40" cy="185" r="3" fill="#6366F1" style="filter:drop-shadow(0 0 6px #4338CA)"/>
290
- <circle cx="300" cy="130" r="4" fill="#6366F1" style="filter:drop-shadow(0 0 8px #4338CA)"/>
291
- <circle cx="550" cy="55" r="4" fill="#6366F1" style="filter:drop-shadow(0 0 8px #4338CA)"/>
292
- <circle cx="780" cy="32" r="5" fill="#6366F1" style="filter:drop-shadow(0 0 10px #4338CA)"/>
293
- <!-- Labels -->
294
- <text x="40" y="208" fill="rgba(255,255,255,0.4)" font-size="9" font-family="Arial">Agent 1 spawns</text>
295
- <text x="280" y="208" fill="rgba(255,255,255,0.4)" font-size="9" font-family="Arial">Journalist cycle</text>
296
- <text x="520" y="208" fill="rgba(255,255,255,0.4)" font-size="9" font-family="Arial">Agent 3 spawns</text>
297
- <text x="720" y="208" fill="rgba(255,255,255,0.4)" font-size="9" font-family="Arial">Full context</text>
298
- <!-- Annotation -->
299
- <text x="600" y="80" fill="var(--accent-light)" font-size="11" font-family="Georgia" font-style="italic">Zero cold-start</text>
300
- </svg>
301
- </div>
302
- </section>
303
-
304
- <!-- ═══════════════════════════════════════════════════════════
305
- SLIDE 6 — INFINITE SESSIONS (CONTEXT ROTATION)
306
- ═══════════════════════════════════════════════════════════ -->
307
- <section class="bg-deep">
308
- <span class="brand">GROOVE.</span>
309
- <span class="category">CONTEXT ENGINE</span>
310
- <div class="slide-content" style="display:flex; align-items:center; padding-top:2rem;">
311
- <div style="max-width:50%;">
312
- <div class="label">INFINITE SESSIONS</div>
313
- <h2 style="font-size:38px; margin:0; line-height:1.15;">Sessions that<br>never degrade.</h2>
314
- <p style="font-size:14px; color:var(--muted); margin-top:1rem; line-height:1.6;">
315
- Adaptive rotation detects quality degradation in real-time. Kills the session before it fails. Respawns with fresh context and a perfect handoff brief.
316
- </p>
317
- <div style="margin-top:1.5rem;">
318
- <div class="accent-block" style="margin-bottom:0.75rem; border-color:#D97706;">
319
- <div style="font-size:13px; color:var(--text); font-weight:700;">Degradation Detection</div>
320
- <div style="font-size:11px; color:var(--muted);">Sliding window scores health 0-100 every 15s</div>
321
- </div>
322
- <div class="accent-block" style="border-color:#4338CA;">
323
- <div style="font-size:13px; color:var(--text); font-weight:700;">Adaptive Thresholds</div>
324
- <div style="font-size:11px; color:var(--muted);">Learns per provider + role. Converges in ~10 rotations.</div>
325
- </div>
326
- </div>
327
- </div>
328
- <!-- Progress arc visual -->
329
- <div style="flex:1; display:flex; align-items:center; justify-content:center;">
330
- <svg viewBox="0 0 280 280" style="width:260px;">
331
- <defs>
332
- <linearGradient id="arc-g" x1="0" y1="0" x2="1" y2="1">
333
- <stop offset="0%" stop-color="#6366F1"/>
334
- <stop offset="100%" stop-color="#4338CA"/>
335
- </linearGradient>
336
- </defs>
337
- <!-- Background arc -->
338
- <circle cx="140" cy="140" r="110" fill="none" stroke="rgba(255,255,255,0.04)" stroke-width="22"/>
339
- <!-- Quality arc (90% = 324 of 360) — dasharray = 2*pi*r * pct -->
340
- <circle cx="140" cy="140" r="110" fill="none" stroke="url(#arc-g)" stroke-width="22"
341
- stroke-dasharray="622 691" stroke-linecap="round"
342
- transform="rotate(-90 140 140)" style="filter:drop-shadow(0 0 12px #4338CA)"/>
343
- <!-- Center content -->
344
- <text x="140" y="130" text-anchor="middle" fill="white" font-size="42" font-weight="bold" font-family="Georgia">90%</text>
345
- <text x="140" y="155" text-anchor="middle" fill="var(--muted)" font-size="12" font-family="Arial">Quality Score</text>
346
- <text x="140" y="175" text-anchor="middle" fill="#6366F1" font-size="10" font-family="Arial" font-weight="700">HEALTHY</text>
347
- <!-- Threshold marker -->
348
- <line x1="140" y1="38" x2="140" y2="48" stroke="#D97706" stroke-width="2" transform="rotate(90 140 140)"/>
349
- <text x="258" y="144" fill="#D97706" font-size="9" font-family="Arial" font-weight="700">75% threshold</text>
350
- </svg>
351
- </div>
352
- </div>
353
- </section>
354
-
355
- <!-- ═══════════════════════════════════════════════════════════
356
- SLIDE 7 — ADAPTIVE INTELLIGENCE
357
- ═══════════════════════════════════════════════════════════ -->
358
- <section class="bg-midnight">
359
- <span class="brand">GROOVE.</span>
360
- <span class="category">INTELLIGENCE</span>
361
- <div class="slide-content" style="padding-top:2.5rem;">
362
- <div class="label">ADAPTIVE MODEL ROUTING</div>
363
- <h2 style="font-size:34px; margin:0; line-height:1.2; max-width:52%;">The right model for every task.<br>Automatically.</h2>
364
- <div style="display:flex; gap:2.5rem; margin-top:1.5rem; align-items:flex-start;">
365
- <div style="flex:1;">
366
- <div style="margin-bottom:1rem;">
367
- <div style="display:flex; align-items:baseline; gap:0.5rem;">
368
- <span style="font-size:11px; color:#A78BFA; font-weight:700; letter-spacing:0.1em;">HEAVY</span>
369
- <span style="font-size:20px; color:var(--text); font-weight:700; font-family:Georgia;">Opus</span>
370
- </div>
371
- <div style="font-size:11px; color:var(--muted);">Planning, architecture, complex refactors</div>
372
- <div style="font-size:11px; color:#D97706; margin-top:2px;">$0.045/1K tokens</div>
373
- </div>
374
- <hr class="divider">
375
- <div style="margin-bottom:1rem;">
376
- <div style="display:flex; align-items:baseline; gap:0.5rem;">
377
- <span style="font-size:11px; color:#6366F1; font-weight:700; letter-spacing:0.1em;">MEDIUM</span>
378
- <span style="font-size:20px; color:var(--text); font-weight:700; font-family:Georgia;">Sonnet</span>
379
- </div>
380
- <div style="font-size:11px; color:var(--muted);">Backend, frontend, testing</div>
381
- <div style="font-size:11px; color:#D97706; margin-top:2px;">$0.009/1K tokens</div>
382
- </div>
383
- <hr class="divider">
384
- <div>
385
- <div style="display:flex; align-items:baseline; gap:0.5rem;">
386
- <span style="font-size:11px; color:#818CF8; font-weight:700; letter-spacing:0.1em;">LIGHT</span>
387
- <span style="font-size:20px; color:var(--text); font-weight:700; font-family:Georgia;">Haiku</span>
388
- </div>
389
- <div style="font-size:11px; color:var(--muted);">Docs, synthesis, simple queries</div>
390
- <div style="font-size:11px; color:#D97706; margin-top:2px;">$0.002/1K tokens</div>
391
- </div>
392
- </div>
393
- <!-- Radar chart -->
394
- <div style="flex:1; display:flex; align-items:center; justify-content:center;">
395
- <svg viewBox="0 0 280 280" style="width:260px;">
396
- <defs>
397
- <filter id="rg"><feGaussianBlur stdDeviation="2" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
398
- </defs>
399
- <!-- Concentric hexagons -->
400
- <polygon points="140,30 230,80 230,180 140,230 50,180 50,80" fill="none" stroke="rgba(255,255,255,0.04)" stroke-width="1"/>
401
- <polygon points="140,63 207,96 207,164 140,197 73,164 73,96" fill="none" stroke="rgba(255,255,255,0.04)" stroke-width="1"/>
402
- <polygon points="140,97 183,113 183,147 140,163 97,147 97,113" fill="none" stroke="rgba(255,255,255,0.04)" stroke-width="1"/>
403
- <!-- Axes -->
404
- <line x1="140" y1="30" x2="140" y2="230" stroke="rgba(255,255,255,0.03)" stroke-width="1"/>
405
- <line x1="50" y1="80" x2="230" y2="180" stroke="rgba(255,255,255,0.03)" stroke-width="1"/>
406
- <line x1="50" y1="180" x2="230" y2="80" stroke="rgba(255,255,255,0.03)" stroke-width="1"/>
407
- <!-- Data polygon (GROOVE) -->
408
- <polygon points="140,40 225,88 215,175 140,215 60,170 55,85" fill="#4338CA" fill-opacity="0.15" stroke="#6366F1" stroke-width="2" filter="url(#rg)"/>
409
- <!-- Competitor polygon (smaller) -->
410
- <polygon points="140,75 195,105 185,155 140,180 90,155 85,105" fill="#D97706" fill-opacity="0.08" stroke="#D97706" stroke-width="1" stroke-dasharray="4" opacity="0.5"/>
411
- <!-- Data points -->
412
- <circle cx="140" cy="40" r="4" fill="#6366F1" style="filter:drop-shadow(0 0 6px #4338CA)"/>
413
- <circle cx="225" cy="88" r="4" fill="#6366F1"/>
414
- <circle cx="215" cy="175" r="4" fill="#6366F1"/>
415
- <circle cx="140" cy="215" r="4" fill="#6366F1"/>
416
- <circle cx="60" cy="170" r="4" fill="#6366F1"/>
417
- <circle cx="55" cy="85" r="4" fill="#6366F1"/>
418
- <!-- Labels -->
419
- <text x="140" y="20" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Speed</text>
420
- <text x="248" y="85" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Quality</text>
421
- <text x="240" y="182" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Accuracy</text>
422
- <text x="140" y="245" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Cost</text>
423
- <text x="15" y="178" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Context</text>
424
- <text x="15" y="82" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Multi-tool</text>
425
- <!-- Legend -->
426
- <line x1="60" y1="260" x2="80" y2="260" stroke="#6366F1" stroke-width="2"/>
427
- <text x="85" y="264" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">GROOVE</text>
428
- <line x1="150" y1="260" x2="170" y2="260" stroke="#D97706" stroke-width="1" stroke-dasharray="4"/>
429
- <text x="175" y="264" fill="rgba(255,255,255,0.5)" font-size="9" font-family="Arial">Alternatives</text>
430
- </svg>
431
- </div>
432
- </div>
433
- </div>
434
- </section>
435
-
436
- <!-- ═══════════════════════════════════════════════════════════
437
- SLIDE 8 — TOKEN ECONOMICS (BREATHING SLIDE)
438
- ═══════════════════════════════════════════════════════════ -->
439
- <section class="bg-ink">
440
- <span class="brand">GROOVE.</span>
441
- <span class="category">ECONOMICS</span>
442
- <div class="slide-content" style="padding-top:2.5rem;">
443
- <div class="label">TOKEN ECONOMICS</div>
444
- <h2 style="font-size:36px; margin:0; line-height:1.2; max-width:55%;">Groove pays for itself<br>in the first session.</h2>
445
- <div style="display:flex; gap:5rem; margin-top:2.5rem;">
446
- <!-- Metric 1 -->
447
- <div>
448
- <div class="hero-number">40–60%</div>
449
- <div class="hero-unit">Token Savings</div>
450
- <div style="margin-top:1rem;">
451
- <svg viewBox="0 0 160 160" style="width:120px;">
452
- <circle cx="80" cy="80" r="60" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="16"/>
453
- <circle cx="80" cy="80" r="60" fill="none" stroke="url(#ring-g1)" stroke-width="16"
454
- stroke-dasharray="188 377" stroke-linecap="round"
455
- transform="rotate(-90 80 80)" style="filter:drop-shadow(0 0 8px #4338CA)"/>
456
- <defs><linearGradient id="ring-g1" x1="0" y1="0" x2="1" y2="1"><stop offset="0%" stop-color="#6366F1"/><stop offset="100%" stop-color="#4338CA"/></linearGradient></defs>
457
- <text x="80" y="86" text-anchor="middle" fill="white" font-size="22" font-weight="bold" font-family="Georgia">50%</text>
458
- </svg>
459
- </div>
460
- </div>
461
- <div style="border-left:1px solid rgba(255,255,255,0.06); height:auto;"></div>
462
- <!-- Metric 2 -->
463
- <div>
464
- <div class="hero-number" style="color:var(--amber);">90%</div>
465
- <div class="hero-unit">Cold-Start Reduction</div>
466
- <div style="margin-top:1rem;">
467
- <svg viewBox="0 0 160 160" style="width:120px;">
468
- <circle cx="80" cy="80" r="60" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="16"/>
469
- <circle cx="80" cy="80" r="60" fill="none" stroke="url(#ring-g2)" stroke-width="16"
470
- stroke-dasharray="339 377" stroke-linecap="round"
471
- transform="rotate(-90 80 80)" style="filter:drop-shadow(0 0 8px #D97706)"/>
472
- <defs><linearGradient id="ring-g2" x1="0" y1="0" x2="1" y2="1"><stop offset="0%" stop-color="#F59E0B"/><stop offset="100%" stop-color="#D97706"/></linearGradient></defs>
473
- <text x="80" y="86" text-anchor="middle" fill="white" font-size="22" font-weight="bold" font-family="Georgia">90%</text>
474
- </svg>
475
- </div>
476
- </div>
477
- </div>
478
- </div>
479
- </section>
480
-
481
- <!-- ═══════════════════════════════════════════════════════════
482
- SLIDE 9 — MULTI-PROVIDER SUPPORT
483
- ═══════════════════════════════════════════════════════════ -->
484
- <section class="bg-steel">
485
- <span class="brand">GROOVE.</span>
486
- <span class="category">PLATFORM</span>
487
- <div class="slide-content" style="padding-top:2.5rem;">
488
- <div class="label">PROVIDER AGNOSTIC</div>
489
- <h2 style="font-size:34px; margin:0; line-height:1.2; max-width:55%;">One orchestration layer.<br>Every provider.</h2>
490
- <p style="font-size:13px; color:var(--muted); margin-top:0.5rem; max-width:46%; line-height:1.6;">
491
- The only orchestrator that works across Claude Code, Codex, Gemini, Ollama, and Aider. Mix models per agent.
492
- </p>
493
- <!-- Heatmap grid -->
494
- <div style="margin-top:1.5rem;">
495
- <div style="display:grid; grid-template-columns: 120px repeat(5,1fr); gap:2px; max-width:680px;">
496
- <!-- Header row -->
497
- <div></div>
498
- <div style="text-align:center; font-size:9px; color:var(--muted); padding:6px; letter-spacing:0.1em;">CLAUDE</div>
499
- <div style="text-align:center; font-size:9px; color:var(--muted); padding:6px; letter-spacing:0.1em;">CODEX</div>
500
- <div style="text-align:center; font-size:9px; color:var(--muted); padding:6px; letter-spacing:0.1em;">GEMINI</div>
501
- <div style="text-align:center; font-size:9px; color:var(--muted); padding:6px; letter-spacing:0.1em;">OLLAMA</div>
502
- <div style="text-align:center; font-size:9px; color:var(--muted); padding:6px; letter-spacing:0.1em;">AIDER</div>
503
- <!-- Row 1: Multi-Agent -->
504
- <div style="font-size:11px; color:var(--text); padding:8px 0; font-weight:600;">Multi-Agent</div>
505
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
506
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
507
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
508
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
509
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
510
- <!-- Row 2: Context Rotation -->
511
- <div style="font-size:11px; color:var(--text); padding:8px 0; font-weight:600;">Ctx Rotation</div>
512
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
513
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
514
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
515
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
516
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
517
- <!-- Row 3: Model Routing -->
518
- <div style="font-size:11px; color:var(--text); padding:8px 0; font-weight:600;">Model Routing</div>
519
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
520
- <div style="background:var(--accent); opacity:0.7; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
521
- <div style="background:var(--accent); opacity:0.7; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
522
- <div style="background:var(--accent); opacity:0.4; padding:8px; text-align:center;"><span style="font-size:12px; opacity:0.6;">&#8212;</span></div>
523
- <div style="background:var(--accent); opacity:0.7; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
524
- <!-- Row 4: Hot Swap -->
525
- <div style="font-size:11px; color:var(--text); padding:8px 0; font-weight:600;">Hot Swap</div>
526
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
527
- <div style="background:var(--accent); opacity:0.15; padding:8px; text-align:center;"><span style="font-size:12px; opacity:0.4;">&#10007;</span></div>
528
- <div style="background:var(--accent); opacity:0.15; padding:8px; text-align:center;"><span style="font-size:12px; opacity:0.4;">&#10007;</span></div>
529
- <div style="background:var(--accent); opacity:0.15; padding:8px; text-align:center;"><span style="font-size:12px; opacity:0.4;">&#10007;</span></div>
530
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
531
- <!-- Row 5: Token Tracking -->
532
- <div style="font-size:11px; color:var(--text); padding:8px 0; font-weight:600;">Token Tracking</div>
533
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
534
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
535
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
536
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
537
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
538
- <!-- Row 6: Federation -->
539
- <div style="font-size:11px; color:var(--text); padding:8px 0; font-weight:600;">Federation</div>
540
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
541
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
542
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
543
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
544
- <div style="background:var(--accent); opacity:0.85; padding:8px; text-align:center;"><span style="font-size:14px;">&#10003;</span></div>
545
- </div>
546
- </div>
547
- </div>
548
- </section>
549
-
550
- <!-- ═══════════════════════════════════════════════════════════
551
- SLIDE 10 — MARKET OPPORTUNITY
552
- ═══════════════════════════════════════════════════════════ -->
553
- <section class="bg-obsidian">
554
- <span class="brand">GROOVE.</span>
555
- <span class="category">MARKET</span>
556
- <div class="slide-content" style="display:flex; align-items:center; padding-top:2rem;">
557
- <div style="max-width:48%;">
558
- <div class="label">MARKET OPPORTUNITY</div>
559
- <h2 style="font-size:36px; margin:0; line-height:1.2;">The AI dev tooling<br>market is exploding.</h2>
560
- <div style="margin-top:1.5rem;">
561
- <div style="margin-bottom:1.2rem;">
562
- <div style="font-size:11px; color:var(--muted); letter-spacing:0.15em; font-weight:700;">TAM</div>
563
- <div style="font-size:28px; color:var(--text); font-weight:700; font-family:Georgia;">$45B</div>
564
- <div style="font-size:11px; color:var(--muted);">AI-assisted software development</div>
565
- </div>
566
- <hr class="divider" style="max-width:200px;">
567
- <div style="margin-bottom:1.2rem;">
568
- <div style="font-size:11px; color:var(--muted); letter-spacing:0.15em; font-weight:700;">SAM</div>
569
- <div style="font-size:28px; color:var(--accent-light); font-weight:700; font-family:Georgia;">$8B</div>
570
- <div style="font-size:11px; color:var(--muted);">AI coding agent orchestration</div>
571
- </div>
572
- <hr class="divider" style="max-width:200px;">
573
- <div>
574
- <div style="font-size:11px; color:var(--muted); letter-spacing:0.15em; font-weight:700;">SOM</div>
575
- <div style="font-size:28px; color:var(--amber); font-weight:700; font-family:Georgia;">$800M</div>
576
- <div style="font-size:11px; color:var(--muted);">Power users on Claude/Codex/Gemini</div>
577
- </div>
578
- </div>
579
- </div>
580
- <!-- Concentric rings -->
581
- <div style="flex:1; display:flex; align-items:center; justify-content:center;">
582
- <svg viewBox="0 0 360 360" style="width:320px;">
583
- <defs>
584
- <filter id="cr-glow"><feGaussianBlur stdDeviation="4" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
585
- </defs>
586
- <circle cx="180" cy="180" r="160" fill="#4338CA" opacity="0.06" stroke="#4338CA" stroke-width="1" stroke-opacity="0.15"/>
587
- <circle cx="180" cy="180" r="105" fill="#4338CA" opacity="0.12" stroke="#6366F1" stroke-width="1" stroke-opacity="0.25"/>
588
- <circle cx="180" cy="180" r="50" fill="#4338CA" opacity="0.25" stroke="#6366F1" stroke-width="2" filter="url(#cr-glow)"/>
589
- <text x="180" y="185" text-anchor="middle" fill="white" font-size="14" font-weight="bold" font-family="Georgia">$800M</text>
590
- <text x="180" y="115" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="12" font-family="Georgia">$8B</text>
591
- <text x="180" y="48" text-anchor="middle" fill="rgba(255,255,255,0.4)" font-size="12" font-family="Georgia">$45B</text>
592
- </svg>
593
- </div>
594
- </div>
595
- </section>
596
-
597
- <!-- ═══════════════════════════════════════════════════════════
598
- SLIDE 11 — STRATEGIC MOAT (PROVIDER ALIGNMENT)
599
- ═══════════════════════════════════════════════════════════ -->
600
- <section class="bg-deep">
601
- <span class="brand">GROOVE.</span>
602
- <span class="category">STRATEGY</span>
603
- <div class="slide-content" style="padding-top:2.5rem;">
604
- <div class="label">THE UNFORKABLE MOAT</div>
605
- <h2 style="font-size:34px; margin:0; line-height:1.2; max-width:55%;">Harnesses get banned.<br>GROOVE gets partnered.</h2>
606
- <!-- Before / After split -->
607
- <div style="display:flex; gap:0; margin-top:2rem;">
608
- <!-- Before: Harnesses -->
609
- <div style="flex:1; padding:1.5rem; border-right:1px solid rgba(255,255,255,0.06);">
610
- <div style="font-size:11px; color:#E11D48; font-weight:700; letter-spacing:0.2em; margin-bottom:0.75rem;">HARNESSES</div>
611
- <svg viewBox="0 0 200 120" style="width:100%; margin-bottom:0.75rem;">
612
- <!-- Chaotic scattered dots -->
613
- <circle cx="30" cy="40" r="5" fill="#E11D48" opacity="0.5"/><circle cx="80" cy="20" r="3" fill="#E11D48" opacity="0.3"/>
614
- <circle cx="150" cy="60" r="6" fill="#E11D48" opacity="0.4"/><circle cx="60" cy="80" r="4" fill="#E11D48" opacity="0.35"/>
615
- <circle cx="120" cy="35" r="3" fill="#E11D48" opacity="0.25"/><circle cx="170" cy="90" r="5" fill="#E11D48" opacity="0.45"/>
616
- <circle cx="40" cy="100" r="4" fill="#E11D48" opacity="0.3"/><circle cx="100" cy="70" r="3" fill="#E11D48" opacity="0.2"/>
617
- <circle cx="140" cy="100" r="5" fill="#E11D48" opacity="0.4"/><circle cx="20" cy="70" r="3" fill="#E11D48" opacity="0.25"/>
618
- <!-- Crossing lines = chaos -->
619
- <line x1="30" y1="40" x2="150" y2="60" stroke="#E11D48" stroke-width="0.5" opacity="0.2"/>
620
- <line x1="80" y1="20" x2="60" y2="80" stroke="#E11D48" stroke-width="0.5" opacity="0.2"/>
621
- <line x1="120" y1="35" x2="40" y2="100" stroke="#E11D48" stroke-width="0.5" opacity="0.2"/>
622
- </svg>
623
- <div style="font-size:12px; color:var(--muted); line-height:1.5;">
624
- Burn tokens faster<br>
625
- <span style="color:#E11D48;">Adversarial</span> to provider economics<br>
626
- Result: <span style="color:#E11D48; font-weight:700;">Banned</span>
627
- </div>
628
- </div>
629
- <!-- After: GROOVE -->
630
- <div style="flex:1; padding:1.5rem;">
631
- <div style="font-size:11px; color:#6366F1; font-weight:700; letter-spacing:0.2em; margin-bottom:0.75rem;">GROOVE</div>
632
- <svg viewBox="0 0 200 120" style="width:100%; margin-bottom:0.75rem;">
633
- <!-- Organized nodes -->
634
- <circle cx="40" cy="30" r="8" fill="rgba(255,255,255,0.04)" stroke="#6366F1" stroke-width="1.5"/>
635
- <circle cx="100" cy="30" r="8" fill="rgba(255,255,255,0.04)" stroke="#6366F1" stroke-width="1.5"/>
636
- <circle cx="160" cy="30" r="8" fill="rgba(255,255,255,0.04)" stroke="#6366F1" stroke-width="1.5"/>
637
- <circle cx="70" cy="70" r="8" fill="rgba(255,255,255,0.04)" stroke="#818CF8" stroke-width="1.5"/>
638
- <circle cx="130" cy="70" r="8" fill="rgba(255,255,255,0.04)" stroke="#818CF8" stroke-width="1.5"/>
639
- <circle cx="100" cy="105" r="10" fill="rgba(255,255,255,0.06)" stroke="#4338CA" stroke-width="2" style="filter:drop-shadow(0 0 6px #4338CA)"/>
640
- <!-- Clean connections -->
641
- <line x1="40" y1="38" x2="70" y2="62" stroke="#6366F1" stroke-width="1" opacity="0.4"/>
642
- <line x1="100" y1="38" x2="70" y2="62" stroke="#6366F1" stroke-width="1" opacity="0.4"/>
643
- <line x1="100" y1="38" x2="130" y2="62" stroke="#6366F1" stroke-width="1" opacity="0.4"/>
644
- <line x1="160" y1="38" x2="130" y2="62" stroke="#6366F1" stroke-width="1" opacity="0.4"/>
645
- <line x1="70" y1="78" x2="100" y2="95" stroke="#818CF8" stroke-width="1" opacity="0.4"/>
646
- <line x1="130" y1="78" x2="100" y2="95" stroke="#818CF8" stroke-width="1" opacity="0.4"/>
647
- </svg>
648
- <div style="font-size:12px; color:var(--muted); line-height:1.5;">
649
- Accomplish more with fewer tokens<br>
650
- <span style="color:#6366F1;">Aligned</span> with provider economics<br>
651
- Result: <span style="color:#6366F1; font-weight:700;">Partnered</span>
652
- </div>
653
- </div>
654
- </div>
655
- </div>
656
- </section>
657
-
658
- <!-- ═══════════════════════════════════════════════════════════
659
- SLIDE 12 — PRODUCT DEPTH
660
- ═══════════════════════════════════════════════════════════ -->
661
- <section class="bg-midnight">
662
- <span class="brand">GROOVE.</span>
663
- <span class="category">PRODUCT</span>
664
- <div class="slide-content" style="padding-top:2.5rem;">
665
- <div class="label">WHAT'S BUILT</div>
666
- <h2 style="font-size:34px; margin:0; line-height:1.2; max-width:55%;">Production-grade.<br>Shipping today.</h2>
667
- <div style="display:flex; gap:3rem; margin-top:1.5rem;">
668
- <div style="flex:1;">
669
- <!-- Vertical metrics with accent borders -->
670
- <div class="accent-block" style="margin-bottom:1rem; border-color:#6366F1;">
671
- <div style="font-size:32px; color:var(--accent-light); font-weight:700; font-family:Georgia;">70+</div>
672
- <div style="font-size:12px; color:var(--muted);">REST API Endpoints</div>
673
- </div>
674
- <div class="accent-block" style="margin-bottom:1rem; border-color:#818CF8;">
675
- <div style="font-size:32px; color:#818CF8; font-weight:700; font-family:Georgia;">59</div>
676
- <div style="font-size:12px; color:var(--muted);">GUI Components</div>
677
- </div>
678
- <div class="accent-block" style="margin-bottom:1rem; border-color:#A78BFA;">
679
- <div style="font-size:32px; color:#A78BFA; font-weight:700; font-family:Georgia;">42</div>
680
- <div style="font-size:12px; color:var(--muted);">Daemon Source Files</div>
681
- </div>
682
- <div class="accent-block" style="border-color:#D97706;">
683
- <div style="font-size:32px; color:var(--amber); font-weight:700; font-family:Georgia;">137</div>
684
- <div style="font-size:12px; color:var(--muted);">Automated Tests</div>
685
- </div>
686
- </div>
687
- <!-- Right: bar chart -->
688
- <div style="flex:1; display:flex; align-items:center; justify-content:center;">
689
- <svg viewBox="0 0 300 240" style="width:280px;">
690
- <defs>
691
- <linearGradient id="bar-prod" x1="0" y1="1" x2="0" y2="0">
692
- <stop offset="0%" stop-color="#4338CA" stop-opacity="0.1"/>
693
- <stop offset="100%" stop-color="#6366F1" stop-opacity="0.8"/>
694
- </linearGradient>
695
- </defs>
696
- <!-- Horizontal bars -->
697
- <rect x="90" y="15" width="180" height="28" rx="3" fill="url(#bar-prod)" style="filter:drop-shadow(0 0 8px rgba(67,56,202,0.3))"/>
698
- <rect x="90" y="55" width="150" height="28" rx="3" fill="url(#bar-prod)" style="filter:drop-shadow(0 0 6px rgba(67,56,202,0.2))"/>
699
- <rect x="90" y="95" width="110" height="28" rx="3" fill="url(#bar-prod)" style="filter:drop-shadow(0 0 6px rgba(67,56,202,0.2))"/>
700
- <rect x="90" y="135" width="85" height="28" rx="3" fill="url(#bar-prod)" style="filter:drop-shadow(0 0 6px rgba(67,56,202,0.2))"/>
701
- <rect x="90" y="175" width="55" height="28" rx="3" fill="url(#bar-prod)" style="filter:drop-shadow(0 0 6px rgba(67,56,202,0.2))"/>
702
- <!-- Labels -->
703
- <text x="85" y="34" text-anchor="end" fill="rgba(255,255,255,0.5)" font-size="10" font-family="Arial">API</text>
704
- <text x="85" y="74" text-anchor="end" fill="rgba(255,255,255,0.5)" font-size="10" font-family="Arial">GUI</text>
705
- <text x="85" y="114" text-anchor="end" fill="rgba(255,255,255,0.5)" font-size="10" font-family="Arial">Daemon</text>
706
- <text x="85" y="154" text-anchor="end" fill="rgba(255,255,255,0.5)" font-size="10" font-family="Arial">CLI</text>
707
- <text x="85" y="194" text-anchor="end" fill="rgba(255,255,255,0.5)" font-size="10" font-family="Arial">Tests</text>
708
- <!-- Values -->
709
- <text x="275" y="34" fill="rgba(255,255,255,0.6)" font-size="11" font-family="Georgia" font-weight="700">70+</text>
710
- <text x="245" y="74" fill="rgba(255,255,255,0.6)" font-size="11" font-family="Georgia" font-weight="700">59</text>
711
- <text x="205" y="114" fill="rgba(255,255,255,0.6)" font-size="11" font-family="Georgia" font-weight="700">42</text>
712
- <text x="180" y="154" fill="rgba(255,255,255,0.6)" font-size="11" font-family="Georgia" font-weight="700">21+</text>
713
- <text x="150" y="194" fill="rgba(255,255,255,0.6)" font-size="11" font-family="Georgia" font-weight="700">137</text>
714
- </svg>
715
- </div>
716
- </div>
717
- </div>
718
- </section>
719
-
720
- <!-- ═══════════════════════════════════════════════════════════
721
- SLIDE 13 — BUSINESS MODEL
722
- ═══════════════════════════════════════════════════════════ -->
723
- <section class="bg-ink">
724
- <span class="brand">GROOVE.</span>
725
- <span class="category">BUSINESS MODEL</span>
726
- <div class="slide-content" style="padding-top:2.5rem;">
727
- <div class="label">MONETIZATION</div>
728
- <h2 style="font-size:34px; margin:0; line-height:1.2; max-width:55%;">Free forever at the core.<br>Revenue above.</h2>
729
- <div style="display:flex; gap:0; margin-top:2rem;">
730
- <!-- Free tier -->
731
- <div style="flex:1; padding:0 1.5rem 0 0;">
732
- <div style="font-size:14px; color:var(--text); font-weight:700; margin-bottom:0.25rem;">Free</div>
733
- <div style="font-size:36px; color:var(--muted); font-weight:700; font-family:Georgia;">$0</div>
734
- <hr class="divider">
735
- <div style="font-size:11px; color:var(--muted); line-height:1.8;">
736
- 3 concurrent agents<br>Basic GUI<br>Community support<br>Manual rotation
737
- </div>
738
- </div>
739
- <div style="width:1px; background:rgba(255,255,255,0.06);"></div>
740
- <!-- Pro tier (highlighted) -->
741
- <div style="flex:1; padding:0 1.5rem; background:rgba(255,255,255,0.02);">
742
- <div style="font-size:14px; color:var(--accent-light); font-weight:700; margin-bottom:0.25rem;">Pro</div>
743
- <div style="font-size:36px; color:var(--accent-light); font-weight:700; font-family:Georgia;">$20<span style="font-size:16px; color:var(--muted);">/mo</span></div>
744
- <hr class="divider">
745
- <div style="font-size:11px; color:var(--muted); line-height:1.8;">
746
- Unlimited agents<br>Adaptive auto-rotation<br>Full model routing<br>Token dashboard<br>The Journalist
747
- </div>
748
- </div>
749
- <div style="width:1px; background:rgba(255,255,255,0.06);"></div>
750
- <!-- Team tier -->
751
- <div style="flex:1; padding:0 0 0 1.5rem;">
752
- <div style="font-size:14px; color:var(--text); font-weight:700; margin-bottom:0.25rem;">Team</div>
753
- <div style="font-size:36px; color:var(--text); font-weight:700; font-family:Georgia;">$40<span style="font-size:16px; color:var(--muted);">/user</span></div>
754
- <hr class="divider">
755
- <div style="font-size:11px; color:var(--muted); line-height:1.8;">
756
- Shared registry<br>Admin + budgets<br>Audit + compliance<br>Team-wide synthesis<br>Federation
757
- </div>
758
- </div>
759
- </div>
760
- <p style="font-size:12px; color:var(--muted); margin-top:1.5rem; font-style:italic; font-family:Georgia;">
761
- "You saved $284 this month. GROOVE Pro is $20."
762
- </p>
763
- </div>
764
- </section>
765
-
766
- <!-- ═══════════════════════════════════════════════════════════
767
- SLIDE 14 — CTA / CLOSING
768
- ═══════════════════════════════════════════════════════════ -->
769
- <section class="bg-steel">
770
- <div class="slide-content" style="display:flex; align-items:center; justify-content:space-between;">
771
- <div style="max-width:55%; padding-top:1rem;">
772
- <div class="label" style="margin-bottom:1.5rem;">THE OPPORTUNITY</div>
773
- <h1 style="font-size:48px; margin:0; line-height:1.1; color:#F5F5F5; font-weight:700;">The orchestration layer<br>the industry needs.</h1>
774
- <p style="font-size:16px; color:var(--muted); margin-top:1.25rem; line-height:1.6; max-width:400px;">
775
- Multi-provider. Adaptive intelligence.<br>
776
- Provider-aligned economics.<br>
777
- Shipping today.
778
- </p>
779
- <hr class="divider" style="max-width:280px; margin-top:2rem;">
780
- <div style="display:flex; gap:2rem; align-items:center;">
781
- <div>
782
- <div style="font-size:13px; color:var(--text); font-weight:700;">hello@groovedev.ai</div>
783
- <div style="font-size:11px; color:var(--muted); margin-top:2px;">groovedev.ai</div>
784
- </div>
785
- <div style="font-size:13px; color:var(--accent-light); font-weight:700; font-family:Georgia;">GROOVE.</div>
786
- </div>
787
- </div>
788
- <div style="position:absolute; right:-60px; top:-40px;">
789
- <svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" style="width:420px; height:420px; opacity:0.85;">
790
- <defs>
791
- <radialGradient id="orb-end" cx="35%" cy="30%" r="60%">
792
- <stop offset="0%" stop-color="#6366F1" stop-opacity="0.5"/>
793
- <stop offset="40%" stop-color="#4338CA" stop-opacity="0.3"/>
794
- <stop offset="100%" stop-color="#1E1B4B" stop-opacity="0.05"/>
795
- </radialGradient>
796
- <radialGradient id="hl-end" cx="30%" cy="25%" r="25%">
797
- <stop offset="0%" stop-color="#fff" stop-opacity="0.25"/>
798
- <stop offset="100%" stop-color="#fff" stop-opacity="0"/>
799
- </radialGradient>
800
- <filter id="glow-end"><feGaussianBlur stdDeviation="20" result="blur"/><feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
801
- </defs>
802
- <circle cx="250" cy="250" r="220" fill="url(#orb-end)" filter="url(#glow-end)"/>
803
- <circle cx="250" cy="250" r="220" fill="url(#hl-end)"/>
804
- <ellipse cx="250" cy="430" rx="180" ry="20" fill="#000" opacity="0.15" filter="url(#glow-end)"/>
805
- </svg>
806
- </div>
807
- </div>
808
- </section>
809
-
810
- </div></div>
811
-
812
- <!-- Download button -->
813
- <a href="./deck.pptx" download style="position:fixed;bottom:2rem;right:2rem;z-index:9999;
814
- background:rgba(255,255,255,0.08);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
815
- border:1px solid rgba(255,255,255,0.12);color:#fff;padding:0.75rem 1.5rem;border-radius:12px;
816
- font:500 14px/1 system-ui,sans-serif;text-decoration:none;letter-spacing:0.03em;
817
- transition:all 0.2s;box-shadow:0 8px 32px rgba(0,0,0,0.4);"
818
- onmouseover="this.style.background='rgba(255,255,255,0.16)'"
819
- onmouseout="this.style.background='rgba(255,255,255,0.08)'"
820
- >&#8595; Download PPTX</a>
821
-
822
- <script src="https://cdn.jsdelivr.net/npm/reveal.js@5/dist/reveal.js"></script>
823
- <script>Reveal.initialize({ hash: true, transition: 'fade', backgroundTransition: 'fade', width: 960, height: 540 });</script>
824
- </body>
825
- </html>