create-walle 0.10.2 → 0.10.3

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 (488) hide show
  1. package/README.md +3 -1
  2. package/lib/release-schema.json +2 -2
  3. package/lib/runtime-closure-policy.json +8 -7
  4. package/package.json +1 -1
  5. package/template/coding-task-manager/api-prompts.js +45 -7
  6. package/template/coding-task-manager/bin/claude-hook.js +55 -1
  7. package/template/coding-task-manager/bin/ctm-relay-client.js +35 -12
  8. package/template/coding-task-manager/bin/land.js +2069 -0
  9. package/template/coding-task-manager/bin/memory-census.js +4 -2
  10. package/template/coding-task-manager/bin/memory-sync-verify.js +151 -0
  11. package/template/coding-task-manager/bin/probe-refusal-scope.js +530 -0
  12. package/template/coding-task-manager/db.js +156 -32
  13. package/template/coding-task-manager/lib/acp/acp-client.js +383 -0
  14. package/template/coding-task-manager/lib/acp/dsh-context-truth.js +176 -0
  15. package/template/coding-task-manager/lib/acp/dsh-launch-model.js +302 -0
  16. package/template/coding-task-manager/lib/acp/dsh-mcp-servers.js +194 -0
  17. package/template/coding-task-manager/lib/acp/dsh-prompt-lane.js +616 -0
  18. package/template/coding-task-manager/lib/acp/dsh-route-patch.js +308 -0
  19. package/template/coding-task-manager/lib/acp/dsh-session-runtime.js +522 -0
  20. package/template/coding-task-manager/lib/acp/dsh-transcript.js +395 -0
  21. package/template/coding-task-manager/lib/acp/dsh-usage-log.js +162 -0
  22. package/template/coding-task-manager/lib/acp/ndjson-stdio-transport.js +225 -0
  23. package/template/coding-task-manager/lib/adopted-host-redial.js +47 -11
  24. package/template/coding-task-manager/lib/adopted-launch-environment.js +123 -0
  25. package/template/coding-task-manager/lib/agent-auto-update-runtime.js +0 -3
  26. package/template/coding-task-manager/lib/agent-auto-update.js +26 -10
  27. package/template/coding-task-manager/lib/agent-bundle/build.js +657 -0
  28. package/template/coding-task-manager/lib/agent-bundle/codex-install.js +558 -0
  29. package/template/coding-task-manager/lib/agent-bundle/drift.js +120 -0
  30. package/template/coding-task-manager/lib/agent-bundle/gc.js +522 -0
  31. package/template/coding-task-manager/lib/agent-bundle/inventory.js +346 -0
  32. package/template/coding-task-manager/lib/agent-bundle/push.js +717 -0
  33. package/template/coding-task-manager/lib/agent-bundle/skill-transfer.js +724 -0
  34. package/template/coding-task-manager/lib/agent-bundle/spawn.js +119 -0
  35. package/template/coding-task-manager/lib/agent-bundle/store.js +568 -0
  36. package/template/coding-task-manager/lib/agent-capabilities.js +142 -12
  37. package/template/coding-task-manager/lib/agent-cli-cache.js +30 -5
  38. package/template/coding-task-manager/lib/agent-definitions.js +19 -0
  39. package/template/coding-task-manager/lib/agent-hooks-codex-toml.js +28 -16
  40. package/template/coding-task-manager/lib/agent-hooks-codex-workspace.js +9 -1
  41. package/template/coding-task-manager/lib/agent-hooks-installer.js +23 -8
  42. package/template/coding-task-manager/lib/agent-hooks-prune.js +37 -11
  43. package/template/coding-task-manager/lib/agent-hooks-shim.js +105 -0
  44. package/template/coding-task-manager/lib/agent-presets.js +84 -1
  45. package/template/coding-task-manager/lib/agent-upgrade-jobs.js +12 -1
  46. package/template/coding-task-manager/lib/agent-version-service.js +74 -11
  47. package/template/coding-task-manager/lib/all-sessions-query.js +6 -2
  48. package/template/coding-task-manager/lib/api/agent-bundles.js +436 -0
  49. package/template/coding-task-manager/lib/api/backup-retention.js +83 -0
  50. package/template/coding-task-manager/lib/api/conversation-sync-routes.js +124 -0
  51. package/template/coding-task-manager/lib/api/diagnostics.js +549 -69
  52. package/template/coding-task-manager/lib/api/fleet.js +118 -0
  53. package/template/coding-task-manager/lib/api/hub-bridge.js +243 -0
  54. package/template/coding-task-manager/lib/api/ingress.js +9 -1
  55. package/template/coding-task-manager/lib/api/landing.js +403 -0
  56. package/template/coding-task-manager/lib/api/machines.js +691 -2
  57. package/template/coding-task-manager/lib/api/memory-sync-routes.js +335 -0
  58. package/template/coding-task-manager/lib/api/misc-ops.js +8 -3
  59. package/template/coding-task-manager/lib/api/remote-sessions.js +1326 -0
  60. package/template/coding-task-manager/lib/api/session-attach.js +623 -0
  61. package/template/coding-task-manager/lib/api/session-messages.js +1384 -0
  62. package/template/coding-task-manager/lib/api/sessions.js +77 -51
  63. package/template/coding-task-manager/lib/api/setup-network.js +544 -16
  64. package/template/coding-task-manager/lib/api/setup-wizard-handlers.js +884 -0
  65. package/template/coding-task-manager/lib/api/setup.js +829 -10
  66. package/template/coding-task-manager/lib/api/walle-bridge.js +9 -1
  67. package/template/coding-task-manager/lib/attachment-reconciler-wiring.js +5 -2
  68. package/template/coding-task-manager/lib/auth-rate-limit.js +23 -0
  69. package/template/coding-task-manager/lib/auth-rules.js +292 -21
  70. package/template/coding-task-manager/lib/background-stop.js +369 -0
  71. package/template/coding-task-manager/lib/best-of-attempts.js +4 -1
  72. package/template/coding-task-manager/lib/best-of-launch-plan.js +52 -0
  73. package/template/coding-task-manager/lib/box-keep-awake.js +89 -0
  74. package/template/coding-task-manager/lib/broadcast-reason-stats.js +152 -0
  75. package/template/coding-task-manager/lib/broadcast-serialize.js +5 -0
  76. package/template/coding-task-manager/lib/build-info.js +4 -2
  77. package/template/coding-task-manager/lib/claude-model-truth.js +13 -2
  78. package/template/coding-task-manager/lib/claude-transcript-terminal-renderer.js +17 -13
  79. package/template/coding-task-manager/lib/client-diag-handler.js +64 -2
  80. package/template/coding-task-manager/lib/codex-app-server-client.js +14 -16
  81. package/template/coding-task-manager/lib/codex-configuration-history.js +55 -0
  82. package/template/coding-task-manager/lib/codex-harness-qualification.js +43 -20
  83. package/template/coding-task-manager/lib/codex-rollout-history.js +743 -0
  84. package/template/coding-task-manager/lib/coding-agent-models.js +27 -12
  85. package/template/coding-task-manager/lib/coding-cli-skill-installer.js +44 -14
  86. package/template/coding-task-manager/lib/coding-session-model-adapters.js +43 -2
  87. package/template/coding-task-manager/lib/coding-session-model-owner.js +1 -1
  88. package/template/coding-task-manager/lib/coding-session-model-public.js +7 -1
  89. package/template/coding-task-manager/lib/coding-session-model-runtime.js +23 -4
  90. package/template/coding-task-manager/lib/coding-session-model-scan.js +31 -0
  91. package/template/coding-task-manager/lib/coding-session-model-state.js +7 -0
  92. package/template/coding-task-manager/lib/conversation-freshness-diagnostics.js +280 -0
  93. package/template/coding-task-manager/lib/conversation-item-clock.js +261 -0
  94. package/template/coding-task-manager/lib/conversation-source-registry.js +5 -0
  95. package/template/coding-task-manager/lib/conversation-store-v2.js +44 -0
  96. package/template/coding-task-manager/lib/conversation-sync.js +355 -0
  97. package/template/coding-task-manager/lib/create/resolve-launch-params.js +96 -12
  98. package/template/coding-task-manager/lib/create/worker-role-profile.js +4 -4
  99. package/template/coding-task-manager/lib/create-intent-lease.js +51 -0
  100. package/template/coding-task-manager/lib/ctm-session-context-api.js +97 -6
  101. package/template/coding-task-manager/lib/db-domain-tables.js +1 -0
  102. package/template/coding-task-manager/lib/db-domains.js +1 -0
  103. package/template/coding-task-manager/lib/db-owner-dispatch-probe.js +32 -0
  104. package/template/coding-task-manager/lib/db-owner-request-counts.js +178 -0
  105. package/template/coding-task-manager/lib/db-owner-worker-client.js +68 -14
  106. package/template/coding-task-manager/lib/db-schema-source-files.js +5 -0
  107. package/template/coding-task-manager/lib/deferred-restore-attempt.js +6 -2
  108. package/template/coding-task-manager/lib/feature-manifest.js +4 -0
  109. package/template/coding-task-manager/lib/fleet-conversation-route.js +97 -0
  110. package/template/coding-task-manager/lib/fleet-fanout.js +78 -0
  111. package/template/coding-task-manager/lib/fleet-hub.js +762 -0
  112. package/template/coding-task-manager/lib/fleet-origin-follower.js +252 -0
  113. package/template/coding-task-manager/lib/fleet-resolver-effects.js +147 -0
  114. package/template/coding-task-manager/lib/fleet-resolver-tick.js +148 -0
  115. package/template/coding-task-manager/lib/fleet-resolver.js +454 -0
  116. package/template/coding-task-manager/lib/fleet-session-list-routes.js +114 -0
  117. package/template/coding-task-manager/lib/fleet-session-lists.js +672 -0
  118. package/template/coding-task-manager/lib/fleet-update.js +798 -0
  119. package/template/coding-task-manager/lib/fs-watcher-root-watch.js +141 -0
  120. package/template/coding-task-manager/lib/fs-watcher.js +58 -42
  121. package/template/coding-task-manager/lib/harness-history-transition.js +50 -9
  122. package/template/coding-task-manager/lib/headless-term-service.js +84 -8
  123. package/template/coding-task-manager/lib/hermetic-agent-launch-guard.js +10 -0
  124. package/template/coding-task-manager/lib/history-transition-read-op.js +175 -8
  125. package/template/coding-task-manager/lib/host-cpu-categories.js +310 -0
  126. package/template/coding-task-manager/lib/host-fseventsd-sampler.js +399 -0
  127. package/template/coding-task-manager/lib/host-handoff.js +16 -19
  128. package/template/coding-task-manager/lib/host-stats.js +150 -3
  129. package/template/coding-task-manager/lib/hosted-sync-worker.js +43 -320
  130. package/template/coding-task-manager/lib/hub-bridge-access.js +798 -0
  131. package/template/coding-task-manager/lib/hub-bridge-box.js +409 -0
  132. package/template/coding-task-manager/lib/hub-bridge-mcp.js +380 -0
  133. package/template/coding-task-manager/lib/hub-bridge-mesh.js +313 -0
  134. package/template/coding-task-manager/lib/hub-bridge-ops.js +721 -0
  135. package/template/coding-task-manager/lib/hub-bridge.js +398 -0
  136. package/template/coding-task-manager/lib/idle-notify.js +491 -0
  137. package/template/coding-task-manager/lib/instance-id-ownership-manifest.js +8 -0
  138. package/template/coding-task-manager/lib/instance-manifest.js +5 -1
  139. package/template/coding-task-manager/lib/instance-sync-status.js +18 -8
  140. package/template/coding-task-manager/lib/landing/agent-rule.txt +1 -0
  141. package/template/coding-task-manager/lib/landing/batch-runner.js +366 -0
  142. package/template/coding-task-manager/lib/landing/config.js +536 -0
  143. package/template/coding-task-manager/lib/landing/ctm-view.js +256 -0
  144. package/template/coding-task-manager/lib/landing/gate.js +360 -0
  145. package/template/coding-task-manager/lib/landing/git.js +344 -0
  146. package/template/coding-task-manager/lib/landing/lease.js +247 -0
  147. package/template/coding-task-manager/lib/landing/merge-delta.js +380 -0
  148. package/template/coding-task-manager/lib/landing/proof.js +223 -0
  149. package/template/coding-task-manager/lib/landing/queue.js +998 -0
  150. package/template/coding-task-manager/lib/landing/radar.js +489 -0
  151. package/template/coding-task-manager/lib/landing/resolve-cli.js +424 -0
  152. package/template/coding-task-manager/lib/landing/state.js +263 -0
  153. package/template/coding-task-manager/lib/landing/stop.js +49 -0
  154. package/template/coding-task-manager/lib/landing/sync-cli.js +475 -0
  155. package/template/coding-task-manager/lib/landing/sync.js +456 -0
  156. package/template/coding-task-manager/lib/landing/train.js +885 -0
  157. package/template/coding-task-manager/lib/landing/window.js +57 -0
  158. package/template/coding-task-manager/lib/launch-environment.js +121 -0
  159. package/template/coding-task-manager/lib/launch-model-override.js +36 -10
  160. package/template/coding-task-manager/lib/launch-plan-pool.js +2 -1
  161. package/template/coding-task-manager/lib/launch-plan-warm-cache.js +6 -0
  162. package/template/coding-task-manager/lib/lead-model-observer.js +57 -1
  163. package/template/coding-task-manager/lib/lead-model-options.js +160 -3
  164. package/template/coding-task-manager/lib/lead-model-restore-reconciliation.js +106 -24
  165. package/template/coding-task-manager/lib/lead-model-switch-runtime.js +352 -68
  166. package/template/coding-task-manager/lib/lead-model-switch.js +114 -10
  167. package/template/coding-task-manager/lib/lead-model-transition-runtime.js +14 -2
  168. package/template/coding-task-manager/lib/lead-model-transition-store.js +24 -6
  169. package/template/coding-task-manager/lib/lead-route-preflight.js +179 -0
  170. package/template/coding-task-manager/lib/lead-switch-history-mode.js +110 -0
  171. package/template/coding-task-manager/lib/lead-wire-agent.js +7 -0
  172. package/template/coding-task-manager/lib/lifecycle-wake-experiment.js +9 -2
  173. package/template/coding-task-manager/lib/live-defer-announce.js +45 -0
  174. package/template/coding-task-manager/lib/machine-registry.js +750 -5
  175. package/template/coding-task-manager/lib/macos-capabilities.js +32 -15
  176. package/template/coding-task-manager/lib/main-thread-lint-exemptions.json +433 -53
  177. package/template/coding-task-manager/lib/mainloop-observability.js +14 -9
  178. package/template/coding-task-manager/lib/media-draft-owner.js +16 -3
  179. package/template/coding-task-manager/lib/memory-join.js +337 -0
  180. package/template/coding-task-manager/lib/memory-sync-verify.js +393 -0
  181. package/template/coding-task-manager/lib/memory-sync.js +565 -0
  182. package/template/coding-task-manager/lib/migrations/v57-delegate-pref-mirror-opencode.js +68 -0
  183. package/template/coding-task-manager/lib/migrations/v58-subagent-launch-native-subagents.js +42 -0
  184. package/template/coding-task-manager/lib/migrations/v59-coding-session-model-state-dsh.js +73 -0
  185. package/template/coding-task-manager/lib/migrations/v60-delegate-pref-mirror-dsh.js +78 -0
  186. package/template/coding-task-manager/lib/migrations/v61-conversation-item-clock.js +71 -0
  187. package/template/coding-task-manager/lib/model-availability.js +727 -0
  188. package/template/coding-task-manager/lib/model-execution-recipe-metadata.js +4 -6
  189. package/template/coding-task-manager/lib/model-host-receipt.js +6 -3
  190. package/template/coding-task-manager/lib/model-id-rule.js +19 -0
  191. package/template/coding-task-manager/lib/model-proxy/anthropic-face.js +4 -0
  192. package/template/coding-task-manager/lib/model-proxy/auto-mode-review.js +110 -23
  193. package/template/coding-task-manager/lib/model-proxy/chat-response-translators.js +3 -0
  194. package/template/coding-task-manager/lib/model-proxy/generation-probe.js +60 -17
  195. package/template/coding-task-manager/lib/model-proxy/historical-tool-declarations.js +37 -0
  196. package/template/coding-task-manager/lib/model-proxy/lead-request-validation.js +1 -0
  197. package/template/coding-task-manager/lib/model-proxy/lead-token-admin.js +130 -0
  198. package/template/coding-task-manager/lib/model-proxy/refusal-scope.js +151 -0
  199. package/template/coding-task-manager/lib/model-proxy/request-budget-store.js +11 -2
  200. package/template/coding-task-manager/lib/model-proxy/tokens.js +69 -5
  201. package/template/coding-task-manager/lib/model-proxy/upstream-outcome.js +9 -0
  202. package/template/coding-task-manager/lib/native-agent-model-args.js +25 -22
  203. package/template/coding-task-manager/lib/native-history-control.js +6 -4
  204. package/template/coding-task-manager/lib/native-lead-settings-client.js +44 -4
  205. package/template/coding-task-manager/lib/oauth-proxy-supervisor.js +173 -36
  206. package/template/coding-task-manager/lib/online-backup-worker-client.js +2 -0
  207. package/template/coding-task-manager/lib/opencode-cli.js +480 -0
  208. package/template/coding-task-manager/lib/opencode-launch-model.js +471 -0
  209. package/template/coding-task-manager/lib/opencode-v1-plugin/model-carrier.mjs +35 -0
  210. package/template/coding-task-manager/lib/opencode-v2-plugin/server.js +118 -0
  211. package/template/coding-task-manager/lib/owner-action-manifest-data.json +1 -1
  212. package/template/coding-task-manager/lib/park-composer-draft.js +54 -0
  213. package/template/coding-task-manager/lib/park-fresh-relaunch.js +41 -10
  214. package/template/coding-task-manager/lib/perf-phase-trace.js +72 -0
  215. package/template/coding-task-manager/lib/perf-summary.js +7 -0
  216. package/template/coding-task-manager/lib/perf-tracker.js +63 -2
  217. package/template/coding-task-manager/lib/project-config.js +7 -0
  218. package/template/coding-task-manager/lib/prompt-purge-v2.js +52 -1
  219. package/template/coding-task-manager/lib/provider-login-broker.js +72 -15
  220. package/template/coding-task-manager/lib/provider-login-tab.js +10 -2
  221. package/template/coding-task-manager/lib/read-pool-client.js +89 -2
  222. package/template/coding-task-manager/lib/read-pool-worker-handle.js +29 -4
  223. package/template/coding-task-manager/lib/recent-catalog-query.js +15 -0
  224. package/template/coding-task-manager/lib/recent-session-catalog-response.js +67 -10
  225. package/template/coding-task-manager/lib/recovery-evidence.js +26 -11
  226. package/template/coding-task-manager/lib/relay-client.js +57 -3
  227. package/template/coding-task-manager/lib/relink-audit.js +34 -5
  228. package/template/coding-task-manager/lib/remote-machine-catalog.js +321 -26
  229. package/template/coding-task-manager/lib/remote-machine-create.js +576 -36
  230. package/template/coding-task-manager/lib/remote-machine-link.js +546 -59
  231. package/template/coding-task-manager/lib/remote-machine-proxy.js +143 -9
  232. package/template/coding-task-manager/lib/remote-session-forward.js +65 -7
  233. package/template/coding-task-manager/lib/remote-terminal-target.js +9 -2
  234. package/template/coding-task-manager/lib/restart-guard.js +18 -6
  235. package/template/coding-task-manager/lib/restore-seed-modes.js +87 -0
  236. package/template/coding-task-manager/lib/restored-scrollback-hydration-runtime.js +22 -2
  237. package/template/coding-task-manager/lib/resume-admission.js +17 -3
  238. package/template/coding-task-manager/lib/review-repo-registry.js +58 -19
  239. package/template/coding-task-manager/lib/root-delivery-runtime.js +2 -2
  240. package/template/coding-task-manager/lib/root-prompt-flow.js +1 -1
  241. package/template/coding-task-manager/lib/runtime-contract.js +3 -1
  242. package/template/coding-task-manager/lib/schema-indexes.js +1 -0
  243. package/template/coding-task-manager/lib/session-context-locator.js +742 -0
  244. package/template/coding-task-manager/lib/session-create/attachment.js +2 -2
  245. package/template/coding-task-manager/lib/session-create/create-phases.js +118 -0
  246. package/template/coding-task-manager/lib/session-create/delegate-worker.js +86 -16
  247. package/template/coding-task-manager/lib/session-create/dsh-session.js +930 -0
  248. package/template/coding-task-manager/lib/session-create/lead-route-launch.js +186 -13
  249. package/template/coding-task-manager/lib/session-create/native-lead-lifetime.js +55 -3
  250. package/template/coding-task-manager/lib/session-create/opencode-lead-provider.js +50 -0
  251. package/template/coding-task-manager/lib/session-create/prepared.js +162 -38
  252. package/template/coding-task-manager/lib/session-create/provider-process.js +160 -28
  253. package/template/coding-task-manager/lib/session-create/response.js +7 -7
  254. package/template/coding-task-manager/lib/session-create/structured-session.js +27 -0
  255. package/template/coding-task-manager/lib/session-create/subagent-pick-table.js +3 -1
  256. package/template/coding-task-manager/lib/session-create/subagent-pick.js +458 -9
  257. package/template/coding-task-manager/lib/session-create/transcript.js +1 -1
  258. package/template/coding-task-manager/lib/session-create/worker-budget-setup.js +21 -2
  259. package/template/coding-task-manager/lib/session-create/worker-continuation.js +7 -1
  260. package/template/coding-task-manager/lib/session-create/worker-launch-sandbox.js +39 -10
  261. package/template/coding-task-manager/lib/session-create/worker-observability.js +2 -2
  262. package/template/coding-task-manager/lib/session-empty.js +13 -10
  263. package/template/coding-task-manager/lib/session-host-manager.js +60 -0
  264. package/template/coding-task-manager/lib/session-jobs.js +3 -1
  265. package/template/coding-task-manager/lib/session-lifecycle.js +10 -4
  266. package/template/coding-task-manager/lib/session-model-action-preconditions.js +6 -2
  267. package/template/coding-task-manager/lib/session-model-intent-contract.js +11 -8
  268. package/template/coding-task-manager/lib/session-park.js +738 -0
  269. package/template/coding-task-manager/lib/session-path-grant.js +13 -4
  270. package/template/coding-task-manager/lib/session-status-ledger.js +106 -4
  271. package/template/coding-task-manager/lib/session-transport.js +17 -0
  272. package/template/coding-task-manager/lib/session-workspace-projection.js +54 -5
  273. package/template/coding-task-manager/lib/session-workspace-tracking-runtime.js +213 -1
  274. package/template/coding-task-manager/lib/skill-autocomplete-query.js +120 -3
  275. package/template/coding-task-manager/lib/skill-autocomplete.js +15 -1
  276. package/template/coding-task-manager/lib/sqlite-file-set.js +39 -0
  277. package/template/coding-task-manager/lib/standup-search-adapter.js +16 -2
  278. package/template/coding-task-manager/lib/state-sync/client-ledger.js +12 -0
  279. package/template/coding-task-manager/lib/state-sync/frame-emitter.js +319 -100
  280. package/template/coding-task-manager/lib/storage/coding-session-model-store.js +4 -1
  281. package/template/coding-task-manager/lib/storage/delegate-pref-mirror-store.js +32 -9
  282. package/template/coding-task-manager/lib/structured-session-boot-sweep.js +235 -0
  283. package/template/coding-task-manager/lib/submission-ack.js +90 -2
  284. package/template/coding-task-manager/lib/systemd-scope.js +115 -0
  285. package/template/coding-task-manager/lib/telemetry-receiver.js +39 -0
  286. package/template/coding-task-manager/lib/terminal-attach-geometry.js +985 -0
  287. package/template/coding-task-manager/lib/terminal-bootstrap.js +30 -0
  288. package/template/coding-task-manager/lib/terminal-draft-operation.js +357 -0
  289. package/template/coding-task-manager/lib/terminal-input-admission.js +17 -1
  290. package/template/coding-task-manager/lib/terminal-input-prepared.js +563 -0
  291. package/template/coding-task-manager/lib/transcript-cache-temps.js +171 -0
  292. package/template/coding-task-manager/lib/transcript-frame-cache.js +8 -3
  293. package/template/coding-task-manager/lib/transcript-source.js +36 -4
  294. package/template/coding-task-manager/lib/transcript-store.js +9 -0
  295. package/template/coding-task-manager/lib/typing-interaction-trace.js +106 -3
  296. package/template/coding-task-manager/lib/usage-ledger/backfill.js +40 -5
  297. package/template/coding-task-manager/lib/usage-ledger/client.js +4 -1
  298. package/template/coding-task-manager/lib/usage-ledger/dsh-parse.js +152 -0
  299. package/template/coding-task-manager/lib/usage-ledger/dsh-read.js +73 -0
  300. package/template/coding-task-manager/lib/usage-ledger/ingest.js +34 -6
  301. package/template/coding-task-manager/lib/usage-ledger/live.js +35 -8
  302. package/template/coding-task-manager/lib/usage-ledger/read.js +29 -20
  303. package/template/coding-task-manager/lib/usage-ledger/schema.js +61 -1
  304. package/template/coding-task-manager/lib/usage-ledger/task-coordinator.js +4 -2
  305. package/template/coding-task-manager/lib/wake-skip-reasons.js +1 -0
  306. package/template/coding-task-manager/lib/walle/turn.js +1 -1
  307. package/template/coding-task-manager/lib/walle-history-serve.js +838 -0
  308. package/template/coding-task-manager/lib/walle-kill-authority.js +2 -2
  309. package/template/coding-task-manager/lib/walle-log-rotation.js +164 -1
  310. package/template/coding-task-manager/lib/walle-mcp-auto-config.js +56 -2
  311. package/template/coding-task-manager/lib/walle-row-history.js +495 -0
  312. package/template/coding-task-manager/lib/walle-supervisor.js +33 -14
  313. package/template/coding-task-manager/lib/watch-worker-client.js +203 -0
  314. package/template/coding-task-manager/lib/worker-terminal-output.js +5 -2
  315. package/template/coding-task-manager/lib/ws/hub-bridge.js +35 -0
  316. package/template/coding-task-manager/lib/ws/lifecycle.js +6 -11
  317. package/template/coding-task-manager/lib/ws/misc.js +1 -1
  318. package/template/coding-task-manager/lib/ws/state-sync.js +106 -4
  319. package/template/coding-task-manager/lib/ws/terminal-attach.js +91 -0
  320. package/template/coding-task-manager/oauth-proxy.js +112 -115
  321. package/template/coding-task-manager/package-lock.json +10 -94
  322. package/template/coding-task-manager/package.json +4 -3
  323. package/template/coding-task-manager/protocol/message-table.json +10 -0
  324. package/template/coding-task-manager/protocol/messages.js +10 -0
  325. package/template/coding-task-manager/protocol/ws-schema.json +20 -0
  326. package/template/coding-task-manager/protocol/ws-schema.md +2 -0
  327. package/template/coding-task-manager/public/css/app.css +170 -0
  328. package/template/coding-task-manager/public/css/walle-session.css +4 -0
  329. package/template/coding-task-manager/public/index.html +473 -243
  330. package/template/coding-task-manager/public/js/agent-command.js +86 -0
  331. package/template/coding-task-manager/public/js/app/backups-panel.js +111 -5
  332. package/template/coding-task-manager/public/js/app/coding-agent-upgrade.js +103 -4
  333. package/template/coding-task-manager/public/js/app/machines-page.js +1328 -8
  334. package/template/coding-task-manager/public/js/app/models-tab.js +113 -38
  335. package/template/coding-task-manager/public/js/app/restart-banner.js +53 -0
  336. package/template/coding-task-manager/public/js/app/worktrees-panel.js +184 -2
  337. package/template/coding-task-manager/public/js/background-work.js +196 -27
  338. package/template/coding-task-manager/public/js/coding-session-model-presentation.js +138 -10
  339. package/template/coding-task-manager/public/js/core/active-session-groups.js +179 -0
  340. package/template/coding-task-manager/public/js/core/pending-create.js +238 -0
  341. package/template/coding-task-manager/public/js/core/recent-machine-source.js +228 -0
  342. package/template/coding-task-manager/public/js/core/session-commands.js +180 -14
  343. package/template/coding-task-manager/public/js/dashboard-client-function-order.json +8 -0
  344. package/template/coding-task-manager/public/js/document-review-links.js +9 -1
  345. package/template/coding-task-manager/public/js/file-resolution-client.js +52 -1
  346. package/template/coding-task-manager/public/js/history-app-seam.js +22 -2
  347. package/template/coding-task-manager/public/js/machine-pool-shared.js +558 -3
  348. package/template/coding-task-manager/public/js/message-renderer.js +4 -3
  349. package/template/coding-task-manager/public/js/model-picker.js +3 -1
  350. package/template/coding-task-manager/public/js/native-subagent-review.js +15 -2
  351. package/template/coding-task-manager/public/js/new-session-agent-grid.js +346 -0
  352. package/template/coding-task-manager/public/js/pasted-content.js +236 -0
  353. package/template/coding-task-manager/public/js/pe-private-content-lifetime.js +39 -7
  354. package/template/coding-task-manager/public/js/private-model-lifetime.js +6 -2
  355. package/template/coding-task-manager/public/js/prompts.js +11 -10
  356. package/template/coding-task-manager/public/js/protocol.js +10 -0
  357. package/template/coding-task-manager/public/js/restart-banner-policy.js +29 -1
  358. package/template/coding-task-manager/public/js/session-model-picker.js +447 -57
  359. package/template/coding-task-manager/public/js/session-search-utils.js +18 -2
  360. package/template/coding-task-manager/public/js/session-usage-view.js +2 -1
  361. package/template/coding-task-manager/public/js/session-workspace-tracking.js +51 -1
  362. package/template/coding-task-manager/public/js/state-sync-client.js +10 -1
  363. package/template/coding-task-manager/public/js/stream-view.js +6 -5
  364. package/template/coding-task-manager/public/js/terminal/conv-only-session.js +287 -0
  365. package/template/coding-task-manager/public/js/terminal/runtime-09.js +2 -0
  366. package/template/coding-task-manager/public/js/terminal/runtime-10.js +5 -5
  367. package/template/coding-task-manager/public/js/terminal/runtime-12.js +8 -1
  368. package/template/coding-task-manager/public/js/terminal/runtime-16.js +4 -0
  369. package/template/coding-task-manager/public/js/terminal/runtime-20.js +1 -1
  370. package/template/coding-task-manager/public/js/terminal-attachment-draft.js +67 -13
  371. package/template/coding-task-manager/public/js/terminal-image-orchestration.js +52 -6
  372. package/template/coding-task-manager/public/js/terminal-wheel.js +23 -3
  373. package/template/coding-task-manager/public/js/walle/chat-conversation.js +4 -4
  374. package/template/coding-task-manager/public/js/walle.js +6 -0
  375. package/template/coding-task-manager/public/js/ws/live-dispatch.js +10 -0
  376. package/template/coding-task-manager/public/m/app.css +140 -0
  377. package/template/coding-task-manager/public/m/app.js +507 -68
  378. package/template/coding-task-manager/public/m/index.html +17 -0
  379. package/template/coding-task-manager/public/m/machines.js +838 -4
  380. package/template/coding-task-manager/public/m/private-api.js +31 -1
  381. package/template/coding-task-manager/public/usage.html +1 -0
  382. package/template/coding-task-manager/scripts/dev-route-fixture/synthetic-route-upstream.js +104 -0
  383. package/template/coding-task-manager/scripts/dev-route-fixture.js +339 -0
  384. package/template/coding-task-manager/scripts/opencode-lead-route-probe.js +195 -0
  385. package/template/coding-task-manager/scripts/opencode-v2-contract-probe/fake-anthropic.js +168 -0
  386. package/template/coding-task-manager/scripts/opencode-v2-contract-probe/probe-plugin/server.js +95 -0
  387. package/template/coding-task-manager/scripts/opencode-v2-contract-probe.js +673 -0
  388. package/template/coding-task-manager/server.js +1950 -11679
  389. package/template/coding-task-manager/session-integrity.js +64 -4
  390. package/template/coding-task-manager/workers/db-owner-worker.js +19 -2
  391. package/template/coding-task-manager/workers/online-backup-worker.js +1 -0
  392. package/template/coding-task-manager/workers/read-pool-model-collector.js +51 -3
  393. package/template/coding-task-manager/workers/read-pool-worker.js +76 -6
  394. package/template/coding-task-manager/workers/session-host-pool-process.js +6 -6
  395. package/template/coding-task-manager/workers/session-host-process.js +5 -5
  396. package/template/coding-task-manager/workers/watch-worker.js +105 -0
  397. package/template/coding-task-manager/workers/worktree-worker.js +168 -33
  398. package/template/ctm-relay/lib/protocol.js +14 -1
  399. package/template/package-lock.json +2 -2
  400. package/template/package.json +1 -1
  401. package/template/shared/backup-retention.js +82 -0
  402. package/template/shared/conversation-admission.js +2 -0
  403. package/template/shared/conversation-provenance.js +3 -7
  404. package/template/shared/conversation-storage-v2-contract.js +5 -0
  405. package/template/shared/linked-worktree.js +51 -0
  406. package/template/shared/macos-fda-target.js +57 -0
  407. package/template/shared/orphan-parents.js +55 -0
  408. package/template/shared/release-schema.json +2 -2
  409. package/template/shared/storage/contract.js +3 -0
  410. package/template/wall-e/adapters/imessage.js +12 -0
  411. package/template/wall-e/agent.js +71 -4
  412. package/template/wall-e/api-walle.js +21 -1
  413. package/template/wall-e/bin/train-gemma-e4b-tooluse.js +2 -2
  414. package/template/wall-e/bin/walle-mcp-stdio.js +5 -5
  415. package/template/wall-e/brain/brain-join.js +859 -0
  416. package/template/wall-e/brain/brain-sync-membership.js +20 -0
  417. package/template/wall-e/brain/brain-sync-store.js +131 -77
  418. package/template/wall-e/brain/brain-sync-v2-schema.js +203 -0
  419. package/template/wall-e/brain/brain-sync-v2.js +578 -0
  420. package/template/wall-e/brain/delegate-model-prefs-store.js +13 -4
  421. package/template/wall-e/brain/deterministic-id.js +51 -0
  422. package/template/wall-e/brain/memories.js +2 -2
  423. package/template/wall-e/brain/migrations.js +40 -6
  424. package/template/wall-e/brain/model-identity-migration.js +1 -1
  425. package/template/wall-e/brain/owner-call-whitelist.js +23 -7
  426. package/template/wall-e/brain/schema.js +45 -85
  427. package/template/wall-e/brain.js +171 -35
  428. package/template/wall-e/chat.js +3 -3
  429. package/template/wall-e/coding/agent-shell-env.js +7 -2
  430. package/template/wall-e/coding/prompt-bundle.js +66 -21
  431. package/template/wall-e/config/main-loop-exemptions.json +2 -2
  432. package/template/wall-e/http/admin-api.js +37 -0
  433. package/template/wall-e/http/gws-api.js +4 -0
  434. package/template/wall-e/http/helper-rules-api.js +7 -1
  435. package/template/wall-e/http/model-admin.js +8 -1
  436. package/template/wall-e/http/model-delegate-pref-admin.js +3 -3
  437. package/template/wall-e/http/model-proxy-providers.js +174 -1
  438. package/template/wall-e/http/model-route-health.js +157 -0
  439. package/template/wall-e/http/sync-api.js +278 -464
  440. package/template/wall-e/jobs/job-runner.js +28 -1
  441. package/template/wall-e/lib/brain-owner-op-priority.js +9 -1
  442. package/template/wall-e/lib/ctm-data-dir.js +26 -0
  443. package/template/wall-e/lib/derivation-home.js +147 -0
  444. package/template/wall-e/lib/helper-rules/evaluate.js +50 -9
  445. package/template/wall-e/lib/helper-rules/grade.js +51 -8
  446. package/template/wall-e/lib/helper-rules/lead-call-hook.js +38 -5
  447. package/template/wall-e/lib/helper-rules/store.js +4 -2
  448. package/template/wall-e/lib/landing-mcp-tools.js +170 -0
  449. package/template/wall-e/lib/mcp-client-config.js +133 -14
  450. package/template/wall-e/lib/mcp-gateway-migrate.js +28 -64
  451. package/template/wall-e/lib/mcp-integration.js +58 -13
  452. package/template/wall-e/lib/parent-death.js +7 -1
  453. package/template/wall-e/lib/scheduler-worker-jobs.js +6 -4
  454. package/template/wall-e/llm/delegate-lead-prefs.js +16 -1
  455. package/template/wall-e/llm/delegate-vendor-default.js +12 -5
  456. package/template/wall-e/llm/model-roles.js +1 -1
  457. package/template/wall-e/llm/native-delegate-selection.js +56 -8
  458. package/template/wall-e/llm/worker-delegate-args.js +72 -7
  459. package/template/wall-e/llm/worker-mcp-routing.js +66 -17
  460. package/template/wall-e/loops/brain-custom-writes.js +19 -0
  461. package/template/wall-e/loops/ingest.js +17 -1
  462. package/template/wall-e/loops/think.js +19 -4
  463. package/template/wall-e/mcp-contract.js +222 -6
  464. package/template/wall-e/mcp-protocol-contract.js +40 -5
  465. package/template/wall-e/mcp-server.js +128 -29
  466. package/template/wall-e/mcp-worker-schemas.js +5 -5
  467. package/template/wall-e/memory/ctm-context-client.js +85 -0
  468. package/template/wall-e/memory/ctm-session-context.js +9 -3
  469. package/template/wall-e/memory/hub-bridge-client.js +388 -0
  470. package/template/wall-e/memory/replica-origin.js +56 -0
  471. package/template/wall-e/memory/session-pool.js +135 -0
  472. package/template/wall-e/runtime/live-capabilities.js +8 -3
  473. package/template/wall-e/server.js +4 -2
  474. package/template/wall-e/shared/release-schema.json +2 -2
  475. package/template/wall-e/shared/sqlite-file-set.js +39 -0
  476. package/template/wall-e/shared/storage/contract.js +3 -0
  477. package/template/wall-e/skills/_templates/delegate-worker/VERSION +1 -1
  478. package/template/wall-e/skills/_templates/delegate-worker/released-sha256.json +7 -1
  479. package/template/wall-e/skills/_templates/delegate-worker/templates/claude/SKILL.md +4 -4
  480. package/template/wall-e/skills/_templates/delegate-worker/templates/codex/SKILL.md +6 -6
  481. package/template/wall-e/skills/_templates/fleet-sync/VERSION +1 -0
  482. package/template/wall-e/skills/_templates/fleet-sync/released-sha256.json +16 -0
  483. package/template/wall-e/skills/_templates/fleet-sync/templates/claude/SKILL.md +64 -0
  484. package/template/wall-e/skills/_templates/fleet-sync/templates/codex/SKILL.md +64 -0
  485. package/template/wall-e/tools/chrome-automation.js +6 -0
  486. package/template/wall-e/training/setup-cuda-train-env.sh +2 -2
  487. package/template/wall-e/workers/brain-owner-worker.js +18 -4
  488. package/template/wall-e/workers/mcp-gateway-process.js +5 -5
@@ -50,9 +50,9 @@
50
50
  "test:browser:release": "node ../bin/with-test-slots.js --exclusive browser --max 1 --phase ctm-browser-release -- node ../bin/test-browser-release.js",
51
51
  "test:wave4": "node scripts/check-main-thread-contract.js",
52
52
  "test:render": "npx playwright test --project=full --config tests/rendering/playwright.config.js --grep-invert 'soak|perf:'",
53
- "test:render:smoke": "npx playwright test --project=smoke --project=smoke-image --config tests/rendering/playwright.config.js",
54
- "test:render:smoke:image": "npx playwright test --project=smoke-image --config tests/rendering/playwright.config.js",
55
- "test:render:smoke:curated": "CTM_RENDER_RUN_ID=\"${CTM_RENDER_RUN_ID:-curated}-curated\" CTM_RENDER_GLOBAL_TIMEOUT_MS=6750000 CTM_RENDER_TRACE=off npx playwright test --config tests/rendering/playwright.config.js --project=curated --project=curated-latency-cat",
53
+ "test:render:smoke": "playwright test --project=smoke --project=smoke-image --config tests/rendering/playwright.config.js",
54
+ "test:render:smoke:image": "playwright test --project=smoke-image --config tests/rendering/playwright.config.js",
55
+ "test:render:smoke:curated": "CTM_RENDER_RUN_ID=\"${CTM_RENDER_RUN_ID:-curated}-curated\" CTM_RENDER_GLOBAL_TIMEOUT_MS=6750000 CTM_RENDER_TRACE=off playwright test --config tests/rendering/playwright.config.js --project=curated --project=curated-latency-cat",
56
56
  "test:latency": "CTM_RENDER_NATIVE_GPU=1 CTM_STATE_SYNC=1 CTM_RENDER_TRACE=off npx playwright test --project=full --config tests/rendering/playwright.config.js scenarios/state-sync-typing-latency.spec.js scenarios/typing-under-compact-burst.spec.js scenarios/typing-under-provider-stream.spec.js --retries=0",
57
57
  "composer:compare": "node bin/compare-published-composer.js",
58
58
  "composer:trial": "CTM_STATE_SYNC=1 CTM_RENDER_TRACE=off npx playwright test --project=full --config tests/rendering/playwright.config.js scenarios/composer-control-trial.spec.js --retries=0",
@@ -74,6 +74,7 @@
74
74
  "@simplewebauthn/server": "13.3.2",
75
75
  "@huggingface/jinja": "0.5.10",
76
76
  "@huggingface/tokenizers": "0.2.0",
77
+ "@modelcontextprotocol/sdk": "1.32.1",
77
78
  "@peculiar/x509": "1.14.3",
78
79
  "@xterm/addon-serialize": "^0.14.0",
79
80
  "@xterm/headless": "^6.0.0",
@@ -317,6 +317,11 @@
317
317
  "family": "frame",
318
318
  "envelope": "exempt"
319
319
  },
320
+ "host-dead": {
321
+ "direction": "s2c",
322
+ "family": "general",
323
+ "envelope": "required"
324
+ },
320
325
  "state-sync-client-rejected": {
321
326
  "direction": "s2c",
322
327
  "family": "general",
@@ -382,6 +387,11 @@
382
387
  "family": "general",
383
388
  "envelope": "required"
384
389
  },
390
+ "create-accepted": {
391
+ "direction": "s2c",
392
+ "family": "general",
393
+ "envelope": "required"
394
+ },
385
395
  "created": {
386
396
  "direction": "s2c",
387
397
  "family": "general",
@@ -146,6 +146,11 @@ const MESSAGE_TABLE = {
146
146
  "family": "general",
147
147
  "envelope": "required"
148
148
  },
149
+ "create-accepted": {
150
+ "direction": "s2c",
151
+ "family": "general",
152
+ "envelope": "required"
153
+ },
149
154
  "created": {
150
155
  "direction": "s2c",
151
156
  "family": "general",
@@ -216,6 +221,11 @@ const MESSAGE_TABLE = {
216
221
  "family": "general",
217
222
  "envelope": "required"
218
223
  },
224
+ "host-dead": {
225
+ "direction": "s2c",
226
+ "family": "general",
227
+ "envelope": "required"
228
+ },
219
229
  "image-deliver-now": {
220
230
  "direction": "c2s",
221
231
  "family": "general",
@@ -252,6 +252,16 @@
252
252
  "type"
253
253
  ]
254
254
  },
255
+ "create-accepted": {
256
+ "name": "create-accepted",
257
+ "direction": "s2c",
258
+ "owner": "ctm-client",
259
+ "family": "general",
260
+ "envelope": "required",
261
+ "requiredFields": [
262
+ "type"
263
+ ]
264
+ },
255
265
  "created": {
256
266
  "name": "created",
257
267
  "direction": "s2c",
@@ -392,6 +402,16 @@
392
402
  "type"
393
403
  ]
394
404
  },
405
+ "host-dead": {
406
+ "name": "host-dead",
407
+ "direction": "s2c",
408
+ "owner": "ctm-client",
409
+ "family": "general",
410
+ "envelope": "required",
411
+ "requiredFields": [
412
+ "type"
413
+ ]
414
+ },
395
415
  "image-deliver-now": {
396
416
  "name": "image-deliver-now",
397
417
  "direction": "c2s",
@@ -29,6 +29,7 @@ Generated from `protocol/message-table.json`. Payload fields remain additive; on
29
29
  | `conversation-content-generation` | s2c | ctm-client | general | required | `type` |
30
30
  | `conversation-updated` | s2c | ctm-client | general | required | `type` |
31
31
  | `create` | c2s | ctm-server | general | required | `type` |
32
+ | `create-accepted` | s2c | ctm-client | general | required | `type` |
32
33
  | `created` | s2c | ctm-client | general | required | `type` |
33
34
  | `cwd-conflict` | s2c | ctm-client | general | required | `type` |
34
35
  | `data-changed` | s2c | ctm-client | general | required | `type` |
@@ -43,6 +44,7 @@ Generated from `protocol/message-table.json`. Payload fields remain additive; on
43
44
  | `frame-v2` | s2c | ctm-client | frame | exempt | `type` |
44
45
  | `heartbeat` | s2c | ctm-client | general | required | `type` |
45
46
  | `hello` | s2c | ctm-client | general | required | `type` |
47
+ | `host-dead` | s2c | ctm-client | general | required | `type` |
46
48
  | `image-deliver-now` | c2s | ctm-server | general | required | `type` |
47
49
  | `input` | c2s | ctm-server | general | required | `type` |
48
50
  | `input-dropped` | s2c | ctm-client | general | required | `type` |
@@ -971,6 +971,10 @@
971
971
  color: var(--fg);
972
972
  background: var(--accent-soft);
973
973
  }
974
+ #nav-more-button.nav-more-has-active {
975
+ color: var(--fg);
976
+ background: var(--accent-soft);
977
+ }
974
978
 
975
979
  .setup-backup-summary {
976
980
  display: grid;
@@ -1298,6 +1302,13 @@
1298
1302
  font-size: 13px;
1299
1303
  font-weight: 800;
1300
1304
  }
1305
+ .backup-retention-row {
1306
+ display: flex; flex-wrap: wrap; align-items: center;
1307
+ gap: 6px 8px; margin: 4px 0 8px; font-size: 12px;
1308
+ }
1309
+ .backup-retention-row input[type=number] { width: 64px; }
1310
+ .backup-retention-hint { color: var(--fg-dim); }
1311
+ .backup-expiring-tag { margin-left: 8px; font-size: 11px; color: var(--yellow, #e0af68); opacity: .9; }
1301
1312
  .backup-table {
1302
1313
  width: 100%;
1303
1314
  border-collapse: separate;
@@ -1580,6 +1591,8 @@
1580
1591
  .session-item[data-agent="walle"] { border-left-color: #f59e0b; }
1581
1592
  .session-item[data-agent="codex"] { border-left-color: #22c55e; }
1582
1593
  .session-item[data-agent="gemini"] { border-left-color: #3b82f6; }
1594
+ /* WP-7 (S-58): DeepSeek Harness — DeepSeek's signature blue. */
1595
+ .session-item[data-agent="dsh"] { border-left-color: #4D6BFE; }
1583
1596
  .session-item[data-agent="opencode"] { border-left-color: #a78bfa; }
1584
1597
  .session-item[data-agent="cursor"] { border-left-color: #6b7280; }
1585
1598
  .session-item[data-agent="shell"] { border-left-color: #6b7280; }
@@ -1598,6 +1611,9 @@
1598
1611
  .session-item[data-agent="walle"] .provider-icon { color: #f59e0b; }
1599
1612
  .session-item[data-agent="codex"] .provider-icon { color: #22c55e; }
1600
1613
  .session-item[data-agent="gemini"] .provider-icon { color: #3b82f6; }
1614
+ /* WP-7 (S-58): dsh renders brandIconSvg's .brand-icon wrapper; tint both class names. */
1615
+ .session-item[data-agent="dsh"] .provider-icon,
1616
+ .session-item[data-agent="dsh"] .brand-icon { color: #4D6BFE; }
1601
1617
  .session-item[data-agent="opencode"] .provider-icon { color: #a78bfa; }
1602
1618
  /* Cursor's mark is monochrome — track the theme's text color so the cube reads
1603
1619
  near-black on light (the chosen brand tint) and light on the dark sidebar. */
@@ -1610,6 +1626,17 @@
1610
1626
  .tab[data-agent="walle"] .provider-icon { color: #f59e0b; }
1611
1627
  .tab[data-agent="codex"] .provider-icon { color: #22c55e; }
1612
1628
  .tab[data-agent="gemini"] .provider-icon { color: #3b82f6; }
1629
+ .tab[data-agent="dsh"] .provider-icon,
1630
+ .tab[data-agent="dsh"] .brand-icon { color: #4D6BFE; }
1631
+ /* WP-7b: the shared agent composer under a conv-only (no-CLI) tab's Conv view. Wall-E's composer
1632
+ rules are scoped to .walle-session; flex-shrink:0 keeps a long transcript from collapsing it. */
1633
+ .term-container > .conv-only-composer { display:grid; gap:8px; flex-shrink:0; padding:10px 16px; border-top:1px solid var(--border, #37415f); min-width:0; }
1634
+ .conv-only-composer .agent-ui-composer-input { width:100%; resize:vertical; min-height:64px; border:1px solid var(--border, #37415f); border-radius:10px; padding:10px; color:inherit; background:var(--surface, #171c2a); font:inherit; }
1635
+ .conv-only-composer .agent-ui-composer-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
1636
+ .conv-only-composer .agent-ui-button { min-width:44px; min-height:36px; border:1px solid var(--border, #37415f); border-radius:8px; padding:6px 12px; color:inherit; background:var(--surface-raised, #222a3d); cursor:pointer; }
1637
+ .conv-only-composer .agent-ui-button.primary { background:#779cf3; color:#101522; border-color:#779cf3; }
1638
+ .conv-only-composer .agent-ui-button.danger { color:#ff9c9c; }
1639
+ .conv-only-composer [hidden] { display:none !important; }
1613
1640
  .tab[data-agent="opencode"] .provider-icon { color: #a78bfa; }
1614
1641
  .tab[data-agent="cursor"] .provider-icon { color: var(--fg); }
1615
1642
  .tab[data-agent="shell"] .provider-icon { color: #9ca3af; }
@@ -2109,6 +2136,9 @@
2109
2136
  background: color-mix(in srgb, var(--fg-dim) 16%, transparent);
2110
2137
  color: var(--fg-dim);
2111
2138
  }
2139
+ #active-sort.computer-filtered { border-color: var(--accent); }
2140
+ .computer-filter-chip { display:inline-flex; align-items:center; gap:4px; font-size:10px; padding:1px 6px; border-radius:999px; border:1px solid var(--accent); color:var(--accent); background:color-mix(in srgb, var(--accent) 14%, transparent); cursor:pointer; max-width:160px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
2141
+ .computer-filter-chip:focus-visible { outline:2px solid var(--accent); }
2112
2142
  /* Collapsed expander row (>6 active sessions) */
2113
2143
  .active-list-more {
2114
2144
  display: flex;
@@ -2304,11 +2334,21 @@
2304
2334
  opacity: 0.42;
2305
2335
  font-weight: 500;
2306
2336
  }
2337
+ /* WP-3b: the landing-queue part of the same badge: `wt-landing` is the queue position/ETA
2338
+ (`⇡#2/3 · 23m`), in this file's accent token. */
2339
+ .worktree-attn-badge .wt-landing {
2340
+ color: var(--accent, #7aa2f7);
2341
+ }
2307
2342
  .session-item.active .worktree-attn-badge {
2308
2343
  background: rgba(245, 158, 11, 0.28);
2309
2344
  border-color: rgba(120, 53, 15, 0.22);
2310
2345
  color: #3f2a05;
2311
2346
  }
2347
+ /* On the selected row the badge switches to dark text on the blue highlight; the light accent
2348
+ of the landing part would sit blue-on-blue there, so it takes the badge's dark text too. */
2349
+ .session-item.active .worktree-attn-badge .wt-landing {
2350
+ color: inherit;
2351
+ }
2312
2352
  /* cwd conflict banner */
2313
2353
  .cwd-conflict-banner {
2314
2354
  background: rgba(251, 191, 36, 0.12);
@@ -8985,6 +9025,13 @@
8985
9025
  .mpc-cred[data-cred="env"] { background: color-mix(in srgb, var(--yellow) 16%, transparent); color: var(--yellow); }
8986
9026
  .mpc-cred[data-cred="missing"] { background: color-mix(in srgb, var(--red) 16%, transparent); color: var(--red); }
8987
9027
  .mpc-meta { margin: 4px 0 8px; font-size: 11px; color: var(--fg-dim); }
9028
+ /* WP-3: the box's update status line, next to the meta line it belongs with. Same size, no new
9029
+ colours — every tone comes from the theme variables the card already uses (dot/health tokens). */
9030
+ .mpc-fleet { margin: 0 0 8px; font-size: 11px; overflow-wrap: anywhere; }
9031
+ .mpc-fleet[data-fleet-tone="ok"] { color: var(--green); }
9032
+ .mpc-fleet[data-fleet-tone="pending"] { color: var(--yellow); }
9033
+ .mpc-fleet[data-fleet-tone="warn"] { color: var(--red); }
9034
+ .mpc-fleet[data-fleet-tone="muted"] { color: var(--fg-dim); }
8988
9035
  .mpc-stale { margin-left: 6px; padding: 0 4px; border-radius: 3px; background: var(--warning-soft); color: var(--yellow); }
8989
9036
  .mpc-sparks { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; }
8990
9037
  .mpc-spark { display: flex; align-items: center; gap: 6px; }
@@ -9011,6 +9058,80 @@
9011
9058
  .mpc-primary { border-color: var(--accent); color: var(--accent); }
9012
9059
  .mpc-danger { border-color: var(--red); color: var(--red); }
9013
9060
  .mpc-fav[aria-pressed="true"] { border-color: var(--yellow); color: var(--yellow); }
9061
+ /* hub bridge (R-13): who may use this Mac, open asks, grants and recent use, per card. */
9062
+ .mpc-access { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--border); font-size: 11px; color: var(--fg); }
9063
+ .mpc-access-head { display: flex; align-items: center; gap: 8px; }
9064
+ .mpc-trust { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--fg-dim); }
9065
+ .mpc-trust-select { font-size: 11px; padding: 2px 6px; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); color: var(--fg); }
9066
+ .mpc-trust-all { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--fg-dim); cursor: pointer; }
9067
+ .mpc-access-list { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
9068
+ .mpc-pending, .mpc-grant, .mpc-audit { display: flex; align-items: center; gap: 8px; min-width: 0; }
9069
+ .mpc-pending { color: var(--yellow); }
9070
+ .mpc-audit { color: var(--fg-dim); }
9071
+ .mpc-access-text { overflow-wrap: anywhere; }
9072
+ .mpc-access-btn { padding: 2px 8px; }
9073
+ /* The hub-bridge approval ask (docs/hub-bridge-approval-banner-cutoff-2026-10-31.html, redesigned by
9074
+ docs/hub-bridge-approval-scopes-2026-11-01.html §6.5). An absolute overlay in the asking session's
9075
+ .term-container, like .compact-banner. It never lives in the toolbar / tab strip (it crushed the
9076
+ tabs and clipped its own buttons), and it never takes terminal rows (no SIGWINCH). The sentence and
9077
+ its detail line WRAP: they are the thing being approved, so they are never ellipsized. */
9078
+ .hub-bridge-banner {
9079
+ position: absolute; top: 8px; right: 10px; z-index: 12; box-sizing: border-box;
9080
+ width: min(440px, calc(100% - 20px)); display: flex; flex-direction: column; gap: 8px;
9081
+ padding: 12px 14px 10px; background: var(--bg-light); color: var(--fg);
9082
+ border: 1px solid var(--border); border-left: 3px solid var(--yellow); border-radius: 10px;
9083
+ box-shadow: 0 12px 32px var(--shadow-color); font-size: 13px; line-height: 1.4;
9084
+ font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif;
9085
+ }
9086
+ .hbb-btn, .hbb-deny { font-family: inherit; }
9087
+ .hbb-head { display: flex; gap: 10px; align-items: flex-start; }
9088
+ .hbb-icon {
9089
+ flex: 0 0 22px; height: 22px; border-radius: 6px; display: grid; place-items: center;
9090
+ background: var(--warning-soft); color: var(--yellow);
9091
+ }
9092
+ .hub-bridge-banner-text { flex: 1 1 auto; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
9093
+ .hub-bridge-banner-text b { font-weight: 600; }
9094
+ .hbb-tier {
9095
+ flex: 0 0 auto; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
9096
+ color: var(--yellow); background: var(--warning-soft); border-radius: 999px; padding: 2px 8px;
9097
+ }
9098
+ .hbb-detail {
9099
+ margin-left: 32px; padding: 5px 8px; border-radius: 6px; background: var(--code-bg); color: var(--fg-muted);
9100
+ font: 11.5px/1.45 var(--font-mono, "SF Mono", Menlo, monospace); white-space: pre-wrap; overflow-wrap: anywhere;
9101
+ }
9102
+ /* Three columns (label | this session | all sessions); each pair is a subgrid, so the two rows'
9103
+ buttons line up even though the primary's bold label is wider. */
9104
+ .hbb-grants { display: grid; grid-template-columns: auto auto auto; justify-content: start; gap: 6px 10px; align-items: center; margin-left: 32px; }
9105
+ .hbb-label { font-size: 11px; color: var(--fg-muted); white-space: nowrap; }
9106
+ .hbb-seg { display: grid; grid-column: 2 / span 2; grid-template-columns: subgrid; column-gap: 0; }
9107
+ .hbb-btn {
9108
+ font-size: 12px; line-height: 1; padding: 7px 12px; border: 1px solid var(--border);
9109
+ background: var(--bg-lighter); color: var(--fg); cursor: pointer;
9110
+ }
9111
+ .hbb-seg .hbb-btn:first-child { border-radius: 7px 0 0 7px; }
9112
+ .hbb-seg .hbb-btn + .hbb-btn { border-left: 0; border-radius: 0 7px 7px 0; }
9113
+ .hbb-btn:hover { background: var(--bg-hover); }
9114
+ .hbb-btn.hbb-primary { background: var(--accent); border-color: var(--accent); color: var(--accent-fg); font-weight: 600; }
9115
+ .hbb-btn.hbb-primary:hover { background: var(--accent-hover); }
9116
+ .hbb-btn:focus-visible, .hbb-deny:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
9117
+ .hbb-foot { display: flex; justify-content: space-between; align-items: center; margin-left: 32px; }
9118
+ .hbb-note { font-size: 11px; color: var(--fg-dim); }
9119
+ .hbb-deny {
9120
+ font-size: 12px; padding: 7px 10px; border: 1px solid transparent; border-radius: 7px;
9121
+ background: transparent; color: var(--fg-muted); cursor: pointer;
9122
+ }
9123
+ .hbb-deny:hover { color: var(--red); background: var(--danger-soft); }
9124
+ /* The Machines-page Access block's pending row reuses the same grant groups, with no 32 px indent
9125
+ (the row already carries the card's own text and its own Deny). */
9126
+ .mpc-access .hbb-grants { margin-left: 0; flex: 1 1 240px; min-width: 0; }
9127
+ .term-container > .session-toolbar ~ .hub-bridge-banner { top: 42px; }
9128
+ .term-container:has(> .hub-bridge-banner) > .compact-banner { display: none; }
9129
+ @media (max-width: 720px) {
9130
+ .hub-bridge-banner { left: 8px; right: 8px; width: auto; }
9131
+ .hbb-grants { grid-template-columns: 1fr; margin-left: 0; }
9132
+ .hbb-detail, .hbb-foot { margin-left: 0; }
9133
+ .hbb-seg { display: flex; grid-column: auto; } .hbb-seg .hbb-btn { flex: 1 1 0; }
9134
+ }
9014
9135
 
9015
9136
  /* The Add-machine / show-a-code dialogs. */
9016
9137
  .machine-modal-overlay {
@@ -9066,3 +9187,52 @@
9066
9187
  padding: 10px 0;
9067
9188
  user-select: all;
9068
9189
  }
9190
+
9191
+ /* WP-9 (§9 S-9): the row's one Skills line and the Review dialog it opens. */
9192
+ .mpc-skills { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
9193
+ .mpc-skills-line { font-size: 11px; color: var(--fg-dim); overflow-wrap: anywhere; }
9194
+ .mpc-skills-review { flex: 0 0 auto; }
9195
+ /* WP-3 (§8 WP-3): the row's one Models line, its /delegate warnings, and the Review button. */
9196
+ .mpc-models { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
9197
+ .mpc-models-line { font-size: 11px; color: var(--fg-dim); overflow-wrap: anywhere; }
9198
+ .mpc-models-sep { font-size: 11px; color: var(--fg-dim); }
9199
+ .mpc-models-review { flex: 0 0 auto; }
9200
+ .mpc-models-warn { flex-basis: 100%; font-size: 11px; color: var(--red); overflow-wrap: anywhere; }
9201
+ .mpc-review-modal { width: min(760px, calc(100vw - 32px)); }
9202
+ .mpc-review-section { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px; }
9203
+ .mpc-review-section h4 { margin: 0 0 6px; font-size: 12px; font-weight: 600; }
9204
+ .mpc-review-section ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
9205
+ .mpc-review-item { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 12px; }
9206
+ .mpc-review-name { font-weight: 600; }
9207
+ .mpc-review-meta, .mpc-review-where, .mpc-review-note { font-size: 11px; color: var(--fg-dim); overflow-wrap: anywhere; }
9208
+ .mpc-review-note { margin: 6px 0 0; }
9209
+ .mpc-review-note.bad { color: var(--red); }
9210
+ .mpc-review-empty { font-size: 11px; color: var(--fg-dim); }
9211
+ .mpc-review-actions { display: flex; flex-wrap: wrap; gap: 6px; }
9212
+ /* WP-4 (§8 WP-4): the unreachable rows' one control — the tick, then the button under the list. */
9213
+ .mpc-review-pick { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
9214
+ .mpc-review-pick input[type="checkbox"] { flex: 0 0 auto; margin: 0; }
9215
+ .mpc-review-models-remove { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
9216
+ /* WP-5 (§8 WP-5): "From this hub" — a heading level under the Models one, one button per row. */
9217
+ .mpc-review-from-hub { margin-top: 10px; }
9218
+ .mpc-review-from-hub h5 { margin: 0 0 6px; font-size: 11px; font-weight: 600; color: var(--fg-dim); }
9219
+ .mpc-review-plugins { display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
9220
+ .mpc-review-plugin { display: flex; align-items: center; gap: 6px; }
9221
+ .mpc-review-diff {
9222
+ flex: 1 1 100%;
9223
+ max-height: 320px;
9224
+ overflow: auto;
9225
+ border: 1px solid var(--border);
9226
+ border-radius: 6px;
9227
+ padding: 6px 8px;
9228
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
9229
+ font-size: 11px;
9230
+ line-height: 1.45;
9231
+ }
9232
+ .mpc-diff { display: flex; flex-direction: column; }
9233
+ .mpc-diff span { white-space: pre-wrap; overflow-wrap: anywhere; }
9234
+ .mpc-diff-file { margin: 8px 0 2px; font-size: 11px; font-weight: 600; }
9235
+ .mpc-diff-binary { margin: 0 0 4px; font-size: 11px; color: var(--fg-dim); }
9236
+ .mpc-diff-add { color: var(--green); }
9237
+ .mpc-diff-del { color: var(--red); }
9238
+ .mpc-diff-eq { color: var(--fg-dim); }
@@ -22,6 +22,10 @@
22
22
  .session-item[data-agent="gemini"] {
23
23
  border-left: 3px solid #3b82f6;
24
24
  }
25
+ /* WP-7 (S-58): DeepSeek Harness — DeepSeek's signature blue #4D6BFE. */
26
+ .session-item[data-agent="dsh"] {
27
+ border-left: 3px solid #4D6BFE;
28
+ }
25
29
  .session-item[data-agent="shell"] {
26
30
  border-left: 3px solid #6b7280;
27
31
  }