@gotcos/glasses-server 6.99.16 → 6.99.25

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 (52) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/docs/work-orchestrator.md +20 -0
  3. package/package.json +1 -1
  4. package/server/index.ts +23 -1
  5. package/server/lib/ask-work-plan.ts +116 -0
  6. package/server/lib/batch-transcript-quality.ts +2 -0
  7. package/server/lib/drop-store.ts +16 -2
  8. package/server/lib/meeting-ask-runtime.ts +1 -1
  9. package/server/lib/meeting-batch-transcribe.ts +40 -1
  10. package/server/lib/ping-sources.ts +6 -2
  11. package/server/lib/prep-runtime.ts +915 -0
  12. package/server/lib/prep-store.ts +226 -0
  13. package/server/lib/stt-resolver.ts +26 -2
  14. package/server/lib/transcript-cleanup.ts +11 -2
  15. package/server/lib/web-control-static.ts +226 -0
  16. package/server/lib/web-memories-bridge.ts +9 -8
  17. package/server/lib/web-pet-choice.ts +225 -0
  18. package/server/lib/web-pet.ts +226 -0
  19. package/server/lib/work-lens-rounds.ts +29 -4
  20. package/server/lib/work-orchestrator/runtime.ts +8 -2
  21. package/server/routes/ask-work-plan.ts +114 -0
  22. package/server/routes/health.ts +8 -0
  23. package/server/routes/prep.ts +81 -0
  24. package/server/routes/web-control.ts +110 -7
  25. package/server/routes/welcome-context.ts +29 -1
  26. package/server/routes/work-lens-rounds.ts +19 -5
  27. package/server/routes/work-orchestrator.ts +57 -0
  28. package/server/web-control/app.css +24 -5
  29. package/server/web-control/app.js +646 -108
  30. package/server/web-control/control.css +1 -1
  31. package/server/web-control/index.html +27 -13
  32. package/server/web-control/memories/memory-workspace.js +1 -1
  33. package/server/web-control/panes/cos-chat.css +26 -0
  34. package/server/web-control/panes/cos-chat.js +641 -6
  35. package/server/web-control/panes/meetings.css +45 -2
  36. package/server/web-control/panes/meetings.js +230 -7
  37. package/server/web-control/panes/memories.css +291 -0
  38. package/server/web-control/panes/memories.js +2208 -0
  39. package/server/web-control/panes/questions.js +59 -21
  40. package/server/web-control/panes/settings.js +102 -4
  41. package/server/web-control/panes/today-actions.css +109 -0
  42. package/server/web-control/panes/today-actions.js +972 -0
  43. package/server/web-control/panes/work.css +54 -0
  44. package/server/web-control/panes/work.js +1037 -18
  45. package/server/web-control/shell.js +6 -2
  46. package/server/web-control/theme.js +0 -2
  47. package/shared/meeting-ask.ts +6 -2
  48. package/shared/prep.ts +317 -0
  49. package/server/web-control/memories/memories-app.js +0 -1561
  50. package/server/web-control/memories/memories-theme.css +0 -73
  51. package/server/web-control/memories/memories.html +0 -72
  52. package/server/web-control/memories/memory-stewardship.js +0 -63
@@ -259,3 +259,57 @@
259
259
  .wk-more-body { display: flex; flex-direction: column; gap: 10px; padding-top: 8px; }
260
260
  .wk-edit-foot { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; border-top: 1px solid var(--hairline); }
261
261
  .wk-edit-foot .wk-confirm { margin: 0; }
262
+
263
+ /* ── Work chat (Control's WorkTaskChatView) ─────────────── */
264
+ /* The detail repaints these parts around the composer; display: contents keeps the column's own gaps. */
265
+ .wk-part { display: contents; }
266
+ .wk-chat { padding-top: 14px; border-top: 1px solid var(--hairline); }
267
+ .wk-rounds { display: flex; flex-direction: column; gap: 12px; }
268
+ .wk-round { padding: 14px; border-radius: 10px; background: var(--panel); border: 1px solid var(--panel-border); display: flex; flex-direction: column; gap: 8px; min-width: 0; }
269
+ .wk-round p { margin: 0; }
270
+ .wk-round-q { font: 600 14.5px/1.45 var(--body); color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; }
271
+ .wk-round-from { margin: -4px 0 0; }
272
+ .wk-round-answer { font-size: 14px; }
273
+ .wk-round-state { margin: 2px 0 0; }
274
+ .wk-round-actions { gap: 10px; }
275
+ .wk-pre { white-space: pre-wrap; }
276
+ .wk-warn { color: var(--amber); }
277
+ .wk-assign { padding: 12px; border-radius: 8px; background: var(--qopen); border: 1px solid var(--panel-border); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
278
+ .wk-assign strong { font-size: 13.5px; line-height: 1.35; overflow-wrap: anywhere; }
279
+ .wk-updates { display: flex; flex-direction: column; gap: 4px; }
280
+ .wk-updates h3 { margin: 0; font: 600 13px/1.3 var(--body); color: var(--ink); }
281
+ .wk-updates ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.5; color: var(--ink); }
282
+ .wk-cmp { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 10px; background: var(--panel); border: 1px solid var(--panel-border); min-width: 0; }
283
+ .wk-cmp p { margin: 0; }
284
+ .wk-cmp-status:empty { display: none; }
285
+ .wk-cmp-status { display: flex; flex-direction: column; gap: 4px; }
286
+ .wk-cmp-phase { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink); }
287
+ .wk-spin { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--panel-border); border-top-color: var(--accent); animation: wk-spin 0.9s linear infinite; flex: none; }
288
+ @keyframes wk-spin { to { transform: rotate(360deg); } }
289
+ @media (prefers-reduced-motion: reduce) { .wk-spin { animation: none; border-top-color: var(--panel-border); background: var(--accent); } }
290
+ .wk-cmp-files { color: var(--sub); }
291
+ .wk-cmp-files strong { color: var(--ink); font-weight: 600; }
292
+ .wk-cmp-picks { display: flex; flex-wrap: wrap; gap: 8px 14px; }
293
+ .wk-cmp-picks p { margin: 0; }
294
+ .wk-cmp-text.field { width: 100%; min-height: 96px; resize: none; font-size: 16px; line-height: 1.45; padding: 10px 12px; border-radius: 9px; overflow-y: hidden; }
295
+ .wk-cmp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
296
+ .wk-cmp-count { flex: none; }
297
+ .wk-cmp-count.over { color: var(--danger); font-weight: 600; }
298
+ .wk-cmp-size { flex: 1 1 140px; min-width: 0; }
299
+ .wk-cmp-hint { margin: 0; flex: 1 1 auto; text-align: right; }
300
+ .wk-cmp-plan { flex: none; margin-left: auto; min-width: 88px; justify-content: center; }
301
+ @media (pointer: coarse), (max-width: 599px) {
302
+ .wk-cmp-plan, .wk-round-actions .cx-btn, .wk-round .cx-btn { min-height: 44px; height: auto; padding: 0 18px; font-size: 15px; }
303
+ }
304
+ @media (max-width: 599px) { .wk-cmp-picks .wk-pick { flex: 1 1 130px; } }
305
+ .wk-preview summary { cursor: pointer; font: 600 12.5px/1.3 var(--body); color: var(--accent); min-height: 32px; display: flex; align-items: center; }
306
+ .wk-preview-text { margin: 6px 0; padding: 10px; border-radius: 8px; background: var(--panel); border: 1px solid var(--panel-border); font: 400 11.5px/1.5 var(--mono); color: var(--ink);
307
+ white-space: pre-wrap; overflow-wrap: anywhere; max-height: 260px; overflow-y: auto; }
308
+ .wk-send-confirm { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 9px; background: var(--qopen); border: 1px solid var(--accent); }
309
+ .wk-send-confirm p { margin: 0; }
310
+ .wk-picker { display: flex; flex-direction: column; gap: 8px; padding: 10px; border-radius: 9px; border: 1px solid var(--panel-border); background: var(--panel); }
311
+ .wk-picker .field { min-height: 40px; font-size: 15px; padding: 7px 10px; border-radius: 8px; }
312
+ .wk-pick-list { display: flex; flex-direction: column; max-height: 320px; overflow-y: auto; overscroll-behavior: contain; }
313
+ .wk-pick-row { display: flex; align-items: center; gap: 10px; padding: 8px 2px; border-top: 1px solid var(--hairline); }
314
+ .wk-pick-row > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
315
+ .wk-pick-row strong { font-size: 13.5px; }