@gotcos/glasses-server 6.99.33 → 7.0.18

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 (133) hide show
  1. package/.env.example +37 -0
  2. package/CHANGELOG.md +587 -0
  3. package/README.md +3 -1
  4. package/docs/web-key-verifier-contract.md +378 -0
  5. package/managed-runtime-contract.json +12 -1
  6. package/package.json +10 -3
  7. package/server/bootstrap.ts +10 -0
  8. package/server/index.ts +155 -30
  9. package/server/lib/agent-session-output-images.ts +627 -49
  10. package/server/lib/agent-session-recent.ts +321 -0
  11. package/server/lib/agent-session-store.ts +27 -14
  12. package/server/lib/agent-session-tool-images.ts +224 -0
  13. package/server/lib/agent-session-turns.ts +19 -2
  14. package/server/lib/api-auth.ts +43 -1
  15. package/server/lib/ask-work-plan.ts +3 -1
  16. package/server/lib/calendar-meetings.ts +70 -0
  17. package/server/lib/calendar-source.ts +536 -0
  18. package/server/lib/claude-hooks-installer.ts +111 -12
  19. package/server/lib/codex-bridge.ts +4 -1
  20. package/server/lib/codex-run-ledger.ts +29 -0
  21. package/server/lib/context-builder.ts +2 -1
  22. package/server/lib/conversation.ts +56 -28
  23. package/server/lib/cors-reject-log.ts +51 -0
  24. package/server/lib/disk-io-meter.ts +202 -0
  25. package/server/lib/drop-p2-runtime.ts +1 -1
  26. package/server/lib/drop-service.ts +47 -12
  27. package/server/lib/drop-store.ts +31 -5
  28. package/server/lib/event-loop-stall.ts +62 -0
  29. package/server/lib/full-hold-engine.ts +114 -0
  30. package/server/lib/full-hold.ts +124 -0
  31. package/server/lib/g2-turn-provenance.ts +128 -9
  32. package/server/lib/learning-needs-you.ts +24 -7
  33. package/server/lib/listener-startup.ts +18 -0
  34. package/server/lib/live-events.ts +533 -0
  35. package/server/lib/local-path-redact.ts +272 -0
  36. package/server/lib/meeting-ask-orientation.ts +40 -6
  37. package/server/lib/meeting-ask-runner.ts +30 -10
  38. package/server/lib/meeting-batch-transcribe.ts +32 -5
  39. package/server/lib/morning-brief-runtime.ts +4 -2
  40. package/server/lib/native-mac-caller.ts +29 -0
  41. package/server/lib/permission-broker.ts +443 -11
  42. package/server/lib/ping-engine.ts +1 -1
  43. package/server/lib/ping-sources.ts +11 -6
  44. package/server/lib/preview-content.ts +172 -0
  45. package/server/lib/preview-error-code.ts +10 -0
  46. package/server/lib/preview-folders-setting.ts +133 -0
  47. package/server/lib/preview-log-throttle.ts +18 -0
  48. package/server/lib/preview-thumbs.ts +139 -0
  49. package/server/lib/secret-path-guard.ts +83 -0
  50. package/server/lib/session-cache-writer.ts +8 -1
  51. package/server/lib/session-files-setting.ts +88 -0
  52. package/server/lib/session-hook-events.ts +23 -1
  53. package/server/lib/session-hooks-runtime.ts +34 -0
  54. package/server/lib/session-links.ts +280 -0
  55. package/server/lib/session-log.ts +313 -4
  56. package/server/lib/session-state-derive.ts +36 -0
  57. package/server/lib/session-stream-events.ts +25 -1
  58. package/server/lib/thread-turn-queue.ts +10 -0
  59. package/server/lib/today-brief.ts +640 -85
  60. package/server/lib/turn-end-ask.ts +320 -0
  61. package/server/lib/turn-footer.ts +3 -3
  62. package/server/lib/web-control-integrity.ts +160 -0
  63. package/server/lib/web-control-offnet-page.ts +58 -0
  64. package/server/lib/web-control-static.ts +53 -9
  65. package/server/lib/web-key-authority.ts +372 -0
  66. package/server/lib/web-key-envelope.ts +98 -0
  67. package/server/lib/web-key-handoff.ts +135 -0
  68. package/server/lib/web-key-origin.ts +21 -0
  69. package/server/lib/web-key-passkey.ts +155 -0
  70. package/server/lib/web-key-registry.ts +825 -0
  71. package/server/lib/web-key-signer-app.ts +152 -0
  72. package/server/lib/web-memories-bridge.ts +3 -1
  73. package/server/lib/web-session-auth.ts +133 -15
  74. package/server/lib/whisper-local.ts +93 -7
  75. package/server/lib/whisper-preview.ts +5 -3
  76. package/server/lib/work-activity.ts +56 -6
  77. package/server/lib/work-orchestrator/snapshot.ts +17 -3
  78. package/server/lib/work-review-runtime.ts +17 -4
  79. package/server/lib/work-session-activity.ts +260 -0
  80. package/server/lib/your-move-count.ts +9 -3
  81. package/server/routes/agent-session-bindings.ts +29 -1
  82. package/server/routes/agent-session-stream.ts +23 -0
  83. package/server/routes/agent-sessions.ts +146 -11
  84. package/server/routes/ask-work-plan.ts +4 -1
  85. package/server/routes/claude-sessions.ts +5 -1
  86. package/server/routes/drops.ts +7 -2
  87. package/server/routes/g2-turns.ts +35 -0
  88. package/server/routes/health.ts +46 -1
  89. package/server/routes/live-events.ts +334 -0
  90. package/server/routes/permission-broker.ts +95 -5
  91. package/server/routes/query-jobs.ts +3 -0
  92. package/server/routes/session-preview.ts +200 -0
  93. package/server/routes/sessions.ts +15 -24
  94. package/server/routes/thread-turn-queue.ts +223 -12
  95. package/server/routes/today-brief.ts +134 -44
  96. package/server/routes/web-control.ts +37 -4
  97. package/server/routes/web-key.ts +284 -0
  98. package/server/routes/welcome-context.ts +28 -4
  99. package/server/routes/work-board.ts +9 -2
  100. package/server/routes/work-orchestrator.ts +12 -7
  101. package/server/scripts/write-web-control-manifest.mjs +43 -0
  102. package/server/web-control/.manifest.json +44 -0
  103. package/server/web-control/app.css +76 -1
  104. package/server/web-control/app.js +2247 -98
  105. package/server/web-control/apple-touch-icon.png +0 -0
  106. package/server/web-control/control.css +25 -0
  107. package/server/web-control/index.html +21 -3
  108. package/server/web-control/memory-review.js +100 -0
  109. package/server/web-control/panes/cos-chat.css +94 -9
  110. package/server/web-control/panes/cos-chat.js +628 -44
  111. package/server/web-control/panes/meetings.css +18 -2
  112. package/server/web-control/panes/meetings.js +24 -8
  113. package/server/web-control/panes/memories.css +17 -2
  114. package/server/web-control/panes/memories.js +127 -42
  115. package/server/web-control/panes/messages.js +21 -2
  116. package/server/web-control/panes/preview.js +318 -0
  117. package/server/web-control/panes/questions.js +162 -21
  118. package/server/web-control/panes/reader-media.js +409 -23
  119. package/server/web-control/panes/sessions.css +32 -3
  120. package/server/web-control/panes/settings.js +97 -6
  121. package/server/web-control/panes/today-actions.css +46 -0
  122. package/server/web-control/panes/today-actions.js +119 -17
  123. package/server/web-control/panes/work.css +13 -0
  124. package/server/web-control/panes/work.js +188 -37
  125. package/server/web-control/shell.js +17 -14
  126. package/server/web-signer/.manifest.json +11 -0
  127. package/server/web-signer/index.html +74 -0
  128. package/server/web-signer/signer-proof.js +348 -0
  129. package/server/web-signer/signer-store.js +39 -0
  130. package/server/web-signer/signer.css +23 -0
  131. package/server/web-signer/signer.js +341 -0
  132. package/shared/web-approval-packets.golden.json +124 -0
  133. package/shared/web-turn-envelope.ts +271 -0
package/.env.example CHANGED
@@ -209,6 +209,25 @@ BIND_HOST=0.0.0.0
209
209
  # Per-hook rollback without reinstall: echo 0 > ~/.cos-glasses/hook-ask-hold
210
210
  # COS_PERMISSION_BROKER_DESK_IDLE_S=90 # never below 30
211
211
  # COS_PERMISSION_BROKER_TIMEOUT_S=110 # clamped to 5..120 (under the hook's 125 s)
212
+ # 7.0.16: a waiting session question's first 80 characters show on Today and the session rows
213
+ # (glasses, phone, COS Control, Control Web). Question text only, never options or answers. It is
214
+ # also written to the session-hook ledger on disk. Default ON; 0 restores 7.0.13's empty line.
215
+ # COS_WAITING_QUESTION_WORDS=0
216
+ # 7.0.16, both OFF by default: hold a session question (QUESTION) or a tool approval (APPROVAL) for
217
+ # the whole hook wait, about an hour, so the glasses, the phone or Control Web can answer it even if
218
+ # none was connected when it was asked. Only on engines proven to keep their own dialog up meanwhile
219
+ # (Claude Code CLI 2.1.321+ in a terminal, Claude Desktop 2.1.317+); the Mac's dialog still shows at
220
+ # once and the first answer wins. To turn on: set it here, restart the server, then COS Control >
221
+ # Settings > Reinstall hooks. To turn off: remove it and restart (every held item goes back to the Mac).
222
+ # Keep APPROVAL off for now: a signed-in Control Web browser could allow a tool for about an hour.
223
+ # COS_QUESTION_FULL_HOLD=1
224
+ # COS_APPROVAL_FULL_HOLD=1
225
+ # 7.0.18, default ON (named by Miles 11/10): a Claude desktop session that ends its turn with a
226
+ # question and reply buttons shows as waiting on the glasses, phone, Control Web and COS Control once
227
+ # the desk has been idle 90 s. Only an ask with reply buttons (or marked blocked); gone on any reply,
228
+ # a new turn, the session ending, or after 8 hours. Never print runs, COS-started runs or sub-agents.
229
+ # Words follow COS_WAITING_QUESTION_WORDS. 0 turns it off (restart the server); nothing to reinstall.
230
+ # COS_TURN_END_ASKS=0
212
231
 
213
232
  # ── THE LLM (chat) ──────────────────────────────────────────────────────
214
233
  # Chat runs through your LOCAL agent CLI — NOT an API key:
@@ -514,6 +533,7 @@ COS_CONTINUE_FULL_PERMISSIONS=1
514
533
  # COS_PIN_BOOT_REAP=1 # free a thread a crashed run held, 31 min after the restart and once its child is gone (default on; 0 = the 24 h reap)
515
534
  # COS_QUEUE_RESEND=1 # Send again on a refused or expired queued turn (default on)
516
535
  # COS_SESSION_STEER=0 # steer a busy Claude session through its peer inbox (default off)
536
+ # COS_STEER_MIDTURN=1 # a message parked at a busy Claude desk session lands at its next tool step through the peer inbox (default on; 0 = waits for the turn to end)
517
537
 
518
538
 
519
539
  # ── Answer with your own key (6.80.0, opt in) ──────────────────────────────────
@@ -523,3 +543,20 @@ COS_CONTINUE_FULL_PERMISSIONS=1
523
543
  # in data/key-secrets/ (0700). Your key is saved on this Mac: apps and agents that run on this
524
544
  # Mac as you can read it, so your provider's own spending limit is the real stop.
525
545
  # COS_KEY_LANES=0
546
+
547
+
548
+ # ── Files and images sessions make, on the web (6.99.35) ───────────────────────
549
+ # Control Web shows images and files a session saved in its project folder (Markdown images,
550
+ # and files a Claude session sent with SendUserFile). On by default; the switch is
551
+ # "Show files and images your sessions make" in Control Web Settings, Privacy (saved in
552
+ # data/web-session-files-settings.json). 0 / false / off forces it off and wins over Settings;
553
+ # no value forces it on.
554
+ # COS_WEB_SESSION_FILES=0
555
+
556
+
557
+ # ── Live state for Control Web (7.0.1) ──────────────────────────────────────────
558
+ # GET /api/events: one change feed per open Control Web page, so the pet, session rows, Today's
559
+ # counts and running clocks follow what is running now (docs/live-events-contract.md). Ids,
560
+ # states, counts and times only, never titles, words, file names or paths. On by default; read
561
+ # at start. 0 / false / off registers no route, and the page polls exactly as before.
562
+ # COS_WEB_LIVE_EVENTS=0