groove-dev 0.27.110 → 0.27.112

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 (43) hide show
  1. package/EMBEDDING_SERVICE_BUILD_PLAN.md +200 -0
  2. package/TRAINING_DATA_v2.md +9 -0
  3. package/moe-training/client/consent.js +47 -55
  4. package/moe-training/client/domain-tagger.js +3 -1
  5. package/moe-training/client/trajectory-capture.js +3 -2
  6. package/moe-training/shared/constants.js +1 -0
  7. package/moe-training/test/client/consent.test.js +23 -20
  8. package/moe-training/test/client/domain-tagger.test.js +6 -4
  9. package/node_modules/@groove-dev/cli/package.json +1 -1
  10. package/node_modules/@groove-dev/daemon/package.json +1 -1
  11. package/node_modules/@groove-dev/daemon/src/api.js +24 -42
  12. package/node_modules/@groove-dev/daemon/src/index.js +8 -10
  13. package/node_modules/@groove-dev/gui/dist/assets/{index-B8JomvGM.js → index-CHu5w3i3.js} +1 -1
  14. package/node_modules/@groove-dev/gui/dist/index.html +1 -1
  15. package/node_modules/@groove-dev/gui/package.json +1 -1
  16. package/node_modules/@groove-dev/gui/src/stores/groove.js +1 -1
  17. package/node_modules/moe-training/client/consent.js +47 -55
  18. package/node_modules/moe-training/client/domain-tagger.js +3 -1
  19. package/node_modules/moe-training/client/trajectory-capture.js +3 -2
  20. package/node_modules/moe-training/shared/constants.js +1 -0
  21. package/node_modules/moe-training/test/client/consent.test.js +23 -20
  22. package/node_modules/moe-training/test/client/domain-tagger.test.js +6 -4
  23. package/package.json +1 -1
  24. package/packages/cli/package.json +1 -1
  25. package/packages/daemon/package.json +1 -1
  26. package/packages/daemon/src/api.js +24 -42
  27. package/packages/daemon/src/index.js +8 -10
  28. package/packages/gui/dist/assets/{index-B8JomvGM.js → index-CHu5w3i3.js} +1 -1
  29. package/packages/gui/dist/index.html +1 -1
  30. package/packages/gui/package.json +1 -1
  31. package/packages/gui/src/stores/groove.js +1 -1
  32. package/TRAINING_DATA.md +0 -12
  33. package/codex/browser-racing-game/README.md +0 -45
  34. package/codex/browser-racing-game/dist/assets/index-D-sGTraQ.js +0 -47
  35. package/codex/browser-racing-game/dist/assets/index-S75nJv69.css +0 -1
  36. package/codex/browser-racing-game/dist/index.html +0 -14
  37. package/codex/browser-racing-game/index.html +0 -13
  38. package/codex/browser-racing-game/package-lock.json +0 -841
  39. package/codex/browser-racing-game/package.json +0 -15
  40. package/codex/browser-racing-game/src/app.css +0 -359
  41. package/codex/browser-racing-game/src/main.ts +0 -913
  42. package/codex/browser-racing-game/tsconfig.json +0 -20
  43. package/codex/browser-racing-game/vite.config.ts +0 -12
@@ -1,15 +0,0 @@
1
- {
2
- "name": "browser-racing-game",
3
- "version": "0.1.0",
4
- "private": true,
5
- "type": "module",
6
- "scripts": {
7
- "dev": "vite",
8
- "build": "tsc && vite build",
9
- "preview": "vite preview"
10
- },
11
- "dependencies": {
12
- "typescript": "latest",
13
- "vite": "latest"
14
- }
15
- }
@@ -1,359 +0,0 @@
1
- :root {
2
- --color-accent: #33afbc;
3
- --color-success: #31d07f;
4
- --color-warning: #f7b731;
5
- --color-danger: #ff4d6d;
6
- --color-info: #45aaf2;
7
- --color-purple: #a55eea;
8
- --color-orange: #fd9644;
9
- --color-surface-0: #050913;
10
- --color-surface-1: #08111c;
11
- --color-surface-2: #101a28;
12
- --color-surface-3: #162235;
13
- --color-surface-4: #233247;
14
- --color-surface-5: #304259;
15
- --color-surface-6: #40546e;
16
- --color-text-0: #f8fbff;
17
- --color-text-1: #d9e5f2;
18
- --color-text-2: #a9bbcf;
19
- --color-text-3: #73869b;
20
- --color-text-4: #536579;
21
- --color-border: rgba(180, 205, 230, 0.22);
22
- --color-border-subtle: rgba(180, 205, 230, 0.12);
23
- --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
24
- --font-mono: "JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
25
- color: var(--color-text-0);
26
- background: var(--color-surface-0);
27
- font-family: var(--font-sans);
28
- font-synthesis: none;
29
- text-rendering: geometricPrecision;
30
- }
31
-
32
- * {
33
- box-sizing: border-box;
34
- }
35
-
36
- body {
37
- min-width: 320px;
38
- min-height: 100vh;
39
- margin: 0;
40
- overflow-x: hidden;
41
- background:
42
- radial-gradient(circle at top left, rgba(51, 175, 188, 0.24), transparent 34rem),
43
- radial-gradient(circle at 82% 0%, rgba(255, 77, 109, 0.18), transparent 28rem),
44
- linear-gradient(135deg, #050913 0%, #07111e 52%, #0d1322 100%);
45
- }
46
-
47
- button,
48
- kbd {
49
- font: inherit;
50
- }
51
-
52
- .shell {
53
- width: min(1480px, 100%);
54
- min-height: 100vh;
55
- margin: 0 auto;
56
- padding: clamp(14px, 2vw, 28px);
57
- display: grid;
58
- grid-template-rows: auto minmax(560px, 1fr);
59
- gap: 18px;
60
- }
61
-
62
- .hero-panel {
63
- display: grid;
64
- grid-template-columns: 1fr auto;
65
- align-items: end;
66
- gap: 18px;
67
- padding: clamp(18px, 2vw, 28px);
68
- border: 1px solid var(--color-border-subtle);
69
- border-radius: 28px;
70
- background: linear-gradient(135deg, rgba(16, 26, 40, 0.92), rgba(8, 17, 28, 0.64));
71
- box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.08);
72
- }
73
-
74
- .eyebrow {
75
- margin: 0 0 8px;
76
- color: var(--color-accent);
77
- font-size: 0.72rem;
78
- font-weight: 800;
79
- letter-spacing: 0.18em;
80
- text-transform: uppercase;
81
- }
82
-
83
- h1,
84
- h2,
85
- p {
86
- margin-top: 0;
87
- }
88
-
89
- h1 {
90
- max-width: 840px;
91
- margin-bottom: 8px;
92
- font-size: clamp(2rem, 5vw, 4.9rem);
93
- line-height: 0.92;
94
- letter-spacing: -0.07em;
95
- }
96
-
97
- h2 {
98
- margin-bottom: 16px;
99
- font-size: clamp(3rem, 9vw, 7rem);
100
- line-height: 0.9;
101
- letter-spacing: -0.06em;
102
- }
103
-
104
- .lede {
105
- max-width: 710px;
106
- margin-bottom: 0;
107
- color: var(--color-text-2);
108
- font-size: clamp(0.95rem, 2vw, 1.1rem);
109
- }
110
-
111
- .controls-card {
112
- min-width: min(360px, 100%);
113
- display: grid;
114
- gap: 8px;
115
- padding: 14px;
116
- border: 1px solid var(--color-border-subtle);
117
- border-radius: 20px;
118
- background: rgba(5, 9, 19, 0.45);
119
- }
120
-
121
- .controls-card div {
122
- display: flex;
123
- align-items: center;
124
- gap: 8px;
125
- color: var(--color-text-2);
126
- font-size: 0.82rem;
127
- font-weight: 700;
128
- }
129
-
130
- kbd {
131
- min-width: 34px;
132
- padding: 6px 8px;
133
- border: 1px solid var(--color-border);
134
- border-bottom-color: rgba(255, 255, 255, 0.38);
135
- border-radius: 9px;
136
- color: var(--color-text-0);
137
- background: linear-gradient(180deg, var(--color-surface-4), var(--color-surface-2));
138
- font-family: var(--font-mono);
139
- font-size: 0.72rem;
140
- text-align: center;
141
- box-shadow: 0 4px 0 rgba(0, 0, 0, 0.28);
142
- }
143
-
144
- .game-card {
145
- position: relative;
146
- min-height: 560px;
147
- overflow: hidden;
148
- border: 1px solid var(--color-border);
149
- border-radius: 30px;
150
- background: #06101b;
151
- box-shadow: 0 32px 120px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.08);
152
- isolation: isolate;
153
- }
154
-
155
- #raceCanvas {
156
- width: 100%;
157
- height: 100%;
158
- min-height: 560px;
159
- display: block;
160
- cursor: crosshair;
161
- }
162
-
163
- .hud,
164
- .boost-meter,
165
- .mini-map,
166
- .banner,
167
- .results {
168
- position: absolute;
169
- z-index: 2;
170
- }
171
-
172
- .hud {
173
- top: 18px;
174
- min-width: 118px;
175
- padding: 10px 14px;
176
- border: 1px solid var(--color-border-subtle);
177
- border-radius: 18px;
178
- background: rgba(7, 17, 30, 0.74);
179
- backdrop-filter: blur(16px);
180
- box-shadow: 0 12px 36px rgba(0, 0, 0, 0.25);
181
- }
182
-
183
- .top-left { left: 18px; }
184
- .top-center { left: 50%; transform: translateX(-50%); text-align: center; }
185
- .top-right { right: 18px; text-align: right; }
186
-
187
- .label,
188
- .unit {
189
- display: block;
190
- color: var(--color-text-3);
191
- font-size: 0.66rem;
192
- font-weight: 800;
193
- letter-spacing: 0.14em;
194
- text-transform: uppercase;
195
- }
196
-
197
- .hud strong {
198
- display: inline-block;
199
- color: var(--color-text-0);
200
- font-family: var(--font-mono);
201
- font-size: clamp(1.3rem, 3vw, 2.2rem);
202
- line-height: 1;
203
- }
204
-
205
- .boost-meter {
206
- left: 18px;
207
- right: 18px;
208
- bottom: 18px;
209
- height: 15px;
210
- overflow: hidden;
211
- border: 1px solid rgba(141, 248, 255, 0.32);
212
- border-radius: 999px;
213
- background: rgba(7, 17, 30, 0.72);
214
- box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.42);
215
- }
216
-
217
- .boost-meter span {
218
- width: 100%;
219
- height: 100%;
220
- display: block;
221
- border-radius: inherit;
222
- background: linear-gradient(90deg, var(--color-accent), #8df8ff, var(--color-warning));
223
- box-shadow: 0 0 22px rgba(51, 175, 188, 0.85);
224
- transition: width 0.12s linear;
225
- }
226
-
227
- .mini-map {
228
- right: 18px;
229
- bottom: 44px;
230
- width: min(220px, 36vw);
231
- height: 138px;
232
- border: 1px solid var(--color-border-subtle);
233
- border-radius: 18px;
234
- box-shadow: 0 18px 46px rgba(0, 0, 0, 0.35);
235
- }
236
-
237
- .banner,
238
- .results {
239
- inset: 50% auto auto 50%;
240
- width: min(560px, calc(100% - 36px));
241
- padding: clamp(22px, 4vw, 38px);
242
- border: 1px solid rgba(141, 248, 255, 0.2);
243
- border-radius: 30px;
244
- background: linear-gradient(145deg, rgba(8, 17, 28, 0.94), rgba(16, 26, 40, 0.9));
245
- transform: translate(-50%, -50%);
246
- text-align: center;
247
- box-shadow: 0 28px 90px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.08);
248
- backdrop-filter: blur(20px);
249
- }
250
-
251
- .banner::before,
252
- .results::before {
253
- content: '';
254
- position: absolute;
255
- inset: -2px;
256
- z-index: -1;
257
- border-radius: inherit;
258
- background: conic-gradient(from 180deg, var(--color-accent), var(--color-danger), var(--color-warning), var(--color-accent));
259
- opacity: 0.18;
260
- filter: blur(12px);
261
- }
262
-
263
- .primary-button {
264
- border: 0;
265
- border-radius: 999px;
266
- padding: 14px 24px;
267
- color: #021016;
268
- background: linear-gradient(135deg, #8df8ff, var(--color-accent));
269
- font-weight: 900;
270
- letter-spacing: -0.02em;
271
- box-shadow: 0 12px 30px rgba(51, 175, 188, 0.38);
272
- cursor: pointer;
273
- transition: transform 0.18s ease, filter 0.18s ease;
274
- }
275
-
276
- .primary-button:hover {
277
- filter: brightness(1.08);
278
- transform: translateY(-2px) scale(1.02);
279
- }
280
-
281
- .primary-button:active {
282
- transform: translateY(1px) scale(0.99);
283
- }
284
-
285
- .results ol {
286
- max-height: min(42vh, 360px);
287
- margin: 0 0 20px;
288
- padding: 0;
289
- overflow: auto;
290
- list-style: none;
291
- }
292
-
293
- .results li {
294
- display: flex;
295
- justify-content: space-between;
296
- gap: 14px;
297
- padding: 10px 0;
298
- border-bottom: 1px solid var(--color-border-subtle);
299
- color: var(--color-text-1);
300
- font-weight: 800;
301
- }
302
-
303
- .results strong {
304
- color: var(--color-accent);
305
- font-family: var(--font-mono);
306
- }
307
-
308
- .hidden {
309
- display: none !important;
310
- }
311
-
312
- @media (max-width: 840px) {
313
- .shell {
314
- grid-template-rows: auto minmax(620px, 1fr);
315
- padding: 10px;
316
- }
317
-
318
- .hero-panel {
319
- grid-template-columns: 1fr;
320
- }
321
-
322
- .controls-card {
323
- grid-template-columns: repeat(2, minmax(0, 1fr));
324
- }
325
-
326
- .controls-card div {
327
- align-items: flex-start;
328
- flex-wrap: wrap;
329
- }
330
-
331
- .hud {
332
- min-width: auto;
333
- padding: 8px 10px;
334
- }
335
-
336
- .mini-map {
337
- width: 165px;
338
- height: 108px;
339
- }
340
- }
341
-
342
- @media (max-width: 560px) {
343
- .hero-panel {
344
- display: none;
345
- }
346
-
347
- .shell {
348
- grid-template-rows: minmax(100svh, 1fr);
349
- }
350
-
351
- .game-card,
352
- #raceCanvas {
353
- min-height: calc(100svh - 20px);
354
- }
355
-
356
- .top-center {
357
- top: 86px;
358
- }
359
- }