create-walle 0.10.1 → 0.10.2

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 (341) hide show
  1. package/README.md +4 -0
  2. package/lib/owner-write-safety.js +135 -0
  3. package/lib/public-runtime.js +13 -5
  4. package/lib/release-schema.json +3 -2
  5. package/lib/runtime-closure-policy.json +6 -4
  6. package/package.json +1 -1
  7. package/template/bin/deps-doctor.js +1 -1
  8. package/template/bin/node-bin.sh +11 -0
  9. package/template/coding-task-manager/api-prompts.js +10 -22
  10. package/template/coding-task-manager/bin/claude-hook.js +7 -3
  11. package/template/coding-task-manager/bin/claude-table-parity.js +307 -0
  12. package/template/coding-task-manager/bin/conversation-storage-auto-migration-lib.js +16 -1
  13. package/template/coding-task-manager/bin/conversation-storage-generation-evidence.js +9 -2
  14. package/template/coding-task-manager/bin/conversation-storage-service-entry-lib.js +16 -1
  15. package/template/coding-task-manager/bin/conversation-storage-walle-owner.js +247 -0
  16. package/template/coding-task-manager/bin/ctm-machine-pair.js +160 -0
  17. package/template/coding-task-manager/bin/lead-wait-census.js +1348 -0
  18. package/template/coding-task-manager/bin/repair-foreign-clone.js +564 -0
  19. package/template/coding-task-manager/bin/repair-resume-echo-titles.js +248 -0
  20. package/template/coding-task-manager/bin/write-lock-bench.js +111 -0
  21. package/template/coding-task-manager/db.js +705 -286
  22. package/template/coding-task-manager/git-utils.js +44 -0
  23. package/template/coding-task-manager/lib/adopted-host-redial.js +4 -0
  24. package/template/coding-task-manager/lib/agent-presets.js +15 -0
  25. package/template/coding-task-manager/lib/agent-title-apply.js +88 -0
  26. package/template/coding-task-manager/lib/agent-title-backfill-read.js +92 -0
  27. package/template/coding-task-manager/lib/api/host-stats.js +98 -0
  28. package/template/coding-task-manager/lib/api/ingress.js +35 -12
  29. package/template/coding-task-manager/lib/api/machine-pairing.js +285 -0
  30. package/template/coding-task-manager/lib/api/machine-pool.js +307 -0
  31. package/template/coding-task-manager/lib/api/machines.js +461 -0
  32. package/template/coding-task-manager/lib/api/misc-ops.js +20 -5
  33. package/template/coding-task-manager/lib/api/providers.js +53 -6
  34. package/template/coding-task-manager/lib/api/resume-from-store.js +25 -0
  35. package/template/coding-task-manager/lib/api/sessions.js +160 -8
  36. package/template/coding-task-manager/lib/api/transcript-history.js +17 -4
  37. package/template/coding-task-manager/lib/api/worktrees.js +38 -37
  38. package/template/coding-task-manager/lib/approval-drift.js +16 -1
  39. package/template/coding-task-manager/lib/approval-logical-frame.js +5 -1
  40. package/template/coding-task-manager/lib/approval-scope.js +68 -4
  41. package/template/coding-task-manager/lib/auth-context.js +32 -2
  42. package/template/coding-task-manager/lib/auth-rate-limit.js +41 -1
  43. package/template/coding-task-manager/lib/auth-rules.js +186 -45
  44. package/template/coding-task-manager/lib/broadcast-serialize.js +2 -1
  45. package/template/coding-task-manager/lib/browser-session-broker.js +9 -1
  46. package/template/coding-task-manager/lib/browser-use-adapter.js +33 -2
  47. package/template/coding-task-manager/lib/claude-markdown-ansi.js +27 -85
  48. package/template/coding-task-manager/lib/claude-session-title.js +6 -30
  49. package/template/coding-task-manager/lib/claude-table-layout.js +322 -0
  50. package/template/coding-task-manager/lib/client-diag-handler.js +5 -0
  51. package/template/coding-task-manager/lib/codex-config-guard.js +33 -3
  52. package/template/coding-task-manager/lib/codex-harness-qualification.js +12 -0
  53. package/template/coding-task-manager/lib/codex-launch-health.js +29 -2
  54. package/template/coding-task-manager/lib/codex-link-preparation.js +9 -8
  55. package/template/coding-task-manager/lib/codex-paths.js +2 -1
  56. package/template/coding-task-manager/lib/coding-agent-models.js +21 -30
  57. package/template/coding-task-manager/lib/coding-session-model-adapters.js +27 -2
  58. package/template/coding-task-manager/lib/coding-session-model-projection.js +5 -0
  59. package/template/coding-task-manager/lib/coding-session-model-runtime.js +1 -2
  60. package/template/coding-task-manager/lib/coding-session-model-state.js +10 -0
  61. package/template/coding-task-manager/lib/coding-session-model-sync-state.js +0 -1
  62. package/template/coding-task-manager/lib/conversation-import/cursor-guard-owner.js +10 -0
  63. package/template/coding-task-manager/lib/create/resolve-launch-params.js +8 -1
  64. package/template/coding-task-manager/lib/ctm-boot-lifecycle.js +17 -1
  65. package/template/coding-task-manager/lib/db-domain-tables.js +7 -0
  66. package/template/coding-task-manager/lib/db-domains.js +21 -2
  67. package/template/coding-task-manager/lib/db-owner-op-registry.js +7 -0
  68. package/template/coding-task-manager/lib/db-schema-source-files.js +1 -0
  69. package/template/coding-task-manager/lib/feature-manifest.js +1 -1
  70. package/template/coding-task-manager/lib/fs-watcher.js +3 -2
  71. package/template/coding-task-manager/lib/harness-history-transition.js +3 -3
  72. package/template/coding-task-manager/lib/headless-inflight-ops.js +203 -0
  73. package/template/coding-task-manager/lib/headless-missing-reply.js +42 -0
  74. package/template/coding-task-manager/lib/headless-term-service.js +55 -17
  75. package/template/coding-task-manager/lib/host-control-dial.js +167 -0
  76. package/template/coding-task-manager/lib/host-handoff-orchestrator.js +16 -2
  77. package/template/coding-task-manager/lib/host-handoff.js +51 -13
  78. package/template/coding-task-manager/lib/host-health-ledger.js +164 -12
  79. package/template/coding-task-manager/lib/host-self-truth-watchdog.js +4 -0
  80. package/template/coding-task-manager/lib/host-stats.js +328 -0
  81. package/template/coding-task-manager/lib/host-threadpool-evacuation.js +160 -0
  82. package/template/coding-task-manager/lib/host-threadpool-monitor.js +14 -1
  83. package/template/coding-task-manager/lib/hosted-input-dispatch.js +203 -0
  84. package/template/coding-task-manager/lib/hosted-sync-worker.js +113 -5
  85. package/template/coding-task-manager/lib/instance-id-ownership-manifest.js +4 -0
  86. package/template/coding-task-manager/lib/instance-manifest-runtime.js +3 -0
  87. package/template/coding-task-manager/lib/instance-manifest.js +13 -1
  88. package/template/coding-task-manager/lib/instance-sync-status.js +15 -0
  89. package/template/coding-task-manager/lib/launch-model-override.js +160 -1
  90. package/template/coding-task-manager/lib/launch-plan-worker.js +59 -2
  91. package/template/coding-task-manager/lib/lead-model-switch-runtime.js +57 -4
  92. package/template/coding-task-manager/lib/lead-model-switch.js +3 -2
  93. package/template/coding-task-manager/lib/lead-model-transition-store.js +61 -3
  94. package/template/coding-task-manager/lib/legacy-draft-cancellation-recovery.js +111 -0
  95. package/template/coding-task-manager/lib/login-tripwire.js +1 -0
  96. package/template/coding-task-manager/lib/machine-pairing.js +238 -0
  97. package/template/coding-task-manager/lib/machine-pool.js +409 -0
  98. package/template/coding-task-manager/lib/machine-registry.js +749 -0
  99. package/template/coding-task-manager/lib/machine-self.js +66 -0
  100. package/template/coding-task-manager/lib/main-thread-lint-exemptions.json +52 -4
  101. package/template/coding-task-manager/lib/media-journal-control-reader.js +473 -0
  102. package/template/coding-task-manager/lib/media-journal.js +84 -27
  103. package/template/coding-task-manager/lib/media-store-options.js +43 -15
  104. package/template/coding-task-manager/lib/migrations/v56-host-samples-and-machine-pool.js +76 -0
  105. package/template/coding-task-manager/lib/mirror-feed-sanitize.js +12 -3
  106. package/template/coding-task-manager/lib/model-proxy/anthropic-face.js +4 -0
  107. package/template/coding-task-manager/lib/model-proxy/chat-response-translators.js +3 -0
  108. package/template/coding-task-manager/lib/model-proxy/handoff.js +494 -0
  109. package/template/coding-task-manager/lib/model-proxy/lead-worker-picks.js +25 -0
  110. package/template/coding-task-manager/lib/model-proxy/native-lead-listener.js +61 -7
  111. package/template/coding-task-manager/lib/model-proxy/proxy-cli.js +200 -0
  112. package/template/coding-task-manager/lib/model-proxy/proxy-instance-record.js +257 -0
  113. package/template/coding-task-manager/lib/model-proxy/stream-accounting.js +205 -0
  114. package/template/coding-task-manager/lib/model-proxy/tokens.js +78 -0
  115. package/template/coding-task-manager/lib/model-proxy/upstream-outcome.js +9 -0
  116. package/template/coding-task-manager/lib/native-history-control.js +2 -2
  117. package/template/coding-task-manager/lib/native-lead-settings-client.js +2 -1
  118. package/template/coding-task-manager/lib/native-lead-tls.js +18 -4
  119. package/template/coding-task-manager/lib/oauth-proxy-supervisor.js +628 -64
  120. package/template/coding-task-manager/lib/owner-action-manifest-data.json +14 -0
  121. package/template/coding-task-manager/lib/painted-row-recorder.js +9 -1
  122. package/template/coding-task-manager/lib/prompt-submission-contract.js +21 -1
  123. package/template/coding-task-manager/lib/provider-login-broker.js +192 -9
  124. package/template/coding-task-manager/lib/provider-login-capture.js +153 -0
  125. package/template/coding-task-manager/lib/queue-draft-status-overlay.js +36 -0
  126. package/template/coding-task-manager/lib/raw-codex-history-window.js +5 -3
  127. package/template/coding-task-manager/lib/read-pool-client.js +5 -2
  128. package/template/coding-task-manager/lib/read-pool-op-registry.js +10 -1
  129. package/template/coding-task-manager/lib/recent-catalog-query.js +26 -0
  130. package/template/coding-task-manager/lib/recent-session-catalog-response.js +9 -0
  131. package/template/coding-task-manager/lib/remote-command-context.js +12 -0
  132. package/template/coding-task-manager/lib/remote-command-runtime.js +13 -1
  133. package/template/coding-task-manager/lib/remote-machine-catalog.js +1062 -0
  134. package/template/coding-task-manager/lib/remote-machine-create.js +693 -0
  135. package/template/coding-task-manager/lib/remote-machine-link.js +939 -0
  136. package/template/coding-task-manager/lib/remote-machine-proxy.js +520 -0
  137. package/template/coding-task-manager/lib/remote-session-forward.js +306 -0
  138. package/template/coding-task-manager/lib/remote-submission-status.js +6 -0
  139. package/template/coding-task-manager/lib/restart-outcome-truth.js +20 -3
  140. package/template/coding-task-manager/lib/restart-preflight.js +9 -2
  141. package/template/coding-task-manager/lib/restore-backoff-gate.js +10 -2
  142. package/template/coding-task-manager/lib/restore-prepare-retry.js +12 -5
  143. package/template/coding-task-manager/lib/restore-resume-batch.js +22 -1
  144. package/template/coding-task-manager/lib/resume-blocked-wire.js +62 -1
  145. package/template/coding-task-manager/lib/resume-cwd.js +13 -0
  146. package/template/coding-task-manager/lib/resume-from-store.js +12 -1
  147. package/template/coding-task-manager/lib/resume-origin-facts.js +38 -1
  148. package/template/coding-task-manager/lib/resume-preflight.js +21 -16
  149. package/template/coding-task-manager/lib/review-repo-admission.js +39 -6
  150. package/template/coding-task-manager/lib/review-repo-registry.js +17 -0
  151. package/template/coding-task-manager/lib/root-delivery-runtime.js +72 -15
  152. package/template/coding-task-manager/lib/root-delivery-selection.js +37 -1
  153. package/template/coding-task-manager/lib/root-prompt-admission.js +33 -2
  154. package/template/coding-task-manager/lib/root-prompt-flow.js +167 -33
  155. package/template/coding-task-manager/lib/scrollback-archive-store.js +7 -4
  156. package/template/coding-task-manager/lib/session-analysis-memory.js +2 -0
  157. package/template/coding-task-manager/lib/session-create/codex-native-provider-gate.js +218 -0
  158. package/template/coding-task-manager/lib/session-create/codex-resume-exit-classify.js +52 -0
  159. package/template/coding-task-manager/lib/session-create/delegate-worker.js +95 -6
  160. package/template/coding-task-manager/lib/session-create/identity.js +20 -1
  161. package/template/coding-task-manager/lib/session-create/prepared.js +69 -1
  162. package/template/coding-task-manager/lib/session-create/provider-launch-context.js +77 -0
  163. package/template/coding-task-manager/lib/session-create/provider-process.js +34 -37
  164. package/template/coding-task-manager/lib/session-create/response.js +30 -12
  165. package/template/coding-task-manager/lib/session-create/transcript.js +13 -4
  166. package/template/coding-task-manager/lib/session-create/worker-continuation.js +43 -1
  167. package/template/coding-task-manager/lib/session-create/worker-notices.js +94 -5
  168. package/template/coding-task-manager/lib/session-create/worker-observability.js +99 -7
  169. package/template/coding-task-manager/lib/session-create/worker-stop.js +11 -3
  170. package/template/coding-task-manager/lib/session-create/worker-wait-watcher.js +315 -0
  171. package/template/coding-task-manager/lib/session-geometry-authority-handler.js +10 -1
  172. package/template/coding-task-manager/lib/session-host-manager.js +152 -206
  173. package/template/coding-task-manager/lib/session-jobs.js +17 -9
  174. package/template/coding-task-manager/lib/session-lifecycle.js +18 -0
  175. package/template/coding-task-manager/lib/session-model-action-preconditions.js +9 -0
  176. package/template/coding-task-manager/lib/session-resource-sampler.js +19 -9
  177. package/template/coding-task-manager/lib/session-standup.js +67 -4
  178. package/template/coding-task-manager/lib/session-status-ledger.js +42 -3
  179. package/template/coding-task-manager/lib/session-status-runtime.js +45 -1
  180. package/template/coding-task-manager/lib/session-title-mirror.js +25 -57
  181. package/template/coding-task-manager/lib/session-transcript-trash.js +8 -1
  182. package/template/coding-task-manager/lib/startup-pointer-write.js +57 -0
  183. package/template/coding-task-manager/lib/state-sync/painted-frame-field.js +11 -0
  184. package/template/coding-task-manager/lib/storage/coding-session-model-store.js +21 -22
  185. package/template/coding-task-manager/lib/surviving-owner-bootstrap.js +7 -2
  186. package/template/coding-task-manager/lib/surviving-owner-recovery.js +2 -1
  187. package/template/coding-task-manager/lib/terminal-draft-http-status.js +25 -0
  188. package/template/coding-task-manager/lib/transcript-archiver.js +229 -229
  189. package/template/coding-task-manager/lib/transcript-frame-cache.js +12 -2
  190. package/template/coding-task-manager/lib/transcript-guard-job.js +55 -4
  191. package/template/coding-task-manager/lib/transcript-link.js +77 -0
  192. package/template/coding-task-manager/lib/transcript-manifest-store.js +8 -4
  193. package/template/coding-task-manager/lib/transcript-source.js +8 -3
  194. package/template/coding-task-manager/lib/transcript-store.js +40 -0
  195. package/template/coding-task-manager/lib/tunnel-lane-governor.js +6 -3
  196. package/template/coding-task-manager/lib/typing-interaction-trace.js +92 -0
  197. package/template/coding-task-manager/lib/typing-worker-stages.js +60 -0
  198. package/template/coding-task-manager/lib/visible-revision-watchdog.js +8 -12
  199. package/template/coding-task-manager/lib/wake-skip-reasons.js +46 -0
  200. package/template/coding-task-manager/lib/walle-supervisor.js +98 -14
  201. package/template/coding-task-manager/lib/worker-failure-classify.js +13 -1
  202. package/template/coding-task-manager/lib/ws/state-sync.js +19 -2
  203. package/template/coding-task-manager/lib/ws/terminal-attach.js +32 -1
  204. package/template/coding-task-manager/lib/ws-router.js +68 -1
  205. package/template/coding-task-manager/lib/ws-send-admission.js +22 -4
  206. package/template/coding-task-manager/oauth-proxy.js +99 -55
  207. package/template/coding-task-manager/package-lock.json +24 -0
  208. package/template/coding-task-manager/package.json +3 -0
  209. package/template/coding-task-manager/providers/codex-mcp-extract.js +121 -19
  210. package/template/coding-task-manager/providers/codex-mcp.js +14 -5
  211. package/template/coding-task-manager/public/css/app.css +279 -1
  212. package/template/coding-task-manager/public/css/reviews.css +4 -0
  213. package/template/coding-task-manager/public/index.html +294 -223
  214. package/template/coding-task-manager/public/js/app/machines-page.js +1252 -0
  215. package/template/coding-task-manager/public/js/app/models-tab.js +546 -36
  216. package/template/coding-task-manager/public/js/app/worktrees-panel.js +7 -5
  217. package/template/coding-task-manager/public/js/background-work.js +13 -7
  218. package/template/coding-task-manager/public/js/coding-session-model-presentation.js +44 -4
  219. package/template/coding-task-manager/public/js/core/session-commands.js +676 -0
  220. package/template/coding-task-manager/public/js/core/session-selectors.js +5 -1
  221. package/template/coding-task-manager/public/js/history-app-seam.js +26 -2
  222. package/template/coding-task-manager/public/js/history-painted-rows.js +17 -2
  223. package/template/coding-task-manager/public/js/history-reader-park.js +13 -1
  224. package/template/coding-task-manager/public/js/history-scroller.js +187 -9
  225. package/template/coding-task-manager/public/js/history-transcript-pages.js +5 -5
  226. package/template/coding-task-manager/public/js/machine-pool-shared.js +436 -0
  227. package/template/coding-task-manager/public/js/private-state-scope.js +31 -3
  228. package/template/coding-task-manager/public/js/prompt-submission-client.js +173 -8
  229. package/template/coding-task-manager/public/js/prompt-submission-tray.js +281 -0
  230. package/template/coding-task-manager/public/js/queue-panel-submission-reconcile.js +174 -1
  231. package/template/coding-task-manager/public/js/reviews.js +7 -3
  232. package/template/coding-task-manager/public/js/root-draft-lifetime.js +139 -2
  233. package/template/coding-task-manager/public/js/root-queue-builder-lifetime.js +16 -0
  234. package/template/coding-task-manager/public/js/row-join.js +4 -2
  235. package/template/coding-task-manager/public/js/session-model-picker.js +1 -1
  236. package/template/coding-task-manager/public/js/session-search-utils.js +46 -19
  237. package/template/coding-task-manager/public/js/state-sync-client.js +4 -0
  238. package/template/coding-task-manager/public/js/terminal/runtime-02.js +16 -7
  239. package/template/coding-task-manager/public/js/terminal/runtime-03.js +41 -0
  240. package/template/coding-task-manager/public/js/terminal/runtime-04.js +41 -4
  241. package/template/coding-task-manager/public/js/terminal/runtime-12.js +52 -2
  242. package/template/coding-task-manager/public/js/terminal/runtime-16.js +12 -12
  243. package/template/coding-task-manager/public/js/terminal/runtime-18.js +14 -0
  244. package/template/coding-task-manager/public/js/terminal/runtime-19.js +8 -4
  245. package/template/coding-task-manager/public/js/terminal/runtime-20.js +210 -73
  246. package/template/coding-task-manager/public/js/terminal/runtime-21.js +19 -6
  247. package/template/coding-task-manager/public/js/terminal/runtime-22.js +86 -0
  248. package/template/coding-task-manager/public/js/terminal-history-viewport.js +1 -1
  249. package/template/coding-task-manager/public/js/terminal-wheel.js +39 -2
  250. package/template/coding-task-manager/public/js/walle/chat-conversation.js +11 -3
  251. package/template/coding-task-manager/public/js/walle-session.js +30 -7
  252. package/template/coding-task-manager/public/m/app.css +226 -8
  253. package/template/coding-task-manager/public/m/app.js +502 -9
  254. package/template/coding-task-manager/public/m/index.html +38 -1
  255. package/template/coding-task-manager/public/m/machines.js +1313 -0
  256. package/template/coding-task-manager/public/m/pool-failover.js +391 -0
  257. package/template/coding-task-manager/public/m/private-queue-actions.js +26 -7
  258. package/template/coding-task-manager/public/m/sw.js +5 -0
  259. package/template/coding-task-manager/queue-engine.js +13 -0
  260. package/template/coding-task-manager/server/approvals.js +5 -6
  261. package/template/coding-task-manager/server/boot.js +136 -17
  262. package/template/coding-task-manager/server.js +902 -239
  263. package/template/coding-task-manager/session-integrity.js +7 -9
  264. package/template/coding-task-manager/workers/db-owner-worker.js +53 -7
  265. package/template/coding-task-manager/workers/read-pool-worker.js +17 -6
  266. package/template/coding-task-manager/workers/session-host-pool-process.js +18 -4
  267. package/template/coding-task-manager/workers/session-host-process.js +14 -3
  268. package/template/coding-task-manager/workers/transcript-archive-worker.js +1 -1
  269. package/template/coding-task-manager/workers/worktree-worker.js +34 -0
  270. package/template/package-lock.json +2 -2
  271. package/template/package.json +1 -1
  272. package/template/scripts/conversation-storage-v2-migration.js +78 -11
  273. package/template/shared/conversation-storage-v2-contract.js +42 -6
  274. package/template/shared/fixtures/worker-status-payloads.json +392 -0
  275. package/template/shared/git-remote-key.js +83 -0
  276. package/template/shared/host-identity.js +98 -2
  277. package/template/shared/owner-write-safety.js +135 -0
  278. package/template/shared/public-runtime.js +13 -5
  279. package/template/shared/release-schema.json +3 -2
  280. package/template/shared/report-citations.js +14 -0
  281. package/template/shared/sqlite-write-lock.js +361 -223
  282. package/template/shared/storage/contract.js +35 -3
  283. package/template/wall-e/agent.js +21 -0
  284. package/template/wall-e/api-walle.js +5 -0
  285. package/template/wall-e/bin/brain-purge-legacy-ctm.js +3 -2
  286. package/template/wall-e/bin/walle-mcp-stdio.js +12 -6
  287. package/template/wall-e/brain/helper-rules-schema.js +129 -0
  288. package/template/wall-e/brain/migrations.js +51 -22
  289. package/template/wall-e/brain/model-deployment-facts.js +31 -1
  290. package/template/wall-e/brain/owner-call-whitelist.js +16 -0
  291. package/template/wall-e/brain/schema-ensures.js +22 -0
  292. package/template/wall-e/brain.js +1 -1
  293. package/template/wall-e/coding/journal-dispatcher.js +51 -0
  294. package/template/wall-e/coding/session-journal.js +28 -40
  295. package/template/wall-e/coding-orchestrator.js +23 -26
  296. package/template/wall-e/http/auth.js +18 -1
  297. package/template/wall-e/http/blog-views-api.js +318 -0
  298. package/template/wall-e/http/helper-rules-api.js +321 -0
  299. package/template/wall-e/http/model-proxy-providers.js +3 -1
  300. package/template/wall-e/http/telemetry-api.js +12 -0
  301. package/template/wall-e/lib/blog-view-policy.js +88 -0
  302. package/template/wall-e/lib/blog-view-store.js +169 -0
  303. package/template/wall-e/lib/client-config-lock.js +2 -1
  304. package/template/wall-e/lib/coding-journal-writer-child-client.js +67 -18
  305. package/template/wall-e/lib/error-kinds.js +10 -1
  306. package/template/wall-e/lib/feature-manifest.js +1 -1
  307. package/template/wall-e/lib/helper-rules/cell-state.js +123 -0
  308. package/template/wall-e/lib/helper-rules/evaluate.js +357 -0
  309. package/template/wall-e/lib/helper-rules/explore-rubric.md +12 -0
  310. package/template/wall-e/lib/helper-rules/grade.js +277 -0
  311. package/template/wall-e/lib/helper-rules/label.js +247 -0
  312. package/template/wall-e/lib/helper-rules/lead-call-hook.js +522 -0
  313. package/template/wall-e/lib/helper-rules/store.js +667 -0
  314. package/template/wall-e/lib/mcp-integration.js +5 -6
  315. package/template/wall-e/lib/runtime-worker-pool.js +1 -0
  316. package/template/wall-e/lib/scheduler-worker-jobs.js +6 -0
  317. package/template/wall-e/lib/telemetry-db-schema.js +37 -0
  318. package/template/wall-e/lib/telemetry-process-client.js +76 -1
  319. package/template/wall-e/llm/default-fallback.js +4 -0
  320. package/template/wall-e/llm/model-catalog.js +13 -4
  321. package/template/wall-e/llm/model-roles.js +6 -0
  322. package/template/wall-e/llm/portkey-http.js +150 -0
  323. package/template/wall-e/llm/portkey-sync.js +15 -145
  324. package/template/wall-e/llm/worker-mcp-routing.js +61 -0
  325. package/template/wall-e/llm/worker-route.js +43 -1
  326. package/template/wall-e/loops/brain-custom-writes.js +45 -0
  327. package/template/wall-e/mcp-protocol-contract.js +41 -1
  328. package/template/wall-e/mcp-server.js +13 -2
  329. package/template/wall-e/mcp-worker-schemas.js +20 -2
  330. package/template/wall-e/memory/ctm-context-client.js +25 -5
  331. package/template/wall-e/shared/release-schema.json +3 -2
  332. package/template/wall-e/shared/sqlite-write-lock.js +361 -223
  333. package/template/wall-e/shared/storage/contract.js +35 -3
  334. package/template/wall-e/skills/_templates/delegate-worker/VERSION +1 -1
  335. package/template/wall-e/skills/_templates/delegate-worker/released-sha256.json +6 -0
  336. package/template/wall-e/skills/_templates/delegate-worker/templates/claude/SKILL.md +7 -2
  337. package/template/wall-e/skills/_templates/delegate-worker/templates/codex/SKILL.md +7 -2
  338. package/template/wall-e/tools/local-tools.js +6 -4
  339. package/template/wall-e/workers/brain-owner-worker.js +9 -0
  340. package/template/wall-e/workers/coding-journal-writer-child.js +8 -1
  341. package/template/wall-e/workers/telemetry-worker.js +8 -0
@@ -5719,6 +5719,32 @@
5719
5719
  pointer-events: auto; display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
5720
5720
  width: min(560px, calc(100% - 24px));
5721
5721
  }
5722
+ /* D-14: the identity line ("branches · Codex · ~/ws/tools · last active 10/14/2026") names the
5723
+ session the card is about, above the headline. D-11: the third recovery option is a text link,
5724
+ not a fourth equal button. D-12: the paths live in one collapsed Details row. */
5725
+ .resume-blocked-identity {
5726
+ position: relative; z-index: 1; box-sizing: border-box;
5727
+ width: min(560px, calc(100% - 24px));
5728
+ color: var(--fg-dim, #565f89); font-size: 11px; line-height: 1.5; text-align: center;
5729
+ overflow-wrap: anywhere;
5730
+ }
5731
+ .resume-blocked-link {
5732
+ font-size: 12px; padding: 6px 4px; cursor: pointer;
5733
+ background: none; border: none; color: var(--accent, #7aa2f7);
5734
+ text-decoration: underline; text-underline-offset: 2px;
5735
+ }
5736
+ .resume-blocked-link:hover { filter: brightness(1.15); }
5737
+ /* The overlay is pointer-events:none, so Details opts back in like the actions row — without it
5738
+ a click on the summary falls through to the terminal and Details never opens. */
5739
+ .resume-blocked-details {
5740
+ position: relative; z-index: 1; box-sizing: border-box; pointer-events: auto;
5741
+ width: min(560px, calc(100% - 24px));
5742
+ color: var(--fg-muted, #8b94bd); font-size: 11px; line-height: 1.6;
5743
+ }
5744
+ .resume-blocked-details > summary {
5745
+ cursor: pointer; color: var(--fg-dim, #565f89); font-size: 11px; text-align: center;
5746
+ }
5747
+ .resume-blocked-detail-line { overflow-wrap: anywhere; }
5722
5748
  .snapshot-loading-input-hint,
5723
5749
  .snapshot-loading-detail {
5724
5750
  position: relative; z-index: 1; box-sizing: border-box;
@@ -5950,7 +5976,16 @@
5950
5976
  flex-shrink: 0;
5951
5977
  }
5952
5978
  .model-switch-control .model-switch-chip { border-radius: 4px 0 0 4px; }
5953
- .model-switch-chip .model-chip-lead { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
5979
+ /* WP-1 (docs/session-model-header-truth-and-space-2026-10-25.html §8 WP-1, D-4): the lead row is
5980
+ [ label ][ tag* ][ token badge ] and ONLY the model name yields width. The name was one clipping
5981
+ span shared with the tag and the badge, so a long id ellipsized the context count and percentage
5982
+ away first. Each trailing fact keeps its own box (flex: 0 0 auto) inside the same 260px cap. */
5983
+ .model-switch-chip .model-chip-lead {
5984
+ min-width: 0; display: inline-flex; align-items: center; overflow: hidden;
5985
+ }
5986
+ .model-switch-chip .model-chip-label {
5987
+ min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
5988
+ }
5954
5989
  .model-request-note {
5955
5990
  display: inline-flex; align-items: center; gap: 4px; height: 24px; box-sizing: border-box; padding: 0 8px;
5956
5991
  border: 1px solid var(--border); border-left: 0; background: var(--bg-input); color: var(--accent);
@@ -8788,3 +8823,246 @@
8788
8823
  max-width: 90vw; max-height: calc(100vh - 80px); overflow: auto;
8789
8824
  }
8790
8825
  #screenshot-editor .ss-canvas-wrap canvas { display: block; }
8826
+
8827
+ /* ── WP-5 machine surfaces (docs/remote-machine-hub-sessions-2026-10-22.html §6.6, D-11) ──
8828
+ The machine chip is the branch badge's twin: same inline-block/ellipsis behaviour, its own
8829
+ hue so the two never read as one badge. A local session renders NO chip at all. */
8830
+ .machine-chip {
8831
+ display: inline-block;
8832
+ max-width: 160px;
8833
+ overflow: hidden;
8834
+ text-overflow: ellipsis;
8835
+ font-size: 9px;
8836
+ background: color-mix(in srgb, var(--purple) 15%, transparent);
8837
+ color: var(--purple);
8838
+ padding: 1px 5px;
8839
+ border-radius: 4px;
8840
+ white-space: nowrap;
8841
+ flex: 0 1 auto;
8842
+ min-width: 0;
8843
+ margin-left: 2px;
8844
+ }
8845
+ /* Unreachable is a STATE, not a different badge: the chip keeps its place and says the row is
8846
+ showing another machine's last known state. */
8847
+ .machine-chip.unreachable {
8848
+ background: color-mix(in srgb, var(--yellow) 16%, transparent);
8849
+ color: var(--yellow);
8850
+ border: 1px dashed color-mix(in srgb, var(--yellow) 40%, transparent);
8851
+ }
8852
+ /* Sidebar rows: the machine chip NAMES where the session runs, so in a row that carries one,
8853
+ every other shrinkable item shrinks 5x faster than the chip (their ratios to each other are
8854
+ unchanged: the branch badge still yields 20x faster than the title). The chip keeps its name
8855
+ until the title reaches its 7ch floor. No min-width floor is added and the chip's factor stays
8856
+ 1, so no row's minimum width changes and no row overflows that does not overflow today — a
8857
+ factor below 1 would under-shrink once the chip is the last item shrinking (CSS Flexbox
8858
+ §9.7 step 4c). docs/sidebar-machine-chip-readable-2026-10-23.html D-1. */
8859
+ .session-item .machine-chip { flex-shrink: 1; max-width: 96px; }
8860
+ .session-item:has(.machine-chip) .label,
8861
+ .session-item:has(.machine-chip) .session-owner-chip,
8862
+ .session-item:has(.machine-chip) .session-lifecycle-chip,
8863
+ .session-item:has(.machine-chip) .worktree-attn-badge,
8864
+ .session-item:has(.machine-chip) .status-tag:not(.bg-terminal) { flex-shrink: 5; }
8865
+ .session-item:has(.machine-chip) .branch-badge { flex-shrink: 100; }
8866
+ .session-item.active .machine-chip {
8867
+ color: #111827;
8868
+ background: rgba(255, 255, 255, 0.34);
8869
+ box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.16);
8870
+ font-weight: 700;
8871
+ }
8872
+ /* The recent-item meta row manages its own gap. */
8873
+ .recent-item .recent-meta .machine-chip { margin-left: 0; }
8874
+ /* Tabs: a clipped title still hides the branch badge, but the machine chip never hides — it
8875
+ keeps a glyph floor (docs/sidebar-machine-chip-readable-2026-10-23.html D-3). */
8876
+ .tab > .machine-chip { max-width: 64px; min-width: 2.6em; }
8877
+
8878
+ /* New-session machine cards: the agent grid's twin, auto-fitting so one machine does not
8879
+ stretch across three columns. WP-4 (S-20/D-1): the track is capped at a third of the grid, so
8880
+ the row can never exceed three columns — and therefore never exceeds two rows for the five cards
8881
+ D-1 allows. No max-height hack; `auto-fit` still lets a single machine fill the row. */
8882
+ .ns-machine-grid {
8883
+ grid-template-columns: repeat(auto-fit, minmax(max(132px, calc((100% - 16px) / 3)), 1fr));
8884
+ }
8885
+ .ns-machine-card {
8886
+ border-style: dashed;
8887
+ }
8888
+ .ns-machine-card.selected {
8889
+ border-style: solid;
8890
+ }
8891
+ .ns-machine-card.disabled {
8892
+ opacity: 0.5;
8893
+ cursor: not-allowed;
8894
+ pointer-events: none;
8895
+ }
8896
+ .ns-machine-card .ns-card-sub {
8897
+ overflow-wrap: anywhere;
8898
+ }
8899
+ /* WP-4 (D-1/AC-4e): a long name ellipsizes on one line; the same name is in the card's title, so
8900
+ nothing is lost to the clip (the lesson from docs/sidebar-machine-chip-readable-2026-10-23.md). */
8901
+ .ns-machine-card .ns-card-name {
8902
+ max-width: 100%;
8903
+ overflow: hidden;
8904
+ text-overflow: ellipsis;
8905
+ white-space: nowrap;
8906
+ }
8907
+ /* WP-4 (D-12): the box's live numbers are the card's third line. */
8908
+ .ns-machine-card .ns-card-load {
8909
+ font-size: 10px;
8910
+ color: var(--fg-dim);
8911
+ text-align: center;
8912
+ line-height: 1.2;
8913
+ overflow-wrap: anywhere;
8914
+ }
8915
+ /* WP-4 (item 7): the "Manage machines" link under the grid, mounted by the renderer. */
8916
+ .ns-machine-manage {
8917
+ display: inline-block;
8918
+ margin: 0 0 8px;
8919
+ font-size: 11px;
8920
+ color: var(--accent, #7aa2f7);
8921
+ text-decoration: none;
8922
+ cursor: pointer;
8923
+ }
8924
+ .ns-machine-manage:hover { text-decoration: underline; }
8925
+ .ns-machine-hint {
8926
+ font-size: 11px;
8927
+ color: var(--fg-dim);
8928
+ margin: 2px 0 6px;
8929
+ line-height: 1.4;
8930
+ }
8931
+ .ns-machine-hint.warn { color: var(--yellow); }
8932
+
8933
+ /* Machines page — WP-5 (docs/machine-pool-picker-pairing-dashboard-2026-10-24.html D-14/S-20).
8934
+ Replaces the old Settings → Machines card. The card grid scrolls; nothing here caps a height. */
8935
+ .machines-page-header {
8936
+ display: flex;
8937
+ align-items: flex-start;
8938
+ justify-content: space-between;
8939
+ gap: 12px;
8940
+ padding: 16px 20px;
8941
+ border-bottom: 1px solid var(--border);
8942
+ background: var(--bg);
8943
+ }
8944
+ .machines-page-header h2 { margin: 0 0 4px; font-size: 16px; font-weight: 600; }
8945
+ .machines-page-header p { margin: 0; font-size: 12px; color: var(--fg-dim); line-height: 1.5; max-width: 62ch; }
8946
+ .machines-page-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
8947
+ .machines-page-body { flex: 1 1 auto; overflow-y: auto; padding: 14px 20px; display: flex; flex-direction: column; gap: 10px; }
8948
+ .machines-page-error { padding: 10px 12px; border: 1px solid var(--red); border-radius: 8px; color: var(--red); font-size: 12px; }
8949
+ .machines-page-loading, .machines-page-note { padding: 8px 2px; font-size: 12px; color: var(--fg-dim); }
8950
+ .machines-page-toast { display: none; padding: 8px 20px; font-size: 12px; color: var(--fg-dim); border-top: 1px solid var(--border); }
8951
+ .machines-page-toast.show { display: block; }
8952
+
8953
+ .machine-page-card {
8954
+ border: 1px solid var(--border);
8955
+ border-radius: 8px;
8956
+ background: var(--bg-panel, var(--bg));
8957
+ padding: 10px 12px;
8958
+ }
8959
+ .machine-page-self { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
8960
+ .mpc-head { display: flex; align-items: center; gap: 8px; }
8961
+ .mpc-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--fg-dim); }
8962
+ .mpc-dot[data-health="reachable"] { background: var(--green); }
8963
+ .mpc-dot[data-health="unreachable"] { background: var(--red); }
8964
+ .mpc-dot[data-health="unhealthy"] { background: var(--yellow); }
8965
+ /* A rename is a free-text field on the card itself — it must stay legible at every width, so it
8966
+ ellipsizes on one line and carries the same name in its title (wp-4 D-1 lesson). */
8967
+ .mpc-name {
8968
+ flex: 1 1 auto;
8969
+ min-width: 0;
8970
+ overflow: hidden;
8971
+ text-overflow: ellipsis;
8972
+ white-space: nowrap;
8973
+ background: transparent;
8974
+ border: 1px solid transparent;
8975
+ border-radius: 5px;
8976
+ color: var(--fg);
8977
+ font-size: 13px;
8978
+ font-weight: 600;
8979
+ padding: 2px 6px;
8980
+ }
8981
+ .mpc-name:hover { border-color: var(--border); }
8982
+ .mpc-name:focus { border-color: var(--accent); outline: none; background: var(--bg); }
8983
+ .mpc-cred { flex: 0 0 auto; font-size: 10px; padding: 1px 6px; border-radius: 4px; background: color-mix(in srgb, var(--fg-dim) 15%, transparent); color: var(--fg-dim); }
8984
+ .mpc-cred[data-cred="pool"] { background: color-mix(in srgb, var(--green) 16%, transparent); color: var(--green); }
8985
+ .mpc-cred[data-cred="env"] { background: color-mix(in srgb, var(--yellow) 16%, transparent); color: var(--yellow); }
8986
+ .mpc-cred[data-cred="missing"] { background: color-mix(in srgb, var(--red) 16%, transparent); color: var(--red); }
8987
+ .mpc-meta { margin: 4px 0 8px; font-size: 11px; color: var(--fg-dim); }
8988
+ .mpc-stale { margin-left: 6px; padding: 0 4px; border-radius: 3px; background: var(--warning-soft); color: var(--yellow); }
8989
+ .mpc-sparks { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; }
8990
+ .mpc-spark { display: flex; align-items: center; gap: 6px; }
8991
+ .mpc-spark-label { font-size: 10px; color: var(--fg-dim); width: 2.4em; }
8992
+ .mpc-spark-val { font-size: 11px; color: var(--fg); width: 3em; text-align: right; }
8993
+ .machine-spark { display: block; }
8994
+ .machine-spark path { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
8995
+ .mpc-facts { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 8px 0 0; }
8996
+ .mpc-fact { display: flex; gap: 6px; font-size: 11px; min-width: 0; }
8997
+ .mpc-fact dt { color: var(--fg-dim); }
8998
+ .mpc-fact dd { margin: 0; color: var(--fg); overflow-wrap: anywhere; }
8999
+ .mpc-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
9000
+ .mpc-btn {
9001
+ font-size: 11px;
9002
+ padding: 4px 9px;
9003
+ border: 1px solid var(--border);
9004
+ border-radius: 6px;
9005
+ background: transparent;
9006
+ color: var(--fg);
9007
+ cursor: pointer;
9008
+ }
9009
+ .mpc-btn:hover { background: var(--bg-hover); }
9010
+ .mpc-btn:disabled { opacity: 0.5; cursor: not-allowed; }
9011
+ .mpc-primary { border-color: var(--accent); color: var(--accent); }
9012
+ .mpc-danger { border-color: var(--red); color: var(--red); }
9013
+ .mpc-fav[aria-pressed="true"] { border-color: var(--yellow); color: var(--yellow); }
9014
+
9015
+ /* The Add-machine / show-a-code dialogs. */
9016
+ .machine-modal-overlay {
9017
+ position: fixed;
9018
+ inset: 0;
9019
+ display: flex;
9020
+ align-items: center;
9021
+ justify-content: center;
9022
+ background: var(--overlay-bg);
9023
+ z-index: 400;
9024
+ }
9025
+ .machine-modal {
9026
+ width: min(520px, calc(100vw - 32px));
9027
+ max-height: calc(100vh - 48px);
9028
+ overflow-y: auto;
9029
+ padding: 16px;
9030
+ border: 1px solid var(--border);
9031
+ border-radius: 10px;
9032
+ background: var(--bg-elevated, var(--bg));
9033
+ box-shadow: 0 18px 46px var(--shadow-color);
9034
+ }
9035
+ .machine-modal h3 { margin: 0 0 4px; font-size: 14px; }
9036
+ .machine-modal-sub { margin: 0 0 10px; font-size: 12px; color: var(--fg-dim); line-height: 1.5; }
9037
+ .machine-modal-label { display: block; font-size: 11px; color: var(--fg-dim); margin-bottom: 4px; }
9038
+ .machine-modal-input {
9039
+ width: 100%;
9040
+ box-sizing: border-box;
9041
+ background: var(--bg);
9042
+ border: 1px solid var(--border);
9043
+ border-radius: 6px;
9044
+ color: var(--fg);
9045
+ font-size: 12px;
9046
+ padding: 6px 8px;
9047
+ font-family: inherit;
9048
+ }
9049
+ .machine-modal-or { margin: 10px 0; font-size: 11px; color: var(--fg-dim); text-align: center; }
9050
+ .machine-modal-row { display: flex; gap: 8px; flex-wrap: wrap; }
9051
+ .machine-modal-row .machine-modal-input { flex: 1 1 180px; width: auto; min-width: 140px; }
9052
+ .machine-pair-preview { margin-top: 6px; font-size: 11px; color: var(--fg-dim); overflow-wrap: anywhere; }
9053
+ .machine-pair-preview.good { color: var(--green); }
9054
+ .machine-pair-preview.bad { color: var(--red); }
9055
+ .machine-modal-error { margin-top: 8px; font-size: 12px; color: var(--red); }
9056
+ .machine-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
9057
+ .machine-modal-legacy { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px; }
9058
+ .machine-modal-legacy summary { font-size: 11px; color: var(--fg-dim); cursor: pointer; }
9059
+ .machine-modal-legacy .machine-modal-row { margin-top: 8px; }
9060
+ .machine-code-value {
9061
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
9062
+ font-size: 24px;
9063
+ letter-spacing: 2px;
9064
+ color: var(--accent);
9065
+ text-align: center;
9066
+ padding: 10px 0;
9067
+ user-select: all;
9068
+ }
@@ -1336,6 +1336,10 @@ a.cr-btn { text-decoration: none; }
1336
1336
  .cr-header:has(.cr-doc-header-name) { flex-wrap: nowrap; } /* the path shrinks (dir first) instead of the header wrapping */
1337
1337
  .cr-header:has(.cr-doc-header-name) .cr-navcluster { flex: 0 1 auto; min-width: 160px; }
1338
1338
  .cr-header:has(.cr-doc-header-name) .cr-header-actions { flex-shrink: 0; flex-wrap: nowrap; }
1339
+ /* The doc header never wraps and its actions never shrink, so the R-5 chat label
1340
+ (wider than the old "Chat") pushed Send past the panel at 1024 and starved the
1341
+ path at 1440: the doc header shows the chat icon alone (title/aria-label keep the words). */
1342
+ .cr-header:has(.cr-doc-header-name) .cr-chat-toggle-label { display: none; }
1339
1343
  .cr-nav-history { display: inline-flex; gap: 2px; flex-shrink: 0; }
1340
1344
  .cr-nav-btn {
1341
1345
  width: 26px; height: 26px; display: inline-grid; place-items: center;