groove-dev 0.26.39 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/CLAUDE.md +24 -19
- package/node_modules/@groove-dev/cli/package.json +1 -1
- package/node_modules/@groove-dev/daemon/integrations-registry.json +548 -0
- package/node_modules/@groove-dev/daemon/package.json +1 -1
- package/node_modules/@groove-dev/daemon/src/api.js +172 -4
- package/node_modules/@groove-dev/daemon/src/classifier.js +20 -1
- package/node_modules/@groove-dev/daemon/src/firstrun.js +14 -1
- package/node_modules/@groove-dev/daemon/src/gateways/manager.js +2 -2
- package/node_modules/@groove-dev/daemon/src/index.js +3 -1
- package/node_modules/@groove-dev/daemon/src/introducer.js +56 -5
- package/node_modules/@groove-dev/daemon/src/journalist.js +43 -1
- package/node_modules/@groove-dev/daemon/src/lockmanager.js +60 -0
- package/node_modules/@groove-dev/daemon/src/mcp-manager.js +2 -1
- package/node_modules/@groove-dev/daemon/src/memory.js +370 -0
- package/node_modules/@groove-dev/daemon/src/pm.js +1 -1
- package/node_modules/@groove-dev/daemon/src/process.js +20 -1
- package/node_modules/@groove-dev/daemon/src/rotator.js +155 -5
- package/node_modules/@groove-dev/daemon/src/router.js +43 -0
- package/node_modules/@groove-dev/daemon/src/tokentracker.js +62 -8
- package/node_modules/@groove-dev/daemon/src/validate.js +0 -13
- package/node_modules/@groove-dev/daemon/test/lockmanager.test.js +64 -0
- package/node_modules/@groove-dev/daemon/test/memory.test.js +252 -0
- package/node_modules/@groove-dev/daemon/test/rotator.test.js +108 -0
- package/node_modules/@groove-dev/daemon/test/router.test.js +64 -0
- package/node_modules/@groove-dev/daemon/test/tokentracker.test.js +78 -0
- package/node_modules/@groove-dev/gui/dist/assets/index-DjORRpF0.css +1 -0
- package/node_modules/@groove-dev/gui/dist/assets/index-eCrVowF0.js +652 -0
- package/node_modules/@groove-dev/gui/dist/index.html +2 -2
- package/node_modules/@groove-dev/gui/package.json +1 -4
- package/node_modules/@groove-dev/gui/src/components/agents/spawn-wizard.jsx +18 -0
- package/node_modules/@groove-dev/gui/src/components/dashboard/cache-ring.jsx +6 -2
- package/node_modules/@groove-dev/gui/src/components/dashboard/intel-panel.jsx +251 -8
- package/node_modules/@groove-dev/gui/src/components/dashboard/team-burn-panel.jsx +55 -0
- package/node_modules/@groove-dev/gui/src/components/marketplace/marketplace-card.jsx +22 -4
- package/node_modules/@groove-dev/gui/src/lib/format.js +0 -6
- package/node_modules/@groove-dev/gui/src/lib/hooks/use-dashboard.js +18 -1
- package/node_modules/@groove-dev/gui/src/stores/groove.js +0 -2
- package/node_modules/@groove-dev/gui/src/views/dashboard.jsx +9 -2
- package/node_modules/@groove-dev/gui/src/views/marketplace.jsx +103 -77
- package/package.json +2 -8
- package/packages/cli/package.json +1 -1
- package/packages/daemon/integrations-registry.json +548 -0
- package/packages/daemon/package.json +1 -1
- package/packages/daemon/src/api.js +172 -4
- package/packages/daemon/src/classifier.js +20 -1
- package/packages/daemon/src/firstrun.js +14 -1
- package/packages/daemon/src/gateways/manager.js +2 -2
- package/packages/daemon/src/index.js +3 -1
- package/packages/daemon/src/introducer.js +56 -5
- package/packages/daemon/src/journalist.js +43 -1
- package/packages/daemon/src/lockmanager.js +60 -0
- package/packages/daemon/src/mcp-manager.js +2 -1
- package/packages/daemon/src/memory.js +370 -0
- package/packages/daemon/src/pm.js +1 -1
- package/packages/daemon/src/process.js +20 -1
- package/packages/daemon/src/rotator.js +155 -5
- package/packages/daemon/src/router.js +43 -0
- package/packages/daemon/src/tokentracker.js +62 -8
- package/packages/daemon/src/validate.js +0 -13
- package/packages/gui/dist/assets/index-DjORRpF0.css +1 -0
- package/packages/gui/dist/assets/index-eCrVowF0.js +652 -0
- package/packages/gui/dist/index.html +2 -2
- package/packages/gui/package.json +1 -4
- package/packages/gui/src/components/agents/spawn-wizard.jsx +18 -0
- package/packages/gui/src/components/dashboard/cache-ring.jsx +6 -2
- package/packages/gui/src/components/dashboard/intel-panel.jsx +251 -8
- package/packages/gui/src/components/dashboard/team-burn-panel.jsx +55 -0
- package/packages/gui/src/components/marketplace/marketplace-card.jsx +22 -4
- package/packages/gui/src/lib/format.js +0 -6
- package/packages/gui/src/lib/hooks/use-dashboard.js +18 -1
- package/packages/gui/src/stores/groove.js +0 -2
- package/packages/gui/src/views/dashboard.jsx +9 -2
- package/packages/gui/src/views/marketplace.jsx +103 -77
- package/docs-manager/DOCS-WORKFLOW.md +0 -176
- package/node_modules/@groove-dev/gui/dist/assets/index-BkY43sei.css +0 -1
- package/node_modules/@groove-dev/gui/dist/assets/index-DmKZLrXU.js +0 -652
- package/node_modules/@groove-dev/gui/dist/groove-logo-short.png +0 -0
- package/node_modules/@groove-dev/gui/dist/groove-logo.png +0 -0
- package/node_modules/@groove-dev/gui/public/groove-logo-short.png +0 -0
- package/node_modules/@groove-dev/gui/public/groove-logo.png +0 -0
- package/node_modules/@groove-dev/gui/src/components/ui/dropdown-menu.jsx +0 -60
- package/node_modules/@groove-dev/gui/src/lib/hooks/use-media-query.js +0 -18
- package/node_modules/@radix-ui/react-dropdown-menu/LICENSE +0 -21
- package/node_modules/@radix-ui/react-dropdown-menu/README.md +0 -3
- package/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts +0 -97
- package/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.ts +0 -97
- package/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +0 -337
- package/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs +0 -305
- package/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-dropdown-menu/package.json +0 -75
- package/node_modules/@radix-ui/react-popover/LICENSE +0 -21
- package/node_modules/@radix-ui/react-popover/README.md +0 -3
- package/node_modules/@radix-ui/react-popover/dist/index.d.mts +0 -85
- package/node_modules/@radix-ui/react-popover/dist/index.d.ts +0 -85
- package/node_modules/@radix-ui/react-popover/dist/index.js +0 -352
- package/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-popover/dist/index.mjs +0 -320
- package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-popover/package.json +0 -82
- package/node_modules/@radix-ui/react-separator/LICENSE +0 -21
- package/node_modules/@radix-ui/react-separator/README.md +0 -3
- package/node_modules/@radix-ui/react-separator/dist/index.d.mts +0 -21
- package/node_modules/@radix-ui/react-separator/dist/index.d.ts +0 -21
- package/node_modules/@radix-ui/react-separator/dist/index.js +0 -65
- package/node_modules/@radix-ui/react-separator/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-separator/dist/index.mjs +0 -32
- package/node_modules/@radix-ui/react-separator/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/LICENSE +0 -21
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/README.md +0 -3
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.mts +0 -52
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.ts +0 -52
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js +0 -80
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -47
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/package.json +0 -69
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/LICENSE +0 -21
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/README.md +0 -3
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.d.mts +0 -22
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.d.ts +0 -22
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js +0 -152
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.mjs +0 -119
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/package.json +0 -64
- package/node_modules/@radix-ui/react-separator/package.json +0 -69
- package/packages/gui/dist/assets/index-BkY43sei.css +0 -1
- package/packages/gui/dist/assets/index-DmKZLrXU.js +0 -652
- package/packages/gui/dist/groove-logo-short.png +0 -0
- package/packages/gui/dist/groove-logo.png +0 -0
- package/packages/gui/public/groove-logo-short.png +0 -0
- package/packages/gui/public/groove-logo.png +0 -0
- package/packages/gui/src/components/ui/dropdown-menu.jsx +0 -60
- package/packages/gui/src/lib/hooks/use-media-query.js +0 -18
- package/slides/convert-slides.js +0 -1120
- package/slides/deck.pptx +0 -0
- package/slides/index.html +0 -825
- package/slides/node_modules/.package-lock.json +0 -527
- package/slides/node_modules/@types/node/LICENSE +0 -21
- package/slides/node_modules/@types/node/README.md +0 -15
- package/slides/node_modules/@types/node/assert/strict.d.ts +0 -111
- package/slides/node_modules/@types/node/assert.d.ts +0 -1078
- package/slides/node_modules/@types/node/async_hooks.d.ts +0 -603
- package/slides/node_modules/@types/node/buffer.buffer.d.ts +0 -472
- package/slides/node_modules/@types/node/buffer.d.ts +0 -1934
- package/slides/node_modules/@types/node/child_process.d.ts +0 -1476
- package/slides/node_modules/@types/node/cluster.d.ts +0 -578
- package/slides/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
- package/slides/node_modules/@types/node/compatibility/index.d.ts +0 -9
- package/slides/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
- package/slides/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
- package/slides/node_modules/@types/node/console.d.ts +0 -452
- package/slides/node_modules/@types/node/constants.d.ts +0 -21
- package/slides/node_modules/@types/node/crypto.d.ts +0 -4545
- package/slides/node_modules/@types/node/dgram.d.ts +0 -600
- package/slides/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
- package/slides/node_modules/@types/node/dns/promises.d.ts +0 -503
- package/slides/node_modules/@types/node/dns.d.ts +0 -923
- package/slides/node_modules/@types/node/domain.d.ts +0 -170
- package/slides/node_modules/@types/node/events.d.ts +0 -976
- package/slides/node_modules/@types/node/fs/promises.d.ts +0 -1295
- package/slides/node_modules/@types/node/fs.d.ts +0 -4461
- package/slides/node_modules/@types/node/globals.d.ts +0 -172
- package/slides/node_modules/@types/node/globals.typedarray.d.ts +0 -38
- package/slides/node_modules/@types/node/http.d.ts +0 -2089
- package/slides/node_modules/@types/node/http2.d.ts +0 -2644
- package/slides/node_modules/@types/node/https.d.ts +0 -579
- package/slides/node_modules/@types/node/index.d.ts +0 -97
- package/slides/node_modules/@types/node/inspector.d.ts +0 -253
- package/slides/node_modules/@types/node/inspector.generated.d.ts +0 -4052
- package/slides/node_modules/@types/node/module.d.ts +0 -891
- package/slides/node_modules/@types/node/net.d.ts +0 -1076
- package/slides/node_modules/@types/node/os.d.ts +0 -506
- package/slides/node_modules/@types/node/package.json +0 -145
- package/slides/node_modules/@types/node/path.d.ts +0 -200
- package/slides/node_modules/@types/node/perf_hooks.d.ts +0 -968
- package/slides/node_modules/@types/node/process.d.ts +0 -2084
- package/slides/node_modules/@types/node/punycode.d.ts +0 -117
- package/slides/node_modules/@types/node/querystring.d.ts +0 -152
- package/slides/node_modules/@types/node/readline/promises.d.ts +0 -161
- package/slides/node_modules/@types/node/readline.d.ts +0 -594
- package/slides/node_modules/@types/node/repl.d.ts +0 -428
- package/slides/node_modules/@types/node/sea.d.ts +0 -153
- package/slides/node_modules/@types/node/sqlite.d.ts +0 -721
- package/slides/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/slides/node_modules/@types/node/stream/promises.d.ts +0 -90
- package/slides/node_modules/@types/node/stream/web.d.ts +0 -622
- package/slides/node_modules/@types/node/stream.d.ts +0 -1687
- package/slides/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/slides/node_modules/@types/node/test.d.ts +0 -2163
- package/slides/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/slides/node_modules/@types/node/timers.d.ts +0 -287
- package/slides/node_modules/@types/node/tls.d.ts +0 -1319
- package/slides/node_modules/@types/node/trace_events.d.ts +0 -197
- package/slides/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
- package/slides/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
- package/slides/node_modules/@types/node/ts5.6/index.d.ts +0 -97
- package/slides/node_modules/@types/node/tty.d.ts +0 -208
- package/slides/node_modules/@types/node/url.d.ts +0 -984
- package/slides/node_modules/@types/node/util.d.ts +0 -2606
- package/slides/node_modules/@types/node/v8.d.ts +0 -920
- package/slides/node_modules/@types/node/vm.d.ts +0 -1000
- package/slides/node_modules/@types/node/wasi.d.ts +0 -181
- package/slides/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
- package/slides/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/slides/node_modules/@types/node/web-globals/events.d.ts +0 -97
- package/slides/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
- package/slides/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
- package/slides/node_modules/@types/node/web-globals/storage.d.ts +0 -24
- package/slides/node_modules/@types/node/worker_threads.d.ts +0 -784
- package/slides/node_modules/@types/node/zlib.d.ts +0 -747
- package/slides/node_modules/base64-js/LICENSE +0 -21
- package/slides/node_modules/base64-js/README.md +0 -34
- package/slides/node_modules/base64-js/base64js.min.js +0 -1
- package/slides/node_modules/base64-js/index.d.ts +0 -3
- package/slides/node_modules/base64-js/index.js +0 -150
- package/slides/node_modules/base64-js/package.json +0 -47
- package/slides/node_modules/bl/.travis.yml +0 -17
- package/slides/node_modules/bl/BufferList.js +0 -396
- package/slides/node_modules/bl/LICENSE.md +0 -13
- package/slides/node_modules/bl/README.md +0 -247
- package/slides/node_modules/bl/bl.js +0 -84
- package/slides/node_modules/bl/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/slides/node_modules/bl/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/slides/node_modules/bl/node_modules/readable-stream/LICENSE +0 -47
- package/slides/node_modules/bl/node_modules/readable-stream/README.md +0 -106
- package/slides/node_modules/bl/node_modules/readable-stream/errors-browser.js +0 -127
- package/slides/node_modules/bl/node_modules/readable-stream/errors.js +0 -116
- package/slides/node_modules/bl/node_modules/readable-stream/experimentalWarning.js +0 -17
- package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
- package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
- package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
- package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js +0 -190
- package/slides/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js +0 -641
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/slides/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/slides/node_modules/bl/node_modules/readable-stream/package.json +0 -68
- package/slides/node_modules/bl/node_modules/readable-stream/readable-browser.js +0 -9
- package/slides/node_modules/bl/node_modules/readable-stream/readable.js +0 -16
- package/slides/node_modules/bl/package.json +0 -37
- package/slides/node_modules/bl/test/convert.js +0 -21
- package/slides/node_modules/bl/test/indexOf.js +0 -492
- package/slides/node_modules/bl/test/isBufferList.js +0 -32
- package/slides/node_modules/bl/test/test.js +0 -869
- package/slides/node_modules/buffer/AUTHORS.md +0 -70
- package/slides/node_modules/buffer/LICENSE +0 -21
- package/slides/node_modules/buffer/README.md +0 -410
- package/slides/node_modules/buffer/index.d.ts +0 -186
- package/slides/node_modules/buffer/index.js +0 -1817
- package/slides/node_modules/buffer/package.json +0 -96
- package/slides/node_modules/canvas/Readme.md +0 -657
- package/slides/node_modules/canvas/binding.gyp +0 -229
- package/slides/node_modules/canvas/browser.js +0 -31
- package/slides/node_modules/canvas/build/Makefile +0 -347
- package/slides/node_modules/canvas/build/Release/canvas.node +0 -0
- package/slides/node_modules/canvas/build/Release/libX11.6.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libXau.6.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libXdmcp.6.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libXext.6.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libXrender.1.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libcairo-gobject.2.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libcairo.2.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libdatrie.1.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libfontconfig.1.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libfreetype.6.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libfribidi.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libgdk_pixbuf-2.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libgif.7.2.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libgio-2.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libglib-2.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libgmodule-2.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libgobject-2.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libgraphite2.3.2.1.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libharfbuzz.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libintl.8.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libjpeg.8.3.2.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libpango-1.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libpangocairo-1.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libpangoft2-1.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libpcre2-8.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libpixman-1.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libpng16.16.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/librsvg-2.2.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libthai.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libxcb-render.0.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libxcb-shm.0.0.0.dylib +0 -0
- package/slides/node_modules/canvas/build/Release/libxcb.1.1.0.dylib +0 -0
- package/slides/node_modules/canvas/build/binding.Makefile +0 -6
- package/slides/node_modules/canvas/build/canvas.target.mk +0 -299
- package/slides/node_modules/canvas/build/gyp-mac-tool +0 -766
- package/slides/node_modules/canvas/index.d.ts +0 -507
- package/slides/node_modules/canvas/index.js +0 -94
- package/slides/node_modules/canvas/lib/DOMMatrix.js +0 -678
- package/slides/node_modules/canvas/lib/bindings.js +0 -43
- package/slides/node_modules/canvas/lib/canvas.js +0 -113
- package/slides/node_modules/canvas/lib/context2d.js +0 -11
- package/slides/node_modules/canvas/lib/image.js +0 -97
- package/slides/node_modules/canvas/lib/jpegstream.js +0 -41
- package/slides/node_modules/canvas/lib/pattern.js +0 -15
- package/slides/node_modules/canvas/lib/pdfstream.js +0 -35
- package/slides/node_modules/canvas/lib/pngstream.js +0 -42
- package/slides/node_modules/canvas/package.json +0 -71
- package/slides/node_modules/canvas/src/Backends.h +0 -9
- package/slides/node_modules/canvas/src/Canvas.cc +0 -1026
- package/slides/node_modules/canvas/src/Canvas.h +0 -128
- package/slides/node_modules/canvas/src/CanvasError.h +0 -37
- package/slides/node_modules/canvas/src/CanvasGradient.cc +0 -113
- package/slides/node_modules/canvas/src/CanvasGradient.h +0 -20
- package/slides/node_modules/canvas/src/CanvasPattern.cc +0 -129
- package/slides/node_modules/canvas/src/CanvasPattern.h +0 -33
- package/slides/node_modules/canvas/src/CanvasRenderingContext2d.cc +0 -3527
- package/slides/node_modules/canvas/src/CanvasRenderingContext2d.h +0 -238
- package/slides/node_modules/canvas/src/CharData.h +0 -233
- package/slides/node_modules/canvas/src/FontParser.cc +0 -605
- package/slides/node_modules/canvas/src/FontParser.h +0 -115
- package/slides/node_modules/canvas/src/Image.cc +0 -1719
- package/slides/node_modules/canvas/src/Image.h +0 -146
- package/slides/node_modules/canvas/src/ImageData.cc +0 -138
- package/slides/node_modules/canvas/src/ImageData.h +0 -26
- package/slides/node_modules/canvas/src/InstanceData.h +0 -12
- package/slides/node_modules/canvas/src/JPEGStream.h +0 -157
- package/slides/node_modules/canvas/src/PNG.h +0 -292
- package/slides/node_modules/canvas/src/Point.h +0 -11
- package/slides/node_modules/canvas/src/Util.h +0 -9
- package/slides/node_modules/canvas/src/bmp/BMPParser.cc +0 -459
- package/slides/node_modules/canvas/src/bmp/BMPParser.h +0 -60
- package/slides/node_modules/canvas/src/bmp/LICENSE.md +0 -24
- package/slides/node_modules/canvas/src/closure.cc +0 -52
- package/slides/node_modules/canvas/src/closure.h +0 -98
- package/slides/node_modules/canvas/src/color.cc +0 -796
- package/slides/node_modules/canvas/src/color.h +0 -30
- package/slides/node_modules/canvas/src/dll_visibility.h +0 -20
- package/slides/node_modules/canvas/src/init.cc +0 -114
- package/slides/node_modules/canvas/src/register_font.cc +0 -352
- package/slides/node_modules/canvas/src/register_font.h +0 -7
- package/slides/node_modules/canvas/util/has_lib.js +0 -119
- package/slides/node_modules/canvas/util/win_jpeg_lookup.js +0 -21
- package/slides/node_modules/chownr/LICENSE +0 -15
- package/slides/node_modules/chownr/README.md +0 -3
- package/slides/node_modules/chownr/chownr.js +0 -167
- package/slides/node_modules/chownr/package.json +0 -29
- package/slides/node_modules/core-util-is/LICENSE +0 -19
- package/slides/node_modules/core-util-is/README.md +0 -3
- package/slides/node_modules/core-util-is/lib/util.js +0 -107
- package/slides/node_modules/core-util-is/package.json +0 -38
- package/slides/node_modules/decompress-response/index.d.ts +0 -22
- package/slides/node_modules/decompress-response/index.js +0 -58
- package/slides/node_modules/decompress-response/license +0 -9
- package/slides/node_modules/decompress-response/package.json +0 -56
- package/slides/node_modules/decompress-response/readme.md +0 -48
- package/slides/node_modules/deep-extend/CHANGELOG.md +0 -46
- package/slides/node_modules/deep-extend/LICENSE +0 -20
- package/slides/node_modules/deep-extend/README.md +0 -91
- package/slides/node_modules/deep-extend/index.js +0 -1
- package/slides/node_modules/deep-extend/lib/deep-extend.js +0 -150
- package/slides/node_modules/deep-extend/package.json +0 -62
- package/slides/node_modules/detect-libc/LICENSE +0 -201
- package/slides/node_modules/detect-libc/README.md +0 -163
- package/slides/node_modules/detect-libc/index.d.ts +0 -14
- package/slides/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/slides/node_modules/detect-libc/lib/elf.js +0 -39
- package/slides/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/slides/node_modules/detect-libc/lib/process.js +0 -24
- package/slides/node_modules/detect-libc/package.json +0 -44
- package/slides/node_modules/end-of-stream/LICENSE +0 -21
- package/slides/node_modules/end-of-stream/README.md +0 -54
- package/slides/node_modules/end-of-stream/index.js +0 -96
- package/slides/node_modules/end-of-stream/package.json +0 -37
- package/slides/node_modules/expand-template/.travis.yml +0 -6
- package/slides/node_modules/expand-template/LICENSE +0 -21
- package/slides/node_modules/expand-template/README.md +0 -43
- package/slides/node_modules/expand-template/index.js +0 -26
- package/slides/node_modules/expand-template/package.json +0 -29
- package/slides/node_modules/expand-template/test.js +0 -67
- package/slides/node_modules/fs-constants/LICENSE +0 -21
- package/slides/node_modules/fs-constants/README.md +0 -26
- package/slides/node_modules/fs-constants/browser.js +0 -1
- package/slides/node_modules/fs-constants/index.js +0 -1
- package/slides/node_modules/fs-constants/package.json +0 -19
- package/slides/node_modules/github-from-package/.travis.yml +0 -4
- package/slides/node_modules/github-from-package/LICENSE +0 -18
- package/slides/node_modules/github-from-package/example/package.json +0 -8
- package/slides/node_modules/github-from-package/example/url.js +0 -3
- package/slides/node_modules/github-from-package/index.js +0 -17
- package/slides/node_modules/github-from-package/package.json +0 -30
- package/slides/node_modules/github-from-package/readme.markdown +0 -53
- package/slides/node_modules/github-from-package/test/a.json +0 -8
- package/slides/node_modules/github-from-package/test/b.json +0 -5
- package/slides/node_modules/github-from-package/test/c.json +0 -5
- package/slides/node_modules/github-from-package/test/d.json +0 -7
- package/slides/node_modules/github-from-package/test/e.json +0 -5
- package/slides/node_modules/github-from-package/test/url.js +0 -19
- package/slides/node_modules/https/package.json +0 -15
- package/slides/node_modules/ieee754/LICENSE +0 -11
- package/slides/node_modules/ieee754/README.md +0 -51
- package/slides/node_modules/ieee754/index.d.ts +0 -10
- package/slides/node_modules/ieee754/index.js +0 -85
- package/slides/node_modules/ieee754/package.json +0 -52
- package/slides/node_modules/image-size/LICENSE +0 -9
- package/slides/node_modules/image-size/Readme.md +0 -184
- package/slides/node_modules/image-size/bin/image-size.js +0 -53
- package/slides/node_modules/image-size/dist/detector.d.ts +0 -2
- package/slides/node_modules/image-size/dist/detector.js +0 -30
- package/slides/node_modules/image-size/dist/index.d.ts +0 -10
- package/slides/node_modules/image-size/dist/index.js +0 -129
- package/slides/node_modules/image-size/dist/types/bmp.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/bmp.js +0 -11
- package/slides/node_modules/image-size/dist/types/cur.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/cur.js +0 -17
- package/slides/node_modules/image-size/dist/types/dds.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/dds.js +0 -11
- package/slides/node_modules/image-size/dist/types/gif.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/gif.js +0 -12
- package/slides/node_modules/image-size/dist/types/heif.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/heif.js +0 -40
- package/slides/node_modules/image-size/dist/types/icns.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/icns.js +0 -101
- package/slides/node_modules/image-size/dist/types/ico.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/ico.js +0 -68
- package/slides/node_modules/image-size/dist/types/index.d.ts +0 -23
- package/slides/node_modules/image-size/dist/types/index.js +0 -46
- package/slides/node_modules/image-size/dist/types/interface.d.ts +0 -13
- package/slides/node_modules/image-size/dist/types/interface.js +0 -2
- package/slides/node_modules/image-size/dist/types/j2c.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/j2c.js +0 -12
- package/slides/node_modules/image-size/dist/types/jp2.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/jp2.js +0 -27
- package/slides/node_modules/image-size/dist/types/jpg.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/jpg.js +0 -123
- package/slides/node_modules/image-size/dist/types/jxl-stream.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/jxl-stream.js +0 -45
- package/slides/node_modules/image-size/dist/types/jxl.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/jxl.js +0 -59
- package/slides/node_modules/image-size/dist/types/ktx.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/ktx.js +0 -19
- package/slides/node_modules/image-size/dist/types/png.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/png.js +0 -35
- package/slides/node_modules/image-size/dist/types/pnm.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/pnm.js +0 -72
- package/slides/node_modules/image-size/dist/types/psd.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/psd.js +0 -11
- package/slides/node_modules/image-size/dist/types/svg.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/svg.js +0 -90
- package/slides/node_modules/image-size/dist/types/tga.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/tga.js +0 -15
- package/slides/node_modules/image-size/dist/types/tiff.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/tiff.js +0 -95
- package/slides/node_modules/image-size/dist/types/utils.d.ts +0 -15
- package/slides/node_modules/image-size/dist/types/utils.js +0 -75
- package/slides/node_modules/image-size/dist/types/webp.d.ts +0 -2
- package/slides/node_modules/image-size/dist/types/webp.js +0 -60
- package/slides/node_modules/image-size/dist/utils/bit-reader.d.ts +0 -10
- package/slides/node_modules/image-size/dist/utils/bit-reader.js +0 -44
- package/slides/node_modules/image-size/package.json +0 -81
- package/slides/node_modules/immediate/LICENSE.txt +0 -20
- package/slides/node_modules/immediate/README.md +0 -93
- package/slides/node_modules/immediate/dist/immediate.js +0 -75
- package/slides/node_modules/immediate/dist/immediate.min.js +0 -1
- package/slides/node_modules/immediate/lib/browser.js +0 -69
- package/slides/node_modules/immediate/lib/index.js +0 -73
- package/slides/node_modules/immediate/package.json +0 -42
- package/slides/node_modules/inherits/LICENSE +0 -16
- package/slides/node_modules/inherits/README.md +0 -42
- package/slides/node_modules/inherits/inherits.js +0 -9
- package/slides/node_modules/inherits/inherits_browser.js +0 -27
- package/slides/node_modules/inherits/package.json +0 -29
- package/slides/node_modules/ini/LICENSE +0 -15
- package/slides/node_modules/ini/README.md +0 -102
- package/slides/node_modules/ini/ini.js +0 -206
- package/slides/node_modules/ini/package.json +0 -33
- package/slides/node_modules/isarray/.travis.yml +0 -4
- package/slides/node_modules/isarray/Makefile +0 -6
- package/slides/node_modules/isarray/README.md +0 -60
- package/slides/node_modules/isarray/component.json +0 -19
- package/slides/node_modules/isarray/index.js +0 -5
- package/slides/node_modules/isarray/package.json +0 -45
- package/slides/node_modules/isarray/test.js +0 -20
- package/slides/node_modules/jszip/.codeclimate.yml +0 -16
- package/slides/node_modules/jszip/.editorconfig +0 -8
- package/slides/node_modules/jszip/.eslintrc.js +0 -43
- package/slides/node_modules/jszip/.github/workflows/pr.yaml +0 -58
- package/slides/node_modules/jszip/.jekyll-metadata +0 -0
- package/slides/node_modules/jszip/.travis.yml +0 -17
- package/slides/node_modules/jszip/CHANGES.md +0 -204
- package/slides/node_modules/jszip/LICENSE.markdown +0 -651
- package/slides/node_modules/jszip/README.markdown +0 -33
- package/slides/node_modules/jszip/deps.js +0 -37
- package/slides/node_modules/jszip/dist/jszip.js +0 -11577
- package/slides/node_modules/jszip/dist/jszip.min.js +0 -13
- package/slides/node_modules/jszip/graph.svg +0 -601
- package/slides/node_modules/jszip/index.d.ts +0 -330
- package/slides/node_modules/jszip/lib/base64.js +0 -106
- package/slides/node_modules/jszip/lib/compressedObject.js +0 -74
- package/slides/node_modules/jszip/lib/compressions.js +0 -14
- package/slides/node_modules/jszip/lib/crc32.js +0 -77
- package/slides/node_modules/jszip/lib/defaults.js +0 -11
- package/slides/node_modules/jszip/lib/external.js +0 -18
- package/slides/node_modules/jszip/lib/flate.js +0 -85
- package/slides/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
- package/slides/node_modules/jszip/lib/generate/index.js +0 -57
- package/slides/node_modules/jszip/lib/index.js +0 -55
- package/slides/node_modules/jszip/lib/license_header.js +0 -11
- package/slides/node_modules/jszip/lib/load.js +0 -88
- package/slides/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
- package/slides/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
- package/slides/node_modules/jszip/lib/nodejsUtils.js +0 -57
- package/slides/node_modules/jszip/lib/object.js +0 -384
- package/slides/node_modules/jszip/lib/readable-stream-browser.js +0 -10
- package/slides/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
- package/slides/node_modules/jszip/lib/reader/DataReader.js +0 -116
- package/slides/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
- package/slides/node_modules/jszip/lib/reader/StringReader.js +0 -38
- package/slides/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
- package/slides/node_modules/jszip/lib/reader/readerFor.js +0 -28
- package/slides/node_modules/jszip/lib/signature.js +0 -7
- package/slides/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
- package/slides/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
- package/slides/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
- package/slides/node_modules/jszip/lib/stream/DataWorker.js +0 -116
- package/slides/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
- package/slides/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
- package/slides/node_modules/jszip/lib/support.js +0 -38
- package/slides/node_modules/jszip/lib/utf8.js +0 -275
- package/slides/node_modules/jszip/lib/utils.js +0 -501
- package/slides/node_modules/jszip/lib/zipEntries.js +0 -261
- package/slides/node_modules/jszip/lib/zipEntry.js +0 -293
- package/slides/node_modules/jszip/lib/zipObject.js +0 -133
- package/slides/node_modules/jszip/package.json +0 -67
- package/slides/node_modules/jszip/sponsors.md +0 -21
- package/slides/node_modules/jszip/tsconfig.json +0 -101
- package/slides/node_modules/jszip/vendor/FileSaver.js +0 -247
- package/slides/node_modules/lie/README.md +0 -62
- package/slides/node_modules/lie/dist/lie.js +0 -350
- package/slides/node_modules/lie/dist/lie.min.js +0 -1
- package/slides/node_modules/lie/dist/lie.polyfill.js +0 -358
- package/slides/node_modules/lie/dist/lie.polyfill.min.js +0 -1
- package/slides/node_modules/lie/lib/browser.js +0 -273
- package/slides/node_modules/lie/lib/index.js +0 -298
- package/slides/node_modules/lie/license.md +0 -7
- package/slides/node_modules/lie/lie.d.ts +0 -244
- package/slides/node_modules/lie/package.json +0 -69
- package/slides/node_modules/lie/polyfill.js +0 -4
- package/slides/node_modules/mimic-response/index.d.ts +0 -17
- package/slides/node_modules/mimic-response/index.js +0 -77
- package/slides/node_modules/mimic-response/license +0 -9
- package/slides/node_modules/mimic-response/package.json +0 -42
- package/slides/node_modules/mimic-response/readme.md +0 -78
- package/slides/node_modules/minimist/.eslintrc +0 -29
- package/slides/node_modules/minimist/.github/FUNDING.yml +0 -12
- package/slides/node_modules/minimist/.nycrc +0 -14
- package/slides/node_modules/minimist/CHANGELOG.md +0 -298
- package/slides/node_modules/minimist/LICENSE +0 -18
- package/slides/node_modules/minimist/README.md +0 -121
- package/slides/node_modules/minimist/example/parse.js +0 -4
- package/slides/node_modules/minimist/index.js +0 -263
- package/slides/node_modules/minimist/package.json +0 -75
- package/slides/node_modules/minimist/test/all_bool.js +0 -34
- package/slides/node_modules/minimist/test/bool.js +0 -177
- package/slides/node_modules/minimist/test/dash.js +0 -43
- package/slides/node_modules/minimist/test/default_bool.js +0 -37
- package/slides/node_modules/minimist/test/dotted.js +0 -24
- package/slides/node_modules/minimist/test/kv_short.js +0 -32
- package/slides/node_modules/minimist/test/long.js +0 -33
- package/slides/node_modules/minimist/test/num.js +0 -38
- package/slides/node_modules/minimist/test/parse.js +0 -209
- package/slides/node_modules/minimist/test/parse_modified.js +0 -11
- package/slides/node_modules/minimist/test/proto.js +0 -64
- package/slides/node_modules/minimist/test/short.js +0 -69
- package/slides/node_modules/minimist/test/stop_early.js +0 -17
- package/slides/node_modules/minimist/test/unknown.js +0 -104
- package/slides/node_modules/minimist/test/whitespace.js +0 -10
- package/slides/node_modules/mkdirp-classic/LICENSE +0 -21
- package/slides/node_modules/mkdirp-classic/README.md +0 -18
- package/slides/node_modules/mkdirp-classic/index.js +0 -98
- package/slides/node_modules/mkdirp-classic/package.json +0 -18
- package/slides/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
- package/slides/node_modules/napi-build-utils/LICENSE +0 -21
- package/slides/node_modules/napi-build-utils/README.md +0 -52
- package/slides/node_modules/napi-build-utils/index.js +0 -214
- package/slides/node_modules/napi-build-utils/index.md +0 -0
- package/slides/node_modules/napi-build-utils/package.json +0 -42
- package/slides/node_modules/node-abi/LICENSE +0 -21
- package/slides/node_modules/node-abi/README.md +0 -54
- package/slides/node_modules/node-abi/abi_registry.json +0 -439
- package/slides/node_modules/node-abi/index.js +0 -179
- package/slides/node_modules/node-abi/package.json +0 -45
- package/slides/node_modules/node-addon-api/LICENSE.md +0 -9
- package/slides/node_modules/node-addon-api/README.md +0 -319
- package/slides/node_modules/node-addon-api/common.gypi +0 -20
- package/slides/node_modules/node-addon-api/except.gypi +0 -25
- package/slides/node_modules/node-addon-api/index.js +0 -12
- package/slides/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
- package/slides/node_modules/node-addon-api/napi-inl.h +0 -6607
- package/slides/node_modules/node-addon-api/napi.h +0 -3201
- package/slides/node_modules/node-addon-api/node_addon_api.gyp +0 -32
- package/slides/node_modules/node-addon-api/node_api.gyp +0 -9
- package/slides/node_modules/node-addon-api/noexcept.gypi +0 -26
- package/slides/node_modules/node-addon-api/nothing.c +0 -0
- package/slides/node_modules/node-addon-api/package-support.json +0 -21
- package/slides/node_modules/node-addon-api/package.json +0 -480
- package/slides/node_modules/node-addon-api/tools/README.md +0 -73
- package/slides/node_modules/node-addon-api/tools/check-napi.js +0 -99
- package/slides/node_modules/node-addon-api/tools/clang-format.js +0 -71
- package/slides/node_modules/node-addon-api/tools/conversion.js +0 -301
- package/slides/node_modules/node-addon-api/tools/eslint-format.js +0 -79
- package/slides/node_modules/once/LICENSE +0 -15
- package/slides/node_modules/once/README.md +0 -79
- package/slides/node_modules/once/once.js +0 -42
- package/slides/node_modules/once/package.json +0 -33
- package/slides/node_modules/pako/CHANGELOG.md +0 -164
- package/slides/node_modules/pako/LICENSE +0 -21
- package/slides/node_modules/pako/README.md +0 -191
- package/slides/node_modules/pako/dist/pako.js +0 -6818
- package/slides/node_modules/pako/dist/pako.min.js +0 -1
- package/slides/node_modules/pako/dist/pako_deflate.js +0 -3997
- package/slides/node_modules/pako/dist/pako_deflate.min.js +0 -1
- package/slides/node_modules/pako/dist/pako_inflate.js +0 -3300
- package/slides/node_modules/pako/dist/pako_inflate.min.js +0 -1
- package/slides/node_modules/pako/index.js +0 -14
- package/slides/node_modules/pako/lib/deflate.js +0 -400
- package/slides/node_modules/pako/lib/inflate.js +0 -423
- package/slides/node_modules/pako/lib/utils/common.js +0 -105
- package/slides/node_modules/pako/lib/utils/strings.js +0 -187
- package/slides/node_modules/pako/lib/zlib/README +0 -59
- package/slides/node_modules/pako/lib/zlib/adler32.js +0 -51
- package/slides/node_modules/pako/lib/zlib/constants.js +0 -68
- package/slides/node_modules/pako/lib/zlib/crc32.js +0 -59
- package/slides/node_modules/pako/lib/zlib/deflate.js +0 -1874
- package/slides/node_modules/pako/lib/zlib/gzheader.js +0 -58
- package/slides/node_modules/pako/lib/zlib/inffast.js +0 -345
- package/slides/node_modules/pako/lib/zlib/inflate.js +0 -1556
- package/slides/node_modules/pako/lib/zlib/inftrees.js +0 -343
- package/slides/node_modules/pako/lib/zlib/messages.js +0 -32
- package/slides/node_modules/pako/lib/zlib/trees.js +0 -1222
- package/slides/node_modules/pako/lib/zlib/zstream.js +0 -47
- package/slides/node_modules/pako/package.json +0 -44
- package/slides/node_modules/pptxgenjs/LICENSE +0 -21
- package/slides/node_modules/pptxgenjs/README.md +0 -224
- package/slides/node_modules/pptxgenjs/dist/pptxgen.bundle.js +0 -96
- package/slides/node_modules/pptxgenjs/dist/pptxgen.bundle.js.map +0 -1
- package/slides/node_modules/pptxgenjs/dist/pptxgen.cjs.js +0 -7370
- package/slides/node_modules/pptxgenjs/dist/pptxgen.es.js +0 -7368
- package/slides/node_modules/pptxgenjs/dist/pptxgen.min.js +0 -96
- package/slides/node_modules/pptxgenjs/dist/pptxgen.min.js.map +0 -1
- package/slides/node_modules/pptxgenjs/package.json +0 -96
- package/slides/node_modules/pptxgenjs/types/index.d.ts +0 -2679
- package/slides/node_modules/prebuild-install/CHANGELOG.md +0 -131
- package/slides/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
- package/slides/node_modules/prebuild-install/LICENSE +0 -21
- package/slides/node_modules/prebuild-install/README.md +0 -163
- package/slides/node_modules/prebuild-install/asset.js +0 -44
- package/slides/node_modules/prebuild-install/bin.js +0 -78
- package/slides/node_modules/prebuild-install/download.js +0 -142
- package/slides/node_modules/prebuild-install/error.js +0 -14
- package/slides/node_modules/prebuild-install/help.txt +0 -16
- package/slides/node_modules/prebuild-install/index.js +0 -1
- package/slides/node_modules/prebuild-install/log.js +0 -33
- package/slides/node_modules/prebuild-install/package.json +0 -67
- package/slides/node_modules/prebuild-install/proxy.js +0 -35
- package/slides/node_modules/prebuild-install/rc.js +0 -64
- package/slides/node_modules/prebuild-install/util.js +0 -143
- package/slides/node_modules/process-nextick-args/index.js +0 -45
- package/slides/node_modules/process-nextick-args/license.md +0 -19
- package/slides/node_modules/process-nextick-args/package.json +0 -25
- package/slides/node_modules/process-nextick-args/readme.md +0 -18
- package/slides/node_modules/pump/.github/FUNDING.yml +0 -2
- package/slides/node_modules/pump/.travis.yml +0 -5
- package/slides/node_modules/pump/LICENSE +0 -21
- package/slides/node_modules/pump/README.md +0 -74
- package/slides/node_modules/pump/SECURITY.md +0 -5
- package/slides/node_modules/pump/empty.js +0 -1
- package/slides/node_modules/pump/index.js +0 -86
- package/slides/node_modules/pump/package.json +0 -30
- package/slides/node_modules/pump/test-browser.js +0 -66
- package/slides/node_modules/pump/test-node.js +0 -53
- package/slides/node_modules/queue/LICENSE +0 -8
- package/slides/node_modules/queue/index.d.ts +0 -173
- package/slides/node_modules/queue/index.js +0 -195
- package/slides/node_modules/queue/package.json +0 -43
- package/slides/node_modules/queue/readme.md +0 -221
- package/slides/node_modules/rc/LICENSE.APACHE2 +0 -15
- package/slides/node_modules/rc/LICENSE.BSD +0 -26
- package/slides/node_modules/rc/LICENSE.MIT +0 -24
- package/slides/node_modules/rc/README.md +0 -227
- package/slides/node_modules/rc/browser.js +0 -7
- package/slides/node_modules/rc/cli.js +0 -4
- package/slides/node_modules/rc/index.js +0 -53
- package/slides/node_modules/rc/lib/utils.js +0 -104
- package/slides/node_modules/rc/package.json +0 -29
- package/slides/node_modules/rc/test/ini.js +0 -16
- package/slides/node_modules/rc/test/nested-env-vars.js +0 -50
- package/slides/node_modules/rc/test/test.js +0 -59
- package/slides/node_modules/readable-stream/.travis.yml +0 -34
- package/slides/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/slides/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/slides/node_modules/readable-stream/LICENSE +0 -47
- package/slides/node_modules/readable-stream/README.md +0 -58
- package/slides/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/slides/node_modules/readable-stream/duplex-browser.js +0 -1
- package/slides/node_modules/readable-stream/duplex.js +0 -1
- package/slides/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/slides/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/slides/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/slides/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/slides/node_modules/readable-stream/lib/_stream_writable.js +0 -685
- package/slides/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
- package/slides/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
- package/slides/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/slides/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/slides/node_modules/readable-stream/package.json +0 -52
- package/slides/node_modules/readable-stream/passthrough.js +0 -1
- package/slides/node_modules/readable-stream/readable-browser.js +0 -7
- package/slides/node_modules/readable-stream/readable.js +0 -19
- package/slides/node_modules/readable-stream/transform.js +0 -1
- package/slides/node_modules/readable-stream/writable-browser.js +0 -1
- package/slides/node_modules/readable-stream/writable.js +0 -8
- package/slides/node_modules/safe-buffer/LICENSE +0 -21
- package/slides/node_modules/safe-buffer/README.md +0 -584
- package/slides/node_modules/safe-buffer/index.d.ts +0 -187
- package/slides/node_modules/safe-buffer/index.js +0 -62
- package/slides/node_modules/safe-buffer/package.json +0 -37
- package/slides/node_modules/semver/LICENSE +0 -15
- package/slides/node_modules/semver/README.md +0 -665
- package/slides/node_modules/semver/bin/semver.js +0 -191
- package/slides/node_modules/semver/classes/comparator.js +0 -143
- package/slides/node_modules/semver/classes/index.js +0 -7
- package/slides/node_modules/semver/classes/range.js +0 -557
- package/slides/node_modules/semver/classes/semver.js +0 -333
- package/slides/node_modules/semver/functions/clean.js +0 -8
- package/slides/node_modules/semver/functions/cmp.js +0 -54
- package/slides/node_modules/semver/functions/coerce.js +0 -62
- package/slides/node_modules/semver/functions/compare-build.js +0 -9
- package/slides/node_modules/semver/functions/compare-loose.js +0 -5
- package/slides/node_modules/semver/functions/compare.js +0 -7
- package/slides/node_modules/semver/functions/diff.js +0 -60
- package/slides/node_modules/semver/functions/eq.js +0 -5
- package/slides/node_modules/semver/functions/gt.js +0 -5
- package/slides/node_modules/semver/functions/gte.js +0 -5
- package/slides/node_modules/semver/functions/inc.js +0 -21
- package/slides/node_modules/semver/functions/lt.js +0 -5
- package/slides/node_modules/semver/functions/lte.js +0 -5
- package/slides/node_modules/semver/functions/major.js +0 -5
- package/slides/node_modules/semver/functions/minor.js +0 -5
- package/slides/node_modules/semver/functions/neq.js +0 -5
- package/slides/node_modules/semver/functions/parse.js +0 -18
- package/slides/node_modules/semver/functions/patch.js +0 -5
- package/slides/node_modules/semver/functions/prerelease.js +0 -8
- package/slides/node_modules/semver/functions/rcompare.js +0 -5
- package/slides/node_modules/semver/functions/rsort.js +0 -5
- package/slides/node_modules/semver/functions/satisfies.js +0 -12
- package/slides/node_modules/semver/functions/sort.js +0 -5
- package/slides/node_modules/semver/functions/valid.js +0 -8
- package/slides/node_modules/semver/index.js +0 -91
- package/slides/node_modules/semver/internal/constants.js +0 -37
- package/slides/node_modules/semver/internal/debug.js +0 -11
- package/slides/node_modules/semver/internal/identifiers.js +0 -29
- package/slides/node_modules/semver/internal/lrucache.js +0 -42
- package/slides/node_modules/semver/internal/parse-options.js +0 -17
- package/slides/node_modules/semver/internal/re.js +0 -223
- package/slides/node_modules/semver/package.json +0 -78
- package/slides/node_modules/semver/preload.js +0 -4
- package/slides/node_modules/semver/range.bnf +0 -16
- package/slides/node_modules/semver/ranges/gtr.js +0 -6
- package/slides/node_modules/semver/ranges/intersects.js +0 -9
- package/slides/node_modules/semver/ranges/ltr.js +0 -6
- package/slides/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/slides/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/slides/node_modules/semver/ranges/min-version.js +0 -63
- package/slides/node_modules/semver/ranges/outside.js +0 -82
- package/slides/node_modules/semver/ranges/simplify.js +0 -49
- package/slides/node_modules/semver/ranges/subset.js +0 -249
- package/slides/node_modules/semver/ranges/to-comparators.js +0 -10
- package/slides/node_modules/semver/ranges/valid.js +0 -13
- package/slides/node_modules/setimmediate/LICENSE.txt +0 -20
- package/slides/node_modules/setimmediate/package.json +0 -30
- package/slides/node_modules/setimmediate/setImmediate.js +0 -186
- package/slides/node_modules/simple-concat/.travis.yml +0 -3
- package/slides/node_modules/simple-concat/LICENSE +0 -20
- package/slides/node_modules/simple-concat/README.md +0 -44
- package/slides/node_modules/simple-concat/index.js +0 -15
- package/slides/node_modules/simple-concat/package.json +0 -47
- package/slides/node_modules/simple-concat/test/basic.js +0 -41
- package/slides/node_modules/simple-get/.github/dependabot.yml +0 -15
- package/slides/node_modules/simple-get/.github/workflows/ci.yml +0 -23
- package/slides/node_modules/simple-get/LICENSE +0 -20
- package/slides/node_modules/simple-get/README.md +0 -333
- package/slides/node_modules/simple-get/index.js +0 -108
- package/slides/node_modules/simple-get/package.json +0 -67
- package/slides/node_modules/string_decoder/.travis.yml +0 -50
- package/slides/node_modules/string_decoder/LICENSE +0 -48
- package/slides/node_modules/string_decoder/README.md +0 -47
- package/slides/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/slides/node_modules/string_decoder/package.json +0 -31
- package/slides/node_modules/strip-json-comments/index.js +0 -70
- package/slides/node_modules/strip-json-comments/license +0 -21
- package/slides/node_modules/strip-json-comments/package.json +0 -42
- package/slides/node_modules/strip-json-comments/readme.md +0 -64
- package/slides/node_modules/tar-fs/.travis.yml +0 -6
- package/slides/node_modules/tar-fs/LICENSE +0 -21
- package/slides/node_modules/tar-fs/README.md +0 -165
- package/slides/node_modules/tar-fs/index.js +0 -363
- package/slides/node_modules/tar-fs/package.json +0 -41
- package/slides/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
- package/slides/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
- package/slides/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/e/file +0 -0
- package/slides/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
- package/slides/node_modules/tar-fs/test/index.js +0 -346
- package/slides/node_modules/tar-stream/LICENSE +0 -21
- package/slides/node_modules/tar-stream/README.md +0 -168
- package/slides/node_modules/tar-stream/extract.js +0 -257
- package/slides/node_modules/tar-stream/headers.js +0 -295
- package/slides/node_modules/tar-stream/index.js +0 -2
- package/slides/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/slides/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/slides/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
- package/slides/node_modules/tar-stream/node_modules/readable-stream/README.md +0 -106
- package/slides/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +0 -127
- package/slides/node_modules/tar-stream/node_modules/readable-stream/errors.js +0 -116
- package/slides/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +0 -17
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +0 -190
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +0 -641
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/slides/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/slides/node_modules/tar-stream/node_modules/readable-stream/package.json +0 -68
- package/slides/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +0 -9
- package/slides/node_modules/tar-stream/node_modules/readable-stream/readable.js +0 -16
- package/slides/node_modules/tar-stream/pack.js +0 -255
- package/slides/node_modules/tar-stream/package.json +0 -58
- package/slides/node_modules/tar-stream/sandbox.js +0 -11
- package/slides/node_modules/tunnel-agent/LICENSE +0 -55
- package/slides/node_modules/tunnel-agent/README.md +0 -4
- package/slides/node_modules/tunnel-agent/index.js +0 -244
- package/slides/node_modules/tunnel-agent/package.json +0 -22
- package/slides/node_modules/undici-types/LICENSE +0 -21
- package/slides/node_modules/undici-types/README.md +0 -6
- package/slides/node_modules/undici-types/agent.d.ts +0 -31
- package/slides/node_modules/undici-types/api.d.ts +0 -43
- package/slides/node_modules/undici-types/balanced-pool.d.ts +0 -29
- package/slides/node_modules/undici-types/cache.d.ts +0 -36
- package/slides/node_modules/undici-types/client.d.ts +0 -108
- package/slides/node_modules/undici-types/connector.d.ts +0 -34
- package/slides/node_modules/undici-types/content-type.d.ts +0 -21
- package/slides/node_modules/undici-types/cookies.d.ts +0 -28
- package/slides/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
- package/slides/node_modules/undici-types/dispatcher.d.ts +0 -256
- package/slides/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
- package/slides/node_modules/undici-types/errors.d.ts +0 -149
- package/slides/node_modules/undici-types/eventsource.d.ts +0 -61
- package/slides/node_modules/undici-types/fetch.d.ts +0 -209
- package/slides/node_modules/undici-types/file.d.ts +0 -39
- package/slides/node_modules/undici-types/filereader.d.ts +0 -54
- package/slides/node_modules/undici-types/formdata.d.ts +0 -108
- package/slides/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/slides/node_modules/undici-types/global-origin.d.ts +0 -7
- package/slides/node_modules/undici-types/handlers.d.ts +0 -15
- package/slides/node_modules/undici-types/header.d.ts +0 -4
- package/slides/node_modules/undici-types/index.d.ts +0 -71
- package/slides/node_modules/undici-types/interceptors.d.ts +0 -17
- package/slides/node_modules/undici-types/mock-agent.d.ts +0 -50
- package/slides/node_modules/undici-types/mock-client.d.ts +0 -25
- package/slides/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/slides/node_modules/undici-types/mock-interceptor.d.ts +0 -93
- package/slides/node_modules/undici-types/mock-pool.d.ts +0 -25
- package/slides/node_modules/undici-types/package.json +0 -55
- package/slides/node_modules/undici-types/patch.d.ts +0 -33
- package/slides/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/slides/node_modules/undici-types/pool.d.ts +0 -39
- package/slides/node_modules/undici-types/proxy-agent.d.ts +0 -28
- package/slides/node_modules/undici-types/readable.d.ts +0 -65
- package/slides/node_modules/undici-types/retry-agent.d.ts +0 -8
- package/slides/node_modules/undici-types/retry-handler.d.ts +0 -116
- package/slides/node_modules/undici-types/util.d.ts +0 -18
- package/slides/node_modules/undici-types/webidl.d.ts +0 -228
- package/slides/node_modules/undici-types/websocket.d.ts +0 -150
- package/slides/node_modules/util-deprecate/History.md +0 -16
- package/slides/node_modules/util-deprecate/LICENSE +0 -24
- package/slides/node_modules/util-deprecate/README.md +0 -53
- package/slides/node_modules/util-deprecate/browser.js +0 -67
- package/slides/node_modules/util-deprecate/node.js +0 -6
- package/slides/node_modules/util-deprecate/package.json +0 -27
- package/slides/node_modules/wrappy/LICENSE +0 -15
- package/slides/node_modules/wrappy/README.md +0 -36
- package/slides/node_modules/wrappy/package.json +0 -29
- package/slides/node_modules/wrappy/wrappy.js +0 -33
- package/slides/package-lock.json +0 -536
- package/slides/package.json +0 -16
- package/slides/slides.json +0 -238
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
7
7
|
<title>Groove GUI</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-eCrVowF0.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/vendor-C0HXlhrU.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/reactflow-BQPfi37R.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/codemirror-BBL3i_JW.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/xterm--7_ns2zW.js">
|
|
13
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
13
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DjORRpF0.css">
|
|
14
14
|
</head>
|
|
15
15
|
<body>
|
|
16
16
|
<div id="root"></div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@groove-dev/gui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "GROOVE GUI — visual agent control plane",
|
|
5
5
|
"license": "FSL-1.1-Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -27,11 +27,8 @@
|
|
|
27
27
|
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
28
28
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
29
29
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
30
|
-
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
31
|
-
"@radix-ui/react-popover": "^1.1.15",
|
|
32
30
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
33
31
|
"@radix-ui/react-select": "^2.2.6",
|
|
34
|
-
"@radix-ui/react-separator": "^1.1.8",
|
|
35
32
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
36
33
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
37
34
|
"@tailwindcss/vite": "^4.2.2",
|
|
@@ -32,6 +32,24 @@ const INTEGRATION_LOGOS = {
|
|
|
32
32
|
linear: 'https://cdn.simpleicons.org/linear/5E6AD2',
|
|
33
33
|
'brave-search': 'https://cdn.simpleicons.org/brave/FB542B',
|
|
34
34
|
'home-assistant': 'https://cdn.simpleicons.org/homeassistant/18BCF2',
|
|
35
|
+
sentry: 'https://cdn.simpleicons.org/sentry/362D59',
|
|
36
|
+
elevenlabs: 'https://cdn.simpleicons.org/elevenlabs/white',
|
|
37
|
+
hubspot: 'https://cdn.simpleicons.org/hubspot/FF7A59',
|
|
38
|
+
jira: 'https://cdn.simpleicons.org/jira/0052CC',
|
|
39
|
+
sendgrid: 'https://cdn.simpleicons.org/sendgrid/1A82E2',
|
|
40
|
+
resend: 'https://cdn.simpleicons.org/resend/white',
|
|
41
|
+
replicate: 'https://cdn.simpleicons.org/replicate/white',
|
|
42
|
+
vercel: 'https://cdn.simpleicons.org/vercel/white',
|
|
43
|
+
supabase: 'https://cdn.simpleicons.org/supabase/3FCF8E',
|
|
44
|
+
mixpanel: 'https://cdn.simpleicons.org/mixpanel/7856FF',
|
|
45
|
+
datadog: 'https://cdn.simpleicons.org/datadog/632CA6',
|
|
46
|
+
airtable: 'https://cdn.simpleicons.org/airtable/18BFFF',
|
|
47
|
+
zendesk: 'https://cdn.simpleicons.org/zendesk/03363D',
|
|
48
|
+
intercom: 'https://cdn.simpleicons.org/intercom/6AFDEF',
|
|
49
|
+
twilio: 'https://cdn.simpleicons.org/twilio/F22F46',
|
|
50
|
+
telnyx: 'https://cdn.simpleicons.org/telnyx/00C08B',
|
|
51
|
+
aws: 'https://cdn.simpleicons.org/amazonaws/FF9900',
|
|
52
|
+
plaid: 'https://cdn.simpleicons.org/plaid/white',
|
|
35
53
|
};
|
|
36
54
|
|
|
37
55
|
const ROLE_PRESETS = [
|
|
@@ -5,8 +5,12 @@ import { fmtNum } from '../../lib/format';
|
|
|
5
5
|
|
|
6
6
|
const CacheRing = memo(function CacheRing({ cacheRead = 0, cacheCreation = 0, totalInput = 0, size = 140 }) {
|
|
7
7
|
const canvasRef = useRef(null);
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// Cache hit rate denominator is only cacheable tokens (reads + creation).
|
|
9
|
+
// Fresh inputTokens are conversation turns that were never cache-eligible;
|
|
10
|
+
// including them falsely depresses the rate.
|
|
11
|
+
const cacheable = cacheRead + cacheCreation;
|
|
12
|
+
const total = cacheable; // used only by arc-fill and hit-rate
|
|
13
|
+
const hitRate = cacheable > 0 ? (cacheRead / cacheable) * 100 : 0;
|
|
10
14
|
|
|
11
15
|
useEffect(() => {
|
|
12
16
|
const canvas = canvasRef.current;
|
|
@@ -5,7 +5,7 @@ import { fmtNum, fmtPct, fmtDollar, timeAgo } from '../../lib/format';
|
|
|
5
5
|
import { cn } from '../../lib/cn';
|
|
6
6
|
import { HEX } from '../../lib/theme-hex';
|
|
7
7
|
import { roleColor } from '../../lib/status';
|
|
8
|
-
import { Activity, Brain, Radio, AlertTriangle, CheckCircle, RotateCw, HelpCircle } from 'lucide-react';
|
|
8
|
+
import { Activity, Brain, Radio, AlertTriangle, CheckCircle, RotateCw, HelpCircle, BookOpen } from 'lucide-react';
|
|
9
9
|
import { Tooltip } from '../ui/tooltip';
|
|
10
10
|
|
|
11
11
|
/* ── Tiny SVG sparkline for inline use ──────────────────────── */
|
|
@@ -204,17 +204,70 @@ function HealthTab({ tokens, rotation, agentBreakdown }) {
|
|
|
204
204
|
</div>
|
|
205
205
|
)}
|
|
206
206
|
|
|
207
|
+
{/* Internal Overhead (GROOVE's own cost to coordinate) */}
|
|
208
|
+
{tokens?.internalOverhead?.tokens > 0 && (
|
|
209
|
+
<div>
|
|
210
|
+
<div className="flex items-center justify-between mb-2">
|
|
211
|
+
<span className="text-2xs font-mono text-text-3 uppercase tracking-wider flex items-center">
|
|
212
|
+
GROOVE Overhead
|
|
213
|
+
<InfoTip text="Tokens consumed by GROOVE's own coordination: the Journalist (synthesis), PM (approval gates), Planner, Task Negotiator, Gateway, and user Q&A. Previously invisible — now tracked for honest ROI." />
|
|
214
|
+
</span>
|
|
215
|
+
<div className="flex items-center gap-2">
|
|
216
|
+
<span className="text-2xs font-mono text-text-2 tabular-nums">
|
|
217
|
+
{fmtNum(tokens.internalOverhead.tokens)} tokens
|
|
218
|
+
</span>
|
|
219
|
+
<span className="text-2xs font-mono text-text-3 tabular-nums">
|
|
220
|
+
{fmtDollar(tokens.internalOverhead.costUsd || 0)}
|
|
221
|
+
</span>
|
|
222
|
+
{tokens.totalTokens > 0 && (
|
|
223
|
+
<span className="text-2xs font-mono font-semibold tabular-nums" style={{ color: HEX.purple }}>
|
|
224
|
+
{Math.round((tokens.internalOverhead.tokens / tokens.totalTokens) * 100)}%
|
|
225
|
+
</span>
|
|
226
|
+
)}
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
<div className="grid grid-cols-3 gap-1.5">
|
|
230
|
+
{Object.entries(tokens.internalOverhead.components || {})
|
|
231
|
+
.sort((a, b) => (b[1].tokens || 0) - (a[1].tokens || 0))
|
|
232
|
+
.slice(0, 6)
|
|
233
|
+
.map(([id, comp]) => {
|
|
234
|
+
const label = id.replace(/^__|__$/g, '').replace(/_/g, ' ');
|
|
235
|
+
return (
|
|
236
|
+
<div key={id} className="bg-surface-0 rounded px-2 py-1.5">
|
|
237
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider truncate">{label}</div>
|
|
238
|
+
<div className="text-xs font-mono text-text-1 tabular-nums font-semibold">
|
|
239
|
+
{fmtNum(comp.tokens || 0)}
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
);
|
|
243
|
+
})}
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
246
|
+
)}
|
|
247
|
+
|
|
207
248
|
{/* Coordination savings */}
|
|
208
249
|
{(tokens?.savings?.total || 0) > 0 && (
|
|
209
250
|
<div>
|
|
210
251
|
<div className="flex items-center justify-between mb-2">
|
|
211
|
-
<span className="text-2xs font-mono text-text-3 uppercase tracking-wider">
|
|
252
|
+
<span className="text-2xs font-mono text-text-3 uppercase tracking-wider flex items-center">
|
|
253
|
+
Coordination Savings
|
|
254
|
+
<InfoTip text="Tokens saved vs. uncoordinated agents. Rotation savings are estimated from context degradation (pre/post velocity measurement underway). Conflict prevention and cold-start skip use fixed-overhead models. Compare against GROOVE Overhead above for honest ROI." />
|
|
255
|
+
</span>
|
|
212
256
|
<span className="text-2xs font-mono text-text-2 tabular-nums">{fmtNum(tokens.savings.total)} tokens</span>
|
|
213
257
|
</div>
|
|
214
258
|
<div className="space-y-2">
|
|
215
|
-
<
|
|
216
|
-
|
|
217
|
-
|
|
259
|
+
<div className="space-y-1">
|
|
260
|
+
<ProgressBar label="Cold-start skip" value={tokens.savings.fromColdStartSkip || 0} total={tokens.savings.total || 1} color={HEX.info} />
|
|
261
|
+
<div className="text-2xs font-mono text-text-4 pl-2">estimated · {(tokens?.savings?.fromColdStartSkip || 0) > 0 ? 'fixed overhead per skip' : ''}</div>
|
|
262
|
+
</div>
|
|
263
|
+
<div className="space-y-1">
|
|
264
|
+
<ProgressBar label="Rotation" value={tokens.savings.fromRotation || 0} total={tokens.savings.total || 1} color={HEX.accent} />
|
|
265
|
+
<div className="text-2xs font-mono text-text-4 pl-2">estimated · velocity measurement accumulating</div>
|
|
266
|
+
</div>
|
|
267
|
+
<div className="space-y-1">
|
|
268
|
+
<ProgressBar label="Conflict prevention" value={tokens.savings.fromConflictPrevention || 0} total={tokens.savings.total || 1} color="#4ec9d4" />
|
|
269
|
+
<div className="text-2xs font-mono text-text-4 pl-2">estimated · fixed overhead per conflict</div>
|
|
270
|
+
</div>
|
|
218
271
|
</div>
|
|
219
272
|
</div>
|
|
220
273
|
)}
|
|
@@ -227,7 +280,13 @@ function HealthTab({ tokens, rotation, agentBreakdown }) {
|
|
|
227
280
|
{recentHistory.map((r, i) => {
|
|
228
281
|
const isQuality = r.reason === 'quality_degradation';
|
|
229
282
|
const isNatural = r.reason === 'natural_compaction';
|
|
230
|
-
const
|
|
283
|
+
const isTokenLimit = r.reason === 'token_limit_exceeded';
|
|
284
|
+
const isVelocity = r.reason === 'runaway_velocity';
|
|
285
|
+
const dotColor = isTokenLimit ? '#e06c75'
|
|
286
|
+
: isVelocity ? '#ff8c42'
|
|
287
|
+
: isQuality ? '#e5c07b'
|
|
288
|
+
: isNatural ? '#c678dd'
|
|
289
|
+
: '#33afbc';
|
|
231
290
|
return (
|
|
232
291
|
<div key={i} className="flex items-start gap-2.5">
|
|
233
292
|
<div className="flex flex-col items-center flex-shrink-0">
|
|
@@ -249,7 +308,25 @@ function HealthTab({ tokens, rotation, agentBreakdown }) {
|
|
|
249
308
|
<span className="text-xs font-mono text-text-1 font-medium capitalize truncate flex-1">
|
|
250
309
|
{r.agentName || r.role}
|
|
251
310
|
</span>
|
|
252
|
-
{
|
|
311
|
+
{isTokenLimit ? (
|
|
312
|
+
<span className="text-2xs font-mono font-semibold tabular-nums flex-shrink-0" style={{ color: '#e06c75' }}
|
|
313
|
+
title={`Auto-rotated: agent burned ${r.instanceTokens?.toLocaleString()} tokens in one session`}>
|
|
314
|
+
T:{fmtPct(((r.instanceTokens || 0) / 1_000_000) * 100).replace('%', 'M')}
|
|
315
|
+
</span>
|
|
316
|
+
) : isVelocity ? (
|
|
317
|
+
<span className="flex items-center gap-1 flex-shrink-0">
|
|
318
|
+
<span className="text-2xs font-mono font-semibold tabular-nums" style={{ color: '#ff8c42' }}
|
|
319
|
+
title={`Auto-rotated: runaway velocity (${r.velocity?.toLocaleString()} tokens in recent window)`}>
|
|
320
|
+
V:{fmtPct(((r.velocity || 0) / 1_000_000) * 100).replace('%', 'M')}
|
|
321
|
+
</span>
|
|
322
|
+
{r.velocityDelta != null && r.velocityDelta > 0 && (
|
|
323
|
+
<span className="text-2xs font-mono tabular-nums" style={{ color: '#4ae168' }}
|
|
324
|
+
title={`Post-rotation velocity dropped by ${r.velocityDelta.toLocaleString()} tokens — rotation worked`}>
|
|
325
|
+
↓{fmtPct((r.velocityDelta / 1_000_000) * 100).replace('%', 'M')}
|
|
326
|
+
</span>
|
|
327
|
+
)}
|
|
328
|
+
</span>
|
|
329
|
+
) : isQuality ? (
|
|
253
330
|
<span className="text-2xs font-mono font-semibold tabular-nums flex-shrink-0" style={{ color: '#e5c07b' }}>
|
|
254
331
|
Q:{r.qualityScore}
|
|
255
332
|
</span>
|
|
@@ -462,8 +539,165 @@ function JournalistTab({ journalist }) {
|
|
|
462
539
|
);
|
|
463
540
|
}
|
|
464
541
|
|
|
542
|
+
/* ── Memory Tab (Layer 7) ───────────────────────────────────── */
|
|
543
|
+
function MemoryTab({ memory }) {
|
|
544
|
+
const constraints = memory?.constraints || [];
|
|
545
|
+
const discoveries = memory?.discoveries || [];
|
|
546
|
+
const roles = memory?.roles || [];
|
|
547
|
+
const perAgent = memory?.specializations?.perAgent || {};
|
|
548
|
+
const perRole = memory?.specializations?.perProjectRole || {};
|
|
549
|
+
const agentCount = Object.keys(perAgent).length;
|
|
550
|
+
const roleCount = Object.keys(perRole).length;
|
|
551
|
+
|
|
552
|
+
const totalItems = constraints.length + discoveries.length + roles.length;
|
|
553
|
+
if (totalItems === 0 && agentCount === 0) {
|
|
554
|
+
return (
|
|
555
|
+
<div className="p-6 text-center text-xs font-mono text-text-3">
|
|
556
|
+
<BookOpen size={24} className="mx-auto mb-2 text-text-4" />
|
|
557
|
+
<div>No memory accumulated yet</div>
|
|
558
|
+
<div className="text-2xs text-text-4 mt-1">Constraints, handoff chains, and discoveries populate as agents work</div>
|
|
559
|
+
</div>
|
|
560
|
+
);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
return (
|
|
564
|
+
<div className="p-3 space-y-4">
|
|
565
|
+
{/* Hero stats */}
|
|
566
|
+
<div className="grid grid-cols-4 gap-2">
|
|
567
|
+
<div className="bg-surface-0 rounded p-2.5">
|
|
568
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-1 flex items-center">
|
|
569
|
+
Constraints
|
|
570
|
+
<InfoTip text="Project rules discovered by agents or set by the user. Every new agent reads these on spawn to avoid rediscovering them." />
|
|
571
|
+
</div>
|
|
572
|
+
<div className="text-2xl font-mono font-bold tabular-nums leading-none" style={{ color: HEX.accent }}>
|
|
573
|
+
{constraints.length}
|
|
574
|
+
</div>
|
|
575
|
+
</div>
|
|
576
|
+
<div className="bg-surface-0 rounded p-2.5">
|
|
577
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-1 flex items-center">
|
|
578
|
+
Discoveries
|
|
579
|
+
<InfoTip text="Error→fix pairs successful agents have recorded. Injected into future agent context so they don't rediscover known solutions." />
|
|
580
|
+
</div>
|
|
581
|
+
<div className="text-2xl font-mono font-bold tabular-nums leading-none" style={{ color: HEX.success }}>
|
|
582
|
+
{discoveries.length}
|
|
583
|
+
</div>
|
|
584
|
+
</div>
|
|
585
|
+
<div className="bg-surface-0 rounded p-2.5">
|
|
586
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-1 flex items-center">
|
|
587
|
+
Handoff Chains
|
|
588
|
+
<InfoTip text="Cumulative rotation briefs per role. Agent #50 knows what agent #1 struggled with. Each role keeps its last 10 rotation briefs." />
|
|
589
|
+
</div>
|
|
590
|
+
<div className="text-2xl font-mono font-bold tabular-nums leading-none" style={{ color: HEX.purple }}>
|
|
591
|
+
{roles.length}
|
|
592
|
+
</div>
|
|
593
|
+
</div>
|
|
594
|
+
<div className="bg-surface-0 rounded p-2.5">
|
|
595
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-1 flex items-center">
|
|
596
|
+
Specializations
|
|
597
|
+
<InfoTip text="Per-agent quality profiles: session counts, average quality, file touches, preferred thresholds." />
|
|
598
|
+
</div>
|
|
599
|
+
<div className="text-2xl font-mono font-bold tabular-nums leading-none" style={{ color: HEX.info }}>
|
|
600
|
+
{agentCount}
|
|
601
|
+
</div>
|
|
602
|
+
{roleCount > 0 && (
|
|
603
|
+
<div className="text-2xs font-mono text-text-4 mt-0.5">across {roleCount} roles</div>
|
|
604
|
+
)}
|
|
605
|
+
</div>
|
|
606
|
+
</div>
|
|
607
|
+
|
|
608
|
+
{/* Constraints list */}
|
|
609
|
+
{constraints.length > 0 && (
|
|
610
|
+
<div>
|
|
611
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-2">Project Constraints</div>
|
|
612
|
+
<div className="space-y-1">
|
|
613
|
+
{constraints.slice(0, 10).map((c) => (
|
|
614
|
+
<div key={c.hash} className="flex items-start gap-2 bg-surface-0 rounded px-2 py-1.5">
|
|
615
|
+
<span className="text-2xs font-mono px-1.5 py-px rounded-sm bg-surface-4 text-text-3 uppercase tracking-wider flex-shrink-0 mt-0.5">
|
|
616
|
+
{c.category}
|
|
617
|
+
</span>
|
|
618
|
+
<span className="text-xs font-mono text-text-2 leading-relaxed flex-1">{c.text}</span>
|
|
619
|
+
</div>
|
|
620
|
+
))}
|
|
621
|
+
{constraints.length > 10 && (
|
|
622
|
+
<div className="text-2xs font-mono text-text-4 px-2">+{constraints.length - 10} more</div>
|
|
623
|
+
)}
|
|
624
|
+
</div>
|
|
625
|
+
</div>
|
|
626
|
+
)}
|
|
627
|
+
|
|
628
|
+
{/* Recent discoveries */}
|
|
629
|
+
{discoveries.length > 0 && (
|
|
630
|
+
<div>
|
|
631
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-2">Recent Discoveries</div>
|
|
632
|
+
<div className="space-y-1.5">
|
|
633
|
+
{discoveries.slice(0, 8).map((d, i) => {
|
|
634
|
+
const rc = roleColor(d.role);
|
|
635
|
+
return (
|
|
636
|
+
<div key={i} className="bg-surface-0 rounded px-2 py-1.5 space-y-1">
|
|
637
|
+
<div className="flex items-center gap-2">
|
|
638
|
+
<span className="text-2xs font-mono font-semibold capitalize px-1.5 py-px rounded-sm" style={{ background: rc.bg, color: rc.text }}>
|
|
639
|
+
{d.role}
|
|
640
|
+
</span>
|
|
641
|
+
<span className="text-2xs font-mono text-text-4 flex-1">{timeAgo(d.ts)}</span>
|
|
642
|
+
</div>
|
|
643
|
+
<div className="text-xs font-mono text-text-2 leading-relaxed">
|
|
644
|
+
<span className="text-text-4">When:</span> <span className="text-text-1">{d.trigger}</span>
|
|
645
|
+
</div>
|
|
646
|
+
<div className="text-xs font-mono text-text-2 leading-relaxed">
|
|
647
|
+
<span className="text-text-4">Fix:</span> <span style={{ color: HEX.success }}>{d.fix}</span>
|
|
648
|
+
</div>
|
|
649
|
+
</div>
|
|
650
|
+
);
|
|
651
|
+
})}
|
|
652
|
+
</div>
|
|
653
|
+
</div>
|
|
654
|
+
)}
|
|
655
|
+
|
|
656
|
+
{/* Handoff chain roles */}
|
|
657
|
+
{roles.length > 0 && (
|
|
658
|
+
<div>
|
|
659
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-2">Active Role Chains</div>
|
|
660
|
+
<div className="flex flex-wrap gap-1.5">
|
|
661
|
+
{roles.map((role) => {
|
|
662
|
+
const rc = roleColor(role);
|
|
663
|
+
return (
|
|
664
|
+
<span key={role} className="text-2xs font-mono font-semibold capitalize px-2 py-1 rounded" style={{ background: rc.bg, color: rc.text }}>
|
|
665
|
+
{role}
|
|
666
|
+
</span>
|
|
667
|
+
);
|
|
668
|
+
})}
|
|
669
|
+
</div>
|
|
670
|
+
</div>
|
|
671
|
+
)}
|
|
672
|
+
|
|
673
|
+
{/* Per-role specialization summary */}
|
|
674
|
+
{roleCount > 0 && (
|
|
675
|
+
<div>
|
|
676
|
+
<div className="text-2xs font-mono text-text-3 uppercase tracking-wider mb-2">Role Quality Profiles</div>
|
|
677
|
+
<div className="space-y-1">
|
|
678
|
+
{Object.entries(perRole).map(([role, data]) => {
|
|
679
|
+
const rc = roleColor(role);
|
|
680
|
+
return (
|
|
681
|
+
<div key={role} className="flex items-center gap-2 bg-surface-0 rounded px-2 py-1.5">
|
|
682
|
+
<span className="text-2xs font-mono font-semibold capitalize px-1.5 py-px rounded-sm" style={{ background: rc.bg, color: rc.text }}>
|
|
683
|
+
{role}
|
|
684
|
+
</span>
|
|
685
|
+
<span className="text-xs font-mono text-text-3 flex-1">{data.sessionCount} sessions</span>
|
|
686
|
+
<span className="text-xs font-mono font-semibold tabular-nums" style={{ color: qualityColor(data.avgQualityScore) }}>
|
|
687
|
+
Q:{data.avgQualityScore}
|
|
688
|
+
</span>
|
|
689
|
+
</div>
|
|
690
|
+
);
|
|
691
|
+
})}
|
|
692
|
+
</div>
|
|
693
|
+
</div>
|
|
694
|
+
)}
|
|
695
|
+
</div>
|
|
696
|
+
);
|
|
697
|
+
}
|
|
698
|
+
|
|
465
699
|
/* ── Intel Panel (main export) ──────────────────────────────── */
|
|
466
|
-
const IntelPanel = memo(function IntelPanel({ tokens, rotation, adaptive, journalist, agentBreakdown }) {
|
|
700
|
+
const IntelPanel = memo(function IntelPanel({ tokens, rotation, adaptive, journalist, agentBreakdown, memory }) {
|
|
467
701
|
return (
|
|
468
702
|
<Tabs defaultValue="health" className="flex flex-col h-full">
|
|
469
703
|
<TabsList className="flex-shrink-0 px-1">
|
|
@@ -471,6 +705,10 @@ const IntelPanel = memo(function IntelPanel({ tokens, rotation, adaptive, journa
|
|
|
471
705
|
<Activity size={11} />
|
|
472
706
|
Health
|
|
473
707
|
</TabsTrigger>
|
|
708
|
+
<TabsTrigger value="memory" className="text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5">
|
|
709
|
+
<BookOpen size={11} />
|
|
710
|
+
Memory
|
|
711
|
+
</TabsTrigger>
|
|
474
712
|
<TabsTrigger value="adaptive" className="text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5">
|
|
475
713
|
<Brain size={11} />
|
|
476
714
|
Adaptive
|
|
@@ -486,6 +724,11 @@ const IntelPanel = memo(function IntelPanel({ tokens, rotation, adaptive, journa
|
|
|
486
724
|
<HealthTab tokens={tokens} rotation={rotation} agentBreakdown={agentBreakdown} />
|
|
487
725
|
</div>
|
|
488
726
|
</TabsContent>
|
|
727
|
+
<TabsContent value="memory" className="flex-1 min-h-0 relative">
|
|
728
|
+
<div className="absolute inset-0 overflow-y-auto">
|
|
729
|
+
<MemoryTab memory={memory} />
|
|
730
|
+
</div>
|
|
731
|
+
</TabsContent>
|
|
489
732
|
<TabsContent value="adaptive" className="flex-1 min-h-0 relative">
|
|
490
733
|
<div className="absolute inset-0 overflow-y-auto">
|
|
491
734
|
<AdaptiveTab adaptive={adaptive} />
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// FSL-1.1-Apache-2.0 — see LICENSE
|
|
2
|
+
import { memo } from 'react';
|
|
3
|
+
import { fmtNum, fmtDollar } from '../../lib/format';
|
|
4
|
+
import { HEX } from '../../lib/theme-hex';
|
|
5
|
+
import { ScrollArea } from '../ui/scroll-area';
|
|
6
|
+
|
|
7
|
+
export const TeamBurnPanel = memo(function TeamBurnPanel({ teams = [] }) {
|
|
8
|
+
const totalTokens = teams.reduce((s, t) => s + (t.totalTokens || 0), 0);
|
|
9
|
+
const maxTokens = teams.reduce((m, t) => Math.max(m, t.totalTokens || 0), 0);
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<div className="flex flex-col h-full">
|
|
13
|
+
<div className="px-3 pt-2.5 pb-1 flex-shrink-0 flex items-center justify-between">
|
|
14
|
+
<span className="text-2xs font-mono text-text-3 uppercase tracking-widest">Team Burn</span>
|
|
15
|
+
<span className="text-2xs font-mono text-text-3">{fmtNum(totalTokens)} total</span>
|
|
16
|
+
</div>
|
|
17
|
+
<ScrollArea className="flex-1 min-h-0">
|
|
18
|
+
{teams.length === 0 ? (
|
|
19
|
+
<div className="px-3 py-6 text-center text-xs text-text-3 font-mono">No team activity yet</div>
|
|
20
|
+
) : (
|
|
21
|
+
<div className="px-3 pb-2 space-y-1.5">
|
|
22
|
+
{teams.map((t) => {
|
|
23
|
+
const pct = maxTokens > 0 ? (t.totalTokens / maxTokens) * 100 : 0;
|
|
24
|
+
return (
|
|
25
|
+
<div key={t.teamId} className="space-y-1">
|
|
26
|
+
<div className="flex items-center justify-between gap-2 min-w-0">
|
|
27
|
+
<div className="flex items-center gap-1.5 min-w-0">
|
|
28
|
+
<span className="text-xs font-semibold text-text-0 font-sans truncate">{t.teamName}</span>
|
|
29
|
+
{t.isDefault && (
|
|
30
|
+
<span className="text-[9px] font-mono text-text-3 uppercase tracking-wider">default</span>
|
|
31
|
+
)}
|
|
32
|
+
<span className="text-2xs font-mono text-text-3 flex-shrink-0">
|
|
33
|
+
{t.agentCount} {t.agentCount === 1 ? 'agent' : 'agents'}
|
|
34
|
+
</span>
|
|
35
|
+
</div>
|
|
36
|
+
<div className="flex items-center gap-2 flex-shrink-0 font-mono text-2xs">
|
|
37
|
+
<span className="text-text-1">{fmtNum(t.totalTokens)}</span>
|
|
38
|
+
<span className="text-text-3">{fmtDollar(t.totalCostUsd)}</span>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<div className="h-0.5 bg-surface-2 rounded-sm overflow-hidden">
|
|
42
|
+
<div
|
|
43
|
+
className="h-full rounded-sm transition-all"
|
|
44
|
+
style={{ width: `${pct}%`, background: HEX.accent }}
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
})}
|
|
50
|
+
</div>
|
|
51
|
+
)}
|
|
52
|
+
</ScrollArea>
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
});
|
|
@@ -5,7 +5,7 @@ import { Badge } from '../ui/badge';
|
|
|
5
5
|
import { fmtNum } from '../../lib/format';
|
|
6
6
|
|
|
7
7
|
// Well-known integration logos via CDN (simple-icons on cdn.simpleicons.org)
|
|
8
|
-
const INTEGRATION_LOGOS = {
|
|
8
|
+
export const INTEGRATION_LOGOS = {
|
|
9
9
|
'google-workspace': 'https://cdn.simpleicons.org/google/white',
|
|
10
10
|
github: 'https://cdn.simpleicons.org/github/white',
|
|
11
11
|
stripe: 'https://cdn.simpleicons.org/stripe/635BFF',
|
|
@@ -21,6 +21,24 @@ const INTEGRATION_LOGOS = {
|
|
|
21
21
|
linear: 'https://cdn.simpleicons.org/linear/5E6AD2',
|
|
22
22
|
'brave-search': 'https://cdn.simpleicons.org/brave/FB542B',
|
|
23
23
|
'home-assistant': 'https://cdn.simpleicons.org/homeassistant/18BCF2',
|
|
24
|
+
sentry: 'https://cdn.simpleicons.org/sentry/362D59',
|
|
25
|
+
elevenlabs: 'https://cdn.simpleicons.org/elevenlabs/white',
|
|
26
|
+
hubspot: 'https://cdn.simpleicons.org/hubspot/FF7A59',
|
|
27
|
+
jira: 'https://cdn.simpleicons.org/jira/0052CC',
|
|
28
|
+
sendgrid: 'https://cdn.simpleicons.org/sendgrid/1A82E2',
|
|
29
|
+
resend: 'https://cdn.simpleicons.org/resend/white',
|
|
30
|
+
replicate: 'https://cdn.simpleicons.org/replicate/white',
|
|
31
|
+
vercel: 'https://cdn.simpleicons.org/vercel/white',
|
|
32
|
+
supabase: 'https://cdn.simpleicons.org/supabase/3FCF8E',
|
|
33
|
+
mixpanel: 'https://cdn.simpleicons.org/mixpanel/7856FF',
|
|
34
|
+
datadog: 'https://cdn.simpleicons.org/datadog/632CA6',
|
|
35
|
+
airtable: 'https://cdn.simpleicons.org/airtable/18BFFF',
|
|
36
|
+
zendesk: 'https://cdn.simpleicons.org/zendesk/03363D',
|
|
37
|
+
intercom: 'https://cdn.simpleicons.org/intercom/6AFDEF',
|
|
38
|
+
twilio: 'https://cdn.simpleicons.org/twilio/F22F46',
|
|
39
|
+
telnyx: 'https://cdn.simpleicons.org/telnyx/00C08B',
|
|
40
|
+
aws: 'https://cdn.simpleicons.org/amazonaws/FF9900',
|
|
41
|
+
plaid: 'https://cdn.simpleicons.org/plaid/white',
|
|
24
42
|
};
|
|
25
43
|
|
|
26
44
|
function ItemIcon({ item, size = 40 }) {
|
|
@@ -64,7 +82,7 @@ function ItemIcon({ item, size = 40 }) {
|
|
|
64
82
|
);
|
|
65
83
|
}
|
|
66
84
|
|
|
67
|
-
export function MarketplaceCard({ item, onClick, className }) {
|
|
85
|
+
export function MarketplaceCard({ item, onClick, className, statusBadge }) {
|
|
68
86
|
const installed = item.installed;
|
|
69
87
|
|
|
70
88
|
return (
|
|
@@ -109,11 +127,11 @@ export function MarketplaceCard({ item, onClick, className }) {
|
|
|
109
127
|
</span>
|
|
110
128
|
)}
|
|
111
129
|
<span className="flex-1" />
|
|
112
|
-
{installed && (
|
|
130
|
+
{statusBadge || (installed && (
|
|
113
131
|
<Badge variant="accent" className="text-2xs">
|
|
114
132
|
{item._installedCount ? `${item._installedCount} active` : 'Installed'}
|
|
115
133
|
</Badge>
|
|
116
|
-
)}
|
|
134
|
+
))}
|
|
117
135
|
</div>
|
|
118
136
|
</button>
|
|
119
137
|
);
|
|
@@ -42,9 +42,3 @@ export function timeAgo(ts) {
|
|
|
42
42
|
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
|
43
43
|
return `${Math.floor(diff / 86400)}d ago`;
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
export function formatDuration(ms) {
|
|
47
|
-
if (!ms) return '0s';
|
|
48
|
-
const s = Math.floor(ms / 1000);
|
|
49
|
-
return fmtUptime(s);
|
|
50
|
-
}
|
|
@@ -8,6 +8,8 @@ export function useDashboard() {
|
|
|
8
8
|
const agents = useGrooveStore((s) => s.agents);
|
|
9
9
|
|
|
10
10
|
const [data, setData] = useState(null);
|
|
11
|
+
const [teamBurn, setTeamBurn] = useState([]);
|
|
12
|
+
const [memory, setMemory] = useState({ constraints: [], discoveries: [], roles: [], specializations: null });
|
|
11
13
|
const [loading, setLoading] = useState(true);
|
|
12
14
|
const [kpiHistory, setKpiHistory] = useState({
|
|
13
15
|
tokens: [], cost: [], saved: [], efficiency: [],
|
|
@@ -21,9 +23,23 @@ export function useDashboard() {
|
|
|
21
23
|
|
|
22
24
|
async function fetch() {
|
|
23
25
|
try {
|
|
24
|
-
const d = await
|
|
26
|
+
const [d, teams, constraints, discoveries, chainRoles, specs] = await Promise.all([
|
|
27
|
+
api.get('/dashboard'),
|
|
28
|
+
api.get('/tokens/by-team').catch(() => ({ teams: [] })),
|
|
29
|
+
api.get('/memory/constraints').catch(() => ({ constraints: [] })),
|
|
30
|
+
api.get('/memory/discoveries?limit=20').catch(() => ({ discoveries: [] })),
|
|
31
|
+
api.get('/memory/handoff-chain').catch(() => ({ roles: [] })),
|
|
32
|
+
api.get('/memory/specializations').catch(() => ({ perAgent: {}, perProjectRole: {} })),
|
|
33
|
+
]);
|
|
25
34
|
if (!alive) return;
|
|
26
35
|
setData(d);
|
|
36
|
+
setTeamBurn(teams?.teams || []);
|
|
37
|
+
setMemory({
|
|
38
|
+
constraints: constraints?.constraints || [],
|
|
39
|
+
discoveries: discoveries?.discoveries || [],
|
|
40
|
+
roles: chainRoles?.roles || [],
|
|
41
|
+
specializations: specs || { perAgent: {}, perProjectRole: {} },
|
|
42
|
+
});
|
|
27
43
|
setLoading(false);
|
|
28
44
|
lastFetch.current = Date.now();
|
|
29
45
|
|
|
@@ -70,5 +86,6 @@ export function useDashboard() {
|
|
|
70
86
|
data, loading, agents, connected, kpiHistory,
|
|
71
87
|
lastFetch: lastFetch.current,
|
|
72
88
|
agentBreakdown, routing, rotation, adaptive, journalist, rotating,
|
|
89
|
+
teamBurn, memory,
|
|
73
90
|
};
|
|
74
91
|
}
|
|
@@ -58,8 +58,6 @@ export const useGrooveStore = create((set, get) => ({
|
|
|
58
58
|
chatHistory: loadJSON('groove:chatHistory'),
|
|
59
59
|
chatInputs: {}, // Per-agent draft input text — persists across tab switches
|
|
60
60
|
tokenTimeline: {},
|
|
61
|
-
dashTelemetry: {},
|
|
62
|
-
ccChartTimeline: [],
|
|
63
61
|
|
|
64
62
|
// ── Approvals ─────────────────────────────────────────────
|
|
65
63
|
pendingApprovals: [],
|
|
@@ -8,6 +8,7 @@ import { TokenChart } from '../components/dashboard/token-chart';
|
|
|
8
8
|
import { CacheRing } from '../components/dashboard/cache-ring';
|
|
9
9
|
import { RoutingChart } from '../components/dashboard/routing-chart';
|
|
10
10
|
import { IntelPanel } from '../components/dashboard/intel-panel';
|
|
11
|
+
import { TeamBurnPanel } from '../components/dashboard/team-burn-panel';
|
|
11
12
|
import { ActivityFeed } from '../components/dashboard/activity-feed';
|
|
12
13
|
import { Skeleton } from '../components/ui/skeleton';
|
|
13
14
|
import { HEX } from '../lib/theme-hex';
|
|
@@ -34,7 +35,7 @@ function DashboardSkeleton() {
|
|
|
34
35
|
export default function DashboardView() {
|
|
35
36
|
const {
|
|
36
37
|
data, loading, agents, connected, kpiHistory, lastFetch,
|
|
37
|
-
agentBreakdown, routing, rotation, adaptive, journalist, rotating,
|
|
38
|
+
agentBreakdown, routing, rotation, adaptive, journalist, rotating, teamBurn, memory,
|
|
38
39
|
} = useDashboard();
|
|
39
40
|
|
|
40
41
|
const teams = useGrooveStore((s) => s.teams);
|
|
@@ -72,6 +73,7 @@ export default function DashboardView() {
|
|
|
72
73
|
totalTurns: rawTokens.totalTurns || 0,
|
|
73
74
|
agentCount: rawTokens.agentCount || 0,
|
|
74
75
|
savings: rawTokens.savings || {},
|
|
76
|
+
internalOverhead: rawTokens.internalOverhead || { tokens: 0, costUsd: 0, components: {} },
|
|
75
77
|
};
|
|
76
78
|
|
|
77
79
|
const ioRatio = tokens.totalOutputTokens > 0 ? (tokens.totalInputTokens / tokens.totalOutputTokens).toFixed(1) : '—';
|
|
@@ -145,15 +147,20 @@ export default function DashboardView() {
|
|
|
145
147
|
<FleetPanel agentBreakdown={agentBreakdown} rotating={rotating} teams={teams} />
|
|
146
148
|
</div>
|
|
147
149
|
|
|
148
|
-
<div className="
|
|
150
|
+
<div className="min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border">
|
|
149
151
|
<IntelPanel
|
|
150
152
|
tokens={tokens}
|
|
151
153
|
rotation={rotation}
|
|
152
154
|
adaptive={adaptive}
|
|
153
155
|
journalist={journalist}
|
|
154
156
|
agentBreakdown={agentBreakdown}
|
|
157
|
+
memory={memory}
|
|
155
158
|
/>
|
|
156
159
|
</div>
|
|
160
|
+
|
|
161
|
+
<div className="min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border">
|
|
162
|
+
<TeamBurnPanel teams={teamBurn} />
|
|
163
|
+
</div>
|
|
157
164
|
</div>
|
|
158
165
|
|
|
159
166
|
<div className="flex-shrink-0 bg-surface-1 border-t border-border">
|