@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
@@ -0,0 +1,149 @@
1
+ import rawIdentity from "./product-identity.json" with { type: "json" };
2
+ const ENVIRONMENT_KEYS = [
3
+ "certificationTarball",
4
+ "configDir",
5
+ "dataDir",
6
+ "databasePath",
7
+ "developmentInstanceId",
8
+ "developmentRoot",
9
+ "endpoint",
10
+ "fixture",
11
+ "fixtureInput",
12
+ "fixtureToken",
13
+ "inputAcknowledgement",
14
+ "internalPackaging",
15
+ "launchArgumentsJson",
16
+ "launchProfile",
17
+ "nativePi",
18
+ "paneId",
19
+ "piParityIntentionalMutation",
20
+ "piPortRoot",
21
+ "piSourceLedgerPath",
22
+ "piSourceScanRoot",
23
+ "probeTrace",
24
+ "profileHome",
25
+ "protocolVersion",
26
+ "releaseDigest",
27
+ "releaseId",
28
+ "releaseRoot",
29
+ "releaseRunnerLabel",
30
+ "runtimeDir",
31
+ "structuredFlowLimits",
32
+ "terminalArgumentsJson",
33
+ "terminalExecutable",
34
+ "terminalSessionId",
35
+ ];
36
+ const FILESYSTEM_KEYS = ["slug", "windowsDirectory", "unixDirectory", "temporaryPrefix"];
37
+ const STATE_KEYS = ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "piSandboxProfile"];
38
+ const ENDPOINT_KEYS = ["windowsPipeStem", "unixSocketFilename", "metadataFilename", "supervisorLogFilename", "databaseFilename"];
39
+ const MANIFEST_KEYS = ["releaseFilename", "packageFilename"];
40
+ const PROTOCOL_KEYS = ["namespace", "controlEnvelope", "supervisorSchema", "nativeHostSchema", "structuredAgentSchema", "controlStoreSchema", "releaseCohortSchema", "updateJournalSchema"];
41
+ const EVIDENCE_KEYS = ["nativeSpikeSchema", "terminalProvenanceSchema", "terminalProofSchema", "stableReleaseSchema", "previewReleaseSchema", "releaseCertificationSchema", "previewPlatformVerdictSchema", "piSourceLedgerSchema", "piComponentParitySchema", "piEventFrameParitySchema"];
42
+ const ARTIFACT_KEYS = ["cliEntry", "supervisorEntry", "uiEntry", "nativeExecutable", "nativeCrate", "releaseTarballStem", "diagnosticStem"];
43
+ const ROOT_KEYS = ["schema", "displayName", "commandName", "packageName", "filesystem", "environment", "state", "endpoint", "manifest", "protocol", "evidence", "artifacts"];
44
+ export function validateProductIdentity(value) {
45
+ const root = exactObject(value, ROOT_KEYS, "product identity");
46
+ const schema = stringValue(root.schema, "product identity schema");
47
+ const displayName = stringValue(root.displayName, "product display name");
48
+ const commandName = stringValue(root.commandName, "product command name");
49
+ const packageName = stringValue(root.packageName, "product package name");
50
+ const filesystem = stringObject(root.filesystem, FILESYSTEM_KEYS, "filesystem identity");
51
+ const environment = stringObject(root.environment, ENVIRONMENT_KEYS, "environment identity");
52
+ const state = stringObject(root.state, STATE_KEYS, "state identity");
53
+ const endpoint = stringObject(root.endpoint, ENDPOINT_KEYS, "endpoint identity");
54
+ const manifest = stringObject(root.manifest, MANIFEST_KEYS, "manifest identity");
55
+ const protocol = stringObject(root.protocol, PROTOCOL_KEYS, "protocol identity");
56
+ const evidence = stringObject(root.evidence, EVIDENCE_KEYS, "evidence identity");
57
+ const artifacts = stringObject(root.artifacts, ARTIFACT_KEYS, "artifact identity");
58
+ if (!/^[a-z][a-z0-9-]*$/.test(commandName))
59
+ throw new TypeError("product command name must be a lowercase command slug");
60
+ if (!/^@[a-z0-9-]+\/[a-z0-9-]+$/.test(packageName))
61
+ throw new TypeError("product package name must be a lowercase scoped npm package");
62
+ if (displayName.trim() !== displayName || displayName.length === 0)
63
+ throw new TypeError("product display name must be non-empty without surrounding whitespace");
64
+ if (schema !== `${commandName}-product-identity-v1`)
65
+ throw new TypeError("product identity schema must derive from the command name");
66
+ if (filesystem.slug !== commandName || filesystem.unixDirectory !== filesystem.slug || filesystem.windowsDirectory !== displayName) {
67
+ throw new TypeError("product filesystem identity must derive from display and command names");
68
+ }
69
+ if (filesystem.temporaryPrefix !== `${filesystem.slug}-`)
70
+ throw new TypeError("product temporary prefix must derive from the filesystem slug");
71
+ if (state.windowsControlDirectory !== filesystem.windowsDirectory || state.unixControlDirectory !== filesystem.unixDirectory) {
72
+ throw new TypeError("product state directories must match the filesystem identity");
73
+ }
74
+ if (endpoint.windowsPipeStem !== filesystem.slug)
75
+ throw new TypeError("product endpoint stem must match the filesystem slug");
76
+ if (protocol.namespace !== commandName)
77
+ throw new TypeError("product protocol namespace must match the command name");
78
+ if (artifacts.diagnosticStem !== filesystem.slug)
79
+ throw new TypeError("product diagnostic stem must match the filesystem slug");
80
+ const environmentPrefix = `${commandName.toUpperCase()}_`;
81
+ const environmentValues = Object.values(environment);
82
+ if (new Set(environmentValues).size !== environmentValues.length)
83
+ throw new TypeError("product environment keys must be unique");
84
+ for (const key of environmentValues) {
85
+ if (!key.startsWith(environmentPrefix) || !/^[A-Z][A-Z0-9_]+$/.test(key)) {
86
+ throw new TypeError(`product environment key must use ${environmentPrefix}: ${key}`);
87
+ }
88
+ }
89
+ for (const [name, identifier] of Object.entries(protocol)) {
90
+ if (name !== "namespace" && !identifier.startsWith(`${protocol.namespace}-`)) {
91
+ throw new TypeError(`product protocol identifier must use ${protocol.namespace}: ${identifier}`);
92
+ }
93
+ }
94
+ for (const identifier of Object.values(evidence)) {
95
+ if (!identifier.startsWith(`${protocol.namespace}-`))
96
+ throw new TypeError(`product evidence identifier must use ${protocol.namespace}: ${identifier}`);
97
+ }
98
+ return deepFreeze({
99
+ schema,
100
+ displayName,
101
+ commandName,
102
+ packageName,
103
+ filesystem,
104
+ environment,
105
+ state,
106
+ endpoint,
107
+ manifest,
108
+ protocol,
109
+ evidence,
110
+ artifacts,
111
+ });
112
+ }
113
+ export function createProductIdentityText(identity) {
114
+ return Object.freeze({
115
+ displayName: identity.displayName,
116
+ commandName: identity.commandName,
117
+ packageName: identity.packageName,
118
+ diagnostic: (message) => `${identity.displayName} ${message}`,
119
+ usage: (forms) => `Usage: ${forms.map(form => `${identity.commandName}${form ? ` ${form}` : ""}`).join(" | ")}`,
120
+ });
121
+ }
122
+ export const PRODUCT_IDENTITY = validateProductIdentity(rawIdentity);
123
+ export const PRODUCT_TEXT = createProductIdentityText(PRODUCT_IDENTITY);
124
+ function exactObject(value, keys, name) {
125
+ if (typeof value !== "object" || value === null || Array.isArray(value))
126
+ throw new TypeError(`${name} must be an object`);
127
+ const actualKeys = Object.keys(value).sort();
128
+ const expectedKeys = [...keys].sort();
129
+ if (actualKeys.length !== expectedKeys.length || actualKeys.some((key, index) => key !== expectedKeys[index])) {
130
+ throw new TypeError(`${name} must contain exactly: ${expectedKeys.join(", ")}`);
131
+ }
132
+ return value;
133
+ }
134
+ function stringObject(value, keys, name) {
135
+ const object = exactObject(value, keys, name);
136
+ return Object.fromEntries(keys.map((key) => [key, stringValue(object[key], `${name}.${key}`)]));
137
+ }
138
+ function stringValue(value, name) {
139
+ if (typeof value !== "string" || value.length === 0)
140
+ throw new TypeError(`${name} must be a non-empty string`);
141
+ return value;
142
+ }
143
+ function deepFreeze(value) {
144
+ if (typeof value !== "object" || value === null || Object.isFrozen(value))
145
+ return value;
146
+ for (const child of Object.values(value))
147
+ deepFreeze(child);
148
+ return Object.freeze(value);
149
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "schema": "a1-product-identity-v1",
3
+ "displayName": "A1",
4
+ "commandName": "a1",
5
+ "packageName": "@timurproko/a1",
6
+ "filesystem": {
7
+ "slug": "a1",
8
+ "windowsDirectory": "A1",
9
+ "unixDirectory": "a1",
10
+ "temporaryPrefix": "a1-"
11
+ },
12
+ "environment": {
13
+ "certificationTarball": "A1_CERTIFICATION_TARBALL",
14
+ "configDir": "A1_CONFIG_DIR",
15
+ "dataDir": "A1_DATA_DIR",
16
+ "databasePath": "A1_DATABASE_PATH",
17
+ "developmentInstanceId": "A1_DEV_INSTANCE_ID",
18
+ "developmentRoot": "A1_DEV_ROOT",
19
+ "endpoint": "A1_ENDPOINT",
20
+ "fixture": "A1_FIXTURE",
21
+ "fixtureInput": "A1_FIXTURE_INPUT",
22
+ "fixtureToken": "A1_FIXTURE_TOKEN",
23
+ "inputAcknowledgement": "A1_INPUT_ACK",
24
+ "internalPackaging": "A1_INTERNAL_PACKAGING",
25
+ "launchArgumentsJson": "A1_LAUNCH_ARGUMENTS_JSON",
26
+ "launchProfile": "A1_LAUNCH_PROFILE",
27
+ "nativePi": "A1_NATIVE_PI",
28
+ "paneId": "A1_PANE_ID",
29
+ "piParityIntentionalMutation": "A1_PI_PARITY_INTENTIONAL_MUTATION",
30
+ "piPortRoot": "A1_PI_PORT_ROOT",
31
+ "piSourceLedgerPath": "A1_PI_SOURCE_LEDGER_PATH",
32
+ "piSourceScanRoot": "A1_PI_SOURCE_SCAN_ROOT",
33
+ "probeTrace": "A1_PROBE_TRACE",
34
+ "profileHome": "A1_PROFILE_HOME",
35
+ "protocolVersion": "A1_PROTOCOL_VERSION",
36
+ "releaseDigest": "A1_RELEASE_DIGEST",
37
+ "releaseId": "A1_RELEASE_ID",
38
+ "releaseRoot": "A1_RELEASE_ROOT",
39
+ "releaseRunnerLabel": "A1_RELEASE_RUNNER_LABEL",
40
+ "runtimeDir": "A1_RUNTIME_DIR",
41
+ "structuredFlowLimits": "A1_STRUCTURED_FLOW_LIMITS",
42
+ "terminalArgumentsJson": "A1_TERMINAL_ARGUMENTS_JSON",
43
+ "terminalExecutable": "A1_TERMINAL_EXECUTABLE",
44
+ "terminalSessionId": "A1_TERMINAL_SESSION_ID"
45
+ },
46
+ "state": {
47
+ "windowsControlDirectory": "A1",
48
+ "unixControlDirectory": "a1",
49
+ "developmentDirectory": "a1-development",
50
+ "piAgentProfile": ".a1/agent",
51
+ "piVanillaProfile": ".pi/agent",
52
+ "piSandboxProfile": ".a1/sandbox"
53
+ },
54
+ "endpoint": {
55
+ "windowsPipeStem": "a1",
56
+ "unixSocketFilename": "supervisor.sock",
57
+ "metadataFilename": "supervisor.json",
58
+ "supervisorLogFilename": "supervisor.log",
59
+ "databaseFilename": "control.sqlite3"
60
+ },
61
+ "manifest": {
62
+ "releaseFilename": ".a1-release.json",
63
+ "packageFilename": "package.json"
64
+ },
65
+ "protocol": {
66
+ "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
+ "releaseCohortSchema": "a1-release-cohort-v1",
73
+ "updateJournalSchema": "a1-update-journal-v1"
74
+ },
75
+ "evidence": {
76
+ "nativeSpikeSchema": "a1-native-host-spike-evidence-v1",
77
+ "terminalProvenanceSchema": "a1-terminal-host-provenance-v1",
78
+ "terminalProofSchema": "a1-terminal-host-proof-v1",
79
+ "stableReleaseSchema": "a1-stable-release-v1",
80
+ "previewReleaseSchema": "a1-preview-release-v1",
81
+ "releaseCertificationSchema": "a1-release-certification-v1",
82
+ "previewPlatformVerdictSchema": "a1-development-preview-platform-verdict-v2",
83
+ "piSourceLedgerSchema": "a1-pinned-pi-source-port-ledger-v1",
84
+ "piComponentParitySchema": "a1-pi-static-component-parity-v1",
85
+ "piEventFrameParitySchema": "a1-pi-event-frame-parity-v1"
86
+ },
87
+ "artifacts": {
88
+ "cliEntry": "bin/a1.js",
89
+ "supervisorEntry": "bin/a1-supervisor.js",
90
+ "uiEntry": "bin/a1-ui.js",
91
+ "nativeExecutable": "a1-terminal-host",
92
+ "nativeCrate": "a1-terminal-host",
93
+ "releaseTarballStem": "timurproko-a1",
94
+ "diagnosticStem": "a1"
95
+ }
96
+ }
@@ -11,9 +11,9 @@ mutable a1 entry
11
11
  -> child with inherited physical terminal handles
12
12
  ```
13
13
 
14
- After handoff, AddOne does not read ordinary terminal input, parse child output, render cells, infer frames, synthesize terminal responses, or emit display control. The child and physical terminal own terminal behavior. AddOne owns validated launch intent, one exclusive foreground lease, native process identity, lifecycle outcome, and bounded cleanup.
14
+ After handoff, A1 does not read ordinary terminal input, parse child output, render cells, infer frames, synthesize terminal responses, or emit display control. The child and physical terminal own terminal behavior. A1 owns validated launch intent, one exclusive foreground lease, native process identity, lifecycle outcome, and bounded cleanup.
15
15
 
16
- Transparent mode has no AddOne-authoritative terminal surface, internal pane, virtual scrollback, inactive resident tab, or visual reconnection. A future feature that requires those properties must introduce and certify a separate composed-terminal authority; it must not weaken or silently intercept transparent mode.
16
+ Transparent mode has no A1-authoritative terminal surface, internal pane, virtual scrollback, inactive resident tab, or visual reconnection. A future feature that requires those properties must introduce and certify a separate composed-terminal authority; it must not weaken or silently intercept transparent mode.
17
17
 
18
18
  ## Current module responsibilities
19
19
 
@@ -74,8 +74,8 @@ Build output belongs in ignored `dist/`; release/test evidence belongs in ignore
74
74
 
75
75
  ## Terminal capability boundary
76
76
 
77
- Transparent terminal attachment owns one foreground child and no AddOne surface. It cannot retain inactive terminal state or switch among arbitrary interactive CLIs inside AddOne. Bare-`a1` multi-agent UX may use structured/RPC surfaces without terminal emulation, but arbitrary-CLI tabs require a separate composed-terminal capability with PTY, authoritative terminal state, rendering, input routing, inactive-surface lifecycle, reconnection, and cross-platform certification. That future capability must not silently intercept or replace the transparent path. Explicit launch profiles and transparent fallback must not import, initialize, launch, or connect to composed terminal-host infrastructure.
77
+ Transparent terminal attachment owns one foreground child and no A1 surface. It cannot retain inactive terminal state or switch among arbitrary interactive CLIs inside A1. Bare-`a1` multi-agent UX may use structured/RPC surfaces without terminal emulation, but arbitrary-CLI tabs require a separate composed-terminal capability with PTY, authoritative terminal state, rendering, input routing, inactive-surface lifecycle, reconnection, and cross-platform certification. That future capability must not silently intercept or replace the transparent path. Explicit launch profiles and transparent fallback must not import, initialize, launch, or connect to composed terminal-host infrastructure.
78
78
 
79
- Composed terminals use a console terminal host that runs inside the user's existing terminal. The host owns pseudoterminal bytes, retained terminal state, keyboard/text/mouse/IME encoding, frame scheduling, and presentation to the containing terminal. AddOne's JavaScript control plane may exchange typed identity, topology revision, capability, lifecycle, status, and recovery messages only; it must not relay terminal output, per-event child input, or rendered cells. A desktop-native window, GPU renderer, Ghostty GUI runtime, Winghostty Win32 runtime, Metal, GTK, and AppKit are postponed and are not required for the in-terminal product.
79
+ Composed terminals use a console terminal host that runs inside the user's existing terminal. The host owns pseudoterminal bytes, retained terminal state, keyboard/text/mouse/IME encoding, frame scheduling, and presentation to the containing terminal. A1's JavaScript control plane may exchange typed identity, topology revision, capability, lifecycle, status, and recovery messages only; it must not relay terminal output, per-event child input, or rendered cells. A desktop-native window, GPU renderer, Ghostty GUI runtime, Winghostty Win32 runtime, Metal, GTK, and AppKit are postponed and are not required for the in-terminal product.
80
80
 
81
81
  A tab owns a revisioned split tree. Each leaf pane references one PTY-backed terminal session. Structured/RPC agents remain semantically separate and may not derive state from ANSI text, terminal timing, or screen content. Native source ownership lives outside `src/` when introduced; packaged host selection is governed by release/package owners. Existing architecture tests reject terminal-host hot-path bytes in JavaScript protocol code, terminal inference in structured runtime code, composed imports from explicit launch modes, and replacement lightweight terminal parsers/renderers.
@@ -32,7 +32,7 @@ Every asynchronous consumer must implement a finite queue or window. Backpressur
32
32
  |---|---|---|
33
33
  | Workspace metadata | IDs, names, lifecycle, capability versions, topology revisions, recovery references | May persist in the control store |
34
34
  | Structured payloads | Messages, tool calls, snapshots, attachments | Bound and process; persist only under a future typed retention policy |
35
- | Terminal content | PTY bytes, scrollback, selection, rendered cells | Never persist in AddOne's control store or diagnostics |
35
+ | Terminal content | PTY bytes, scrollback, selection, rendered cells | Never persist in A1's control store or diagnostics |
36
36
  | Host topology metadata | Window/tab/pane/session IDs, layout shape, dimensions, revision | May persist; not terminal content |
37
37
  | Native proof evidence | Artifact hashes, source revisions, workloads, latency/resource measurements, paint diagnostics | May persist in versioned evidence files without terminal content |
38
38
  | Environment values | `PATH`, profile overrides, arbitrary launch environment | Do not persist; treat as potentially sensitive |
@@ -1,6 +1,6 @@
1
1
  # In-terminal 2×2 proof gate
2
2
 
3
- The composed-terminal proof is a stop/go gate. AddOne must not merge or productize composed terminal panes until the exact in-terminal spike artifact passes both technical and physical acceptance.
3
+ The composed-terminal proof is a stop/go gate. A1 must not merge or productize composed terminal panes until the exact in-terminal spike artifact passes both technical and physical acceptance.
4
4
 
5
5
  ## Go criteria
6
6
 
@@ -8,7 +8,7 @@ A `go` decision requires all of the following:
8
8
 
9
9
  1. Every mandatory workload in the terminal-host evidence schema passes.
10
10
  2. The proof runs inside an existing terminal without creating a desktop window.
11
- 3. The exact artifact is tied to pinned AddOne and terminal-component revisions.
11
+ 3. The exact artifact is tied to pinned A1 and terminal-component revisions.
12
12
  4. Automated evidence came from an isolated worker.
13
13
  5. The physical verdict is `accepted` through user-controlled manual validation or an attested isolated disposable worker.
14
14
  6. Input-to-process p95 latency is at most 16 ms.
@@ -10,7 +10,7 @@ The composed-terminal proof uses a small console-hosted stack. It runs inside th
10
10
  | `portable-pty` | version `0.9.0` | ConPTY/Unix PTY and process ownership | MIT |
11
11
  | Crossterm | version `0.29.0` | Outer-terminal raw mode and host input events | MIT-compatible candidate; notice must be vendored before packaging |
12
12
 
13
- A buffered AddOne-owned frame composer is the initial presentation layer. Ratatui is an optional evaluation candidate only if the narrow composer increases rendering risk; it is not selected by default.
13
+ A buffered A1-owned frame composer is the initial presentation layer. Ratatui is an optional evaluation candidate only if the narrow composer increases rendering risk; it is not selected by default.
14
14
 
15
15
  ## Explicitly excluded
16
16
 
@@ -44,7 +44,7 @@ Do not patch terminal semantics to support a specific CLI. Report unsupported ge
44
44
 
45
45
  The console proof requires:
46
46
 
47
- - Rust/Cargo for the AddOne terminal host;
47
+ - Rust/Cargo for the A1 terminal host;
48
48
  - Zig `0.15.x` with patch `>= 0.15.2` to build `libghostty-vt`;
49
49
  - the platform C/C++ build toolchain required by Rust and the PTY/input crates (Visual Studio 2022 Build Tools/MSVC on Windows);
50
50
  - Windows 10/11 x64 or ARM64 for the first proof;
@@ -58,7 +58,7 @@ No GUI SDK, OpenGL runtime, Win32 window pipeline, Metal, GTK, or AppKit runtime
58
58
  Every spike or production host artifact must record:
59
59
 
60
60
  - artifact path, SHA-256, size, signature status, and build timestamp;
61
- - AddOne source commit and protocol version;
61
+ - A1 source commit and protocol version;
62
62
  - `libghostty-vt`, PTY, input, and renderer component identities;
63
63
  - retained/adapted component manifest;
64
64
  - compiler/toolchain versions and target triple;
@@ -1,6 +1,6 @@
1
1
  # In-terminal 2×2 spike evidence
2
2
 
3
- The spike must produce machine-readable evidence with schema `addone-native-host-spike-evidence-v1`. Evidence is valid only when it names the exact artifact, hashes, pinned source commits, isolated worker environment, all mandatory workloads, measurements, paint diagnostics, resources, and physical/manual verdict. The artifact is a console terminal host that runs inside an existing terminal and does not open a desktop window.
3
+ The spike must produce machine-readable evidence with schema `a1-native-host-spike-evidence-v1`. Evidence is valid only when it names the exact artifact, hashes, pinned source commits, isolated worker environment, all mandatory workloads, measurements, paint diagnostics, resources, and physical/manual verdict. The artifact is a console terminal host that runs inside an existing terminal and does not open a desktop window.
4
4
 
5
5
  ## Mandatory workloads
6
6
 
@@ -45,22 +45,48 @@ npm run test:release
45
45
 
46
46
  `check:deprecated` verifies the complete lockfile graph against registry metadata. The release gate exercises durable stable/preview update transitions and writes an ignored machine-readable verdict under `artifacts/release-verdicts/`.
47
47
 
48
+ ## Pi maintenance workflows
49
+
50
+ Engine compatibility and presentation synchronization are intentionally separate:
51
+
52
+ ```sh
53
+ npm run test:pi-engine-conformance
54
+ ```
55
+
56
+ This mandatory candidate workflow checks documented package-root exports and the owned engine integration. It does not read private interactive source, compare source maps, regenerate UI fixtures, or require presentation provenance to match a candidate package.
57
+
58
+ ```sh
59
+ npm run sync:pi-ui
60
+ ```
61
+
62
+ This optional, mutating presentation-maintenance workflow regenerates component and event-frame parity evidence when maintainers deliberately adopt upstream UI changes. Review generated diffs, attribution, source-ledger records, and terminal parity before committing them. It is never an engine candidate acceptance gate and is not run by `check`, `prepack`, or release publication.
63
+
64
+ `npm run test:pi-terminal-parity` remains an explicit presentation acceptance command. `node scripts/check-pinned-pi-source-ledger.mjs` validates accepted provenance; its `--engine-only` mode validates the ownership partition without comparing private upstream source.
65
+
48
66
  ## Preview publication
49
67
 
50
68
  A preview candidate must use a unique `-dev.N` version and exact manually accepted bytes. Publication packs once, binds evidence to source commit/version/integrity, runs applicable non-desktop gates, publishes under npm `next`, and verifies registry identity. It must keep `latest` unchanged and record physical/cross-platform certification as deferred.
51
69
 
52
70
  The GitHub trusted-publishing workflow is `.github/workflows/publish-next.yml`. Stable publication remains a separate release process from a clean tagged `master` commit after all mandatory platform gates pass.
53
71
 
54
- ## AddOne state paths
72
+ ## A1 state paths
55
73
 
56
- These paths are AddOne control and release state, not Pi profile roots. All are overrideable for hermetic tests.
74
+ These paths are A1 control and release state, not Pi profile roots. All are overrideable for hermetic tests.
57
75
 
58
76
  | Purpose | Override | Windows default | Unix default |
59
77
  |---|---|---|---|
60
- | Config | `ADDONE_CONFIG_DIR` | `%APPDATA%\\AddOne` | `$XDG_CONFIG_HOME/addone` or `~/.config/addone` |
61
- | Durable data | `ADDONE_DATA_DIR` | `%LOCALAPPDATA%\\AddOne` | `$XDG_DATA_HOME/addone` or `~/.local/share/addone` |
62
- | Runtime | `ADDONE_RUNTIME_DIR` | `%LOCALAPPDATA%\\AddOne\\runtime` | `$XDG_RUNTIME_DIR/addone` or `<data>/runtime` |
63
- | Database | `ADDONE_DATABASE_PATH` | `<data>/control.sqlite3` | `<data>/control.sqlite3` |
64
- | Endpoint | `ADDONE_ENDPOINT` | runtime-scoped named pipe | `<runtime>/supervisor.sock` |
78
+ | Config | `A1_CONFIG_DIR` | `%APPDATA%\\A1` | `$XDG_CONFIG_HOME/a1` or `~/.config/a1` |
79
+ | Durable data | `A1_DATA_DIR` | `%LOCALAPPDATA%\\A1` | `$XDG_DATA_HOME/a1` or `~/.local/share/a1` |
80
+ | Runtime | `A1_RUNTIME_DIR` | `%LOCALAPPDATA%\\A1\\runtime` | `$XDG_RUNTIME_DIR/a1` or `<data>/runtime` |
81
+ | Database | `A1_DATABASE_PATH` | `<data>/control.sqlite3` | `<data>/control.sqlite3` |
82
+ | Endpoint | `A1_ENDPOINT` | runtime-scoped `a1-*` named pipe | `<runtime>/supervisor.sock` |
83
+
84
+ ### Identity hard cut and cleanup
85
+
86
+ A1 does not read or migrate legacy `ADDONE_*` variables, `AddOne`/`addone` control-state directories, release manifests, database schemas, endpoint records, or protocol frames. Remove obsolete control state only after stopping old processes: `%APPDATA%\\AddOne` and `%LOCALAPPDATA%\\AddOne` on Windows, or the former `addone` directories under XDG config, data, and runtime roots on Unix. This cleanup is manual and never imports data into A1.
87
+
88
+ Do **not** remove `~/.a1/agent` or `~/.a1/sandbox`; those are current Pi profile roots and are intentionally preserved. `~/.pi/agent` remains the vanilla Pi profile.
89
+
90
+ The obsolete npm package `@timurproko/addone` is deprecated with the registry message `This package is obsolete. Use @timurproko/a1 instead.` It is not a current identity, compatibility channel, or rollback source. Whole-package unpublication was rejected by npm policy; any later removal is owner-controlled registry administration and does not change the A1 runtime contract.
65
91
 
66
92
  The launch-profile feature separately owns Pi roots: `~/.a1/agent`, ordinary `~/.pi/agent`, and `~/.a1/sandbox`.
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Command | Purpose | Pi user profile |
6
6
  |---|---|---|
7
- | `a1` | AddOne-owned Pi-compatible UI | `~/.a1/agent` |
7
+ | `a1` | A1-owned Pi-compatible UI | `~/.a1/agent` |
8
8
  | `a1 pi` | Untouched vanilla Pi fallback and comparison oracle | ordinary `~/.pi/agent` |
9
9
  | `a1 sandbox` | Unchanged isolated vanilla Pi profile for experiments | `~/.a1/sandbox` |
10
10
 
@@ -12,7 +12,7 @@ There is no `a1 agent` command. The former `a1 ui` subcommand is removed. Bare `
12
12
 
13
13
  ## First launch
14
14
 
15
- For AddOne-owned profiles, AddOne creates only the selected profile root and empty `extensions`, `skills`, `prompts`, and `themes` directories. Existing content is preserved. AddOne does not copy, link, merge, or delete settings, credentials, sessions, packages, trust decisions, or resources from another profile.
15
+ For A1-owned profiles, A1 creates only the selected profile root and empty `extensions`, `skills`, `prompts`, and `themes` directories. Existing content is preserved. A1 does not copy, link, merge, or delete settings, credentials, sessions, packages, trust decisions, or resources from another profile.
16
16
 
17
17
  Pi owns files within the selected root. Common locations are:
18
18
 
@@ -31,7 +31,7 @@ Run Pi’s normal `/login` independently in each profile that needs stored authe
31
31
 
32
32
  ## Vanilla Pi
33
33
 
34
- `a1 pi` bypasses the AddOne-owned UI and launches the untouched pinned Pi CLI. It also removes AddOne’s Pi configuration-root override, so Pi uses its normal `~/.pi/agent` settings, authentication, sessions, resources, packages, and trust decisions. This is both the comparison oracle and the recovery fallback when diagnosing the owned UI.
34
+ `a1 pi` bypasses the A1-owned UI and launches the untouched pinned Pi CLI. It also removes A1’s Pi configuration-root override, so Pi uses its normal `~/.pi/agent` settings, authentication, sessions, resources, packages, and trust decisions. This is both the comparison oracle and the recovery fallback when diagnosing the owned UI.
35
35
 
36
36
  ## Sandbox profile
37
37
 
@@ -41,10 +41,10 @@ Run Pi’s normal `/login` independently in each profile that needs stored authe
41
41
 
42
42
  ## Terminal behavior
43
43
 
44
- Bare `a1` runs the AddOne-owned full-viewport TUI over public Pi engine, component, and terminal APIs. AddOne owns composition, input routing, modal focus, selection behavior, scrolling, and restoration without inserting a PTY or terminal-byte relay. Its default presentation is pinned to vanilla Pi parity; structured tabs and AddOne-specific visual customization are not enabled.
44
+ Bare `a1` runs the A1-owned full-viewport TUI over public Pi engine, component, and terminal APIs. A1 owns composition, input routing, modal focus, selection behavior, scrolling, and restoration without inserting a PTY or terminal-byte relay. Its default presentation is pinned to vanilla Pi parity; structured tabs and A1-specific visual customization are not enabled.
45
45
 
46
- `a1 pi` and `a1 sandbox` retain transparent direct attachment. In those profiles, one untouched Pi process and the physical terminal own rendering, input, selection, clipboard, scrollback, and terminal modes; AddOne owns foreground lease and lifecycle only.
46
+ `a1 pi` and `a1 sandbox` retain transparent direct attachment. In those profiles, one untouched Pi process and the physical terminal own rendering, input, selection, clipboard, scrollback, and terminal modes; A1 owns foreground lease and lifecycle only.
47
47
 
48
48
  ## Recovery and comparison
49
49
 
50
- If bare `a1` cannot start or a UI workflow diverges, run `a1 pi` from the same working directory and compare the behavior. Profile data is intentionally separate, so authentication or settings may need to be configured independently. Use `a1 version` to record the installed AddOne release before reporting a difference. `a1 sandbox` is for isolated profile experiments, not recovery from the owned UI and not a security boundary.
50
+ If bare `a1` cannot start or a UI workflow diverges, run `a1 pi` from the same working directory and compare the behavior. Profile data is intentionally separate, so authentication or settings may need to be configured independently. Use `a1 version` to record the installed A1 release before reporting a difference. `a1 sandbox` is for isolated profile experiments, not recovery from the owned UI and not a security boundary.
@@ -0,0 +1,33 @@
1
+ # Manual Pi-boundary candidate checkpoint
2
+
3
+ This checkpoint is user-controlled. Do not automate it on an active workstation, send synthetic desktop input, or claim a pass without a person completing the observations.
4
+
5
+ ## Prepare the exact local candidate
6
+
7
+ From a clean checkout of the candidate commit:
8
+
9
+ ```powershell
10
+ npm ci
11
+ npm run check
12
+ npm pack --ignore-scripts --pack-destination artifacts/manual-pi-boundary
13
+ npm install --global --prefix artifacts/manual-pi-boundary/install artifacts/manual-pi-boundary/timurproko-a1-*.tgz --ignore-scripts
14
+ $Candidate = Resolve-Path artifacts/manual-pi-boundary/install/a1.cmd
15
+ ```
16
+
17
+ Use the exact generated filename if wildcard expansion is unavailable.
18
+
19
+ ## User-controlled checks
20
+
21
+ 1. **Bare owned UI:** run `& $Candidate`. Confirm startup, typing, submission, transcript streaming, selector focus, mouse/keyboard scrolling, and ordinary shutdown.
22
+ 2. **Extension surfaces:** in bare UI use `/reload`, then exercise configured extension notification, select, confirm, input, editor, replacement custom surface, and overlay custom surface. Confirm cancellation restores editor focus.
23
+ 3. **Vanilla oracle:** run `& $Candidate pi`. Confirm untouched Pi uses the ordinary `~/.pi/agent` profile and does not show owned-UI or workspace surfaces.
24
+ 4. **Isolated profile:** run `& $Candidate sandbox`. Confirm Pi uses `~/.a1/sandbox` and starts with project approval disabled for that run.
25
+ 5. **Resize and input:** while each mode is active, narrow and widen the terminal, enter Unicode and multiline text, use history/navigation keys, and scroll in both directions.
26
+ 6. **Shutdown:** exit normally, then repeat and use Ctrl+C during work. Confirm the parent prompt remains usable and no child remains attached.
27
+ 7. **Recovery:** after any owned-UI failure, run `& $Candidate pi`; confirm the vanilla oracle remains available. Restart bare UI and confirm its normal profile remains intact.
28
+
29
+ Do not remove `~/.a1/agent`, `~/.pi/agent`, or `~/.a1/sandbox` during this checkpoint.
30
+
31
+ ## Verdict recording
32
+
33
+ Before a person performs these commands, the verdict is **READY, MANUAL EXECUTION PENDING**. After execution, record candidate commit, tarball SHA-256, platform, terminal, each observation, and an explicit pass/fail. A preview publication may remain Windows-only and uncertified; this checkpoint does not establish stable cross-platform support.
@@ -13,40 +13,40 @@ npm pack --ignore-scripts --pack-destination artifacts/manual-transparent
13
13
  npm install --prefix artifacts/manual-transparent/install --ignore-scripts artifacts/manual-transparent/<exact-tarball>.tgz
14
14
  ```
15
15
 
16
- Use isolated AddOne control state:
16
+ Use isolated A1 control state:
17
17
 
18
18
  ```powershell
19
19
  $manualRoot = (Resolve-Path "artifacts/manual-transparent").Path
20
- $env:ADDONE_CONFIG_DIR = "$manualRoot\state\config"
21
- $env:ADDONE_DATA_DIR = "$manualRoot\state\data"
22
- $env:ADDONE_RUNTIME_DIR = "$manualRoot\state\runtime"
23
- $env:ADDONE_DATABASE_PATH = "$manualRoot\state\data\control.sqlite3"
20
+ $env:A1_CONFIG_DIR = "$manualRoot\state\config"
21
+ $env:A1_DATA_DIR = "$manualRoot\state\data"
22
+ $env:A1_RUNTIME_DIR = "$manualRoot\state\runtime"
23
+ $env:A1_DATABASE_PATH = "$manualRoot\state\data\control.sqlite3"
24
24
  ```
25
25
 
26
26
  Run the installed candidate yourself:
27
27
 
28
28
  ```powershell
29
- & "artifacts/manual-transparent/install/node_modules/.bin/addone.cmd"
29
+ & "artifacts/manual-transparent/install/node_modules/.bin/a1.cmd"
30
30
  ```
31
31
 
32
- Test each installed launch form separately: bare `a1` (the owned UI), `a1 pi` (the untouched comparison oracle), and `a1 sandbox` (the unchanged isolated vanilla profile). Confirm that files created through `/settings`, `/login`, sessions, and resource directories remain under the selected profile root. Generic transparent-fallback testing may set `ADDONE_TERMINAL_EXECUTABLE` and a JSON array in `ADDONE_TERMINAL_ARGUMENTS_JSON`.
32
+ Test each installed launch form separately: bare `a1` (the owned UI), `a1 pi` (the untouched comparison oracle), and `a1 sandbox` (the unchanged isolated vanilla profile). Confirm that files created through `/settings`, `/login`, sessions, and resource directories remain under the selected profile root. Generic transparent-fallback testing may set `A1_TERMINAL_EXECUTABLE` and a JSON array in `A1_TERMINAL_ARGUMENTS_JSON`.
33
33
 
34
34
  Physical automation is not part of this repository baseline. Future certification tooling may run only on dedicated disposable workers or VMs with exclusive test desktops, never on this workstation.
35
35
 
36
- ## Compare bare AddOne with `a1 pi`
36
+ ## Compare bare A1 with `a1 pi`
37
37
 
38
- Use the same terminal, working directory, dimensions, environment, and equivalent profile resources. Bare AddOne and the untouched oracle intentionally use separate profile roots.
38
+ Use the same terminal, working directory, dimensions, environment, and equivalent profile resources. Bare A1 and the untouched oracle intentionally use separate profile roots.
39
39
 
40
40
  - [ ] Startup resources, logo, notices, spacing, editor, and footer match.
41
41
  - [ ] Text, Unicode, emoji, styles, cursor, and layout match.
42
- - [ ] Rapid typing has no visible AddOne delay or dropped/duplicated characters.
42
+ - [ ] Rapid typing has no visible A1 delay or dropped/duplicated characters.
43
43
  - [ ] Ctrl+C, Ctrl+P, arrows, paste, focus, dialogs, mouse, and wheel match.
44
44
  - [ ] Selection, copy, clipboard, scrollback, and resize match.
45
45
  - [ ] Normal and error exits preserve child output and return a usable parent prompt.
46
46
  - [ ] Parent typing, cursor movement, Backspace, Delete, and submission work after exit.
47
47
  - [ ] A missing executable reports a concise spawn failure without affecting other applications.
48
48
 
49
- Report failures with direct-versus-AddOne behavior, platform/terminal versions, exact command, reproducibility, and optional manually captured evidence.
49
+ Report failures with direct-versus-A1 behavior, platform/terminal versions, exact command, reproducibility, and optional manually captured evidence.
50
50
 
51
51
  For recovery, use `a1 pi`; do not use the removed `a1 ui` command. `a1 sandbox` remains profile isolation rather than a security boundary.
52
52
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@timurproko/a1",
3
- "version": "0.1.0",
3
+ "version": "0.1.1-dev.1",
4
4
  "description": "Standalone terminal workspace for supervised native and managed agents",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.13.0",
7
7
  "bin": {
8
- "a1": "bin/addone.js"
8
+ "a1": "bin/a1.js"
9
9
  },
10
10
  "files": [
11
11
  "bin",
@@ -21,7 +21,7 @@
21
21
  "clean": "node scripts/clean.mjs",
22
22
  "build": "npm run clean && tsc -p tsconfig.build.json",
23
23
  "typecheck": "tsc -p tsconfig.json --noEmit",
24
- "check:architecture": "node scripts/check-architecture.mjs && node scripts/check-package-identity.mjs && node scripts/check-pinned-pi-source-ledger.mjs && node scripts/check-terminal-host-provenance.mjs",
24
+ "check:architecture": "node scripts/check-architecture.mjs && node scripts/product-identifier-policy.mjs --check && node scripts/check-product-identity-boundaries.mjs && node scripts/check-package-identity.mjs && node scripts/check-pinned-pi-source-ledger.mjs && node scripts/check-terminal-host-provenance.mjs",
25
25
  "check:customization-ready": "node scripts/check-owned-ui-customization-prerequisites.mjs",
26
26
  "check:deprecated": "node scripts/check-deprecated-dependencies.mjs",
27
27
  "check": "npm run typecheck && npm run check:architecture && npm run check:customization-ready && npm run check:deprecated && npm test && npm run test:release",
@@ -33,6 +33,9 @@
33
33
  "test:release": "node scripts/run-release-gates.mjs",
34
34
  "test:terminal-host": "node scripts/run-terminal-host-probe.mjs",
35
35
  "test:pi-terminal-parity": "npm run build --silent && node scripts/run-pi-terminal-parity.mjs",
36
+ "test:pi-engine-conformance": "vitest run test/foundation/pi-engine-adapter/conformance.test.ts test/foundation/pi-engine-adapter/runtime-integration.test.ts test/foundation/pi-engine-adapter/session-integration.test.ts",
37
+ "report:pi-engine-conformance": "npm run build --silent && node scripts/run-pi-engine-conformance.mjs",
38
+ "sync:pi-ui": "npm run update:pi-component-parity && npm run update:pi-event-frame-parity",
36
39
  "update:pi-component-parity": "tsx scripts/update-pi-component-parity.ts",
37
40
  "update:pi-event-frame-parity": "tsx scripts/update-pi-event-frame-parity.ts",
38
41
  "proof:terminal-host": "node scripts/run-terminal-host.mjs",
@@ -67,6 +70,10 @@
67
70
  ],
68
71
  "author": "Timur Prokopiev",
69
72
  "license": "MIT",
73
+ "repository": {
74
+ "type": "git",
75
+ "url": "https://github.com/timurproko/a1"
76
+ },
70
77
  "publishConfig": {
71
78
  "access": "public"
72
79
  }
package/bin/addone-ui.js DELETED
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const { runSelectedInteractiveRuntime } = await import("../dist/src/features/launch/index.js");
4
-
5
- runSelectedInteractiveRuntime(process.env.ADDONE_LAUNCH_PROFILE ?? "addone", {
6
- ownedUi: async () => {
7
- const { runOwnedUi } = await import("../dist/src/features/owned-ui/index.js");
8
- return await runOwnedUi({ cwd: process.cwd() });
9
- },
10
- transparent: async profileId => {
11
- const { runTransparentForeground } = await import("../dist/src/foundation/transparent-terminal/main.js");
12
- return await runTransparentForeground({ profileId });
13
- },
14
- }).then(
15
- code => { process.exitCode = code; },
16
- error => {
17
- console.error(error instanceof Error ? error.stack ?? error.message : String(error));
18
- process.exitCode = 1;
19
- },
20
- );
@@ -1 +0,0 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/cli/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE1H,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,YAAY,6EAA6E,CAAC;AAEvG,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CAW/E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/cli/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAsD,MAAM,6BAA6B,CAAC;AAc1H,MAAM,CAAC,MAAM,YAAY,GAAG,0EAA0E,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAA6B,EAC7B,QAAqB,EACrB,MAAiB;IAEjB,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACxG,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChE,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAQD,MAAM,UAAU,kBAAkB,CAAC,UAA6B;IAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC5E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;IACpH,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;IAC7B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAC7F,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,8DAA8D,EAAE,CAAC;IACxH,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtD,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACvE,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC1E,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,uEAAuE,EAAE,CAAC;IACpI,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"version-stats.d.ts","sourceRoot":"","sources":["../../../src/cli/version-stats.ts"],"names":[],"mappings":"AAOA,UAAU,oBAAoB;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACxF,KAAK,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC9G,UAAU,aAAa;IAAG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAExF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAOD,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBnF"}