@timurproko/a1 0.2.7-dev.1249 → 0.2.7-dev.1252

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 (340) hide show
  1. package/README.md +11 -36
  2. package/bin/cli.js +2 -17
  3. package/bin/ui.js +7 -48
  4. package/dist/app/session-shell/exit-notice.d.ts +2 -2
  5. package/dist/app/session-shell/exit-notice.js +10 -10
  6. package/dist/app/session-shell/prompt-submission.d.ts +2 -4
  7. package/dist/app/session-shell/prompt-submission.js +3 -23
  8. package/dist/app/session-shell/response-copy-transport.js +1 -2
  9. package/dist/app/session-shell/session-lifecycle.d.ts +1 -2
  10. package/dist/app/session-shell/session-lifecycle.js +2 -4
  11. package/dist/app/session-shell/session-shell-root.d.ts +0 -31
  12. package/dist/app/session-shell/session-shell-root.js +3 -4
  13. package/dist/app/session-shell/session-shell.js +6 -47
  14. package/dist/app/session-shell/session-viewport-controller.js +3 -6
  15. package/dist/app/session-shell/shell-host.js +2 -18
  16. package/dist/app/session-shell/transcript-document.d.ts +1 -2
  17. package/dist/app/session-shell/transcript-document.js +3 -28
  18. package/dist/app/session-shell/workflow-output.js +1 -1
  19. package/dist/app/session-shell/workflow-router.d.ts +1 -3
  20. package/dist/app/session-shell/workflow-router.js +1 -4
  21. package/dist/cli/dispatch.d.ts +1 -11
  22. package/dist/cli/dispatch.js +5 -92
  23. package/dist/cli/session-context.js +5 -7
  24. package/dist/cli/uninstall.d.ts +1 -5
  25. package/dist/cli/uninstall.js +6 -35
  26. package/dist/cli/version-stats.js +4 -7
  27. package/dist/composition/owned-settings.d.ts +0 -1
  28. package/dist/composition/owned-settings.js +0 -1
  29. package/dist/composition/owned-ui.d.ts +2 -24
  30. package/dist/composition/owned-ui.js +11 -87
  31. package/dist/composition/release-update-observation.d.ts +4 -4
  32. package/dist/composition/release-update-observation.js +17 -47
  33. package/dist/composition/session-backend.d.ts +0 -1
  34. package/dist/composition/session-runtime-registry.d.ts +3 -3
  35. package/dist/composition/settings-route-host.d.ts +0 -7
  36. package/dist/composition/settings-route-host.js +4 -10
  37. package/dist/composition/startup-route.d.ts +0 -1
  38. package/dist/composition/startup-route.js +0 -1
  39. package/dist/contracts/owned-ui/index.d.ts +1 -1
  40. package/dist/contracts/owned-ui/model.d.ts +0 -3
  41. package/dist/contracts/owned-ui/session-workflows.d.ts +1 -4
  42. package/dist/features/launch/development-launch.js +0 -1
  43. package/dist/features/launch/index.d.ts +1 -1
  44. package/dist/features/launch/intent.d.ts +1 -3
  45. package/dist/features/launch/intent.js +2 -4
  46. package/dist/features/launch/session-context.d.ts +2 -2
  47. package/dist/features/owned-ui/reference-screen-app.d.ts +0 -2
  48. package/dist/features/owned-ui/reference-screen-app.js +2 -9
  49. package/dist/features/owned-ui/settings-app.d.ts +0 -6
  50. package/dist/features/owned-ui/settings-app.js +5 -36
  51. package/dist/foundation/launch-context/index.d.ts +0 -12
  52. package/dist/foundation/launch-context/index.js +0 -26
  53. package/dist/foundation/lifecycle/claim-gate.d.ts +8 -0
  54. package/dist/foundation/lifecycle/claim-gate.js +37 -0
  55. package/dist/foundation/lifecycle/index.d.ts +5 -9
  56. package/dist/foundation/lifecycle/index.js +3 -4
  57. package/dist/foundation/lifecycle/model.d.ts +2 -59
  58. package/dist/foundation/lifecycle/model.js +0 -35
  59. package/dist/foundation/lifecycle/paths.d.ts +0 -24
  60. package/dist/foundation/lifecycle/paths.js +0 -40
  61. package/dist/foundation/lifecycle/process-liveness.d.ts +8 -0
  62. package/dist/foundation/lifecycle/process-liveness.js +18 -0
  63. package/dist/foundation/lifecycle/session-claim-lock.d.ts +1 -1
  64. package/dist/foundation/lifecycle/session-claim-lock.js +2 -2
  65. package/dist/foundation/lifecycle/session-repository-context.d.ts +6 -6
  66. package/dist/foundation/lifecycle/session-repository-context.js +2 -3
  67. package/dist/foundation/release/automatic-update.d.ts +1 -3
  68. package/dist/foundation/release/automatic-update.js +9 -30
  69. package/dist/foundation/release/bootstrap.d.ts +2 -25
  70. package/dist/foundation/release/bootstrap.js +33 -344
  71. package/dist/foundation/release/cohort-state.d.ts +21 -46
  72. package/dist/foundation/release/cohort-state.js +30 -62
  73. package/dist/foundation/release/dependency-certification.d.ts +1 -1
  74. package/dist/foundation/release/index.d.ts +10 -17
  75. package/dist/foundation/release/index.js +7 -11
  76. package/dist/foundation/release/latest-release.d.ts +1 -2
  77. package/dist/foundation/release/latest-release.js +1 -2
  78. package/dist/foundation/release/process-liveness.d.ts +2 -0
  79. package/dist/foundation/release/process-liveness.js +12 -0
  80. package/dist/foundation/release/release-gc.d.ts +12 -9
  81. package/dist/foundation/release/release-gc.js +34 -98
  82. package/dist/foundation/release/release-store.d.ts +2 -2
  83. package/dist/foundation/release/release-store.js +2 -2
  84. package/dist/foundation/release/restart-certification.js +1 -1
  85. package/dist/foundation/release/update-activation.d.ts +2 -9
  86. package/dist/foundation/release/update-activation.js +28 -43
  87. package/dist/foundation/release/update-execution-lease.js +1 -1
  88. package/dist/foundation/release/update-launch.d.ts +0 -2
  89. package/dist/foundation/release/update-launch.js +0 -7
  90. package/dist/foundation/release/update-recovery.js +1 -1
  91. package/dist/foundation/release/update-transaction.d.ts +1 -1
  92. package/dist/foundation/release/update-transaction.js +5 -2
  93. package/dist/foundation/release/update.d.ts +2 -10
  94. package/dist/foundation/release/update.js +23 -200
  95. package/dist/foundation/session-writer-lock/index.d.ts +14 -6
  96. package/dist/foundation/session-writer-lock/index.js +48 -103
  97. package/dist/foundation/startup/startup-runtime.d.ts +1 -1
  98. package/dist/foundation/terminal-cleanup/exit-notice.d.ts +6 -0
  99. package/dist/foundation/terminal-cleanup/exit-notice.js +36 -0
  100. package/dist/foundation/terminal-cleanup/index.d.ts +2 -1
  101. package/dist/foundation/terminal-cleanup/index.js +2 -1
  102. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +0 -5
  103. package/dist/foundation/terminal-cleanup/terminal-reset.js +0 -5
  104. package/dist/integrations/pi/components/index.d.ts +1 -1
  105. package/dist/integrations/pi/components/index.js +1 -1
  106. package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -4
  107. package/dist/integrations/pi/components/shell-footer-status.d.ts +1 -1
  108. package/dist/integrations/pi/components/shell-footer-status.js +2 -2
  109. package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
  110. package/dist/integrations/pi/components/shell-presenters-info.d.ts +2 -5
  111. package/dist/integrations/pi/components/shell-presenters-info.js +4 -18
  112. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +1 -1
  113. package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
  114. package/dist/integrations/pi/components/shell-shared-facade.d.ts +0 -2
  115. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +2 -5
  116. package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -16
  117. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -2
  118. package/dist/integrations/pi/components/upstream/components/session-footer.js +6 -8
  119. package/dist/integrations/pi/engine/adapter.d.ts +0 -1
  120. package/dist/integrations/pi/engine/adapter.js +1 -16
  121. package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -1
  122. package/dist/integrations/pi/engine/diagnostics-state.js +0 -14
  123. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +0 -1
  124. package/dist/integrations/pi/engine/prompt-suggestions.js +0 -40
  125. package/dist/integrations/pi/engine/session-runtime.js +0 -2
  126. package/dist/integrations/pi/engine/workflow-runner.js +1 -1
  127. package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -2
  128. package/dist/integrations/pi/tui-runtime/adapter.js +2 -2
  129. package/dist/product-identity.d.ts +4 -6
  130. package/dist/product-identity.js +6 -11
  131. package/dist/product-identity.json +1 -40
  132. package/dist/runtime-payload-inventory.json +0 -3
  133. package/dist/ui/components/index.d.ts +2 -2
  134. package/dist/ui/components/index.js +1 -1
  135. package/dist/ui/components/submitted-prompt.d.ts +3 -13
  136. package/dist/ui/components/submitted-prompt.js +8 -41
  137. package/dist/ui/components/transcript-viewport.d.ts +1 -3
  138. package/dist/ui/components/transcript-viewport.js +1 -4
  139. package/dist/ui/settings/declarations.d.ts +3 -97
  140. package/dist/ui/settings/declarations.js +3 -78
  141. package/dist/ui/settings/migrations.js +18 -2
  142. package/docs/architecture/boundaries.md +22 -39
  143. package/docs/architecture/code-documentation.md +2 -2
  144. package/docs/architecture/internal-naming.md +9 -17
  145. package/docs/architecture/project-structure.md +9 -14
  146. package/docs/architecture/resource-and-data-policy.md +16 -31
  147. package/docs/architecture/toolchain.md +14 -19
  148. package/docs/architecture/ui-reference-provenance.md +2 -2
  149. package/docs/ci-release-runbook.md +5 -5
  150. package/docs/features/launch-profiles.md +11 -17
  151. package/docs/features/prompt-history.md +10 -11
  152. package/docs/local-worktree-cleanup.md +28 -1
  153. package/docs/manual-owned-ui-checkpoint.md +0 -1
  154. package/docs/validation.md +5 -11
  155. package/docs/worktree-link-recovery.md +6 -6
  156. package/package.json +7 -19
  157. package/bin/guardian.js +0 -42
  158. package/bin/supervisor.js +0 -7
  159. package/bin/tab-launch-context.d.ts +0 -27
  160. package/bin/tab-launch-context.js +0 -94
  161. package/dist/app/session-shell/resident-tab-coordinator.d.ts +0 -38
  162. package/dist/app/session-shell/resident-tab-coordinator.js +0 -77
  163. package/dist/cli/tabs-request.d.ts +0 -7
  164. package/dist/cli/tabs-request.js +0 -1
  165. package/dist/cli/tabs.d.ts +0 -14
  166. package/dist/cli/tabs.js +0 -151
  167. package/dist/composition/resident-tab-bridge.d.ts +0 -41
  168. package/dist/composition/resident-tab-bridge.js +0 -209
  169. package/dist/composition/utility-tab.d.ts +0 -28
  170. package/dist/composition/utility-tab.js +0 -244
  171. package/dist/features/owned-ui/plus-menu-dialog.d.ts +0 -28
  172. package/dist/features/owned-ui/plus-menu-dialog.js +0 -89
  173. package/dist/features/resident-tab/auto-name.d.ts +0 -11
  174. package/dist/features/resident-tab/auto-name.js +0 -44
  175. package/dist/features/resident-tab/index.d.ts +0 -5
  176. package/dist/features/resident-tab/index.js +0 -7
  177. package/dist/features/resident-tab/shortcut-bindings-file.d.ts +0 -8
  178. package/dist/features/resident-tab/shortcut-bindings-file.js +0 -40
  179. package/dist/features/resident-tab/shortcut-declarations.d.ts +0 -13
  180. package/dist/features/resident-tab/shortcut-declarations.js +0 -26
  181. package/dist/features/resident-tab/shortcut-projection.d.ts +0 -29
  182. package/dist/features/resident-tab/shortcut-projection.js +0 -64
  183. package/dist/features/resident-tab/status-deriver.d.ts +0 -10
  184. package/dist/features/resident-tab/status-deriver.js +0 -12
  185. package/dist/foundation/launch-guardian/exit-watcher.d.ts +0 -14
  186. package/dist/foundation/launch-guardian/exit-watcher.js +0 -103
  187. package/dist/foundation/launch-guardian/index.d.ts +0 -2
  188. package/dist/foundation/launch-guardian/index.js +0 -1
  189. package/dist/foundation/launch-guardian/main.d.ts +0 -39
  190. package/dist/foundation/launch-guardian/main.js +0 -232
  191. package/dist/foundation/lifecycle/commands.d.ts +0 -40
  192. package/dist/foundation/lifecycle/commands.js +0 -1
  193. package/dist/foundation/lifecycle/launch-instance.d.ts +0 -46
  194. package/dist/foundation/lifecycle/launch-instance.js +0 -134
  195. package/dist/foundation/lifecycle/native-claim-gate.d.ts +0 -5
  196. package/dist/foundation/lifecycle/native-claim-gate.js +0 -41
  197. package/dist/foundation/lifecycle/supervisor-startup.d.ts +0 -30
  198. package/dist/foundation/lifecycle/supervisor-startup.js +0 -106
  199. package/dist/foundation/process-containment/addon-containment.d.ts +0 -20
  200. package/dist/foundation/process-containment/addon-containment.js +0 -139
  201. package/dist/foundation/process-containment/addon-process-inspector.d.ts +0 -11
  202. package/dist/foundation/process-containment/addon-process-inspector.js +0 -36
  203. package/dist/foundation/process-containment/addon.d.ts +0 -47
  204. package/dist/foundation/process-containment/addon.js +0 -57
  205. package/dist/foundation/process-containment/artifact.d.ts +0 -1
  206. package/dist/foundation/process-containment/artifact.js +0 -35
  207. package/dist/foundation/process-containment/contracts.d.ts +0 -33
  208. package/dist/foundation/process-containment/contracts.js +0 -35
  209. package/dist/foundation/process-containment/index.d.ts +0 -9
  210. package/dist/foundation/process-containment/index.js +0 -7
  211. package/dist/foundation/process-containment/linux-process-inspector.d.ts +0 -7
  212. package/dist/foundation/process-containment/linux-process-inspector.js +0 -27
  213. package/dist/foundation/process-containment/native-process-inspector.d.ts +0 -4
  214. package/dist/foundation/process-containment/native-process-inspector.js +0 -21
  215. package/dist/foundation/protocol/client.d.ts +0 -18
  216. package/dist/foundation/protocol/client.js +0 -130
  217. package/dist/foundation/protocol/index.d.ts +0 -3
  218. package/dist/foundation/protocol/index.js +0 -2
  219. package/dist/foundation/protocol/messages.d.ts +0 -90
  220. package/dist/foundation/protocol/messages.js +0 -100
  221. package/dist/foundation/release/cohort-selection.d.ts +0 -33
  222. package/dist/foundation/release/cohort-selection.js +0 -67
  223. package/dist/foundation/release/endpoint-lock.d.ts +0 -2
  224. package/dist/foundation/release/endpoint-lock.js +0 -37
  225. package/dist/foundation/release/endpoint-recovery.d.ts +0 -10
  226. package/dist/foundation/release/endpoint-recovery.js +0 -45
  227. package/dist/foundation/release/endpoints.d.ts +0 -32
  228. package/dist/foundation/release/endpoints.js +0 -152
  229. package/dist/foundation/release/prepared-update-activation.d.ts +0 -3
  230. package/dist/foundation/release/prepared-update-activation.js +0 -27
  231. package/dist/foundation/release/process-cleanup.d.ts +0 -14
  232. package/dist/foundation/release/process-cleanup.js +0 -76
  233. package/dist/foundation/release/supervisor-identity.d.ts +0 -15
  234. package/dist/foundation/release/supervisor-identity.js +0 -63
  235. package/dist/foundation/resident-tabs/boot-identity.d.ts +0 -6
  236. package/dist/foundation/resident-tabs/boot-identity.js +0 -16
  237. package/dist/foundation/resident-tabs/bounded-host-command.d.ts +0 -20
  238. package/dist/foundation/resident-tabs/bounded-host-command.js +0 -62
  239. package/dist/foundation/resident-tabs/bridge-client.d.ts +0 -73
  240. package/dist/foundation/resident-tabs/bridge-client.js +0 -327
  241. package/dist/foundation/resident-tabs/continuity.d.ts +0 -12
  242. package/dist/foundation/resident-tabs/continuity.js +0 -63
  243. package/dist/foundation/resident-tabs/doctor.d.ts +0 -28
  244. package/dist/foundation/resident-tabs/doctor.js +0 -166
  245. package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +0 -27
  246. package/dist/foundation/resident-tabs/draft-checkpoint.js +0 -145
  247. package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +0 -36
  248. package/dist/foundation/resident-tabs/ensure-terminal-host.js +0 -151
  249. package/dist/foundation/resident-tabs/fault-injection.d.ts +0 -8
  250. package/dist/foundation/resident-tabs/fault-injection.js +0 -26
  251. package/dist/foundation/resident-tabs/fixture-control.d.ts +0 -7
  252. package/dist/foundation/resident-tabs/fixture-control.js +0 -35
  253. package/dist/foundation/resident-tabs/host-entry.d.ts +0 -1
  254. package/dist/foundation/resident-tabs/host-entry.js +0 -17
  255. package/dist/foundation/resident-tabs/index.d.ts +0 -15
  256. package/dist/foundation/resident-tabs/index.js +0 -10
  257. package/dist/foundation/resident-tabs/maintenance.d.ts +0 -39
  258. package/dist/foundation/resident-tabs/maintenance.js +0 -75
  259. package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +0 -34
  260. package/dist/foundation/resident-tabs/progress-observation-schema.js +0 -1
  261. package/dist/foundation/resident-tabs/progress-observation.d.ts +0 -4
  262. package/dist/foundation/resident-tabs/progress-observation.js +0 -150
  263. package/dist/foundation/resident-tabs/prompt-journal.d.ts +0 -63
  264. package/dist/foundation/resident-tabs/prompt-journal.js +0 -213
  265. package/dist/foundation/resident-tabs/protocol.d.ts +0 -12
  266. package/dist/foundation/resident-tabs/protocol.js +0 -195
  267. package/dist/foundation/resident-tabs/recovery.d.ts +0 -26
  268. package/dist/foundation/resident-tabs/recovery.js +0 -205
  269. package/dist/foundation/resident-tabs/release-holds.d.ts +0 -28
  270. package/dist/foundation/resident-tabs/release-holds.js +0 -78
  271. package/dist/foundation/resident-tabs/routes.d.ts +0 -5
  272. package/dist/foundation/resident-tabs/routes.js +0 -5
  273. package/dist/foundation/resident-tabs/routing.d.ts +0 -11
  274. package/dist/foundation/resident-tabs/routing.js +0 -10
  275. package/dist/foundation/resident-tabs/runtime-control.d.ts +0 -38
  276. package/dist/foundation/resident-tabs/runtime-control.js +0 -74
  277. package/dist/foundation/resident-tabs/session-sync.d.ts +0 -14
  278. package/dist/foundation/resident-tabs/session-sync.js +0 -37
  279. package/dist/foundation/resident-tabs/settings.d.ts +0 -16
  280. package/dist/foundation/resident-tabs/settings.js +0 -60
  281. package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +0 -14
  282. package/dist/foundation/resident-tabs/terminal-host-artifact.js +0 -78
  283. package/dist/foundation/resident-tabs/zip-archive.d.ts +0 -9
  284. package/dist/foundation/resident-tabs/zip-archive.js +0 -56
  285. package/dist/foundation/storage/control-store.d.ts +0 -20
  286. package/dist/foundation/storage/control-store.js +0 -331
  287. package/dist/foundation/storage/index.d.ts +0 -1
  288. package/dist/foundation/storage/index.js +0 -1
  289. package/dist/foundation/supervision/index.d.ts +0 -3
  290. package/dist/foundation/supervision/index.js +0 -3
  291. package/dist/foundation/supervision/main.d.ts +0 -1
  292. package/dist/foundation/supervision/main.js +0 -86
  293. package/dist/foundation/supervision/paths.d.ts +0 -1
  294. package/dist/foundation/supervision/paths.js +0 -1
  295. package/dist/foundation/supervision/server.d.ts +0 -46
  296. package/dist/foundation/supervision/server.js +0 -611
  297. package/dist/integrations/pi/engine/offline-settings-port.d.ts +0 -23
  298. package/dist/integrations/pi/engine/offline-settings-port.js +0 -54
  299. package/dist/native/darwin-arm64/manifest.json +0 -23
  300. package/dist/native/darwin-arm64/process-guardian.node +0 -0
  301. package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10500
  302. package/dist/native/darwin-arm64/terminal-host.manifest.json +0 -46
  303. package/dist/native/darwin-arm64/terminal-host.node +0 -0
  304. package/dist/native/darwin-x64/manifest.json +0 -23
  305. package/dist/native/darwin-x64/process-guardian.node +0 -0
  306. package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10737
  307. package/dist/native/darwin-x64/terminal-host.manifest.json +0 -46
  308. package/dist/native/darwin-x64/terminal-host.node +0 -0
  309. package/dist/native/linux-x64/manifest.json +0 -23
  310. package/dist/native/linux-x64/process-guardian.node +0 -0
  311. package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -11226
  312. package/dist/native/linux-x64/terminal-host.manifest.json +0 -46
  313. package/dist/native/linux-x64/terminal-host.node +0 -0
  314. package/dist/native/win32-x64/manifest.json +0 -23
  315. package/dist/native/win32-x64/process-guardian.node +0 -0
  316. package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10757
  317. package/dist/native/win32-x64/terminal-host.manifest.json +0 -46
  318. package/dist/native/win32-x64/terminal-host.node +0 -0
  319. package/docs/architecture/evidence/resident-tabs/linux-x64.md +0 -37
  320. package/docs/architecture/evidence/resident-tabs/macos-arm64.md +0 -36
  321. package/docs/architecture/evidence/resident-tabs/macos-x64.md +0 -35
  322. package/docs/architecture/evidence/resident-tabs/windows-x64.md +0 -36
  323. package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +0 -70
  324. package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +0 -32
  325. package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +0 -115
  326. package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +0 -48
  327. package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +0 -125
  328. package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +0 -56
  329. package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +0 -174
  330. package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +0 -18
  331. package/docs/architecture/native-fixture-isolation.md +0 -23
  332. package/docs/architecture/process-guardian-provenance.md +0 -36
  333. package/docs/architecture/resident-tabs-requirements.md +0 -18
  334. package/docs/architecture/resident-tabs.md +0 -668
  335. package/docs/architecture/terminal-host-proof-gate.md +0 -34
  336. package/docs/architecture/terminal-host-provenance.md +0 -81
  337. package/docs/architecture/terminal-host-spike-evidence.md +0 -39
  338. package/docs/launch-recovery.md +0 -23
  339. package/docs/manual-launch-instance-acceptance.md +0 -43
  340. package/docs/manual-resident-tabs-acceptance.md +0 -51
@@ -1,16 +1,15 @@
1
1
  import rawIdentity from "./product-identity.json" with { type: "json" };
2
2
  const ENVIRONMENT_KEYS = [
3
- "clipboardDiagnostics", "configDir", "dataDir", "databasePath", "developmentHistoryDataDir", "developmentInstanceId", "developmentRoot", "endpoint", "exitNoticePath",
4
- "paneId", "probeTrace", "processGuardianPath", "prFooterPreview", "profileHome", "residentFixtureControlDir", "residentProgressObservationDir", "residentProgressRunId", "residentProgressTabId", "residentProgressTabIncarnation", "runtimeDir", "sessionRuntimeId", "skipVersionCheck", "startupTrace", "suggestionDiagnostics", "tabEndpoint", "tabId", "tabReleaseId", "tabToken", "tabsEndpoint", "terminalHostPath", "terminalSessionId",
3
+ "clipboardDiagnostics", "configDir", "dataDir", "developmentHistoryDataDir", "developmentInstanceId", "developmentRoot", "exitNoticePath",
4
+ "prFooterPreview", "profileHome", "runtimeDir", "sessionRuntimeId", "skipVersionCheck", "startupTrace", "suggestionDiagnostics",
5
5
  ];
6
6
  const FILESYSTEM_KEYS = ["slug", "windowsDirectory", "unixDirectory", "temporaryPrefix"];
7
7
  const STATE_KEYS = ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "sessionRepositoryDirectory", "sessionWorktreeClaimDirectory"];
8
- const ENDPOINT_KEYS = ["windowsPipeStem", "unixSocketFilename", "metadataFilename", "supervisorLogFilename", "databaseFilename"];
9
8
  const MANIFEST_KEYS = ["releaseFilename", "packageFilename"];
10
- const PROTOCOL_KEYS = ["namespace", "controlEnvelope", "supervisorSchema", "nativeHostSchema", "structuredAgentSchema", "controlStoreSchema", "promptHistorySchema", "releaseCohortSchema", "updateJournalSchema"];
11
- const EVIDENCE_KEYS = ["nativeSpikeSchema", "terminalProvenanceSchema", "terminalProofSchema", "terminalTemporalSnapshotSchema", "stableReleaseSchema", "previewReleaseSchema", "releaseCertificationSchema", "previewPlatformVerdictSchema", "piSourceLedgerSchema", "piComponentParitySchema", "piEventFrameParitySchema", "startupTraceSchema", "dependencyLayerSchema", "dependencyLayerCertificationSchema", "runtimePayloadSchema"];
12
- const ARTIFACT_KEYS = ["cliEntry", "supervisorEntry", "guardianEntry", "uiEntry", "terminalHostAddon", "terminalHostEntry", "nativeCrate", "processGuardianAddon", "releaseTarballStem", "diagnosticStem"];
13
- const ROOT_KEYS = ["schema", "displayName", "commandName", "packageName", "filesystem", "environment", "state", "endpoint", "manifest", "protocol", "evidence", "artifacts"];
9
+ const PROTOCOL_KEYS = ["namespace", "promptHistorySchema", "releaseCohortSchema", "updateJournalSchema"];
10
+ const EVIDENCE_KEYS = ["stableReleaseSchema", "previewReleaseSchema", "releaseCertificationSchema", "previewPlatformVerdictSchema", "piSourceLedgerSchema", "piComponentParitySchema", "piEventFrameParitySchema", "startupTraceSchema", "dependencyLayerSchema", "dependencyLayerCertificationSchema", "runtimePayloadSchema"];
11
+ const ARTIFACT_KEYS = ["cliEntry", "uiEntry", "releaseTarballStem", "diagnosticStem"];
12
+ const ROOT_KEYS = ["schema", "displayName", "commandName", "packageName", "filesystem", "environment", "state", "manifest", "protocol", "evidence", "artifacts"];
14
13
  export function validateProductIdentity(value) {
15
14
  const root = exactObject(value, ROOT_KEYS, "product identity");
16
15
  const schema = stringValue(root.schema, "product identity schema");
@@ -20,7 +19,6 @@ export function validateProductIdentity(value) {
20
19
  const filesystem = stringObject(root.filesystem, FILESYSTEM_KEYS, "filesystem identity");
21
20
  const environment = stringObject(root.environment, ENVIRONMENT_KEYS, "environment identity");
22
21
  const state = stringObject(root.state, STATE_KEYS, "state identity");
23
- const endpoint = stringObject(root.endpoint, ENDPOINT_KEYS, "endpoint identity");
24
22
  const manifest = stringObject(root.manifest, MANIFEST_KEYS, "manifest identity");
25
23
  const protocol = stringObject(root.protocol, PROTOCOL_KEYS, "protocol identity");
26
24
  const evidence = stringObject(root.evidence, EVIDENCE_KEYS, "evidence identity");
@@ -41,8 +39,6 @@ export function validateProductIdentity(value) {
41
39
  if (state.windowsControlDirectory !== filesystem.windowsDirectory || state.unixControlDirectory !== filesystem.unixDirectory) {
42
40
  throw new TypeError("product state directories must match the filesystem identity");
43
41
  }
44
- if (endpoint.windowsPipeStem !== filesystem.slug)
45
- throw new TypeError("product endpoint stem must match the filesystem slug");
46
42
  if (protocol.namespace !== commandName)
47
43
  throw new TypeError("product protocol namespace must match the command name");
48
44
  if (artifacts.diagnosticStem !== filesystem.slug)
@@ -73,7 +69,6 @@ export function validateProductIdentity(value) {
73
69
  filesystem,
74
70
  environment,
75
71
  state,
76
- endpoint,
77
72
  manifest,
78
73
  protocol,
79
74
  evidence,
@@ -13,34 +13,17 @@
13
13
  "clipboardDiagnostics": "A1_CLIPBOARD_DIAGNOSTICS",
14
14
  "configDir": "A1_CONFIG_DIR",
15
15
  "dataDir": "A1_DATA_DIR",
16
- "databasePath": "A1_DATABASE_PATH",
17
16
  "developmentHistoryDataDir": "A1_DEV_HISTORY_DATA_DIR",
18
17
  "developmentInstanceId": "A1_DEV_INSTANCE_ID",
19
18
  "developmentRoot": "A1_DEV_ROOT",
20
- "endpoint": "A1_ENDPOINT",
21
19
  "exitNoticePath": "A1_EXIT_NOTICE_PATH",
22
- "paneId": "A1_PANE_ID",
23
- "probeTrace": "A1_PROBE_TRACE",
24
- "processGuardianPath": "A1_PROCESS_GUARDIAN_PATH",
25
20
  "prFooterPreview": "A1_PR_FOOTER_PREVIEW",
26
21
  "profileHome": "A1_PROFILE_HOME",
27
- "residentFixtureControlDir": "A1_RESIDENT_FIXTURE_CONTROL_DIR",
28
- "residentProgressObservationDir": "A1_RESIDENT_PROGRESS_OBSERVATION_DIR",
29
- "residentProgressRunId": "A1_RESIDENT_PROGRESS_RUN_ID",
30
- "residentProgressTabId": "A1_RESIDENT_PROGRESS_TAB_ID",
31
- "residentProgressTabIncarnation": "A1_RESIDENT_PROGRESS_TAB_INCARNATION",
32
22
  "runtimeDir": "A1_RUNTIME_DIR",
33
23
  "sessionRuntimeId": "A1_SESSION_RUNTIME_ID",
34
24
  "skipVersionCheck": "A1_SKIP_VERSION_CHECK",
35
25
  "startupTrace": "A1_STARTUP_TRACE",
36
- "suggestionDiagnostics": "A1_SUGGESTION_DIAGNOSTICS",
37
- "tabEndpoint": "A1_TAB_ENDPOINT",
38
- "tabId": "A1_TAB_ID",
39
- "tabReleaseId": "A1_TAB_RELEASE_ID",
40
- "tabToken": "A1_TAB_TOKEN",
41
- "tabsEndpoint": "A1_TABS_ENDPOINT",
42
- "terminalHostPath": "A1_TERMINAL_HOST_PATH",
43
- "terminalSessionId": "A1_TERMINAL_SESSION_ID"
26
+ "suggestionDiagnostics": "A1_SUGGESTION_DIAGNOSTICS"
44
27
  },
45
28
  "state": {
46
29
  "windowsControlDirectory": "a1",
@@ -51,33 +34,17 @@
51
34
  "sessionRepositoryDirectory": "session-repositories",
52
35
  "sessionWorktreeClaimDirectory": "session-worktree-claims"
53
36
  },
54
- "endpoint": {
55
- "windowsPipeStem": "a1",
56
- "unixSocketFilename": "supervisor.sock",
57
- "metadataFilename": "supervisor.json",
58
- "supervisorLogFilename": "supervisor.log",
59
- "databaseFilename": "control.sqlite3"
60
- },
61
37
  "manifest": {
62
38
  "releaseFilename": ".a1-release.json",
63
39
  "packageFilename": "package.json"
64
40
  },
65
41
  "protocol": {
66
42
  "namespace": "a1",
67
- "controlEnvelope": "a1-control-envelope",
68
- "supervisorSchema": "a1-supervisor-v1",
69
- "nativeHostSchema": "a1-native-host-v1",
70
- "structuredAgentSchema": "a1-structured-agent-v1",
71
- "controlStoreSchema": "a1-control-store-v1",
72
43
  "promptHistorySchema": "a1-prompt-history-v1",
73
44
  "releaseCohortSchema": "a1-release-cohort-v1",
74
45
  "updateJournalSchema": "a1-update-journal-v1"
75
46
  },
76
47
  "evidence": {
77
- "nativeSpikeSchema": "a1-native-host-spike-evidence-v1",
78
- "terminalProvenanceSchema": "a1-terminal-host-provenance-v1",
79
- "terminalProofSchema": "a1-terminal-host-proof-v1",
80
- "terminalTemporalSnapshotSchema": "a1-terminal-temporal-snapshot-v1",
81
48
  "stableReleaseSchema": "a1-stable-release-v1",
82
49
  "previewReleaseSchema": "a1-preview-release-v1",
83
50
  "releaseCertificationSchema": "a1-release-certification-v1",
@@ -92,13 +59,7 @@
92
59
  },
93
60
  "artifacts": {
94
61
  "cliEntry": "bin/cli.js",
95
- "supervisorEntry": "bin/supervisor.js",
96
- "guardianEntry": "bin/guardian.js",
97
62
  "uiEntry": "bin/ui.js",
98
- "terminalHostAddon": "terminal-host",
99
- "terminalHostEntry": "host-entry",
100
- "nativeCrate": "terminal-host",
101
- "processGuardianAddon": "process-guardian",
102
63
  "releaseTarballStem": "timurproko-a1",
103
64
  "diagnosticStem": "a1"
104
65
  }
@@ -3,12 +3,9 @@
3
3
  "entryPoints": [
4
4
  "bin/activate.js",
5
5
  "bin/cli.js",
6
- "bin/guardian.js",
7
- "bin/supervisor.js",
8
6
  "bin/ui.js",
9
7
  "bin/update-recovery.js",
10
8
  "bin/warmup.js",
11
- "dist/foundation/launch-guardian/exit-watcher.js",
12
9
  "dist/foundation/startup/startup-descriptor.js",
13
10
  "dist/integrations/pi/startup-public.js"
14
11
  ],
@@ -32,8 +32,8 @@ export { readVisibleHyperlinks } from "./visible-hyperlinks.js";
32
32
  export type { VisibleHyperlinkRange, VisibleHyperlinkRow } from "./visible-hyperlinks.js";
33
33
  export { renderStatusLine, statusText } from "./status-line.js";
34
34
  export type { StatusLineInput } from "./status-line.js";
35
- export { SUBMITTED_PROMPT_PREFIX_WIDTH, composeSubmittedPromptRows, formatLocalTime, formatSubmittedPromptTime, submittedPromptLayout } from "./submitted-prompt.js";
36
- export type { SubmittedPromptLayout, SubmittedPromptStyle, UiTimeFormat } from "./submitted-prompt.js";
35
+ export { SUBMITTED_PROMPT_PREFIX_WIDTH, composeSubmittedPromptRows, submittedPromptLayout } from "./submitted-prompt.js";
36
+ export type { SubmittedPromptLayout, SubmittedPromptStyle } from "./submitted-prompt.js";
37
37
  export { numericValues, steppedValue, stepperEnds } from "./stepper.js";
38
38
  export type { NumericRange } from "./stepper.js";
39
39
  export { TranscriptViewport, assertTranscriptViewportFrameDescriptor } from "./transcript-viewport.js";
@@ -16,7 +16,7 @@ export { GLOBAL_SCOPE, ShortcutRegistry, assembleShortcuts, assertNoShortcutConf
16
16
  export { backgroundSgrSpan, heldNativeHyperlinkStyle, hyperlinkSgrSpan, hyperlinkTargetAtColumn, nativeHyperlinkStyle, overlaySpan } from "./spans.js";
17
17
  export { readVisibleHyperlinks } from "./visible-hyperlinks.js";
18
18
  export { renderStatusLine, statusText } from "./status-line.js";
19
- export { SUBMITTED_PROMPT_PREFIX_WIDTH, composeSubmittedPromptRows, formatLocalTime, formatSubmittedPromptTime, submittedPromptLayout } from "./submitted-prompt.js";
19
+ export { SUBMITTED_PROMPT_PREFIX_WIDTH, composeSubmittedPromptRows, submittedPromptLayout } from "./submitted-prompt.js";
20
20
  export { numericValues, steppedValue, stepperEnds } from "./stepper.js";
21
21
  export { TranscriptViewport, assertTranscriptViewportFrameDescriptor } from "./transcript-viewport.js";
22
22
  export { RAIL_COLUMNS, renderEmptyState, withScrollbarRail } from "./surface.js";
@@ -1,26 +1,16 @@
1
- export type UiTimeFormat = "20:00" | "8:00 PM";
2
- /** Deterministic local hour/minute presentation shared by A1-owned time labels. */
3
- export declare function formatLocalTime(source: Date | number, format?: UiTimeFormat): string | null;
4
1
  /** Visible width of the submitted-prompt prefix (` ❯ `). */
5
2
  export declare const SUBMITTED_PROMPT_PREFIX_WIDTH = 3;
6
3
  export interface SubmittedPromptStyle {
7
4
  readonly prefix?: (text: string) => string;
8
- readonly timestamp?: (text: string) => string;
9
5
  }
10
6
  export interface SubmittedPromptLayout {
11
7
  readonly contentWidth: number;
12
- readonly timestamp: string | null;
13
8
  }
14
- /** Formats transcript metadata, never render time, in the active A1 time format. */
15
- export declare function formatSubmittedPromptTime(source: Date | number, format?: UiTimeFormat): string | null;
16
- /**
17
- * Computes the width at which the prompt's Markdown body must be rendered.
18
- * The timestamp is omitted rather than allowing it to crowd useful content.
19
- */
20
- export declare function submittedPromptLayout(width: number, source?: Date | number | null, format?: UiTimeFormat): SubmittedPromptLayout;
9
+ /** Computes the width at which the prompt's Markdown body must be rendered. */
10
+ export declare function submittedPromptLayout(width: number): SubmittedPromptLayout;
21
11
  /**
22
12
  * Composes already-rendered prompt content into the compact submitted bar.
23
13
  * Continuations align below the content, not below the prefix, and no row can
24
14
  * exceed the supplied terminal width even when the content renderer misbehaves.
25
15
  */
26
- export declare function composeSubmittedPromptRows(contentRows: readonly string[], width: number, source?: Date | number | null, style?: SubmittedPromptStyle, format?: UiTimeFormat): readonly string[];
16
+ export declare function composeSubmittedPromptRows(contentRows: readonly string[], width: number, style?: SubmittedPromptStyle): readonly string[];
@@ -1,57 +1,24 @@
1
- import { displayWidth, truncateToWidth } from "./text.js";
2
- /** Deterministic local hour/minute presentation shared by A1-owned time labels. */
3
- export function formatLocalTime(source, format = "8:00 PM") {
4
- const date = source instanceof Date ? source : new Date(source);
5
- if (!Number.isFinite(date.getTime()))
6
- return null;
7
- const hour = date.getHours();
8
- const minute = String(date.getMinutes()).padStart(2, "0");
9
- if (format === "20:00")
10
- return `${String(hour).padStart(2, "0")}:${minute}`;
11
- return `${hour % 12 || 12}:${minute} ${hour < 12 ? "AM" : "PM"}`;
12
- }
1
+ import { truncateToWidth } from "./text.js";
13
2
  /** Visible width of the submitted-prompt prefix (` ❯ `). */
14
3
  export const SUBMITTED_PROMPT_PREFIX_WIDTH = 3;
15
- const TIMESTAMP_MARGIN = 3;
16
- const MIN_USEFUL_CONTENT_WIDTH = 8;
17
- /** Formats transcript metadata, never render time, in the active A1 time format. */
18
- export function formatSubmittedPromptTime(source, format = "8:00 PM") {
19
- return formatLocalTime(source, format);
20
- }
21
- /**
22
- * Computes the width at which the prompt's Markdown body must be rendered.
23
- * The timestamp is omitted rather than allowing it to crowd useful content.
24
- */
25
- export function submittedPromptLayout(width, source, format = "8:00 PM") {
26
- const boundedWidth = Math.max(1, width);
27
- const timestamp = source === undefined || source === null ? null : formatSubmittedPromptTime(source, format);
28
- const timestampReserve = timestamp === null ? 0 : displayWidth(timestamp) + TIMESTAMP_MARGIN;
29
- const canShowTimestamp = timestamp !== null
30
- && boundedWidth - SUBMITTED_PROMPT_PREFIX_WIDTH - timestampReserve >= MIN_USEFUL_CONTENT_WIDTH;
31
- return {
32
- contentWidth: Math.max(1, boundedWidth - SUBMITTED_PROMPT_PREFIX_WIDTH - (canShowTimestamp ? timestampReserve : 0)),
33
- timestamp: canShowTimestamp ? timestamp : null,
34
- };
4
+ /** Computes the width at which the prompt's Markdown body must be rendered. */
5
+ export function submittedPromptLayout(width) {
6
+ return { contentWidth: Math.max(1, Math.max(1, width) - SUBMITTED_PROMPT_PREFIX_WIDTH) };
35
7
  }
36
8
  /**
37
9
  * Composes already-rendered prompt content into the compact submitted bar.
38
10
  * Continuations align below the content, not below the prefix, and no row can
39
11
  * exceed the supplied terminal width even when the content renderer misbehaves.
40
12
  */
41
- export function composeSubmittedPromptRows(contentRows, width, source, style = {}, format = "8:00 PM") {
13
+ export function composeSubmittedPromptRows(contentRows, width, style = {}) {
42
14
  if (width <= 0)
43
15
  return [];
44
- const layout = submittedPromptLayout(width, source, format);
16
+ const layout = submittedPromptLayout(width);
45
17
  const prefix = (style.prefix ?? identity)(" ❯ ");
46
- const rows = (contentRows.length === 0 ? [""] : contentRows).map((row, index) => {
18
+ return (contentRows.length === 0 ? [""] : contentRows).map((row, index) => {
47
19
  const content = truncateToWidth(row, layout.contentWidth);
48
- return `${index === 0 ? prefix : " ".repeat(SUBMITTED_PROMPT_PREFIX_WIDTH)}${content}`;
20
+ return truncateToWidth(`${index === 0 ? prefix : " ".repeat(SUBMITTED_PROMPT_PREFIX_WIDTH)}${content}`, width);
49
21
  });
50
- if (layout.timestamp !== null && rows[0] !== undefined) {
51
- const gap = Math.max(1, width - displayWidth(rows[0]) - displayWidth(layout.timestamp));
52
- rows[0] = `${rows[0]}${" ".repeat(gap)}${(style.timestamp ?? identity)(layout.timestamp)}`;
53
- }
54
- return rows.map(row => truncateToWidth(row, width));
55
22
  }
56
23
  function identity(text) {
57
24
  return text;
@@ -4,10 +4,8 @@ export interface TranscriptPromptAnchor {
4
4
  readonly id: string;
5
5
  readonly firstRow: number;
6
6
  readonly lastRow: number;
7
- /** The source first row, including its submitted-prompt styling and timestamp. */
7
+ /** The source first row, including its submitted-prompt styling. */
8
8
  readonly sourceRow: string;
9
- /** Right-edge metadata cells omitted from semantic prompt copies. */
10
- readonly copySuffixWidth?: number;
11
9
  /** Optional source-styled row used only while prominent and not hovered. */
12
10
  readonly prominentSourceRow?: string;
13
11
  }
@@ -266,10 +266,7 @@ export class TranscriptViewport {
266
266
  const dock = anchor?.kind === "dock" ? this.#copyableDockRows.get(anchor.fromBottom) : undefined;
267
267
  if (prompt !== undefined && anchor?.kind === "document") {
268
268
  const first = anchor.row === prompt.firstRow;
269
- const copyRow = first && (prompt.copySuffixWidth ?? 0) > 0
270
- ? truncateToWidth(row, Math.max(0, displayWidth(row) - (prompt.copySuffixWidth ?? 0)))
271
- : row;
272
- return selectionCopyLineContent(copyRow, first ? "first" : "continuation");
269
+ return selectionCopyLineContent(row, first ? "first" : "continuation");
273
270
  }
274
271
  // Invariant: the dock editor has no prefix; transcript prompts still carry chrome.
275
272
  return dock?.prompt !== undefined ? usefulTextLineContent(row, 1) : usefulTextLineContent(row);
@@ -1,4 +1,4 @@
1
- export declare const OWNED_UI_SETTINGS_VERSION = 20;
1
+ export declare const OWNED_UI_SETTINGS_VERSION = 21;
2
2
  export type OwnedUiSettingValue = string | number | boolean;
3
3
  export type OwnedUiSettingApplication = "live" | "restart";
4
4
  export interface OwnedUiSettingDeclaration {
@@ -30,22 +30,10 @@ export declare const OWNED_SETTING_DECLARATIONS: Readonly<{
30
30
  id: "generic";
31
31
  title: "Generic";
32
32
  }>;
33
- description: "Auto checks the running channel every 15 minutes while open and installs verified updates silently. Notify checks on startup and shows an update notice; No leaves updates manual. Applies on next start.";
33
+ description: "Auto checks the running channel every 15 minutes while open and installs verified updates silently, then shows Update installed, restart to update; the next start runs it. No leaves updates manual. Applies on next start.";
34
34
  application: "restart";
35
35
  defaultValue: "auto";
36
- allowedValues: readonly ["auto", "notify", "no"];
37
- }>;
38
- readonly timeFormat: Readonly<{
39
- id: "timeFormat";
40
- label: "Time format";
41
- section: Readonly<{
42
- id: "generic";
43
- title: "Generic";
44
- }>;
45
- description: "Format used by submitted-prompt timestamps and the resident tab clock when Time is enabled.";
46
- application: "live";
47
- defaultValue: "8:00 PM";
48
- allowedValues: readonly ["20:00", "8:00 PM"];
36
+ allowedValues: readonly ["auto", "no"];
49
37
  }>;
50
38
  readonly accentColor: Readonly<{
51
39
  id: "accentColor";
@@ -191,88 +179,6 @@ export declare const OWNED_SETTING_DECLARATIONS: Readonly<{
191
179
  defaultValue: 8;
192
180
  allowedValues: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
193
181
  }>;
194
- readonly tabsPosition: Readonly<{
195
- id: "tabsPosition";
196
- label: "Position";
197
- section: Readonly<{
198
- id: "tabs";
199
- title: "Tab Bar";
200
- }>;
201
- description: "Place the resident tab bar at the top or bottom of the terminal.";
202
- application: "live";
203
- defaultValue: "top";
204
- allowedValues: readonly ["top", "bottom"];
205
- }>;
206
- readonly tabBarPlusMenu: Readonly<{
207
- id: "tabBarPlusMenu";
208
- label: "Plus menu";
209
- section: Readonly<{
210
- id: "tabs";
211
- title: "Tab Bar";
212
- }>;
213
- description: "The tabs + offers. With only Agent, + adds an Agent at once; with more, it opens a menu; with none, + is hidden.";
214
- application: "live";
215
- defaultValue: "agent";
216
- allowedValues: readonly ["", "agent", "settings", "changelog", "agent,settings", "agent,changelog", "settings,changelog", "agent,settings,changelog"];
217
- flags: readonly (Readonly<{
218
- key: "agent";
219
- label: "Agent";
220
- description: "Add a new Agent tab every time.";
221
- }> | Readonly<{
222
- key: "settings";
223
- label: "Settings";
224
- description: "Show the one Settings tab.";
225
- }> | Readonly<{
226
- key: "changelog";
227
- label: "Changelog";
228
- description: "Show the one Changelog tab.";
229
- }>)[];
230
- }>;
231
- readonly tabBarRightItems: Readonly<{
232
- id: "tabBarRightItems";
233
- label: "Widgets";
234
- section: Readonly<{
235
- id: "tabs";
236
- title: "Tab Bar";
237
- }>;
238
- description: "Choose whether the tab bar's right side shows the executing Version, Time, both, or neither.";
239
- application: "live";
240
- defaultValue: "version,time";
241
- allowedValues: readonly ["", "version", "time", "version,time"];
242
- flags: readonly (Readonly<{
243
- key: "version";
244
- label: "Version";
245
- description: "Show the executing A1 version.";
246
- }> | Readonly<{
247
- key: "time";
248
- label: "Time";
249
- description: "Show the current time.";
250
- }>)[];
251
- }>;
252
- readonly tabBarBackgroundStyle: Readonly<{
253
- id: "tabBarBackgroundStyle";
254
- label: "Background";
255
- section: Readonly<{
256
- id: "tabs";
257
- title: "Tab Bar";
258
- }>;
259
- description: "Tab-bar canvas.";
260
- application: "live";
261
- defaultValue: "transparent";
262
- allowedValues: readonly ["transparent", "black", "accent"];
263
- }>;
264
- readonly tabsAutoName: Readonly<{
265
- id: "tabsAutoName";
266
- label: "Auto name";
267
- section: Readonly<{
268
- id: "tabs";
269
- title: "Tab Bar";
270
- }>;
271
- description: "Automatically name a new tab from its first completed turn with the tab's current model.";
272
- application: "live";
273
- defaultValue: true;
274
- allowedValues: readonly [true, false];
275
- }>;
276
182
  }>;
277
183
  export type OwnedSettingId = keyof typeof OWNED_SETTING_DECLARATIONS;
278
184
  export type OwnedSettingValueOf<Id extends OwnedSettingId> = (typeof OWNED_SETTING_DECLARATIONS)[Id]["allowedValues"][number];
@@ -1,4 +1,4 @@
1
- export const OWNED_UI_SETTINGS_VERSION = 20;
1
+ export const OWNED_UI_SETTINGS_VERSION = 21;
2
2
  const UI_ACCENT_COLOR_CHOICES = Object.freeze([
3
3
  "blue", "purple", "cyan", "green", "orange", "pink",
4
4
  ]);
@@ -8,43 +8,15 @@ const GENERIC_SECTION = Object.freeze({ id: "generic", title: "Generic" });
8
8
  const APPEARANCE_SECTION = Object.freeze({ id: "appearance", title: "Appearance" });
9
9
  const SCROLL_SECTION = Object.freeze({ id: "scroll", title: "Scroll" });
10
10
  const AGENT_SECTION = Object.freeze({ id: "agent", title: "Agent" });
11
- const TABS_SECTION = Object.freeze({ id: "tabs", title: "Tab Bar" });
12
- /** The tab kinds the strip's `+` can offer, in the order it shows them. */
13
- const PLUS_MENU_KINDS = Object.freeze([
14
- Object.freeze({ key: "agent", label: "Agent", description: "Add a new Agent tab every time." }),
15
- Object.freeze({ key: "settings", label: "Settings", description: "Show the one Settings tab." }),
16
- Object.freeze({ key: "changelog", label: "Changelog", description: "Show the one Changelog tab." }),
17
- ]);
18
- /** Every enabled subset of the plus-menu kinds, each in kind order. */
19
- const PLUS_MENU_VALUES = Object.freeze([
20
- "", "agent", "settings", "changelog", "agent,settings", "agent,changelog", "settings,changelog", "agent,settings,changelog",
21
- ]);
22
- /** The right-side strip items, in their fixed presentation order. */
23
- const TAB_BAR_RIGHT_ITEMS = Object.freeze([
24
- Object.freeze({ key: "version", label: "Version", description: "Show the executing A1 version." }),
25
- Object.freeze({ key: "time", label: "Time", description: "Show the current time." }),
26
- ]);
27
- const TAB_BAR_RIGHT_ITEM_VALUES = Object.freeze(["", "version", "time", "version,time"]);
28
11
  export const OWNED_SETTING_DECLARATIONS = Object.freeze({
29
12
  updateCheck: Object.freeze({
30
13
  id: "updateCheck",
31
14
  label: "Update",
32
15
  section: GENERIC_SECTION,
33
- description: "Auto checks the running channel every 15 minutes while open and installs verified updates silently. Notify checks on startup and shows an update notice; No leaves updates manual. Applies on next start.",
16
+ description: "Auto checks the running channel every 15 minutes while open and installs verified updates silently, then shows Update installed, restart to update; the next start runs it. No leaves updates manual. Applies on next start.",
34
17
  application: "restart",
35
18
  defaultValue: "auto",
36
- allowedValues: Object.freeze(["auto", "notify", "no"]),
37
- }),
38
- timeFormat: Object.freeze({
39
- id: "timeFormat",
40
- label: "Time format",
41
- section: GENERIC_SECTION,
42
- description: "Format used by submitted-prompt timestamps and the resident tab clock when Time is enabled.",
43
- application: "live",
44
- defaultValue: "8:00 PM",
45
- allowedValues: Object.freeze([
46
- "20:00", "8:00 PM",
47
- ]),
19
+ allowedValues: Object.freeze(["auto", "no"]),
48
20
  }),
49
21
  accentColor: Object.freeze({
50
22
  id: "accentColor",
@@ -156,53 +128,6 @@ export const OWNED_SETTING_DECLARATIONS = Object.freeze({
156
128
  defaultValue: 8,
157
129
  allowedValues: Object.freeze([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
158
130
  }),
159
- tabsPosition: Object.freeze({
160
- id: "tabsPosition",
161
- label: "Position",
162
- section: TABS_SECTION,
163
- description: "Place the resident tab bar at the top or bottom of the terminal.",
164
- application: "live",
165
- defaultValue: "top",
166
- allowedValues: Object.freeze(["top", "bottom"]),
167
- }),
168
- tabBarPlusMenu: Object.freeze({
169
- id: "tabBarPlusMenu",
170
- label: "Plus menu",
171
- section: TABS_SECTION,
172
- description: "The tabs + offers. With only Agent, + adds an Agent at once; with more, it opens a menu; with none, + is hidden.",
173
- application: "live",
174
- defaultValue: "agent",
175
- allowedValues: PLUS_MENU_VALUES,
176
- flags: PLUS_MENU_KINDS,
177
- }),
178
- tabBarRightItems: Object.freeze({
179
- id: "tabBarRightItems",
180
- label: "Widgets",
181
- section: TABS_SECTION,
182
- description: "Choose whether the tab bar's right side shows the executing Version, Time, both, or neither.",
183
- application: "live",
184
- defaultValue: "version,time",
185
- allowedValues: TAB_BAR_RIGHT_ITEM_VALUES,
186
- flags: TAB_BAR_RIGHT_ITEMS,
187
- }),
188
- tabBarBackgroundStyle: Object.freeze({
189
- id: "tabBarBackgroundStyle",
190
- label: "Background",
191
- section: TABS_SECTION,
192
- description: "Tab-bar canvas.",
193
- application: "live",
194
- defaultValue: "transparent",
195
- allowedValues: Object.freeze(["transparent", "black", "accent"]),
196
- }),
197
- tabsAutoName: Object.freeze({
198
- id: "tabsAutoName",
199
- label: "Auto name",
200
- section: TABS_SECTION,
201
- description: "Automatically name a new tab from its first completed turn with the tab's current model.",
202
- application: "live",
203
- defaultValue: true,
204
- allowedValues: Object.freeze([true, false]),
205
- }),
206
131
  });
207
132
  export const OWNED_UI_SETTING_DECLARATIONS = Object.freeze(Object.values(OWNED_SETTING_DECLARATIONS));
208
133
  export function isOwnedSettingId(id) {
@@ -162,6 +162,22 @@ export const OWNED_UI_SETTINGS_MIGRATIONS = Object.freeze([
162
162
  return { ...values };
163
163
  },
164
164
  }),
165
+ Object.freeze({
166
+ to: 21,
167
+ description: "Retire tab-bar and time-format settings and reduce updates to auto or no.",
168
+ migrate(values) {
169
+ const migrated = { ...values };
170
+ // Compatibility: notify and the legacy boolean both meant "look for updates"; auto now does that.
171
+ if (migrated.updateCheck === "notify" || migrated.updateCheck === true)
172
+ migrated.updateCheck = "auto";
173
+ if (migrated.updateCheck === false)
174
+ migrated.updateCheck = "no";
175
+ for (const key of ["tabsPosition", "tabBarPlusMenu", "tabBarRightItems", "tabBarBackgroundStyle", "tabsAutoName", "timeFormat"]) {
176
+ delete migrated[key];
177
+ }
178
+ return migrated;
179
+ },
180
+ }),
165
181
  ]);
166
182
  /** Shape-selected compatibility for the metadata-free product object. */
167
183
  export function normalizeOwnedUiSettingsValues(source) {
@@ -171,8 +187,8 @@ export function normalizeOwnedUiSettingsValues(source) {
171
187
  values.scrollbarAppearance = "auto";
172
188
  if (values.accentColor === "default")
173
189
  values.accentColor = "purple";
174
- if (values.updateCheck === true)
175
- values.updateCheck = "notify";
190
+ if (values.updateCheck === true || values.updateCheck === "notify")
191
+ values.updateCheck = "auto";
176
192
  else if (values.updateCheck === false)
177
193
  values.updateCheck = "no";
178
194
  if (values.quitEffect === "off") {