@timurproko/a1 0.1.0 → 0.1.1-dev.1

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 (505) hide show
  1. package/README.md +8 -6
  2. package/bin/a1-ui.js +24 -0
  3. package/bin/{addone.js → a1.js} +2 -2
  4. package/dist/src/cli/dispatch.d.ts +4 -5
  5. package/dist/src/cli/dispatch.js +11 -11
  6. package/dist/src/cli/index.d.ts +0 -1
  7. package/dist/src/cli/index.js +0 -1
  8. package/dist/src/cli/version-stats.d.ts +0 -1
  9. package/dist/src/cli/version-stats.js +27 -23
  10. package/dist/src/cli/version.d.ts +1 -2
  11. package/dist/src/cli/version.js +4 -4
  12. package/dist/src/composition/index.d.ts +22 -0
  13. package/dist/src/composition/index.js +166 -0
  14. package/dist/src/composition/transparent-runtime.d.ts +6 -0
  15. package/dist/src/composition/transparent-runtime.js +19 -0
  16. package/dist/src/features/launch/development-launch.d.ts +0 -1
  17. package/dist/src/features/launch/development-launch.js +12 -11
  18. package/dist/src/features/launch/index.d.ts +0 -1
  19. package/dist/src/features/launch/index.js +0 -1
  20. package/dist/src/features/launch/initialize-profile.d.ts +1 -2
  21. package/dist/src/features/launch/initialize-profile.js +1 -2
  22. package/dist/src/features/launch/intent.d.ts +0 -1
  23. package/dist/src/features/launch/intent.js +0 -1
  24. package/dist/src/features/launch/prepare-launch.d.ts +2 -3
  25. package/dist/src/features/launch/prepare-launch.js +3 -4
  26. package/dist/src/features/launch/profile-paths.d.ts +2 -3
  27. package/dist/src/features/launch/profile-paths.js +9 -8
  28. package/dist/src/features/launch/profiles.d.ts +2 -3
  29. package/dist/src/features/launch/profiles.js +5 -6
  30. package/dist/src/features/launch/runtime-selection.d.ts +1 -2
  31. package/dist/src/features/launch/runtime-selection.js +1 -2
  32. package/dist/src/features/owned-ui/customization.d.ts +5 -3
  33. package/dist/src/features/owned-ui/customization.js +2 -4
  34. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -1
  35. package/dist/src/features/owned-ui/diagnostics.js +0 -1
  36. package/dist/src/features/owned-ui/index.d.ts +0 -2
  37. package/dist/src/features/owned-ui/index.js +0 -2
  38. package/dist/src/features/owned-ui/run.d.ts +3 -7
  39. package/dist/src/features/owned-ui/run.js +7 -15
  40. package/dist/src/features/workspace/capabilities.d.ts +0 -1
  41. package/dist/src/features/workspace/capabilities.js +0 -1
  42. package/dist/src/features/workspace/index.d.ts +0 -1
  43. package/dist/src/features/workspace/index.js +0 -1
  44. package/dist/src/features/workspace/presentation.d.ts +1 -2
  45. package/dist/src/features/workspace/presentation.js +5 -4
  46. package/dist/src/features/workspace/reconciliation.d.ts +0 -1
  47. package/dist/src/features/workspace/reconciliation.js +0 -1
  48. package/dist/src/features/workspace/reducer.d.ts +0 -1
  49. package/dist/src/features/workspace/reducer.js +0 -1
  50. package/dist/src/features/workspace/router.d.ts +0 -1
  51. package/dist/src/features/workspace/router.js +0 -1
  52. package/dist/src/features/workspace/store.d.ts +0 -1
  53. package/dist/src/features/workspace/store.js +0 -1
  54. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +95 -0
  55. package/dist/src/foundation/agent-engine-contracts/capability-ports.js +35 -0
  56. package/dist/src/foundation/agent-engine-contracts/domain-validation.d.ts +12 -0
  57. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +89 -0
  58. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +90 -0
  59. package/dist/src/foundation/agent-engine-contracts/domain.js +1 -0
  60. package/dist/src/foundation/agent-engine-contracts/index.d.ts +7 -0
  61. package/dist/src/foundation/agent-engine-contracts/index.js +7 -0
  62. package/dist/src/foundation/agent-engine-contracts/model.d.ts +78 -0
  63. package/dist/src/foundation/agent-engine-contracts/model.js +1 -0
  64. package/dist/src/foundation/agent-engine-contracts/ports.d.ts +18 -0
  65. package/dist/src/foundation/agent-engine-contracts/ports.js +1 -0
  66. package/dist/src/foundation/agent-engine-contracts/serialization.d.ts +7 -0
  67. package/dist/src/foundation/agent-engine-contracts/serialization.js +58 -0
  68. package/dist/src/foundation/agent-engine-contracts/validation.d.ts +5 -0
  69. package/dist/src/foundation/agent-engine-contracts/validation.js +128 -0
  70. package/dist/src/foundation/lifecycle/index.d.ts +0 -1
  71. package/dist/src/foundation/lifecycle/index.js +0 -1
  72. package/dist/src/foundation/lifecycle/model.d.ts +1 -2
  73. package/dist/src/foundation/lifecycle/model.js +3 -3
  74. package/dist/src/foundation/lifecycle/paths.d.ts +2 -3
  75. package/dist/src/foundation/lifecycle/paths.js +32 -16
  76. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -1
  77. package/dist/src/foundation/native-host-protocol/codec.js +0 -1
  78. package/dist/src/foundation/native-host-protocol/evidence.d.ts +2 -3
  79. package/dist/src/foundation/native-host-protocol/evidence.js +4 -4
  80. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -1
  81. package/dist/src/foundation/native-host-protocol/index.js +0 -1
  82. package/dist/src/foundation/native-host-protocol/messages.d.ts +1 -2
  83. package/dist/src/foundation/native-host-protocol/messages.js +2 -2
  84. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -1
  85. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -1
  86. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -1
  87. package/dist/src/foundation/owned-ui-contracts/extension-ui.js +0 -1
  88. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -1
  89. package/dist/src/foundation/owned-ui-contracts/index.js +0 -1
  90. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -1
  91. package/dist/src/foundation/owned-ui-contracts/model.js +0 -1
  92. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -1
  93. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -1
  94. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -1
  95. package/dist/src/foundation/pi-component-adapter/components.js +0 -1
  96. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +1 -1
  97. package/dist/src/foundation/pi-component-adapter/conformance.js +10 -4
  98. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -1
  99. package/dist/src/foundation/pi-component-adapter/index.js +0 -1
  100. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +165 -0
  101. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +166 -0
  102. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -1
  103. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -1
  104. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -1
  105. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +10 -13
  106. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -1
  107. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -1
  108. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -1
  109. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +5 -62
  110. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -1
  111. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -1
  112. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -1
  113. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -1
  114. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -1
  115. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -1
  116. package/dist/src/foundation/pi-component-adapter/theme.d.ts +0 -1
  117. package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
  118. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -1
  119. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -1
  120. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -1
  121. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.js +0 -1
  122. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -1
  123. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -1
  124. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -1
  125. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -1
  126. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -1
  127. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +3 -27
  128. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -1
  129. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -1
  130. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -1
  131. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -1
  132. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -1
  133. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -1
  134. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.d.ts +0 -1
  135. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -1
  136. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +18 -0
  137. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +55 -0
  138. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -1
  139. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -1
  140. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +10 -0
  141. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +120 -0
  142. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.d.ts +0 -1
  143. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -1
  144. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -1
  145. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -1
  146. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +1 -2
  147. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +1 -2
  148. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -1
  149. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -1
  150. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -1
  151. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1
  152. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -1
  153. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -1
  154. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.d.ts +0 -1
  155. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -1
  156. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -1
  157. package/dist/src/foundation/pi-component-adapter/upstream/model-search.js +0 -1
  158. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -1
  159. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +1 -2
  160. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -1
  161. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +18 -15
  162. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +2 -202
  163. package/dist/src/foundation/pi-engine-adapter/adapter.js +76 -174
  164. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +24 -1
  165. package/dist/src/foundation/pi-engine-adapter/conformance.js +60 -15
  166. package/dist/src/foundation/pi-engine-adapter/index.d.ts +6 -1
  167. package/dist/src/foundation/pi-engine-adapter/index.js +6 -1
  168. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +30 -0
  169. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +61 -0
  170. package/dist/src/foundation/pi-engine-adapter/public-main-entry.d.ts +5 -0
  171. package/dist/src/foundation/pi-engine-adapter/public-main-entry.js +18 -0
  172. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +31 -0
  173. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +80 -0
  174. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +18 -0
  175. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +32 -0
  176. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +43 -0
  177. package/dist/src/foundation/pi-engine-adapter/session-integration.js +97 -0
  178. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +17 -0
  179. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +85 -0
  180. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +20 -0
  181. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +48 -0
  182. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -1
  183. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -1
  184. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +1 -0
  185. package/dist/src/foundation/pi-owned-ui-integration/index.js +1 -0
  186. package/dist/src/{features/owned-ui/pi-session-shell.d.ts → foundation/pi-owned-ui-integration/session-shell.d.ts} +17 -14
  187. package/dist/src/{features/owned-ui/pi-session-shell.js → foundation/pi-owned-ui-integration/session-shell.js} +59 -60
  188. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -1
  189. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -1
  190. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +8 -4
  191. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +22 -9
  192. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -2
  193. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.js +1 -2
  194. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +1 -1
  195. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +1 -1
  196. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +4 -0
  197. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +48 -0
  198. package/dist/src/foundation/presentation-contracts/index.d.ts +96 -0
  199. package/dist/src/foundation/presentation-contracts/index.js +38 -0
  200. package/dist/src/foundation/protocol/client.d.ts +0 -1
  201. package/dist/src/foundation/protocol/client.js +0 -1
  202. package/dist/src/foundation/protocol/index.d.ts +0 -1
  203. package/dist/src/foundation/protocol/index.js +0 -1
  204. package/dist/src/foundation/protocol/messages.d.ts +1 -2
  205. package/dist/src/foundation/protocol/messages.js +2 -2
  206. package/dist/src/foundation/release/bootstrap.d.ts +0 -1
  207. package/dist/src/foundation/release/bootstrap.js +18 -17
  208. package/dist/src/foundation/release/cohort-selection.d.ts +0 -1
  209. package/dist/src/foundation/release/cohort-selection.js +0 -1
  210. package/dist/src/foundation/release/cohort-state.d.ts +3 -2
  211. package/dist/src/foundation/release/cohort-state.js +5 -4
  212. package/dist/src/foundation/release/development-preview-release.d.ts +2 -2
  213. package/dist/src/foundation/release/development-preview-release.js +3 -2
  214. package/dist/src/foundation/release/index.d.ts +0 -1
  215. package/dist/src/foundation/release/index.js +0 -1
  216. package/dist/src/foundation/release/process-cleanup.d.ts +0 -1
  217. package/dist/src/foundation/release/process-cleanup.js +0 -1
  218. package/dist/src/foundation/release/release-gc.d.ts +0 -1
  219. package/dist/src/foundation/release/release-gc.js +0 -1
  220. package/dist/src/foundation/release/release-store.d.ts +4 -5
  221. package/dist/src/foundation/release/release-store.js +14 -13
  222. package/dist/src/foundation/release/release.d.ts +5 -6
  223. package/dist/src/foundation/release/release.js +14 -14
  224. package/dist/src/foundation/release/stable-release.d.ts +2 -2
  225. package/dist/src/foundation/release/stable-release.js +6 -5
  226. package/dist/src/foundation/release/update-transaction.d.ts +2 -2
  227. package/dist/src/foundation/release/update-transaction.js +8 -7
  228. package/dist/src/foundation/release/update.d.ts +1 -2
  229. package/dist/src/foundation/release/update.js +26 -26
  230. package/dist/src/foundation/storage/control-store.d.ts +0 -1
  231. package/dist/src/foundation/storage/control-store.js +28 -7
  232. package/dist/src/foundation/storage/index.d.ts +0 -1
  233. package/dist/src/foundation/storage/index.js +0 -1
  234. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -1
  235. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -1
  236. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -1
  237. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -1
  238. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +2 -3
  239. package/dist/src/foundation/structured-agent-runtime/handshake.js +13 -13
  240. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -1
  241. package/dist/src/foundation/structured-agent-runtime/index.js +0 -1
  242. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -1
  243. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -1
  244. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -1
  245. package/dist/src/foundation/structured-agent-runtime/state.js +0 -1
  246. package/dist/src/foundation/supervision/index.d.ts +1 -2
  247. package/dist/src/foundation/supervision/index.js +1 -2
  248. package/dist/src/foundation/supervision/main.d.ts +0 -1
  249. package/dist/src/foundation/supervision/main.js +7 -7
  250. package/dist/src/foundation/supervision/paths.d.ts +1 -2
  251. package/dist/src/foundation/supervision/paths.js +1 -2
  252. package/dist/src/foundation/supervision/server.d.ts +3 -4
  253. package/dist/src/foundation/supervision/server.js +7 -6
  254. package/dist/src/foundation/transparent-terminal/command-resolution.d.ts +0 -1
  255. package/dist/src/foundation/transparent-terminal/command-resolution.js +0 -1
  256. package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts +0 -1
  257. package/dist/src/foundation/transparent-terminal/foreground-broker.js +0 -1
  258. package/dist/src/foundation/transparent-terminal/index.d.ts +1 -1
  259. package/dist/src/foundation/transparent-terminal/index.js +1 -1
  260. package/dist/src/foundation/transparent-terminal/main.d.ts +3 -4
  261. package/dist/src/foundation/transparent-terminal/main.js +8 -21
  262. package/dist/src/foundation/transparent-terminal/native-launcher.d.ts +0 -1
  263. package/dist/src/foundation/transparent-terminal/native-launcher.js +0 -1
  264. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -1
  265. package/dist/src/foundation/workspace-contracts/index.js +0 -1
  266. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -1
  267. package/dist/src/foundation/workspace-contracts/model.js +0 -1
  268. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -1
  269. package/dist/src/foundation/workspace-contracts/validation.js +0 -1
  270. package/dist/src/product-identity.d.ts +37 -0
  271. package/dist/src/product-identity.js +149 -0
  272. package/dist/src/product-identity.json +96 -0
  273. package/docs/architecture/boundaries.md +2 -2
  274. package/docs/architecture/project-structure.md +2 -2
  275. package/docs/architecture/resource-and-data-policy.md +1 -1
  276. package/docs/architecture/terminal-host-proof-gate.md +2 -2
  277. package/docs/architecture/terminal-host-provenance.md +3 -3
  278. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  279. package/docs/architecture/toolchain.md +33 -7
  280. package/docs/features/launch-profiles.md +6 -6
  281. package/docs/manual-pi-boundary-candidate.md +33 -0
  282. package/docs/manual-transparent-checkpoint.md +11 -11
  283. package/package.json +10 -3
  284. package/bin/addone-ui.js +0 -20
  285. package/dist/src/cli/dispatch.d.ts.map +0 -1
  286. package/dist/src/cli/dispatch.js.map +0 -1
  287. package/dist/src/cli/index.d.ts.map +0 -1
  288. package/dist/src/cli/index.js.map +0 -1
  289. package/dist/src/cli/version-stats.d.ts.map +0 -1
  290. package/dist/src/cli/version-stats.js.map +0 -1
  291. package/dist/src/cli/version.d.ts.map +0 -1
  292. package/dist/src/cli/version.js.map +0 -1
  293. package/dist/src/features/launch/development-launch.d.ts.map +0 -1
  294. package/dist/src/features/launch/development-launch.js.map +0 -1
  295. package/dist/src/features/launch/index.d.ts.map +0 -1
  296. package/dist/src/features/launch/index.js.map +0 -1
  297. package/dist/src/features/launch/initialize-profile.d.ts.map +0 -1
  298. package/dist/src/features/launch/initialize-profile.js.map +0 -1
  299. package/dist/src/features/launch/intent.d.ts.map +0 -1
  300. package/dist/src/features/launch/intent.js.map +0 -1
  301. package/dist/src/features/launch/prepare-launch.d.ts.map +0 -1
  302. package/dist/src/features/launch/prepare-launch.js.map +0 -1
  303. package/dist/src/features/launch/profile-paths.d.ts.map +0 -1
  304. package/dist/src/features/launch/profile-paths.js.map +0 -1
  305. package/dist/src/features/launch/profiles.d.ts.map +0 -1
  306. package/dist/src/features/launch/profiles.js.map +0 -1
  307. package/dist/src/features/launch/runtime-selection.d.ts.map +0 -1
  308. package/dist/src/features/launch/runtime-selection.js.map +0 -1
  309. package/dist/src/features/owned-ui/customization.d.ts.map +0 -1
  310. package/dist/src/features/owned-ui/customization.js.map +0 -1
  311. package/dist/src/features/owned-ui/diagnostics.d.ts.map +0 -1
  312. package/dist/src/features/owned-ui/diagnostics.js.map +0 -1
  313. package/dist/src/features/owned-ui/index.d.ts.map +0 -1
  314. package/dist/src/features/owned-ui/index.js.map +0 -1
  315. package/dist/src/features/owned-ui/pi-session-shell.d.ts.map +0 -1
  316. package/dist/src/features/owned-ui/pi-session-shell.js.map +0 -1
  317. package/dist/src/features/owned-ui/run.d.ts.map +0 -1
  318. package/dist/src/features/owned-ui/run.js.map +0 -1
  319. package/dist/src/features/workspace/capabilities.d.ts.map +0 -1
  320. package/dist/src/features/workspace/capabilities.js.map +0 -1
  321. package/dist/src/features/workspace/index.d.ts.map +0 -1
  322. package/dist/src/features/workspace/index.js.map +0 -1
  323. package/dist/src/features/workspace/presentation.d.ts.map +0 -1
  324. package/dist/src/features/workspace/presentation.js.map +0 -1
  325. package/dist/src/features/workspace/reconciliation.d.ts.map +0 -1
  326. package/dist/src/features/workspace/reconciliation.js.map +0 -1
  327. package/dist/src/features/workspace/reducer.d.ts.map +0 -1
  328. package/dist/src/features/workspace/reducer.js.map +0 -1
  329. package/dist/src/features/workspace/router.d.ts.map +0 -1
  330. package/dist/src/features/workspace/router.js.map +0 -1
  331. package/dist/src/features/workspace/store.d.ts.map +0 -1
  332. package/dist/src/features/workspace/store.js.map +0 -1
  333. package/dist/src/foundation/lifecycle/index.d.ts.map +0 -1
  334. package/dist/src/foundation/lifecycle/index.js.map +0 -1
  335. package/dist/src/foundation/lifecycle/model.d.ts.map +0 -1
  336. package/dist/src/foundation/lifecycle/model.js.map +0 -1
  337. package/dist/src/foundation/lifecycle/paths.d.ts.map +0 -1
  338. package/dist/src/foundation/lifecycle/paths.js.map +0 -1
  339. package/dist/src/foundation/native-host-protocol/codec.d.ts.map +0 -1
  340. package/dist/src/foundation/native-host-protocol/codec.js.map +0 -1
  341. package/dist/src/foundation/native-host-protocol/evidence.d.ts.map +0 -1
  342. package/dist/src/foundation/native-host-protocol/evidence.js.map +0 -1
  343. package/dist/src/foundation/native-host-protocol/index.d.ts.map +0 -1
  344. package/dist/src/foundation/native-host-protocol/index.js.map +0 -1
  345. package/dist/src/foundation/native-host-protocol/messages.d.ts.map +0 -1
  346. package/dist/src/foundation/native-host-protocol/messages.js.map +0 -1
  347. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts.map +0 -1
  348. package/dist/src/foundation/native-host-protocol/proof-gate.js.map +0 -1
  349. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts.map +0 -1
  350. package/dist/src/foundation/owned-ui-contracts/extension-ui.js.map +0 -1
  351. package/dist/src/foundation/owned-ui-contracts/index.d.ts.map +0 -1
  352. package/dist/src/foundation/owned-ui-contracts/index.js.map +0 -1
  353. package/dist/src/foundation/owned-ui-contracts/model.d.ts.map +0 -1
  354. package/dist/src/foundation/owned-ui-contracts/model.js.map +0 -1
  355. package/dist/src/foundation/owned-ui-contracts/validation.d.ts.map +0 -1
  356. package/dist/src/foundation/owned-ui-contracts/validation.js.map +0 -1
  357. package/dist/src/foundation/pi-component-adapter/components.d.ts.map +0 -1
  358. package/dist/src/foundation/pi-component-adapter/components.js.map +0 -1
  359. package/dist/src/foundation/pi-component-adapter/conformance.d.ts.map +0 -1
  360. package/dist/src/foundation/pi-component-adapter/conformance.js.map +0 -1
  361. package/dist/src/foundation/pi-component-adapter/index.d.ts.map +0 -1
  362. package/dist/src/foundation/pi-component-adapter/index.js.map +0 -1
  363. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts.map +0 -1
  364. package/dist/src/foundation/pi-component-adapter/shell-components.js.map +0 -1
  365. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts.map +0 -1
  366. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js.map +0 -1
  367. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts.map +0 -1
  368. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js.map +0 -1
  369. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts.map +0 -1
  370. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js.map +0 -1
  371. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts.map +0 -1
  372. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js.map +0 -1
  373. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts.map +0 -1
  374. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js.map +0 -1
  375. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts.map +0 -1
  376. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js.map +0 -1
  377. package/dist/src/foundation/pi-component-adapter/theme.d.ts.map +0 -1
  378. package/dist/src/foundation/pi-component-adapter/theme.js.map +0 -1
  379. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts.map +0 -1
  380. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js.map +0 -1
  381. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts.map +0 -1
  382. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.js.map +0 -1
  383. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts.map +0 -1
  384. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js.map +0 -1
  385. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts.map +0 -1
  386. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js.map +0 -1
  387. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts.map +0 -1
  388. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js.map +0 -1
  389. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts.map +0 -1
  390. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js.map +0 -1
  391. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts.map +0 -1
  392. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js.map +0 -1
  393. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts.map +0 -1
  394. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js.map +0 -1
  395. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.d.ts.map +0 -1
  396. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js.map +0 -1
  397. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts.map +0 -1
  398. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js.map +0 -1
  399. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.d.ts.map +0 -1
  400. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js.map +0 -1
  401. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts.map +0 -1
  402. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js.map +0 -1
  403. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts.map +0 -1
  404. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js.map +0 -1
  405. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts.map +0 -1
  406. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js.map +0 -1
  407. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts.map +0 -1
  408. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js.map +0 -1
  409. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts.map +0 -1
  410. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js.map +0 -1
  411. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.d.ts.map +0 -1
  412. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js.map +0 -1
  413. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts.map +0 -1
  414. package/dist/src/foundation/pi-component-adapter/upstream/model-search.js.map +0 -1
  415. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts.map +0 -1
  416. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js.map +0 -1
  417. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts.map +0 -1
  418. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js.map +0 -1
  419. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts.map +0 -1
  420. package/dist/src/foundation/pi-engine-adapter/adapter.js.map +0 -1
  421. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts.map +0 -1
  422. package/dist/src/foundation/pi-engine-adapter/conformance.js.map +0 -1
  423. package/dist/src/foundation/pi-engine-adapter/index.d.ts.map +0 -1
  424. package/dist/src/foundation/pi-engine-adapter/index.js.map +0 -1
  425. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts.map +0 -1
  426. package/dist/src/foundation/pi-engine-adapter/workflows.js.map +0 -1
  427. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts.map +0 -1
  428. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js.map +0 -1
  429. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts.map +0 -1
  430. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js.map +0 -1
  431. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts.map +0 -1
  432. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.js.map +0 -1
  433. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts.map +0 -1
  434. package/dist/src/foundation/pi-tui-runtime-adapter/index.js.map +0 -1
  435. package/dist/src/foundation/protocol/client.d.ts.map +0 -1
  436. package/dist/src/foundation/protocol/client.js.map +0 -1
  437. package/dist/src/foundation/protocol/index.d.ts.map +0 -1
  438. package/dist/src/foundation/protocol/index.js.map +0 -1
  439. package/dist/src/foundation/protocol/messages.d.ts.map +0 -1
  440. package/dist/src/foundation/protocol/messages.js.map +0 -1
  441. package/dist/src/foundation/release/bootstrap.d.ts.map +0 -1
  442. package/dist/src/foundation/release/bootstrap.js.map +0 -1
  443. package/dist/src/foundation/release/cohort-selection.d.ts.map +0 -1
  444. package/dist/src/foundation/release/cohort-selection.js.map +0 -1
  445. package/dist/src/foundation/release/cohort-state.d.ts.map +0 -1
  446. package/dist/src/foundation/release/cohort-state.js.map +0 -1
  447. package/dist/src/foundation/release/development-preview-release.d.ts.map +0 -1
  448. package/dist/src/foundation/release/development-preview-release.js.map +0 -1
  449. package/dist/src/foundation/release/index.d.ts.map +0 -1
  450. package/dist/src/foundation/release/index.js.map +0 -1
  451. package/dist/src/foundation/release/process-cleanup.d.ts.map +0 -1
  452. package/dist/src/foundation/release/process-cleanup.js.map +0 -1
  453. package/dist/src/foundation/release/release-gc.d.ts.map +0 -1
  454. package/dist/src/foundation/release/release-gc.js.map +0 -1
  455. package/dist/src/foundation/release/release-store.d.ts.map +0 -1
  456. package/dist/src/foundation/release/release-store.js.map +0 -1
  457. package/dist/src/foundation/release/release.d.ts.map +0 -1
  458. package/dist/src/foundation/release/release.js.map +0 -1
  459. package/dist/src/foundation/release/stable-release.d.ts.map +0 -1
  460. package/dist/src/foundation/release/stable-release.js.map +0 -1
  461. package/dist/src/foundation/release/update-transaction.d.ts.map +0 -1
  462. package/dist/src/foundation/release/update-transaction.js.map +0 -1
  463. package/dist/src/foundation/release/update.d.ts.map +0 -1
  464. package/dist/src/foundation/release/update.js.map +0 -1
  465. package/dist/src/foundation/storage/control-store.d.ts.map +0 -1
  466. package/dist/src/foundation/storage/control-store.js.map +0 -1
  467. package/dist/src/foundation/storage/index.d.ts.map +0 -1
  468. package/dist/src/foundation/storage/index.js.map +0 -1
  469. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts.map +0 -1
  470. package/dist/src/foundation/structured-agent-runtime/backpressure.js.map +0 -1
  471. package/dist/src/foundation/structured-agent-runtime/commands.d.ts.map +0 -1
  472. package/dist/src/foundation/structured-agent-runtime/commands.js.map +0 -1
  473. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts.map +0 -1
  474. package/dist/src/foundation/structured-agent-runtime/handshake.js.map +0 -1
  475. package/dist/src/foundation/structured-agent-runtime/index.d.ts.map +0 -1
  476. package/dist/src/foundation/structured-agent-runtime/index.js.map +0 -1
  477. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts.map +0 -1
  478. package/dist/src/foundation/structured-agent-runtime/reconnection.js.map +0 -1
  479. package/dist/src/foundation/structured-agent-runtime/state.d.ts.map +0 -1
  480. package/dist/src/foundation/structured-agent-runtime/state.js.map +0 -1
  481. package/dist/src/foundation/supervision/index.d.ts.map +0 -1
  482. package/dist/src/foundation/supervision/index.js.map +0 -1
  483. package/dist/src/foundation/supervision/main.d.ts.map +0 -1
  484. package/dist/src/foundation/supervision/main.js.map +0 -1
  485. package/dist/src/foundation/supervision/paths.d.ts.map +0 -1
  486. package/dist/src/foundation/supervision/paths.js.map +0 -1
  487. package/dist/src/foundation/supervision/server.d.ts.map +0 -1
  488. package/dist/src/foundation/supervision/server.js.map +0 -1
  489. package/dist/src/foundation/transparent-terminal/command-resolution.d.ts.map +0 -1
  490. package/dist/src/foundation/transparent-terminal/command-resolution.js.map +0 -1
  491. package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts.map +0 -1
  492. package/dist/src/foundation/transparent-terminal/foreground-broker.js.map +0 -1
  493. package/dist/src/foundation/transparent-terminal/index.d.ts.map +0 -1
  494. package/dist/src/foundation/transparent-terminal/index.js.map +0 -1
  495. package/dist/src/foundation/transparent-terminal/main.d.ts.map +0 -1
  496. package/dist/src/foundation/transparent-terminal/main.js.map +0 -1
  497. package/dist/src/foundation/transparent-terminal/native-launcher.d.ts.map +0 -1
  498. package/dist/src/foundation/transparent-terminal/native-launcher.js.map +0 -1
  499. package/dist/src/foundation/workspace-contracts/index.d.ts.map +0 -1
  500. package/dist/src/foundation/workspace-contracts/index.js.map +0 -1
  501. package/dist/src/foundation/workspace-contracts/model.d.ts.map +0 -1
  502. package/dist/src/foundation/workspace-contracts/model.js.map +0 -1
  503. package/dist/src/foundation/workspace-contracts/validation.d.ts.map +0 -1
  504. package/dist/src/foundation/workspace-contracts/validation.js.map +0 -1
  505. /package/bin/{addone-supervisor.js → a1-supervisor.js} +0 -0
@@ -14,4 +14,3 @@ export async function collectRelease(store, dataDir, releaseId, externalReferenc
14
14
  await store.removeUnreferencedRelease(releaseId, externalReferences);
15
15
  await rm(release.releaseRoot, { recursive: true, force: false });
16
16
  }
17
- //# sourceMappingURL=release-gc.js.map
@@ -1,11 +1,10 @@
1
- import { type AddOneReleaseIdentity } from "./release.js";
2
- export declare const RELEASE_MANIFEST = ".addone-release.json";
3
- export interface MaterializedRelease extends AddOneReleaseIdentity {
1
+ import { type ReleaseIdentity } from "./release.js";
2
+ export declare const RELEASE_MANIFEST_FILENAME: string;
3
+ export interface MaterializedRelease extends ReleaseIdentity {
4
4
  readonly releaseRoot: string;
5
5
  }
6
6
  export declare function materializeRelease(packageRoot: string, dataDir: string): Promise<MaterializedRelease>;
7
7
  export declare function readMaterializedRelease(releaseRoot: string): Promise<MaterializedRelease>;
8
- export declare function verifyMaterializedRelease(releaseRoot: string, expected?: AddOneReleaseIdentity, selectedStoreRoot?: string): Promise<MaterializedRelease>;
8
+ export declare function verifyMaterializedRelease(releaseRoot: string, expected?: ReleaseIdentity, selectedStoreRoot?: string): Promise<MaterializedRelease>;
9
9
  export declare function assertImmutableExecutionRoot(release: MaterializedRelease, dataDir: string): Promise<void>;
10
10
  export declare function resolveReleaseEntryPoint(release: MaterializedRelease, entryPoint: string): Promise<string>;
11
- //# sourceMappingURL=release-store.d.ts.map
@@ -1,8 +1,9 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
2
  import { chmod, copyFile, lstat, mkdir, readFile, realpath, rename, rm, writeFile } from "node:fs/promises";
3
3
  import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
4
- import { ADDONE_PACKAGE_NAME, deriveReleaseIdentity, resolveWithin } from "./release.js";
5
- export const RELEASE_MANIFEST = ".addone-release.json";
4
+ import { PRODUCT_PACKAGE_NAME, deriveReleaseIdentity, resolveWithin } from "./release.js";
5
+ import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
6
+ export const RELEASE_MANIFEST_FILENAME = PRODUCT_IDENTITY.manifest.releaseFilename;
6
7
  export async function materializeRelease(packageRoot, dataDir) {
7
8
  const identity = await deriveReleaseIdentity(packageRoot);
8
9
  const storeRoot = resolve(dataDir, "releases");
@@ -21,7 +22,7 @@ export async function materializeRelease(packageRoot, dataDir) {
21
22
  await copyFile(source, destination);
22
23
  await chmod(destination, file.executable ? 0o500 : 0o400);
23
24
  }
24
- await writeFile(resolve(candidate, RELEASE_MANIFEST), JSON.stringify(identity, null, 2), { mode: 0o400, flag: "wx" });
25
+ await writeFile(resolve(candidate, RELEASE_MANIFEST_FILENAME), JSON.stringify(identity, null, 2), { mode: 0o400, flag: "wx" });
25
26
  await verifyMaterializedRelease(candidate, identity);
26
27
  await rename(candidate, releaseRoot);
27
28
  return await verifyMaterializedRelease(releaseRoot, identity);
@@ -33,14 +34,14 @@ export async function materializeRelease(packageRoot, dataDir) {
33
34
  }
34
35
  export async function readMaterializedRelease(releaseRoot) {
35
36
  const canonical = await realpath(releaseRoot);
36
- const manifest = JSON.parse(await readFile(resolve(canonical, RELEASE_MANIFEST), "utf8"));
37
+ const manifest = JSON.parse(await readFile(resolve(canonical, RELEASE_MANIFEST_FILENAME), "utf8"));
37
38
  return await verifyMaterializedRelease(canonical, manifest);
38
39
  }
39
40
  export async function verifyMaterializedRelease(releaseRoot, expected, selectedStoreRoot) {
40
41
  const canonical = await realpath(releaseRoot);
41
42
  if (selectedStoreRoot)
42
43
  assertContained(await realpath(selectedStoreRoot), canonical, "release root is outside the selected release store");
43
- const manifestPath = resolveWithin(canonical, RELEASE_MANIFEST);
44
+ const manifestPath = resolveWithin(canonical, RELEASE_MANIFEST_FILENAME);
44
45
  const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
45
46
  validateManifest(manifest);
46
47
  if (expected && (manifest.releaseId !== expected.releaseId || manifest.contentDigest !== expected.contentDigest)) {
@@ -58,11 +59,12 @@ export async function verifyMaterializedRelease(releaseRoot, expected, selectedS
58
59
  }
59
60
  export async function assertImmutableExecutionRoot(release, dataDir) {
60
61
  await verifyMaterializedRelease(release.releaseRoot, release, resolve(dataDir, "releases"));
61
- if (!process.env.ADDONE_RELEASE_ROOT)
62
- throw new Error("persistent AddOne process has no immutable release root");
63
- const selected = await realpath(process.env.ADDONE_RELEASE_ROOT);
62
+ const selectedRoot = process.env[PRODUCT_IDENTITY.environment.releaseRoot];
63
+ if (!selectedRoot)
64
+ throw new Error(PRODUCT_TEXT.diagnostic("persistent process has no immutable release root"));
65
+ const selected = await realpath(selectedRoot);
64
66
  if (selected !== release.releaseRoot)
65
- throw new Error("persistent AddOne process selected a different immutable release root");
67
+ throw new Error(PRODUCT_TEXT.diagnostic("persistent process selected a different immutable release root"));
66
68
  }
67
69
  export async function resolveReleaseEntryPoint(release, entryPoint) {
68
70
  const normalized = entryPoint.split("\\").join("/").replace(/^\.\//, "");
@@ -85,10 +87,10 @@ async function verifyFile(root, file) {
85
87
  throw new Error(`release file digest mismatch: ${file.path}`);
86
88
  }
87
89
  function validateManifest(value) {
88
- if (value.packageName !== ADDONE_PACKAGE_NAME || typeof value.packageVersion !== "string")
89
- throw new Error("invalid AddOne release manifest metadata");
90
+ if (value.packageName !== PRODUCT_PACKAGE_NAME || typeof value.packageVersion !== "string")
91
+ throw new Error(PRODUCT_TEXT.diagnostic("release manifest metadata is invalid"));
90
92
  if (!/^[a-f0-9]{64}$/.test(value.contentDigest) || !/^[0-9A-Za-z.+_-]+-[a-f0-9]{20}$/.test(value.releaseId))
91
- throw new Error("invalid AddOne release identity");
93
+ throw new Error(PRODUCT_TEXT.diagnostic("release identity is invalid"));
92
94
  if (!Array.isArray(value.files) || value.files.length === 0)
93
95
  throw new Error("release manifest contains no files");
94
96
  for (const file of value.files) {
@@ -112,4 +114,3 @@ function assertContained(parent, child, message) {
112
114
  return;
113
115
  throw new Error(`${message}: ${child}`);
114
116
  }
115
- //# sourceMappingURL=release-store.js.map
@@ -1,12 +1,12 @@
1
- export declare const ADDONE_PACKAGE_NAME = "@timurproko/a1";
1
+ export declare const PRODUCT_PACKAGE_NAME: string;
2
2
  export interface ReleaseFileIdentity {
3
3
  readonly path: string;
4
4
  readonly bytes: number;
5
5
  readonly sha256: string;
6
6
  readonly executable: boolean;
7
7
  }
8
- export interface AddOneReleaseIdentity {
9
- readonly packageName: typeof ADDONE_PACKAGE_NAME;
8
+ export interface ReleaseIdentity {
9
+ readonly packageName: typeof PRODUCT_PACKAGE_NAME;
10
10
  readonly packageVersion: string;
11
11
  readonly contentDigest: string;
12
12
  readonly releaseId: string;
@@ -14,11 +14,10 @@ export interface AddOneReleaseIdentity {
14
14
  readonly files: readonly ReleaseFileIdentity[];
15
15
  }
16
16
  /**
17
- * Derive AddOne execution identity only from installed distribution metadata and
17
+ * Derive release execution identity only from installed distribution metadata and
18
18
  * bytes. The version remains display metadata; the digest selects executable
19
19
  * content.
20
20
  */
21
- export declare function deriveReleaseIdentity(packageRoot: string): Promise<AddOneReleaseIdentity>;
21
+ export declare function deriveReleaseIdentity(packageRoot: string): Promise<ReleaseIdentity>;
22
22
  export declare function resolveWithin(root: string, candidate: string): string;
23
23
  export declare function packageRootFromModule(moduleUrl: string): string;
24
- //# sourceMappingURL=release.d.ts.map
@@ -1,9 +1,10 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { lstat, readFile, readdir, realpath } from "node:fs/promises";
3
3
  import { basename, dirname, isAbsolute, relative, resolve, sep } from "node:path";
4
- export const ADDONE_PACKAGE_NAME = "@timurproko/a1";
4
+ import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
5
+ export const PRODUCT_PACKAGE_NAME = PRODUCT_IDENTITY.packageName;
5
6
  /**
6
- * Derive AddOne execution identity only from installed distribution metadata and
7
+ * Derive release execution identity only from installed distribution metadata and
7
8
  * bytes. The version remains display metadata; the digest selects executable
8
9
  * content.
9
10
  */
@@ -11,10 +12,10 @@ export async function deriveReleaseIdentity(packageRoot) {
11
12
  const canonicalRoot = await realpath(packageRoot);
12
13
  const manifestPath = resolve(canonicalRoot, "package.json");
13
14
  const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
14
- if (manifest.name !== ADDONE_PACKAGE_NAME)
15
- throw new Error(`unexpected AddOne package name: ${String(manifest.name)}`);
15
+ if (manifest.name !== PRODUCT_PACKAGE_NAME)
16
+ throw new Error(`unexpected ${PRODUCT_TEXT.displayName} package name: ${String(manifest.name)}`);
16
17
  if (typeof manifest.version !== "string" || manifest.version.length === 0)
17
- throw new Error("AddOne package metadata has no version");
18
+ throw new Error(PRODUCT_TEXT.diagnostic("package metadata has no version"));
18
19
  const roots = distributionRoots(manifest);
19
20
  const paths = new Set(["package.json"]);
20
21
  for (const root of roots) {
@@ -41,7 +42,7 @@ export async function deriveReleaseIdentity(packageRoot) {
41
42
  digest.update(`${file.path}\0${file.bytes}\0${file.sha256}\0${file.executable ? 1 : 0}\n`);
42
43
  const contentDigest = digest.digest("hex");
43
44
  return {
44
- packageName: ADDONE_PACKAGE_NAME,
45
+ packageName: PRODUCT_PACKAGE_NAME,
45
46
  packageVersion: manifest.version,
46
47
  contentDigest,
47
48
  releaseId: `${manifest.version}-${contentDigest.slice(0, 20)}`,
@@ -60,15 +61,15 @@ export function resolveWithin(root, candidate) {
60
61
  }
61
62
  function distributionRoots(manifest) {
62
63
  if (!Array.isArray(manifest.files))
63
- throw new Error("AddOne package metadata has no distribution files list");
64
+ throw new Error(PRODUCT_TEXT.diagnostic("package metadata has no distribution files list"));
64
65
  const roots = manifest.files.map(value => {
65
66
  if (typeof value !== "string" || value.length === 0)
66
- throw new Error("AddOne distribution file entry is invalid");
67
+ throw new Error(PRODUCT_TEXT.diagnostic("distribution file entry is invalid"));
67
68
  const normalized = normalizeRelative(value);
68
69
  if (normalized === "package.json")
69
70
  return normalized;
70
71
  if (isAbsolute(value) || normalized === ".." || normalized.startsWith("../"))
71
- throw new Error(`AddOne distribution path escapes package root: ${value}`);
72
+ throw new Error(PRODUCT_TEXT.diagnostic(`distribution path escapes package root: ${value}`));
72
73
  return normalized;
73
74
  });
74
75
  return [...new Set(roots)];
@@ -98,7 +99,7 @@ async function collectDependencyClosure(root, requesterRoot, manifest, output, v
98
99
  if (!packagePath) {
99
100
  if (optional.has(name))
100
101
  continue;
101
- throw new Error(`installed AddOne dependency is missing: ${name}`);
102
+ throw new Error(`installed ${PRODUCT_TEXT.displayName} dependency is missing: ${name}`);
102
103
  }
103
104
  if (visited.has(packagePath))
104
105
  continue;
@@ -130,7 +131,7 @@ function dependencyNames(value) {
130
131
  if (value === undefined)
131
132
  return [];
132
133
  if (typeof value !== "object" || value === null || Array.isArray(value))
133
- throw new Error("AddOne dependency metadata is invalid");
134
+ throw new Error(PRODUCT_TEXT.diagnostic("dependency metadata is invalid"));
134
135
  return Object.keys(value);
135
136
  }
136
137
  function normalizeRelative(path) {
@@ -139,13 +140,12 @@ function normalizeRelative(path) {
139
140
  export function packageRootFromModule(moduleUrl) {
140
141
  const url = new URL(moduleUrl);
141
142
  if (url.protocol !== "file:")
142
- throw new Error(`AddOne module URL must be a file URL: ${moduleUrl}`);
143
+ throw new Error(PRODUCT_TEXT.diagnostic(`module URL must be a file URL: ${moduleUrl}`));
143
144
  let directory = dirname(url.pathname.replace(/^\/(.:)/, "$1"));
144
145
  while (basename(directory) !== "") {
145
146
  if (basename(directory) === "dist")
146
147
  return dirname(directory);
147
148
  directory = dirname(directory);
148
149
  }
149
- throw new Error("could not derive AddOne package root from module URL");
150
+ throw new Error(PRODUCT_TEXT.diagnostic("package root could not be derived from module URL"));
150
151
  }
151
- //# sourceMappingURL=release.js.map
@@ -1,3 +1,4 @@
1
+ export declare const STABLE_RELEASE_SCHEMA: string;
1
2
  export interface StableReleaseEvidenceInput {
2
3
  readonly packageName: string;
3
4
  readonly version: string;
@@ -9,7 +10,7 @@ export interface StableReleaseEvidenceInput {
9
10
  readonly recordedAt: string;
10
11
  }
11
12
  export interface StableReleaseEvidence extends StableReleaseEvidenceInput {
12
- readonly schema: "addone-stable-release-v1";
13
+ readonly schema: typeof STABLE_RELEASE_SCHEMA;
13
14
  readonly channel: "latest";
14
15
  }
15
16
  export interface StableRegistryState {
@@ -27,4 +28,3 @@ export interface StableRegistryVerificationOptions {
27
28
  }
28
29
  export declare function createStableReleaseEvidence(input: StableReleaseEvidenceInput): StableReleaseEvidence;
29
30
  export declare function verifyStableRegistry(expected: StableReleaseEvidence, observe: () => Promise<StableRegistryState>, options?: StableRegistryVerificationOptions): Promise<void>;
30
- //# sourceMappingURL=stable-release.d.ts.map
@@ -1,7 +1,9 @@
1
1
  import { prerelease, valid } from "semver";
2
- import { ADDONE_PACKAGE_NAME } from "./release.js";
2
+ import { PRODUCT_PACKAGE_NAME } from "./release.js";
3
+ import { PRODUCT_IDENTITY } from "../../product-identity.js";
4
+ export const STABLE_RELEASE_SCHEMA = PRODUCT_IDENTITY.evidence.stableReleaseSchema;
3
5
  export function createStableReleaseEvidence(input) {
4
- if (input.packageName !== ADDONE_PACKAGE_NAME)
6
+ if (input.packageName !== PRODUCT_PACKAGE_NAME)
5
7
  throw new Error(`unexpected stable package: ${input.packageName}`);
6
8
  if (valid(input.version) === null || prerelease(input.version) !== null)
7
9
  throw new Error(`stable release requires an exact stable version: ${input.version}`);
@@ -11,7 +13,7 @@ export function createStableReleaseEvidence(input) {
11
13
  throw new Error("stable release integrity is malformed");
12
14
  if (!/^[a-f0-9]{40}$/.test(input.shasum))
13
15
  throw new Error("stable release shasum is malformed");
14
- return { schema: "addone-stable-release-v1", channel: "latest", ...input };
16
+ return { schema: STABLE_RELEASE_SCHEMA, channel: "latest", ...input };
15
17
  }
16
18
  export async function verifyStableRegistry(expected, observe, options = {}) {
17
19
  const attempts = options.attempts ?? 12;
@@ -28,11 +30,10 @@ export async function verifyStableRegistry(expected, observe, options = {}) {
28
30
  && state.integrity === expected.integrity
29
31
  && state.shasum === expected.shasum
30
32
  && state.bins.length === 1
31
- && state.bins[0] === "a1")
33
+ && state.bins[0] === PRODUCT_IDENTITY.commandName)
32
34
  return;
33
35
  if (attempt < attempts)
34
36
  await delay(delayMs);
35
37
  }
36
38
  throw new Error(`npm latest did not match accepted ${expected.packageName}@${expected.version} after ${attempts} attempts: ${JSON.stringify(state)}`);
37
39
  }
38
- //# sourceMappingURL=stable-release.js.map
@@ -1,7 +1,8 @@
1
+ export declare const UPDATE_JOURNAL_SCHEMA: string;
1
2
  import type { UpdateChannel } from "./update.js";
2
3
  export type UpdateTransactionPhase = "shutdown-intent" | "ownership-released" | "package-installed" | "materialized" | "certified" | "active-reference-committed" | "supervisor-verified";
3
4
  export interface UpdateTransaction {
4
- readonly schemaVersion: 1;
5
+ readonly schema: typeof UPDATE_JOURNAL_SCHEMA;
5
6
  readonly transactionId: string;
6
7
  readonly channel: UpdateChannel;
7
8
  readonly targetVersion: string;
@@ -28,4 +29,3 @@ export declare class UpdateTransactionStore {
28
29
  finish(status: "completed" | "rolled-back" | "failed", error?: string | null): Promise<UpdateTransaction>;
29
30
  clearCompleted(): Promise<void>;
30
31
  }
31
- //# sourceMappingURL=update-transaction.d.ts.map
@@ -1,6 +1,8 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { mkdir, open, readFile, rename, rm } from "node:fs/promises";
3
3
  import { dirname, resolve } from "node:path";
4
+ import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
5
+ export const UPDATE_JOURNAL_SCHEMA = PRODUCT_IDENTITY.protocol.updateJournalSchema;
4
6
  export class UpdateTransactionStore {
5
7
  path;
6
8
  constructor(dataDir) { this.path = resolve(dataDir, "update-transaction.json"); }
@@ -20,13 +22,13 @@ export class UpdateTransactionStore {
20
22
  const current = await this.read();
21
23
  if (current?.status === "active") {
22
24
  if (current.targetVersion !== input.targetVersion || current.channel !== input.channel) {
23
- throw new Error(`unfinished AddOne update ${current.transactionId} targets ${current.targetVersion}; reconcile it before starting ${input.targetVersion}`);
25
+ throw new Error(PRODUCT_TEXT.diagnostic(`has unfinished update ${current.transactionId} targeting ${current.targetVersion}; reconcile it before starting ${input.targetVersion}`));
24
26
  }
25
27
  return current;
26
28
  }
27
29
  const now = new Date().toISOString();
28
30
  return await this.#write({
29
- schemaVersion: 1,
31
+ schema: UPDATE_JOURNAL_SCHEMA,
30
32
  transactionId: randomUUID(),
31
33
  ...input,
32
34
  phase: "shutdown-intent",
@@ -45,7 +47,7 @@ export class UpdateTransactionStore {
45
47
  async finish(status, error = null) {
46
48
  const current = await this.read();
47
49
  if (!current)
48
- throw new Error("no AddOne update transaction is recorded");
50
+ throw new Error(`no ${PRODUCT_TEXT.displayName} update transaction is recorded`);
49
51
  return await this.#write({ ...current, status, error, updatedAt: new Date().toISOString() });
50
52
  }
51
53
  async clearCompleted() {
@@ -56,7 +58,7 @@ export class UpdateTransactionStore {
56
58
  async #requiredActive() {
57
59
  const current = await this.read();
58
60
  if (!current || current.status !== "active")
59
- throw new Error("no active AddOne update transaction is recorded");
61
+ throw new Error(`no active ${PRODUCT_TEXT.displayName} update transaction is recorded`);
60
62
  return current;
61
63
  }
62
64
  async #write(value) {
@@ -79,10 +81,9 @@ function phaseOrder(phase) {
79
81
  return ["shutdown-intent", "ownership-released", "package-installed", "materialized", "certified", "active-reference-committed", "supervisor-verified"].indexOf(phase);
80
82
  }
81
83
  function validate(value) {
82
- if (value.schemaVersion !== 1 || typeof value.transactionId !== "string" || !["stable", "next"].includes(value.channel)
84
+ if (value.schema !== UPDATE_JOURNAL_SCHEMA || typeof value.transactionId !== "string" || !["stable", "next"].includes(value.channel)
83
85
  || typeof value.targetVersion !== "string" || typeof value.packageRoot !== "string" || typeof value.startedAt !== "string"
84
86
  || typeof value.updatedAt !== "string" || phaseOrder(value.phase) < 0 || !["active", "completed", "rolled-back", "failed"].includes(value.status)) {
85
- throw new Error("invalid AddOne update transaction journal");
87
+ throw new Error(`invalid ${PRODUCT_TEXT.displayName} update transaction journal`);
86
88
  }
87
89
  }
88
- //# sourceMappingURL=update-transaction.js.map
@@ -1,5 +1,5 @@
1
1
  import { type UpdateTransaction, type UpdateTransactionPhase } from "./update-transaction.js";
2
- export declare const ADDONE_PACKAGE = "@timurproko/a1";
2
+ export declare const PRODUCT_PACKAGE: string;
3
3
  export type UpdateChannel = "stable" | "next";
4
4
  export interface ProcessRequest {
5
5
  captureStdout: boolean;
@@ -52,4 +52,3 @@ export interface UpdateTransactionJournal {
52
52
  export declare function createNpmProcessRunner(platform?: NodeJS.Platform): UpdateProcessRunner;
53
53
  export declare function createUpdateLifecycleCoordinator(environment?: NodeJS.ProcessEnv, fileSystem?: UpdateFileSystem): UpdateLifecycleCoordinator;
54
54
  export declare function runSelfUpdate(options: SelfUpdateOptions): Promise<number>;
55
- //# sourceMappingURL=update.d.ts.map
@@ -4,14 +4,15 @@ import { connect } from "node:net";
4
4
  import { isAbsolute, relative, resolve, sep } from "node:path";
5
5
  import crossSpawn from "cross-spawn";
6
6
  import { valid as validSemver } from "semver";
7
+ import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
7
8
  import { certifyMaterializedRelease, probeOwnership, readEndpointMetadata, removeEndpointArtifacts, startSupervisor, waitForProcessExit, waitForVerifiedEndpoint, } from "./bootstrap.js";
8
- import { resolveAddOnePaths } from "../lifecycle/index.js";
9
+ import { resolveProductPaths } from "../lifecycle/index.js";
9
10
  import { encodeFrame, LineFrameDecoder } from "../protocol/index.js";
10
11
  import { CohortStateStore } from "./cohort-state.js";
11
12
  import { cleanupVerifiedOwner, processIsAlive } from "./process-cleanup.js";
12
13
  import { materializeRelease, readMaterializedRelease } from "./release-store.js";
13
14
  import { UpdateTransactionStore } from "./update-transaction.js";
14
- export const ADDONE_PACKAGE = "@timurproko/a1";
15
+ export const PRODUCT_PACKAGE = PRODUCT_TEXT.packageName;
15
16
  const UPDATE_DIST_TAGS = { stable: "latest", next: "next" };
16
17
  const defaultFileSystem = {
17
18
  async readFile(path) { return await readFile(path, "utf8"); },
@@ -40,7 +41,7 @@ export function createNpmProcessRunner(platform = process.platform) {
40
41
  });
41
42
  }
42
43
  export function createUpdateLifecycleCoordinator(environment = process.env, fileSystem = defaultFileSystem) {
43
- const paths = resolveAddOnePaths(environment);
44
+ const paths = resolveProductPaths(environment);
44
45
  const stateStore = new CohortStateStore(paths.dataDir);
45
46
  return {
46
47
  async targetIsActive(targetVersion) {
@@ -59,7 +60,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
59
60
  return { priorActiveVersion };
60
61
  const ownership = await probeOwnership(endpoint);
61
62
  if (ownership !== "live-verified" && ownership !== "dead") {
62
- throw new Error(`AddOne refused update shutdown because supervisor ownership is ${ownership}`);
63
+ throw new Error(PRODUCT_TEXT.diagnostic(`refused update shutdown because supervisor ownership is ${ownership}`));
63
64
  }
64
65
  const immutableRoot = await canonicalImmutableRoot(paths.dataDir, endpoint.releaseRoot);
65
66
  const legacyMutableInstall = ownership === "live-verified" && !immutableRoot;
@@ -74,7 +75,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
74
75
  reason: legacyMutableInstall ? "legacy-mutable-install" : "explicit-update",
75
76
  });
76
77
  if (!cleanup.terminated)
77
- throw new Error(`verified AddOne owner ${endpoint.pid} rejected shutdown and could not be terminated: ${identity.reason}`);
78
+ throw new Error(`verified ${PRODUCT_TEXT.displayName} owner ${endpoint.pid} rejected shutdown and could not be terminated: ${identity.reason}`);
78
79
  }
79
80
  else if (identity.accepted) {
80
81
  await waitForProcessExit(endpoint.pid, 3_000).catch(async () => {
@@ -83,7 +84,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
83
84
  reason: legacyMutableInstall ? "legacy-mutable-install" : "explicit-update",
84
85
  });
85
86
  if (!cleanup.terminated)
86
- throw new Error(`verified AddOne owner ${endpoint.pid} did not terminate`);
87
+ throw new Error(`verified ${PRODUCT_TEXT.displayName} owner ${endpoint.pid} did not terminate`);
87
88
  });
88
89
  }
89
90
  await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
@@ -92,7 +93,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
92
93
  async verifyPackageUnlocked(packageRoot) {
93
94
  if (fileSystem.access)
94
95
  await fileSystem.access(packageRoot);
95
- const probe = `${packageRoot}.addone-unlock-probe`;
96
+ const probe = `${packageRoot}.${PRODUCT_IDENTITY.filesystem.slug}-unlock-probe`;
96
97
  const { rename } = await import("node:fs/promises");
97
98
  try {
98
99
  await rename(packageRoot, probe);
@@ -101,13 +102,13 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
101
102
  catch (error) {
102
103
  // Best-effort rollback if the first rename succeeded and the second did not.
103
104
  await rename(probe, packageRoot).catch(() => { });
104
- throw new Error(`AddOne package remains locked after verified shutdown: ${errorMessage(error)}`);
105
+ throw new Error(PRODUCT_TEXT.diagnostic(`package remains locked after verified shutdown: ${errorMessage(error)}`));
105
106
  }
106
107
  },
107
108
  async activateInstalled(packageRoot, targetVersion, phase) {
108
109
  const candidate = await materializeRelease(packageRoot, paths.dataDir);
109
110
  if (candidate.packageVersion !== targetVersion)
110
- throw new Error(`installed AddOne version ${candidate.packageVersion} does not match target ${targetVersion}`);
111
+ throw new Error(`installed ${PRODUCT_TEXT.displayName} version ${candidate.packageVersion} does not match target ${targetVersion}`);
111
112
  await stateStore.recordCandidate(candidate);
112
113
  await phase("materialized");
113
114
  const diagnostics = await certifyMaterializedRelease(candidate, paths.dataDir);
@@ -135,23 +136,23 @@ export async function runSelfUpdate(options) {
135
136
  runningVersion = parsedVersion;
136
137
  }
137
138
  catch (error) {
138
- output.stderr(`AddOne could not read its running package version: ${errorMessage(error)}\n`);
139
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`could not read its running package version: ${errorMessage(error)}`)}\n`);
139
140
  return 1;
140
141
  }
141
- const targetLookup = await runNpm(runner, ["view", `${ADDONE_PACKAGE}@${distTag}`, "version"], true, output, `query the npm ${distTag} channel`);
142
+ const targetLookup = await runNpm(runner, ["view", `${PRODUCT_PACKAGE}@${distTag}`, "version"], true, output, `query the npm ${distTag} channel`);
142
143
  if (targetLookup.result === null)
143
144
  return targetLookup.exitCode;
144
145
  const targetVersion = validSemver(targetLookup.result.stdout.trim());
145
146
  if (targetVersion === null) {
146
- output.stderr(`AddOne received a malformed ${distTag} version from npm: ${JSON.stringify(targetLookup.result.stdout.trim())}.\n`);
147
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`received a malformed ${distTag} version from npm: ${JSON.stringify(targetLookup.result.stdout.trim())}.`)}\n`);
147
148
  return 1;
148
149
  }
149
- output.stdout(`AddOne update (${channel}): ${runningVersion} → ${targetVersion}.\n`);
150
+ output.stdout(`${PRODUCT_TEXT.diagnostic(`update (${channel}): ${runningVersion} → ${targetVersion}.`)}\n`);
150
151
  const rootLookup = await runNpm(runner, ["root", "--global"], true, output, "resolve npm's global package root");
151
152
  if (rootLookup.result === null)
152
153
  return rootLookup.exitCode;
153
154
  if (rootLookup.result.stdout.trim().length === 0) {
154
- output.stderr("AddOne could not verify its installation because npm returned an empty global package root.\n");
155
+ output.stderr(`${PRODUCT_TEXT.diagnostic("could not verify its installation because npm returned an empty global package root.")}\n`);
155
156
  return 1;
156
157
  }
157
158
  let packageRoot;
@@ -160,15 +161,15 @@ export async function runSelfUpdate(options) {
160
161
  [packageRoot, globalRoot] = await Promise.all([fileSystem.realpath(options.packageRoot), fileSystem.realpath(rootLookup.result.stdout.trim())]);
161
162
  }
162
163
  catch (error) {
163
- output.stderr(`AddOne could not canonicalize the running and global npm paths: ${errorMessage(error)}\n`);
164
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`could not canonicalize the running and global npm paths: ${errorMessage(error)}`)}\n`);
164
165
  return 1;
165
166
  }
166
167
  if (!isContainedBy(globalRoot, packageRoot)) {
167
- output.stderr(`AddOne refused to update automatically because ${packageRoot} is not managed beneath npm's global package root ${globalRoot}.\n`);
168
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`refused to update automatically because ${packageRoot} is not managed beneath npm's global package root ${globalRoot}.`)}\n`);
168
169
  return 1;
169
170
  }
170
171
  const environment = options.environment ?? process.env;
171
- const paths = resolveAddOnePaths(environment);
172
+ const paths = resolveProductPaths(environment);
172
173
  const lifecycle = options.lifecycle ?? createUpdateLifecycleCoordinator(environment, fileSystem);
173
174
  const transactionStore = options.transactionStore ?? new UpdateTransactionStore(paths.dataDir);
174
175
  let transaction = await transactionStore.read();
@@ -179,7 +180,7 @@ export async function runSelfUpdate(options) {
179
180
  await transactionStore.finish("completed");
180
181
  }
181
182
  await transactionStore.clearCompleted();
182
- output.stdout("AddOne is already current and active for this channel; no installation was changed.\n");
183
+ output.stdout(`${PRODUCT_TEXT.diagnostic("is already current and active for this channel; no installation was changed.")}\n`);
183
184
  return 0;
184
185
  }
185
186
  const cohortState = await new CohortStateStore(paths.dataDir).read();
@@ -195,8 +196,8 @@ export async function runSelfUpdate(options) {
195
196
  transaction = await transactionStore.advance("ownership-released");
196
197
  }
197
198
  if (phaseBefore(transaction.phase, "package-installed")) {
198
- output.stdout(`AddOne is installing ${ADDONE_PACKAGE}@${targetVersion}.\n`);
199
- const installation = await runNpm(runner, ["install", "--global", `${ADDONE_PACKAGE}@${targetVersion}`], false, output, "start the global npm installation", false);
199
+ output.stdout(`${PRODUCT_TEXT.diagnostic(`is installing ${PRODUCT_TEXT.packageName}@${targetVersion}.`)}\n`);
200
+ const installation = await runNpm(runner, ["install", "--global", `${PRODUCT_PACKAGE}@${targetVersion}`], false, output, "start the global npm installation", false);
200
201
  if (installation.result === null)
201
202
  throw new UpdateFailure(installation.exitCode, "npm process failed");
202
203
  if (installation.result.code !== 0)
@@ -207,7 +208,7 @@ export async function runSelfUpdate(options) {
207
208
  await transactionStore.advance("supervisor-verified");
208
209
  await transactionStore.finish("completed");
209
210
  await transactionStore.clearCompleted();
210
- output.stdout(`AddOne updated successfully: ${targetVersion} (${channel}).\n`);
211
+ output.stdout(`${PRODUCT_TEXT.diagnostic(`updated successfully: ${targetVersion} (${channel}).`)}\n`);
211
212
  return 0;
212
213
  }
213
214
  catch (error) {
@@ -217,7 +218,7 @@ export async function runSelfUpdate(options) {
217
218
  : await rollbackPriorCohort(paths.dataDir, environment, transaction?.priorActiveReleaseId ?? null).catch(rollbackError => `rollback failed: ${errorMessage(rollbackError)}`);
218
219
  if (transaction)
219
220
  await transactionStore.finish(rollback === "rolled back" ? "rolled-back" : "failed", `${message}; ${rollback}`);
220
- output.stderr(`AddOne update failed: ${message}. ${rollback}. Diagnostics: ${transactionStore.path}\n`);
221
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`update failed: ${message}. ${rollback}. Diagnostics: ${transactionStore.path}`)}\n`);
221
222
  return error instanceof UpdateFailure ? error.exitCode : 1;
222
223
  }
223
224
  }
@@ -256,11 +257,11 @@ async function runNpm(runner, arguments_, captureStdout, output, action, reportN
256
257
  result = await runner("npm", arguments_, { captureStdout });
257
258
  }
258
259
  catch (error) {
259
- output.stderr(`AddOne could not execute npm to ${action}: ${errorMessage(error)}\n`);
260
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`could not execute npm to ${action}: ${errorMessage(error)}`)}\n`);
260
261
  return { result: null, exitCode: 1 };
261
262
  }
262
263
  if (result.code !== 0 && reportNonzero) {
263
- output.stderr(`AddOne could not ${action}; npm exited with status ${formatExitCode(result.code)}. Review npm's diagnostics above.\n`);
264
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`could not ${action}; npm exited with status ${formatExitCode(result.code)}. Review npm's diagnostics above.`)}\n`);
264
265
  return { result: null, exitCode: unsuccessfulCode(result.code) };
265
266
  }
266
267
  return { result, exitCode: 0 };
@@ -280,7 +281,7 @@ async function rollbackPriorCohort(dataDir, environment, priorReleaseId) {
280
281
  throw new Error(`prior release ${priorReleaseId} is not the recorded rollback cohort`);
281
282
  }
282
283
  const release = await readMaterializedRelease(prior.releaseRoot);
283
- const paths = resolveAddOnePaths(environment);
284
+ const paths = resolveProductPaths(environment);
284
285
  await startSupervisor(release, environment);
285
286
  await waitForVerifiedEndpoint(paths.endpointMetadataPath, release, 8_000);
286
287
  return "rolled back";
@@ -313,4 +314,3 @@ function isContainedBy(parent, child) {
313
314
  function unsuccessfulCode(code) { return code === null || code === 0 ? 1 : code; }
314
315
  function formatExitCode(code) { return code === null ? "unknown" : String(code); }
315
316
  function errorMessage(error) { return error instanceof Error ? error.message : String(error); }
316
- //# sourceMappingURL=update.js.map
@@ -58,4 +58,3 @@ export declare class ControlStore {
58
58
  } | null;
59
59
  close(): void;
60
60
  }
61
- //# sourceMappingURL=control-store.d.ts.map
@@ -1,6 +1,7 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
2
  import { mkdirSync } from "node:fs";
3
3
  import { dirname } from "node:path";
4
+ import { PRODUCT_IDENTITY } from "../../product-identity.js";
4
5
  import { assertManagedAgentDescriptor, assertRecoveryAuthority, assertTerminalSessionLaunch, assertTerminalTopologySnapshot, } from "../workspace-contracts/index.js";
5
6
  export const DEFAULT_WORKSPACE_ID = "workspace-default";
6
7
  const INITIAL_WORKSPACE_ID = DEFAULT_WORKSPACE_ID;
@@ -11,12 +12,18 @@ export class ControlStore {
11
12
  this.bootNonce = bootNonce;
12
13
  mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
13
14
  this.database = new DatabaseSync(path);
14
- this.database.exec("PRAGMA journal_mode = WAL");
15
- this.database.exec("PRAGMA foreign_keys = ON");
16
- this.migrate();
17
- if (bootNonce !== null) {
18
- this.reconcilePriorBootGenerations(bootNonce);
19
- this.reconcilePriorBootForegroundTerminalLeases(bootNonce);
15
+ try {
16
+ this.database.exec("PRAGMA journal_mode = WAL");
17
+ this.database.exec("PRAGMA foreign_keys = ON");
18
+ this.migrate();
19
+ if (bootNonce !== null) {
20
+ this.reconcilePriorBootGenerations(bootNonce);
21
+ this.reconcilePriorBootForegroundTerminalLeases(bootNonce);
22
+ }
23
+ }
24
+ catch (error) {
25
+ this.database.close();
26
+ throw error;
20
27
  }
21
28
  }
22
29
  migrate() {
@@ -24,6 +31,8 @@ export class ControlStore {
24
31
  const version = versionRow.user_version;
25
32
  if (version > 4)
26
33
  throw new Error(`control database version ${version} is newer than supported version 4`);
34
+ if (version !== 0)
35
+ this.#assertCurrentControlSchema();
27
36
  if (version === 0) {
28
37
  this.database.exec(`
29
38
  BEGIN IMMEDIATE;
@@ -165,6 +174,19 @@ export class ControlStore {
165
174
  COMMIT;
166
175
  `);
167
176
  }
177
+ if (version === 0) {
178
+ this.database.exec("CREATE TABLE product_identity (schema TEXT PRIMARY KEY NOT NULL)");
179
+ this.database.prepare("INSERT INTO product_identity (schema) VALUES (?)").run(PRODUCT_IDENTITY.protocol.controlStoreSchema);
180
+ }
181
+ }
182
+ #assertCurrentControlSchema() {
183
+ const table = this.database.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'product_identity'").get();
184
+ if (!table)
185
+ throw new Error("control database has no A1 product schema; legacy state is unsupported");
186
+ const identity = this.database.prepare("SELECT schema FROM product_identity").get();
187
+ if (identity?.schema !== PRODUCT_IDENTITY.protocol.controlStoreSchema) {
188
+ throw new Error(`control database schema ${String(identity?.schema)} is unsupported; expected ${PRODUCT_IDENTITY.protocol.controlStoreSchema}`);
189
+ }
168
190
  }
169
191
  reconcilePriorBootGenerations(bootNonce) {
170
192
  const now = new Date().toISOString();
@@ -456,4 +478,3 @@ function foregroundLeaseFromRow(row) {
456
478
  outcome: row.outcome_json ? JSON.parse(row.outcome_json) : null,
457
479
  };
458
480
  }
459
- //# sourceMappingURL=control-store.js.map
@@ -1,2 +1 @@
1
1
  export * from "./control-store.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export * from "./control-store.js";
2
- //# sourceMappingURL=index.js.map
@@ -44,4 +44,3 @@ export declare class StructuredBackpressureController {
44
44
  leaseCount(): number;
45
45
  replayExhausted(): boolean;
46
46
  }
47
- //# sourceMappingURL=backpressure.d.ts.map