groove-dev 0.27.92 → 0.27.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/moe-training/package.json +2 -1
  2. package/node_modules/@groove-dev/cli/package.json +1 -1
  3. package/node_modules/@groove-dev/daemon/package.json +1 -1
  4. package/node_modules/@groove-dev/daemon/src/api.js +17 -9
  5. package/node_modules/@groove-dev/daemon/src/process.js +2 -0
  6. package/node_modules/@groove-dev/gui/dist/assets/{codemirror-BBL3i_JW.js → codemirror-CFF1Lrnz.js} +10 -10
  7. package/{packages/gui/dist/assets/index-DWv32qyJ.js → node_modules/@groove-dev/gui/dist/assets/index-B3GUKInH.js} +1740 -1740
  8. package/{packages/gui/dist/assets/index-Bo6AeNmM.css → node_modules/@groove-dev/gui/dist/assets/index-C1k-GuDg.css} +1 -1
  9. package/node_modules/@groove-dev/gui/dist/index.html +3 -3
  10. package/node_modules/@groove-dev/gui/package.json +1 -1
  11. package/node_modules/@groove-dev/gui/src/components/agents/agent-panel.jsx +2 -0
  12. package/node_modules/@groove-dev/gui/src/components/editor/code-editor.jsx +3 -3
  13. package/node_modules/@groove-dev/gui/src/stores/groove.js +23 -16
  14. package/node_modules/@groove-dev/gui/src/views/agents.jsx +44 -113
  15. package/node_modules/base64-js/LICENSE +21 -0
  16. package/node_modules/base64-js/README.md +34 -0
  17. package/node_modules/base64-js/base64js.min.js +1 -0
  18. package/node_modules/base64-js/index.d.ts +3 -0
  19. package/node_modules/base64-js/index.js +150 -0
  20. package/node_modules/base64-js/package.json +47 -0
  21. package/node_modules/better-sqlite3/LICENSE +21 -0
  22. package/node_modules/better-sqlite3/README.md +99 -0
  23. package/node_modules/better-sqlite3/binding.gyp +38 -0
  24. package/node_modules/better-sqlite3/deps/common.gypi +68 -0
  25. package/node_modules/better-sqlite3/deps/copy.js +31 -0
  26. package/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  27. package/node_modules/better-sqlite3/deps/download.sh +122 -0
  28. package/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  29. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +268845 -0
  30. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +14335 -0
  31. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +739 -0
  32. package/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  33. package/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  34. package/node_modules/better-sqlite3/lib/database.js +90 -0
  35. package/node_modules/better-sqlite3/lib/index.js +3 -0
  36. package/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  37. package/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  38. package/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  39. package/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  40. package/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  41. package/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  42. package/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  43. package/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  44. package/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  45. package/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  46. package/node_modules/better-sqlite3/lib/util.js +12 -0
  47. package/node_modules/better-sqlite3/package.json +59 -0
  48. package/node_modules/better-sqlite3/src/addon.cpp +47 -0
  49. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +74 -0
  50. package/node_modules/better-sqlite3/src/objects/backup.cpp +120 -0
  51. package/node_modules/better-sqlite3/src/objects/backup.hpp +36 -0
  52. package/node_modules/better-sqlite3/src/objects/database.cpp +417 -0
  53. package/node_modules/better-sqlite3/src/objects/database.hpp +103 -0
  54. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +113 -0
  55. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +50 -0
  56. package/node_modules/better-sqlite3/src/objects/statement.cpp +383 -0
  57. package/node_modules/better-sqlite3/src/objects/statement.hpp +58 -0
  58. package/node_modules/better-sqlite3/src/util/bind-map.cpp +73 -0
  59. package/node_modules/better-sqlite3/src/util/binder.cpp +193 -0
  60. package/node_modules/better-sqlite3/src/util/constants.cpp +172 -0
  61. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +121 -0
  62. package/node_modules/better-sqlite3/src/util/custom-function.cpp +59 -0
  63. package/node_modules/better-sqlite3/src/util/custom-table.cpp +409 -0
  64. package/node_modules/better-sqlite3/src/util/data-converter.cpp +17 -0
  65. package/node_modules/better-sqlite3/src/util/data.cpp +194 -0
  66. package/node_modules/better-sqlite3/src/util/helpers.cpp +109 -0
  67. package/node_modules/better-sqlite3/src/util/macros.cpp +83 -0
  68. package/node_modules/better-sqlite3/src/util/query-macros.cpp +71 -0
  69. package/node_modules/better-sqlite3/src/util/row-builder.cpp +49 -0
  70. package/node_modules/bindings/LICENSE.md +22 -0
  71. package/node_modules/bindings/README.md +98 -0
  72. package/node_modules/bindings/bindings.js +221 -0
  73. package/node_modules/bindings/package.json +28 -0
  74. package/node_modules/bl/.travis.yml +17 -0
  75. package/node_modules/bl/BufferList.js +396 -0
  76. package/node_modules/bl/LICENSE.md +13 -0
  77. package/node_modules/bl/README.md +247 -0
  78. package/node_modules/bl/bl.js +84 -0
  79. package/node_modules/bl/package.json +37 -0
  80. package/node_modules/bl/test/convert.js +21 -0
  81. package/node_modules/bl/test/indexOf.js +492 -0
  82. package/node_modules/bl/test/isBufferList.js +32 -0
  83. package/node_modules/bl/test/test.js +869 -0
  84. package/node_modules/buffer/AUTHORS.md +70 -0
  85. package/node_modules/buffer/LICENSE +21 -0
  86. package/node_modules/buffer/README.md +410 -0
  87. package/node_modules/buffer/index.d.ts +186 -0
  88. package/node_modules/buffer/index.js +1817 -0
  89. package/node_modules/buffer/package.json +96 -0
  90. package/node_modules/decompress-response/index.d.ts +22 -0
  91. package/node_modules/decompress-response/index.js +58 -0
  92. package/node_modules/decompress-response/license +9 -0
  93. package/node_modules/decompress-response/node_modules/mimic-response/index.d.ts +17 -0
  94. package/node_modules/decompress-response/node_modules/mimic-response/index.js +77 -0
  95. package/node_modules/decompress-response/node_modules/mimic-response/license +9 -0
  96. package/node_modules/decompress-response/node_modules/mimic-response/package.json +42 -0
  97. package/node_modules/decompress-response/node_modules/mimic-response/readme.md +78 -0
  98. package/node_modules/decompress-response/package.json +56 -0
  99. package/node_modules/decompress-response/readme.md +48 -0
  100. package/node_modules/deep-extend/LICENSE +20 -0
  101. package/node_modules/deep-extend/README.md +91 -0
  102. package/node_modules/deep-extend/index.js +1 -0
  103. package/node_modules/deep-extend/lib/deep-extend.js +150 -0
  104. package/node_modules/deep-extend/package.json +62 -0
  105. package/node_modules/end-of-stream/LICENSE +21 -0
  106. package/node_modules/end-of-stream/README.md +54 -0
  107. package/node_modules/end-of-stream/index.js +96 -0
  108. package/node_modules/end-of-stream/package.json +37 -0
  109. package/node_modules/expand-template/.travis.yml +6 -0
  110. package/node_modules/expand-template/LICENSE +21 -0
  111. package/node_modules/expand-template/README.md +43 -0
  112. package/node_modules/expand-template/index.js +26 -0
  113. package/node_modules/expand-template/package.json +29 -0
  114. package/node_modules/expand-template/test.js +67 -0
  115. package/node_modules/file-uri-to-path/.npmignore +1 -0
  116. package/node_modules/file-uri-to-path/.travis.yml +30 -0
  117. package/node_modules/file-uri-to-path/History.md +21 -0
  118. package/node_modules/file-uri-to-path/LICENSE +20 -0
  119. package/node_modules/file-uri-to-path/README.md +74 -0
  120. package/node_modules/file-uri-to-path/index.d.ts +2 -0
  121. package/node_modules/file-uri-to-path/index.js +66 -0
  122. package/node_modules/file-uri-to-path/package.json +32 -0
  123. package/node_modules/file-uri-to-path/test/test.js +24 -0
  124. package/node_modules/file-uri-to-path/test/tests.json +13 -0
  125. package/node_modules/fs-constants/LICENSE +21 -0
  126. package/node_modules/fs-constants/README.md +26 -0
  127. package/node_modules/fs-constants/browser.js +1 -0
  128. package/node_modules/fs-constants/index.js +1 -0
  129. package/node_modules/fs-constants/package.json +19 -0
  130. package/node_modules/github-from-package/.travis.yml +4 -0
  131. package/node_modules/github-from-package/LICENSE +18 -0
  132. package/node_modules/github-from-package/example/package.json +8 -0
  133. package/node_modules/github-from-package/example/url.js +3 -0
  134. package/node_modules/github-from-package/index.js +17 -0
  135. package/node_modules/github-from-package/package.json +30 -0
  136. package/node_modules/github-from-package/readme.markdown +53 -0
  137. package/node_modules/github-from-package/test/a.json +8 -0
  138. package/node_modules/github-from-package/test/b.json +5 -0
  139. package/node_modules/github-from-package/test/c.json +5 -0
  140. package/node_modules/github-from-package/test/d.json +7 -0
  141. package/node_modules/github-from-package/test/e.json +5 -0
  142. package/node_modules/github-from-package/test/url.js +19 -0
  143. package/node_modules/ieee754/LICENSE +11 -0
  144. package/node_modules/ieee754/README.md +51 -0
  145. package/node_modules/ieee754/index.d.ts +10 -0
  146. package/node_modules/ieee754/index.js +85 -0
  147. package/node_modules/ieee754/package.json +52 -0
  148. package/node_modules/ini/LICENSE +15 -0
  149. package/node_modules/ini/README.md +102 -0
  150. package/node_modules/ini/ini.js +206 -0
  151. package/node_modules/ini/package.json +33 -0
  152. package/node_modules/minimist/.eslintrc +29 -0
  153. package/node_modules/minimist/.github/FUNDING.yml +12 -0
  154. package/node_modules/minimist/.nycrc +14 -0
  155. package/node_modules/minimist/CHANGELOG.md +298 -0
  156. package/node_modules/minimist/LICENSE +18 -0
  157. package/node_modules/minimist/README.md +121 -0
  158. package/node_modules/minimist/example/parse.js +4 -0
  159. package/node_modules/minimist/index.js +263 -0
  160. package/node_modules/minimist/package.json +75 -0
  161. package/node_modules/minimist/test/all_bool.js +34 -0
  162. package/node_modules/minimist/test/bool.js +177 -0
  163. package/node_modules/minimist/test/dash.js +43 -0
  164. package/node_modules/minimist/test/default_bool.js +37 -0
  165. package/node_modules/minimist/test/dotted.js +24 -0
  166. package/node_modules/minimist/test/kv_short.js +32 -0
  167. package/node_modules/minimist/test/long.js +33 -0
  168. package/node_modules/minimist/test/num.js +38 -0
  169. package/node_modules/minimist/test/parse.js +209 -0
  170. package/node_modules/minimist/test/parse_modified.js +11 -0
  171. package/node_modules/minimist/test/proto.js +64 -0
  172. package/node_modules/minimist/test/short.js +69 -0
  173. package/node_modules/minimist/test/stop_early.js +17 -0
  174. package/node_modules/minimist/test/unknown.js +104 -0
  175. package/node_modules/minimist/test/whitespace.js +10 -0
  176. package/node_modules/mkdirp-classic/LICENSE +21 -0
  177. package/node_modules/mkdirp-classic/README.md +18 -0
  178. package/node_modules/mkdirp-classic/index.js +98 -0
  179. package/node_modules/mkdirp-classic/package.json +18 -0
  180. package/node_modules/moe-training/DEPLOY_CENTRAL_COMMAND.md +413 -0
  181. package/node_modules/moe-training/client/consent.js +96 -0
  182. package/node_modules/moe-training/client/envelope-builder.js +56 -0
  183. package/node_modules/moe-training/client/index.js +10 -0
  184. package/node_modules/moe-training/client/parsers/claude-code.js +108 -0
  185. package/node_modules/moe-training/client/parsers/codex.js +80 -0
  186. package/node_modules/moe-training/client/parsers/gemini.js +80 -0
  187. package/node_modules/moe-training/client/parsers/grok.js +16 -0
  188. package/node_modules/moe-training/client/parsers/index.js +20 -0
  189. package/node_modules/moe-training/client/scrubber.js +128 -0
  190. package/node_modules/moe-training/client/session-attestation.js +115 -0
  191. package/node_modules/moe-training/client/step-classifier.js +68 -0
  192. package/node_modules/moe-training/client/trajectory-capture.js +307 -0
  193. package/node_modules/moe-training/client/transmission-queue.js +104 -0
  194. package/node_modules/moe-training/package.json +21 -0
  195. package/node_modules/moe-training/server/enrichment.js +24 -0
  196. package/node_modules/moe-training/server/index.js +119 -0
  197. package/node_modules/moe-training/server/ledger.js +110 -0
  198. package/node_modules/moe-training/server/routes/ingest.js +96 -0
  199. package/node_modules/moe-training/server/routes/sessions.js +43 -0
  200. package/node_modules/moe-training/server/routes/stats.js +31 -0
  201. package/node_modules/moe-training/server/scoring.js +63 -0
  202. package/node_modules/moe-training/server/session-registry.js +156 -0
  203. package/node_modules/moe-training/server/stats.js +129 -0
  204. package/node_modules/moe-training/server/stitcher.js +69 -0
  205. package/node_modules/moe-training/server/storage.js +147 -0
  206. package/node_modules/moe-training/server/verifier.js +102 -0
  207. package/node_modules/moe-training/shared/constants.js +30 -0
  208. package/node_modules/moe-training/shared/crypto.js +45 -0
  209. package/node_modules/moe-training/shared/envelope-schema.js +220 -0
  210. package/node_modules/moe-training/test/client/consent.test.js +121 -0
  211. package/node_modules/moe-training/test/client/envelope-builder.test.js +107 -0
  212. package/node_modules/moe-training/test/client/parsers/claude-code.test.js +119 -0
  213. package/node_modules/moe-training/test/client/parsers/codex.test.js +83 -0
  214. package/node_modules/moe-training/test/client/parsers/gemini.test.js +99 -0
  215. package/node_modules/moe-training/test/client/scrubber.test.js +143 -0
  216. package/node_modules/moe-training/test/client/session-attestation-security.test.js +95 -0
  217. package/node_modules/moe-training/test/client/step-classifier.test.js +135 -0
  218. package/node_modules/moe-training/test/client/transmission-queue.test.js +33 -0
  219. package/node_modules/moe-training/test/integration/handshake.test.js +260 -0
  220. package/node_modules/moe-training/test/server/ingest-security.test.js +166 -0
  221. package/node_modules/moe-training/test/server/ledger.test.js +131 -0
  222. package/node_modules/moe-training/test/server/scoring.test.js +242 -0
  223. package/node_modules/moe-training/test/server/session-registry.test.js +125 -0
  224. package/node_modules/moe-training/test/server/stitcher.test.js +157 -0
  225. package/node_modules/moe-training/test/server/verifier.test.js +232 -0
  226. package/node_modules/moe-training/test/shared/crypto.test.js +87 -0
  227. package/node_modules/moe-training/test/shared/envelope-schema.test.js +351 -0
  228. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  229. package/node_modules/napi-build-utils/LICENSE +21 -0
  230. package/node_modules/napi-build-utils/README.md +52 -0
  231. package/node_modules/napi-build-utils/index.js +214 -0
  232. package/node_modules/napi-build-utils/index.md +0 -0
  233. package/node_modules/napi-build-utils/package.json +42 -0
  234. package/node_modules/prebuild-install/CHANGELOG.md +131 -0
  235. package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  236. package/node_modules/prebuild-install/LICENSE +21 -0
  237. package/node_modules/prebuild-install/README.md +163 -0
  238. package/node_modules/prebuild-install/asset.js +44 -0
  239. package/node_modules/prebuild-install/bin.js +78 -0
  240. package/node_modules/prebuild-install/download.js +142 -0
  241. package/node_modules/prebuild-install/error.js +14 -0
  242. package/node_modules/prebuild-install/help.txt +16 -0
  243. package/node_modules/prebuild-install/index.js +1 -0
  244. package/node_modules/prebuild-install/log.js +33 -0
  245. package/node_modules/prebuild-install/node_modules/node-abi/LICENSE +21 -0
  246. package/node_modules/prebuild-install/node_modules/node-abi/README.md +54 -0
  247. package/node_modules/prebuild-install/node_modules/node-abi/abi_registry.json +439 -0
  248. package/node_modules/prebuild-install/node_modules/node-abi/index.js +179 -0
  249. package/node_modules/prebuild-install/node_modules/node-abi/package.json +45 -0
  250. package/node_modules/prebuild-install/node_modules/semver/LICENSE +15 -0
  251. package/node_modules/prebuild-install/node_modules/semver/README.md +665 -0
  252. package/node_modules/prebuild-install/node_modules/semver/bin/semver.js +191 -0
  253. package/node_modules/prebuild-install/node_modules/semver/classes/comparator.js +143 -0
  254. package/node_modules/prebuild-install/node_modules/semver/classes/index.js +7 -0
  255. package/node_modules/prebuild-install/node_modules/semver/classes/range.js +557 -0
  256. package/node_modules/prebuild-install/node_modules/semver/classes/semver.js +333 -0
  257. package/node_modules/prebuild-install/node_modules/semver/functions/clean.js +8 -0
  258. package/node_modules/prebuild-install/node_modules/semver/functions/cmp.js +54 -0
  259. package/node_modules/prebuild-install/node_modules/semver/functions/coerce.js +62 -0
  260. package/node_modules/prebuild-install/node_modules/semver/functions/compare-build.js +9 -0
  261. package/node_modules/prebuild-install/node_modules/semver/functions/compare-loose.js +5 -0
  262. package/node_modules/prebuild-install/node_modules/semver/functions/compare.js +7 -0
  263. package/node_modules/prebuild-install/node_modules/semver/functions/diff.js +60 -0
  264. package/node_modules/prebuild-install/node_modules/semver/functions/eq.js +5 -0
  265. package/node_modules/prebuild-install/node_modules/semver/functions/gt.js +5 -0
  266. package/node_modules/prebuild-install/node_modules/semver/functions/gte.js +5 -0
  267. package/node_modules/prebuild-install/node_modules/semver/functions/inc.js +21 -0
  268. package/node_modules/prebuild-install/node_modules/semver/functions/lt.js +5 -0
  269. package/node_modules/prebuild-install/node_modules/semver/functions/lte.js +5 -0
  270. package/node_modules/prebuild-install/node_modules/semver/functions/major.js +5 -0
  271. package/node_modules/prebuild-install/node_modules/semver/functions/minor.js +5 -0
  272. package/node_modules/prebuild-install/node_modules/semver/functions/neq.js +5 -0
  273. package/node_modules/prebuild-install/node_modules/semver/functions/parse.js +18 -0
  274. package/node_modules/prebuild-install/node_modules/semver/functions/patch.js +5 -0
  275. package/node_modules/prebuild-install/node_modules/semver/functions/prerelease.js +8 -0
  276. package/node_modules/prebuild-install/node_modules/semver/functions/rcompare.js +5 -0
  277. package/node_modules/prebuild-install/node_modules/semver/functions/rsort.js +5 -0
  278. package/node_modules/prebuild-install/node_modules/semver/functions/satisfies.js +12 -0
  279. package/node_modules/prebuild-install/node_modules/semver/functions/sort.js +5 -0
  280. package/node_modules/prebuild-install/node_modules/semver/functions/valid.js +8 -0
  281. package/node_modules/prebuild-install/node_modules/semver/index.js +91 -0
  282. package/node_modules/prebuild-install/node_modules/semver/internal/constants.js +37 -0
  283. package/node_modules/prebuild-install/node_modules/semver/internal/debug.js +11 -0
  284. package/node_modules/prebuild-install/node_modules/semver/internal/identifiers.js +29 -0
  285. package/node_modules/prebuild-install/node_modules/semver/internal/lrucache.js +42 -0
  286. package/node_modules/prebuild-install/node_modules/semver/internal/parse-options.js +17 -0
  287. package/node_modules/prebuild-install/node_modules/semver/internal/re.js +223 -0
  288. package/node_modules/prebuild-install/node_modules/semver/package.json +78 -0
  289. package/node_modules/prebuild-install/node_modules/semver/preload.js +4 -0
  290. package/node_modules/prebuild-install/node_modules/semver/range.bnf +16 -0
  291. package/node_modules/prebuild-install/node_modules/semver/ranges/gtr.js +6 -0
  292. package/node_modules/prebuild-install/node_modules/semver/ranges/intersects.js +9 -0
  293. package/node_modules/prebuild-install/node_modules/semver/ranges/ltr.js +6 -0
  294. package/node_modules/prebuild-install/node_modules/semver/ranges/max-satisfying.js +27 -0
  295. package/node_modules/prebuild-install/node_modules/semver/ranges/min-satisfying.js +26 -0
  296. package/node_modules/prebuild-install/node_modules/semver/ranges/min-version.js +63 -0
  297. package/node_modules/prebuild-install/node_modules/semver/ranges/outside.js +82 -0
  298. package/node_modules/prebuild-install/node_modules/semver/ranges/simplify.js +49 -0
  299. package/node_modules/prebuild-install/node_modules/semver/ranges/subset.js +249 -0
  300. package/node_modules/prebuild-install/node_modules/semver/ranges/to-comparators.js +10 -0
  301. package/node_modules/prebuild-install/node_modules/semver/ranges/valid.js +13 -0
  302. package/node_modules/prebuild-install/package.json +67 -0
  303. package/node_modules/prebuild-install/proxy.js +35 -0
  304. package/node_modules/prebuild-install/rc.js +64 -0
  305. package/node_modules/prebuild-install/util.js +143 -0
  306. package/node_modules/pump/.github/FUNDING.yml +2 -0
  307. package/node_modules/pump/.travis.yml +5 -0
  308. package/node_modules/pump/LICENSE +21 -0
  309. package/node_modules/pump/README.md +74 -0
  310. package/node_modules/pump/SECURITY.md +5 -0
  311. package/node_modules/pump/empty.js +1 -0
  312. package/node_modules/pump/index.js +86 -0
  313. package/node_modules/pump/package.json +30 -0
  314. package/node_modules/pump/test-browser.js +66 -0
  315. package/node_modules/pump/test-node.js +53 -0
  316. package/node_modules/rc/LICENSE.APACHE2 +15 -0
  317. package/node_modules/rc/LICENSE.BSD +26 -0
  318. package/node_modules/rc/LICENSE.MIT +24 -0
  319. package/node_modules/rc/README.md +227 -0
  320. package/node_modules/rc/browser.js +7 -0
  321. package/node_modules/rc/cli.js +4 -0
  322. package/node_modules/rc/index.js +53 -0
  323. package/node_modules/rc/lib/utils.js +104 -0
  324. package/node_modules/rc/package.json +29 -0
  325. package/node_modules/rc/test/ini.js +16 -0
  326. package/node_modules/rc/test/nested-env-vars.js +50 -0
  327. package/node_modules/rc/test/test.js +59 -0
  328. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  329. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  330. package/node_modules/readable-stream/LICENSE +47 -0
  331. package/node_modules/readable-stream/README.md +106 -0
  332. package/node_modules/readable-stream/errors-browser.js +127 -0
  333. package/node_modules/readable-stream/errors.js +116 -0
  334. package/node_modules/readable-stream/experimentalWarning.js +17 -0
  335. package/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  336. package/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  337. package/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  338. package/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  339. package/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  340. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  341. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  342. package/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  343. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  344. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  345. package/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  346. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  347. package/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  348. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  349. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  350. package/node_modules/readable-stream/package.json +68 -0
  351. package/node_modules/readable-stream/readable-browser.js +9 -0
  352. package/node_modules/readable-stream/readable.js +16 -0
  353. package/node_modules/simple-concat/.travis.yml +3 -0
  354. package/node_modules/simple-concat/LICENSE +20 -0
  355. package/node_modules/simple-concat/README.md +44 -0
  356. package/node_modules/simple-concat/index.js +15 -0
  357. package/node_modules/simple-concat/package.json +47 -0
  358. package/node_modules/simple-concat/test/basic.js +41 -0
  359. package/node_modules/simple-get/.github/dependabot.yml +15 -0
  360. package/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  361. package/node_modules/simple-get/LICENSE +20 -0
  362. package/node_modules/simple-get/README.md +333 -0
  363. package/node_modules/simple-get/index.js +108 -0
  364. package/node_modules/simple-get/package.json +67 -0
  365. package/node_modules/string_decoder/LICENSE +48 -0
  366. package/node_modules/string_decoder/README.md +47 -0
  367. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  368. package/node_modules/string_decoder/package.json +34 -0
  369. package/node_modules/strip-json-comments/index.js +70 -0
  370. package/node_modules/strip-json-comments/license +21 -0
  371. package/node_modules/strip-json-comments/package.json +42 -0
  372. package/node_modules/strip-json-comments/readme.md +64 -0
  373. package/node_modules/tar-fs/.travis.yml +6 -0
  374. package/node_modules/tar-fs/LICENSE +21 -0
  375. package/node_modules/tar-fs/README.md +165 -0
  376. package/node_modules/tar-fs/index.js +363 -0
  377. package/node_modules/tar-fs/node_modules/chownr/LICENSE +15 -0
  378. package/node_modules/tar-fs/node_modules/chownr/README.md +3 -0
  379. package/node_modules/tar-fs/node_modules/chownr/chownr.js +167 -0
  380. package/node_modules/tar-fs/node_modules/chownr/package.json +29 -0
  381. package/node_modules/tar-fs/package.json +41 -0
  382. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  383. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  384. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  385. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  386. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  387. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  388. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  389. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  390. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  391. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  392. package/node_modules/tar-fs/test/index.js +346 -0
  393. package/node_modules/tar-stream/LICENSE +21 -0
  394. package/node_modules/tar-stream/README.md +168 -0
  395. package/node_modules/tar-stream/extract.js +257 -0
  396. package/node_modules/tar-stream/headers.js +295 -0
  397. package/node_modules/tar-stream/index.js +2 -0
  398. package/node_modules/tar-stream/pack.js +255 -0
  399. package/node_modules/tar-stream/package.json +58 -0
  400. package/node_modules/tar-stream/sandbox.js +11 -0
  401. package/node_modules/tunnel-agent/LICENSE +55 -0
  402. package/node_modules/tunnel-agent/README.md +4 -0
  403. package/node_modules/tunnel-agent/index.js +244 -0
  404. package/node_modules/tunnel-agent/package.json +22 -0
  405. package/node_modules/util-deprecate/History.md +16 -0
  406. package/node_modules/util-deprecate/LICENSE +24 -0
  407. package/node_modules/util-deprecate/README.md +53 -0
  408. package/node_modules/util-deprecate/browser.js +67 -0
  409. package/node_modules/util-deprecate/node.js +6 -0
  410. package/node_modules/util-deprecate/package.json +27 -0
  411. package/node_modules/uuid/CHANGELOG.md +274 -0
  412. package/node_modules/uuid/CONTRIBUTING.md +18 -0
  413. package/node_modules/uuid/LICENSE.md +9 -0
  414. package/node_modules/uuid/README.md +466 -0
  415. package/node_modules/uuid/dist/bin/uuid +2 -0
  416. package/node_modules/uuid/dist/commonjs-browser/index.js +79 -0
  417. package/node_modules/uuid/dist/commonjs-browser/md5.js +223 -0
  418. package/node_modules/uuid/dist/commonjs-browser/native.js +11 -0
  419. package/node_modules/uuid/dist/commonjs-browser/nil.js +8 -0
  420. package/node_modules/uuid/dist/commonjs-browser/parse.js +45 -0
  421. package/node_modules/uuid/dist/commonjs-browser/regex.js +8 -0
  422. package/node_modules/uuid/dist/commonjs-browser/rng.js +25 -0
  423. package/node_modules/uuid/dist/commonjs-browser/sha1.js +104 -0
  424. package/node_modules/uuid/dist/commonjs-browser/stringify.js +44 -0
  425. package/node_modules/uuid/dist/commonjs-browser/v1.js +107 -0
  426. package/node_modules/uuid/dist/commonjs-browser/v3.js +16 -0
  427. package/node_modules/uuid/dist/commonjs-browser/v35.js +80 -0
  428. package/node_modules/uuid/dist/commonjs-browser/v4.js +43 -0
  429. package/node_modules/uuid/dist/commonjs-browser/v5.js +16 -0
  430. package/node_modules/uuid/dist/commonjs-browser/validate.js +17 -0
  431. package/node_modules/uuid/dist/commonjs-browser/version.js +21 -0
  432. package/node_modules/uuid/dist/esm-browser/index.js +9 -0
  433. package/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  434. package/node_modules/uuid/dist/esm-browser/native.js +4 -0
  435. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  436. package/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  437. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  438. package/node_modules/uuid/dist/esm-browser/rng.js +18 -0
  439. package/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  440. package/node_modules/uuid/dist/esm-browser/stringify.js +33 -0
  441. package/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  442. package/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  443. package/node_modules/uuid/dist/esm-browser/v35.js +66 -0
  444. package/node_modules/uuid/dist/esm-browser/v4.js +29 -0
  445. package/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  446. package/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  447. package/node_modules/uuid/dist/esm-browser/version.js +11 -0
  448. package/node_modules/uuid/dist/esm-node/index.js +9 -0
  449. package/node_modules/uuid/dist/esm-node/md5.js +13 -0
  450. package/node_modules/uuid/dist/esm-node/native.js +4 -0
  451. package/node_modules/uuid/dist/esm-node/nil.js +1 -0
  452. package/node_modules/uuid/dist/esm-node/parse.js +35 -0
  453. package/node_modules/uuid/dist/esm-node/regex.js +1 -0
  454. package/node_modules/uuid/dist/esm-node/rng.js +12 -0
  455. package/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  456. package/node_modules/uuid/dist/esm-node/stringify.js +33 -0
  457. package/node_modules/uuid/dist/esm-node/v1.js +95 -0
  458. package/node_modules/uuid/dist/esm-node/v3.js +4 -0
  459. package/node_modules/uuid/dist/esm-node/v35.js +66 -0
  460. package/node_modules/uuid/dist/esm-node/v4.js +29 -0
  461. package/node_modules/uuid/dist/esm-node/v5.js +4 -0
  462. package/node_modules/uuid/dist/esm-node/validate.js +7 -0
  463. package/node_modules/uuid/dist/esm-node/version.js +11 -0
  464. package/node_modules/uuid/dist/index.js +79 -0
  465. package/node_modules/uuid/dist/md5-browser.js +223 -0
  466. package/node_modules/uuid/dist/md5.js +23 -0
  467. package/node_modules/uuid/dist/native-browser.js +11 -0
  468. package/node_modules/uuid/dist/native.js +15 -0
  469. package/node_modules/uuid/dist/nil.js +8 -0
  470. package/node_modules/uuid/dist/parse.js +45 -0
  471. package/node_modules/uuid/dist/regex.js +8 -0
  472. package/node_modules/uuid/dist/rng-browser.js +25 -0
  473. package/node_modules/uuid/dist/rng.js +24 -0
  474. package/node_modules/uuid/dist/sha1-browser.js +104 -0
  475. package/node_modules/uuid/dist/sha1.js +23 -0
  476. package/node_modules/uuid/dist/stringify.js +44 -0
  477. package/node_modules/uuid/dist/uuid-bin.js +85 -0
  478. package/node_modules/uuid/dist/v1.js +107 -0
  479. package/node_modules/uuid/dist/v3.js +16 -0
  480. package/node_modules/uuid/dist/v35.js +80 -0
  481. package/node_modules/uuid/dist/v4.js +43 -0
  482. package/node_modules/uuid/dist/v5.js +16 -0
  483. package/node_modules/uuid/dist/validate.js +17 -0
  484. package/node_modules/uuid/dist/version.js +21 -0
  485. package/node_modules/uuid/package.json +135 -0
  486. package/node_modules/uuid/wrapper.mjs +10 -0
  487. package/package.json +5 -3
  488. package/packages/cli/package.json +1 -1
  489. package/packages/daemon/package.json +1 -1
  490. package/packages/daemon/src/api.js +17 -9
  491. package/packages/daemon/src/process.js +2 -0
  492. package/packages/gui/dist/assets/{codemirror-BBL3i_JW.js → codemirror-CFF1Lrnz.js} +10 -10
  493. package/{node_modules/@groove-dev/gui/dist/assets/index-DWv32qyJ.js → packages/gui/dist/assets/index-B3GUKInH.js} +1740 -1740
  494. package/{node_modules/@groove-dev/gui/dist/assets/index-Bo6AeNmM.css → packages/gui/dist/assets/index-C1k-GuDg.css} +1 -1
  495. package/packages/gui/dist/index.html +3 -3
  496. package/packages/gui/package.json +1 -1
  497. package/packages/gui/src/components/agents/agent-panel.jsx +2 -0
  498. package/packages/gui/src/components/editor/code-editor.jsx +3 -3
  499. package/packages/gui/src/stores/groove.js +23 -16
  500. package/packages/gui/src/views/agents.jsx +44 -113
  501. package/workspace.png +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groove-dev/gui",
3
- "version": "0.27.92",
3
+ "version": "0.27.94",
4
4
  "description": "GROOVE GUI — visual agent control plane",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "type": "module",
@@ -80,11 +80,13 @@ function InlineName({ agent }) {
80
80
  export function AgentPanel() {
81
81
  const detailPanel = useGrooveStore((s) => s.detailPanel);
82
82
  const agents = useGrooveStore((s) => s.agents);
83
+ const activeTeamId = useGrooveStore((s) => s.activeTeamId);
83
84
  const [activeTab, setActiveTab] = useState('command');
84
85
 
85
86
  if (detailPanel?.type !== 'agent') return null;
86
87
  const agent = agents.find((a) => a.id === detailPanel.agentId);
87
88
  if (!agent) return null;
89
+ if (activeTeamId && agent.teamId && agent.teamId !== activeTeamId) return null;
88
90
 
89
91
  const isAlive = agent.status === 'running' || agent.status === 'starting';
90
92
  const ctxPct = Math.round((agent.contextUsage || 0) * 100);
@@ -3,10 +3,10 @@ import { useRef, useEffect } from 'react';
3
3
  import { EditorView, keymap, lineNumbers, highlightActiveLine, highlightActiveLineGutter } from '@codemirror/view';
4
4
  import { EditorState, Compartment } from '@codemirror/state';
5
5
  import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
6
- import { bracketMatching } from '@codemirror/language';
6
+ import { bracketMatching, syntaxHighlighting } from '@codemirror/language';
7
7
  import { searchKeymap, highlightSelectionMatches } from '@codemirror/search';
8
8
  import { autocompletion } from '@codemirror/autocomplete';
9
- import { oneDark } from '@codemirror/theme-one-dark';
9
+ import { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';
10
10
  import { javascript } from '@codemirror/lang-javascript';
11
11
  import { css } from '@codemirror/lang-css';
12
12
  import { html } from '@codemirror/lang-html';
@@ -98,7 +98,7 @@ export function CodeEditor({ content, language, onChange, onSave, onCursorChange
98
98
  autocompletion(),
99
99
  keymap.of([...defaultKeymap, ...historyKeymap, ...searchKeymap]),
100
100
  saveKeymap,
101
- oneDark,
101
+ syntaxHighlighting(oneDarkHighlightStyle),
102
102
  grooveTheme,
103
103
  langCompartment.current.of(langExt()),
104
104
  EditorView.updateListener.of((update) => {
@@ -70,7 +70,6 @@ export const useGrooveStore = create((set, get) => ({
70
70
  teamBuilderRoles: [],
71
71
  teamBuilderSettings: { provider: null, model: null, reasoningEffort: 50, temperature: 0.5 },
72
72
  teamBuilderTask: '',
73
- teamBuilderLaunchMode: 'plan',
74
73
  teamTemplates: { builtIn: [], custom: [] },
75
74
 
76
75
  // ── Navigation ────────────────────────────────────────────
@@ -1201,6 +1200,8 @@ export const useGrooveStore = create((set, get) => ({
1201
1200
  },
1202
1201
  selectAgent(id) {
1203
1202
  const tid = get().activeTeamId;
1203
+ const match = get().agents.find((a) => a.id === id);
1204
+ if (tid && match && match.teamId && match.teamId !== tid) return;
1204
1205
  const panel = { type: 'agent', agentId: id };
1205
1206
  set((s) => ({ detailPanel: panel, teamDetailPanels: { ...s.teamDetailPanels, [tid]: panel } }));
1206
1207
  },
@@ -1619,7 +1620,6 @@ export const useGrooveStore = create((set, get) => ({
1619
1620
  teamBuilderRoles: [],
1620
1621
  teamBuilderSettings: { provider: null, model: null, reasoningEffort: 50, temperature: 0.5 },
1621
1622
  teamBuilderTask: '',
1622
- teamBuilderLaunchMode: 'plan',
1623
1623
  });
1624
1624
  },
1625
1625
  addTeamBuilderRole(role) {
@@ -1651,12 +1651,18 @@ export const useGrooveStore = create((set, get) => ({
1651
1651
  set((s) => ({ teamBuilderSettings: { ...s.teamBuilderSettings, ...settings } }));
1652
1652
  },
1653
1653
  setTeamBuilderTask(task) { set({ teamBuilderTask: task }); },
1654
- setTeamBuilderLaunchMode(mode) { set({ teamBuilderLaunchMode: mode }); },
1655
1654
 
1656
1655
  async fetchTeamTemplates() {
1657
1656
  try {
1658
1657
  const data = await api.get('/team-templates');
1659
- set({ teamTemplates: data });
1658
+ const builtIn = [];
1659
+ const custom = [];
1660
+ for (const [key, tmpl] of Object.entries(data || {})) {
1661
+ const entry = { ...tmpl, name: key };
1662
+ if (tmpl.builtIn) builtIn.push(entry);
1663
+ else custom.push(entry);
1664
+ }
1665
+ set({ teamTemplates: { builtIn, custom } });
1660
1666
  } catch { /* endpoint may not exist yet */ }
1661
1667
  },
1662
1668
 
@@ -1686,21 +1692,19 @@ export const useGrooveStore = create((set, get) => ({
1686
1692
  },
1687
1693
 
1688
1694
  async launchTeamBuilder() {
1689
- const { teamBuilderRoles, teamBuilderSettings, teamBuilderTask, teamBuilderLaunchMode, activeTeamId } = get();
1695
+ const { teamBuilderRoles, teamBuilderSettings, teamBuilderTask, activeTeamId } = get();
1690
1696
  if (teamBuilderRoles.length === 0) return;
1697
+ get().closeTeamBuilder();
1691
1698
  try {
1692
- get().addToast('info', 'Launching team...');
1693
1699
  const body = {
1694
1700
  task: teamBuilderTask,
1695
1701
  roles: teamBuilderRoles,
1696
1702
  settings: teamBuilderSettings,
1697
- launchMode: teamBuilderLaunchMode,
1703
+ launchMode: 'plan-first',
1698
1704
  teamId: activeTeamId,
1699
1705
  };
1700
1706
  const result = await api.post('/team-builder/launch', body);
1701
- const count = result.launched || result.agents?.length || 0;
1702
- get().addToast('success', `Launched ${count} agent${count !== 1 ? 's' : ''}`);
1703
- get().closeTeamBuilder();
1707
+ get().addToast('success', 'Planner spawned team will build automatically');
1704
1708
  return result;
1705
1709
  } catch (err) {
1706
1710
  get().addToast('error', 'Team launch failed', err.message);
@@ -2497,13 +2501,16 @@ export const useGrooveStore = create((set, get) => ({
2497
2501
  setWorkspaceMode(on) {
2498
2502
  set({ workspaceMode: on });
2499
2503
  localStorage.setItem('groove:workspaceMode', String(on));
2500
- if (on && !get().workspaceAgentId) {
2501
- const teamAgents = get().agents.filter((a) => a.teamId === get().activeTeamId);
2502
- const selected = get().detailPanel?.type === 'agent' ? get().detailPanel.agentId : null;
2503
- const running = teamAgents.find((a) => a.status === 'running');
2504
- set({ workspaceAgentId: selected || running?.id || teamAgents[0]?.id || null });
2505
- }
2506
2504
  if (on) {
2505
+ const teamAgents = get().agents.filter((a) => a.teamId === get().activeTeamId);
2506
+ const current = get().workspaceAgentId;
2507
+ const belongsToTeam = current && teamAgents.some((a) => a.id === current);
2508
+ if (!belongsToTeam) {
2509
+ const selected = get().detailPanel?.type === 'agent' ? get().detailPanel.agentId : null;
2510
+ const selectedInTeam = selected && teamAgents.some((a) => a.id === selected);
2511
+ const running = teamAgents.find((a) => a.status === 'running');
2512
+ set({ workspaceAgentId: (selectedInTeam ? selected : null) || running?.id || teamAgents[0]?.id || null });
2513
+ }
2507
2514
  const agentId = get().workspaceAgentId;
2508
2515
  if (agentId) get().selectAgent(agentId);
2509
2516
  }
@@ -10,7 +10,7 @@ import { RootNode } from '../components/agents/root-node';
10
10
  import { cn } from '../lib/cn';
11
11
  import { Button } from '../components/ui/button';
12
12
  import { Badge } from '../components/ui/badge';
13
- import { Plus, Users, UserPlus, Zap, X, Check, Rocket, Server, Monitor, Code2, TestTube, Shield, Pencil, Copy, Trash2, ChevronDown, ChevronLeft, ChevronRight, FolderOpen, Radio, Eye, Settings2, Search, GripVertical, Cloud, FileText, Database, Megaphone, Calculator, UserCheck, Headphones, BarChart3, Pen, Presentation, Globe, MessageCircle, Save, Play, Clock, ListChecks, Layers } from 'lucide-react';
13
+ import { Plus, Users, UserPlus, Zap, X, Check, Rocket, Server, Monitor, Code2, TestTube, Shield, Pencil, Copy, Trash2, ChevronDown, ChevronLeft, ChevronRight, FolderOpen, Eye, Settings2, Search, GripVertical, Cloud, FileText, Database, Megaphone, Calculator, UserCheck, Headphones, BarChart3, Pen, Presentation, Globe, MessageCircle, Save, Layers } from 'lucide-react';
14
14
  import { PreviewWorkspace } from '../components/preview/preview-workspace';
15
15
  import { WorkspaceMode } from '../components/agents/workspace-mode';
16
16
  import { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuSeparator } from '../components/ui/context-menu';
@@ -750,7 +750,6 @@ function TeamBuilder() {
750
750
  const roles = useGrooveStore((s) => s.teamBuilderRoles);
751
751
  const settings = useGrooveStore((s) => s.teamBuilderSettings);
752
752
  const task = useGrooveStore((s) => s.teamBuilderTask);
753
- const launchMode = useGrooveStore((s) => s.teamBuilderLaunchMode);
754
753
  const templates = useGrooveStore((s) => s.teamTemplates);
755
754
  const closeTeamBuilder = useGrooveStore((s) => s.closeTeamBuilder);
756
755
  const addRole = useGrooveStore((s) => s.addTeamBuilderRole);
@@ -759,7 +758,6 @@ function TeamBuilder() {
759
758
  const applyTemplate = useGrooveStore((s) => s.applyTemplate);
760
759
  const setSettings = useGrooveStore((s) => s.setTeamBuilderSettings);
761
760
  const setTask = useGrooveStore((s) => s.setTeamBuilderTask);
762
- const setLaunchMode = useGrooveStore((s) => s.setTeamBuilderLaunchMode);
763
761
  const launchTeamBuilder = useGrooveStore((s) => s.launchTeamBuilder);
764
762
  const saveTeamTemplate = useGrooveStore((s) => s.saveTeamTemplate);
765
763
  const fetchTeamTemplates = useGrooveStore((s) => s.fetchTeamTemplates);
@@ -789,8 +787,6 @@ function TeamBuilder() {
789
787
 
790
788
  const selectedProvider = providers.find((p) => p.id === settings.provider);
791
789
  const settingsModels = (selectedProvider?.models || []).filter((m) => m.type !== 'image' && !m.disabled);
792
- const showTemp = PROVIDER_TEMP_SUPPORT.has(settings.provider);
793
-
794
790
  function handleSettingsProviderChange(id) {
795
791
  setSettings({ provider: id });
796
792
  const p = providers.find((x) => x.id === id);
@@ -829,8 +825,8 @@ function TeamBuilder() {
829
825
  {/* Top Bar */}
830
826
  <div className="flex items-center justify-between px-6 py-4 border-b border-border-subtle">
831
827
  <div className="flex items-center gap-3">
832
- <div className="w-8 h-8 rounded-lg bg-purple/15 flex items-center justify-center">
833
- <Users size={16} className="text-purple" />
828
+ <div className="w-8 h-8 rounded-lg bg-info/15 flex items-center justify-center">
829
+ <Users size={16} className="text-info" />
834
830
  </div>
835
831
  <h2 className="text-lg font-bold text-text-0 font-sans">Team Builder</h2>
836
832
  </div>
@@ -974,15 +970,15 @@ function TeamBuilder() {
974
970
  <div className="flex gap-2">
975
971
  <div className="flex-1 space-y-1">
976
972
  <label className="text-2xs text-text-3 font-sans">Provider</label>
977
- <Select value={r.provider || ''} onValueChange={(v) => {
978
- updateRole(i, { provider: v || null });
979
- const p = providers.find((x) => x.id === v);
973
+ <Select value={r.provider || '__default__'} onValueChange={(v) => {
974
+ const pv = v === '__default__' ? null : v;
975
+ const p = providers.find((x) => x.id === pv);
980
976
  const pModels = (p?.models || []).filter((m) => m.type !== 'image' && !m.disabled);
981
- updateRole(i, { provider: v || null, model: pModels[0]?.id || null });
977
+ updateRole(i, { provider: pv, model: pModels[0]?.id || null });
982
978
  }}>
983
979
  <SelectTrigger placeholder="Team Default" className="bg-surface-3 h-7 text-xs" />
984
980
  <SelectContent>
985
- <SelectItem value="">Team Default</SelectItem>
981
+ <SelectItem value="__default__">Team Default</SelectItem>
986
982
  {providers.map((p) => (
987
983
  <SelectItem key={p.id} value={p.id}>{p.displayName || p.name || p.id}</SelectItem>
988
984
  ))}
@@ -991,10 +987,10 @@ function TeamBuilder() {
991
987
  </div>
992
988
  <div className="flex-1 space-y-1">
993
989
  <label className="text-2xs text-text-3 font-sans">Model</label>
994
- <Select value={r.model || ''} onValueChange={(v) => updateRole(i, { model: v || null })}>
990
+ <Select value={r.model || '__default__'} onValueChange={(v) => updateRole(i, { model: v === '__default__' ? null : v })}>
995
991
  <SelectTrigger placeholder="Default" className="bg-surface-3 h-7 text-xs" />
996
992
  <SelectContent>
997
- <SelectItem value="">Default</SelectItem>
993
+ <SelectItem value="__default__">Default</SelectItem>
998
994
  {roleModels.map((m) => (
999
995
  <SelectItem key={m.id} value={m.id}>{m.name || m.id}</SelectItem>
1000
996
  ))}
@@ -1017,16 +1013,6 @@ function TeamBuilder() {
1017
1013
  formatValue={(v) => v.toFixed(2)}
1018
1014
  />
1019
1015
  )}
1020
- <div className="space-y-1">
1021
- <label className="text-2xs text-text-3 font-sans">Custom Prompt</label>
1022
- <textarea
1023
- value={r.prompt || ''}
1024
- onChange={(e) => updateRole(i, { prompt: e.target.value })}
1025
- placeholder="Optional instructions for this agent..."
1026
- rows={2}
1027
- className="w-full px-2.5 py-1.5 text-xs bg-surface-3 border border-border-subtle rounded-md text-text-0 font-sans placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent resize-none"
1028
- />
1029
- </div>
1030
1016
  </div>
1031
1017
  )}
1032
1018
  </div>
@@ -1040,38 +1026,9 @@ function TeamBuilder() {
1040
1026
  {/* Bottom Bar */}
1041
1027
  <div className="border-t border-border-subtle px-6 py-4">
1042
1028
  <div className="flex gap-4">
1043
- {/* Task + Launch Mode */}
1044
- <div className="flex-1 space-y-3">
1045
- <textarea
1046
- value={task}
1047
- onChange={(e) => setTask(e.target.value)}
1048
- placeholder="Describe what this team should work on..."
1049
- rows={2}
1050
- className="w-full px-3 py-2 text-sm bg-surface-3 border border-border-subtle rounded-lg text-text-0 font-sans placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent resize-none"
1051
- />
1052
- <div className="flex items-center gap-2">
1053
- <span className="text-2xs text-text-3 font-sans mr-1">Launch Mode:</span>
1054
- {[
1055
- { id: 'direct', label: 'Direct', icon: Play, tip: 'Agents start working immediately' },
1056
- { id: 'plan', label: 'Plan First', icon: ListChecks, tip: 'Planner designs prompts, then team launches' },
1057
- { id: 'await', label: 'Await', icon: Clock, tip: 'Agents spawn idle, await instructions' },
1058
- ].map((m) => (
1059
- <Tooltip key={m.id} content={m.tip}>
1060
- <button
1061
- onClick={() => setLaunchMode(m.id)}
1062
- className={cn(
1063
- 'flex items-center gap-1.5 px-2.5 py-1 rounded-md text-2xs font-semibold font-sans transition-colors cursor-pointer',
1064
- launchMode === m.id
1065
- ? 'bg-accent/15 text-accent border border-accent/30'
1066
- : 'bg-surface-3 text-text-3 border border-border-subtle hover:text-text-1 hover:border-border',
1067
- )}
1068
- >
1069
- <m.icon size={11} />
1070
- {m.label}
1071
- </button>
1072
- </Tooltip>
1073
- ))}
1074
- </div>
1029
+ {/* Task */}
1030
+ <div className="flex-1 space-y-2">
1031
+ <p className="text-xs text-text-3 font-sans italic">Planner will design agent prompts automatically</p>
1075
1032
  </div>
1076
1033
 
1077
1034
  {/* Team Settings + Launch */}
@@ -1079,10 +1036,10 @@ function TeamBuilder() {
1079
1036
  <div className="flex gap-2">
1080
1037
  <div className="flex-1 space-y-0.5">
1081
1038
  <label className="text-2xs text-text-3 font-sans">Provider</label>
1082
- <Select value={settings.provider || ''} onValueChange={handleSettingsProviderChange}>
1039
+ <Select value={settings.provider || '__default__'} onValueChange={(v) => handleSettingsProviderChange(v === '__default__' ? '' : v)}>
1083
1040
  <SelectTrigger placeholder="Default" className="bg-surface-3 h-7 text-xs" />
1084
1041
  <SelectContent>
1085
- <SelectItem value="">Default</SelectItem>
1042
+ <SelectItem value="__default__">Default</SelectItem>
1086
1043
  {providers.map((p) => (
1087
1044
  <SelectItem key={p.id} value={p.id}>{p.displayName || p.name || p.id}</SelectItem>
1088
1045
  ))}
@@ -1091,10 +1048,10 @@ function TeamBuilder() {
1091
1048
  </div>
1092
1049
  <div className="flex-1 space-y-0.5">
1093
1050
  <label className="text-2xs text-text-3 font-sans">Model</label>
1094
- <Select value={settings.model || ''} onValueChange={(v) => setSettings({ model: v })}>
1051
+ <Select value={settings.model || '__default__'} onValueChange={(v) => setSettings({ model: v === '__default__' ? '' : v })}>
1095
1052
  <SelectTrigger placeholder="Auto" className="bg-surface-3 h-7 text-xs" />
1096
1053
  <SelectContent>
1097
- <SelectItem value="">Auto</SelectItem>
1054
+ <SelectItem value="__default__">Auto</SelectItem>
1098
1055
  {settingsModels.map((m) => (
1099
1056
  <SelectItem key={m.id} value={m.id}>{m.name || m.id}</SelectItem>
1100
1057
  ))}
@@ -1102,21 +1059,6 @@ function TeamBuilder() {
1102
1059
  </Select>
1103
1060
  </div>
1104
1061
  </div>
1105
- <TuningSlider
1106
- label="Reasoning"
1107
- value={settings.reasoningEffort}
1108
- onChange={(v) => setSettings({ reasoningEffort: v })}
1109
- min={0} max={100} step={1}
1110
- />
1111
- {showTemp && (
1112
- <TuningSlider
1113
- label="Temperature"
1114
- value={settings.temperature}
1115
- onChange={(v) => setSettings({ temperature: v })}
1116
- min={0} max={1} step={0.01}
1117
- formatValue={(v) => v.toFixed(2)}
1118
- />
1119
- )}
1120
1062
  <Button
1121
1063
  variant="primary"
1122
1064
  size="md"
@@ -1194,44 +1136,33 @@ function EmptyState({ onPlanner, onSpawn, onTeamBuilder }) {
1194
1136
  </div>
1195
1137
  </button>
1196
1138
 
1197
- <button
1198
- onClick={onTeamBuilder}
1199
- className="w-full flex items-center gap-3 p-4 rounded-lg border border-purple/25 bg-gradient-to-r from-purple/6 to-purple/2 hover:from-purple/12 hover:to-purple/5 hover:border-purple/35 transition-all cursor-pointer group text-left"
1200
- >
1201
- <div className="w-10 h-10 rounded-lg bg-purple/15 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0">
1202
- <UserPlus size={20} className="text-purple" />
1203
- </div>
1204
- <div className="min-w-0">
1205
- <div className="text-sm font-semibold text-text-0 font-sans">Build a Team</div>
1206
- <div className="text-xs text-text-3 font-sans mt-0.5">Pick your roles, configure settings, and launch</div>
1207
- </div>
1208
- </button>
1209
-
1210
- <button
1211
- onClick={onSpawn}
1212
- className="w-full flex items-center gap-3 p-4 rounded-lg border border-border bg-surface-1 hover:bg-surface-2 hover:border-border transition-all cursor-pointer group text-left"
1213
- >
1214
- <div className="w-10 h-10 rounded-lg bg-surface-4 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0">
1215
- <Plus size={20} className="text-text-1" />
1216
- </div>
1217
- <div className="min-w-0">
1218
- <div className="text-sm font-semibold text-text-0 font-sans">Spawn Agent</div>
1219
- <div className="text-xs text-text-3 font-sans mt-0.5">Choose a role and configure</div>
1220
- </div>
1221
- </button>
1139
+ <div className="grid grid-cols-2 gap-3">
1140
+ <button
1141
+ onClick={onTeamBuilder}
1142
+ className="flex items-center gap-3 p-4 rounded-lg border border-info/25 bg-gradient-to-r from-info/6 to-info/2 hover:from-info/12 hover:to-info/5 hover:border-info/35 transition-all cursor-pointer group text-left"
1143
+ >
1144
+ <div className="w-10 h-10 rounded-lg bg-info/15 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0">
1145
+ <UserPlus size={20} className="text-info" />
1146
+ </div>
1147
+ <div className="min-w-0">
1148
+ <div className="text-sm font-semibold text-text-0 font-sans">Build a Team</div>
1149
+ <div className="text-xs text-text-3 font-sans mt-0.5">Pick roles and configure</div>
1150
+ </div>
1151
+ </button>
1222
1152
 
1223
- <button
1224
- onClick={() => useGrooveStore.getState().toggleQuickConnect()}
1225
- className="w-full flex items-center gap-3 p-4 rounded-lg border border-border bg-surface-1 hover:bg-surface-2 hover:border-border transition-all cursor-pointer group text-left"
1226
- >
1227
- <div className="w-10 h-10 rounded-lg bg-surface-4 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0">
1228
- <Radio size={20} className="text-text-1" />
1229
- </div>
1230
- <div className="min-w-0">
1231
- <div className="text-sm font-semibold text-text-0 font-sans">Connect to Remote Server</div>
1232
- <div className="text-xs text-text-3 font-sans mt-0.5">SSH tunnel to a remote machine</div>
1233
- </div>
1234
- </button>
1153
+ <button
1154
+ onClick={onSpawn}
1155
+ className="flex items-center gap-3 p-4 rounded-lg border border-border bg-surface-1 hover:bg-surface-2 hover:border-border transition-all cursor-pointer group text-left"
1156
+ >
1157
+ <div className="w-10 h-10 rounded-lg bg-surface-4 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0">
1158
+ <Plus size={20} className="text-text-1" />
1159
+ </div>
1160
+ <div className="min-w-0">
1161
+ <div className="text-sm font-semibold text-text-0 font-sans">Spawn Agent</div>
1162
+ <div className="text-xs text-text-3 font-sans mt-0.5">Choose a role and configure</div>
1163
+ </div>
1164
+ </button>
1165
+ </div>
1235
1166
  </div>
1236
1167
 
1237
1168
  {window.groove?.openFolder && (
@@ -1569,7 +1500,7 @@ export default function AgentsView() {
1569
1500
  className={cn(
1570
1501
  'absolute bottom-4 z-40 flex items-center gap-1.5 h-8 px-4 rounded-md text-xs font-semibold font-sans transition-colors cursor-pointer select-none shadow-lg shadow-black/10',
1571
1502
  previewState.url && previewState.teamId === activeTeamId ? 'right-32' : 'right-4',
1572
- 'bg-purple/15 text-purple hover:bg-purple/25',
1503
+ 'bg-accent/15 text-accent hover:bg-accent/25',
1573
1504
  )}
1574
1505
  >
1575
1506
  <Code2 size={14} /> Workspace
package/workspace.png DELETED
Binary file