@12ui/design 0.2.26 → 0.2.28

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 (361) hide show
  1. package/README.md +72 -87
  2. package/SKILL.md +5 -5
  3. package/dist/branch-client.d.ts +7 -0
  4. package/dist/branch-client.d.ts.map +1 -1
  5. package/dist/branch-client.js +1 -0
  6. package/dist/branch-client.js.map +1 -1
  7. package/dist/branch-completion.d.ts +8 -0
  8. package/dist/branch-completion.d.ts.map +1 -1
  9. package/dist/branch-completion.js +84 -16
  10. package/dist/branch-completion.js.map +1 -1
  11. package/dist/branch-execution.d.ts +8 -0
  12. package/dist/branch-execution.d.ts.map +1 -1
  13. package/dist/branch-execution.js +62 -11
  14. package/dist/branch-execution.js.map +1 -1
  15. package/dist/branch-identity.d.ts +10 -4
  16. package/dist/branch-identity.d.ts.map +1 -1
  17. package/dist/branch-identity.js +9 -6
  18. package/dist/branch-identity.js.map +1 -1
  19. package/dist/branch-page-conversion.d.ts +14 -8
  20. package/dist/branch-page-conversion.d.ts.map +1 -1
  21. package/dist/branch-page-conversion.js +32 -15
  22. package/dist/branch-page-conversion.js.map +1 -1
  23. package/dist/branch-page-packaging.d.ts +31 -0
  24. package/dist/branch-page-packaging.d.ts.map +1 -0
  25. package/dist/branch-page-packaging.js +86 -0
  26. package/dist/branch-page-packaging.js.map +1 -0
  27. package/dist/branch-plan.d.ts +44 -0
  28. package/dist/branch-plan.d.ts.map +1 -1
  29. package/dist/branch-plan.js +89 -18
  30. package/dist/branch-plan.js.map +1 -1
  31. package/dist/branch-progress.d.ts +22 -0
  32. package/dist/branch-progress.d.ts.map +1 -1
  33. package/dist/branch-progress.js +46 -8
  34. package/dist/branch-progress.js.map +1 -1
  35. package/dist/branch-run-record.d.ts +36 -1
  36. package/dist/branch-run-record.d.ts.map +1 -1
  37. package/dist/branch-run-record.js.map +1 -1
  38. package/dist/branch-status.d.ts +2 -0
  39. package/dist/branch-status.d.ts.map +1 -1
  40. package/dist/branch-status.js +60 -15
  41. package/dist/branch-status.js.map +1 -1
  42. package/dist/branch-winner.d.ts +13 -15
  43. package/dist/branch-winner.d.ts.map +1 -1
  44. package/dist/branch-winner.js +25 -77
  45. package/dist/branch-winner.js.map +1 -1
  46. package/dist/cli-auth-command.d.ts.map +1 -1
  47. package/dist/cli-auth-command.js +5 -0
  48. package/dist/cli-auth-command.js.map +1 -1
  49. package/dist/cli-auth-onboarding.d.ts +12 -0
  50. package/dist/cli-auth-onboarding.d.ts.map +1 -0
  51. package/dist/cli-auth-onboarding.js +21 -0
  52. package/dist/cli-auth-onboarding.js.map +1 -0
  53. package/dist/cli-branch-command.d.ts +14 -19
  54. package/dist/cli-branch-command.d.ts.map +1 -1
  55. package/dist/cli-branch-command.js +207 -137
  56. package/dist/cli-branch-command.js.map +1 -1
  57. package/dist/cli-capabilities.d.ts +10 -51
  58. package/dist/cli-capabilities.d.ts.map +1 -1
  59. package/dist/cli-capabilities.js +13 -26
  60. package/dist/cli-capabilities.js.map +1 -1
  61. package/dist/cli-cli-command.d.ts +3 -0
  62. package/dist/cli-cli-command.d.ts.map +1 -1
  63. package/dist/cli-cli-command.js +15 -3
  64. package/dist/cli-cli-command.js.map +1 -1
  65. package/dist/cli-conversion-derivation.d.ts +30 -0
  66. package/dist/cli-conversion-derivation.d.ts.map +1 -0
  67. package/dist/{cli-export-command.js → cli-conversion-derivation.js} +178 -110
  68. package/dist/cli-conversion-derivation.js.map +1 -0
  69. package/dist/cli-conversion-output-directory.d.ts +5 -0
  70. package/dist/cli-conversion-output-directory.d.ts.map +1 -0
  71. package/dist/{cli-export-output-directory.js → cli-conversion-output-directory.js} +10 -10
  72. package/dist/cli-conversion-output-directory.js.map +1 -0
  73. package/dist/cli-convert-command.d.ts +9 -0
  74. package/dist/cli-convert-command.d.ts.map +1 -1
  75. package/dist/cli-convert-command.js +528 -158
  76. package/dist/cli-convert-command.js.map +1 -1
  77. package/dist/cli-corpus-command.d.ts.map +1 -1
  78. package/dist/cli-corpus-command.js +77 -10
  79. package/dist/cli-corpus-command.js.map +1 -1
  80. package/dist/cli-corpus-reference-downloads.d.ts +5 -0
  81. package/dist/cli-corpus-reference-downloads.d.ts.map +1 -1
  82. package/dist/cli-corpus-reference-downloads.js +18 -7
  83. package/dist/cli-corpus-reference-downloads.js.map +1 -1
  84. package/dist/cli-corpus-run.d.ts +9 -0
  85. package/dist/cli-corpus-run.d.ts.map +1 -1
  86. package/dist/cli-corpus-run.js +18 -0
  87. package/dist/cli-corpus-run.js.map +1 -1
  88. package/dist/cli-detach.d.ts +12 -4
  89. package/dist/cli-detach.d.ts.map +1 -1
  90. package/dist/cli-detach.js +49 -17
  91. package/dist/cli-detach.js.map +1 -1
  92. package/dist/cli-draft-command.d.ts +44 -61
  93. package/dist/cli-draft-command.d.ts.map +1 -1
  94. package/dist/cli-draft-command.js +307 -180
  95. package/dist/cli-draft-command.js.map +1 -1
  96. package/dist/cli-help/conversion.d.ts +30 -0
  97. package/dist/cli-help/conversion.d.ts.map +1 -0
  98. package/dist/cli-help/conversion.js +55 -0
  99. package/dist/cli-help/conversion.js.map +1 -0
  100. package/dist/cli-help/design.d.ts +74 -0
  101. package/dist/cli-help/design.d.ts.map +1 -0
  102. package/dist/cli-help/design.js +131 -0
  103. package/dist/cli-help/design.js.map +1 -0
  104. package/dist/cli-help/index.d.ts +224 -0
  105. package/dist/cli-help/index.d.ts.map +1 -0
  106. package/dist/cli-help/index.js +32 -0
  107. package/dist/cli-help/index.js.map +1 -0
  108. package/dist/cli-help/meta.d.ts +24 -0
  109. package/dist/cli-help/meta.d.ts.map +1 -0
  110. package/dist/cli-help/meta.js +30 -0
  111. package/dist/cli-help/meta.js.map +1 -0
  112. package/dist/cli-help/render.d.ts +4 -0
  113. package/dist/cli-help/render.d.ts.map +1 -0
  114. package/dist/cli-help/render.js +28 -0
  115. package/dist/cli-help/render.js.map +1 -0
  116. package/dist/cli-help/setup.d.ts +93 -0
  117. package/dist/cli-help/setup.d.ts.map +1 -0
  118. package/dist/cli-help/setup.js +142 -0
  119. package/dist/cli-help/setup.js.map +1 -0
  120. package/dist/cli-help/types.d.ts +10 -0
  121. package/dist/cli-help/types.d.ts.map +1 -0
  122. package/dist/cli-help/types.js +2 -0
  123. package/dist/cli-help/types.js.map +1 -0
  124. package/dist/cli-next-command.d.ts +11 -8
  125. package/dist/cli-next-command.d.ts.map +1 -1
  126. package/dist/cli-next-command.js +288 -88
  127. package/dist/cli-next-command.js.map +1 -1
  128. package/dist/cli-output-paths.d.ts +2 -23
  129. package/dist/cli-output-paths.d.ts.map +1 -1
  130. package/dist/cli-output-paths.js +2 -36
  131. package/dist/cli-output-paths.js.map +1 -1
  132. package/dist/cli-package-command.d.ts +1 -0
  133. package/dist/cli-package-command.d.ts.map +1 -1
  134. package/dist/cli-package-command.js +107 -34
  135. package/dist/cli-package-command.js.map +1 -1
  136. package/dist/cli-pending-auth.d.ts +20 -0
  137. package/dist/cli-pending-auth.d.ts.map +1 -0
  138. package/dist/cli-pending-auth.js +160 -0
  139. package/dist/cli-pending-auth.js.map +1 -0
  140. package/dist/cli-progress.d.ts +256 -75
  141. package/dist/cli-progress.d.ts.map +1 -1
  142. package/dist/cli-progress.js +425 -98
  143. package/dist/cli-progress.js.map +1 -1
  144. package/dist/cli-run.d.ts +2 -0
  145. package/dist/cli-run.d.ts.map +1 -1
  146. package/dist/cli-run.js +56 -75
  147. package/dist/cli-run.js.map +1 -1
  148. package/dist/cli-skill-command.d.ts +3 -0
  149. package/dist/cli-skill-command.d.ts.map +1 -1
  150. package/dist/cli-skill-command.js +26 -3
  151. package/dist/cli-skill-command.js.map +1 -1
  152. package/dist/cli-usage.d.ts +17 -8
  153. package/dist/cli-usage.d.ts.map +1 -1
  154. package/dist/cli-usage.js +55 -40
  155. package/dist/cli-usage.js.map +1 -1
  156. package/dist/config.d.ts +1 -0
  157. package/dist/config.d.ts.map +1 -1
  158. package/dist/config.js +8 -2
  159. package/dist/config.js.map +1 -1
  160. package/dist/conversion-client.d.ts +4 -0
  161. package/dist/conversion-client.d.ts.map +1 -1
  162. package/dist/conversion-client.js +23 -3
  163. package/dist/conversion-client.js.map +1 -1
  164. package/dist/conversion-outputs.d.ts +11 -0
  165. package/dist/conversion-outputs.d.ts.map +1 -1
  166. package/dist/conversion-outputs.js +13 -1
  167. package/dist/conversion-outputs.js.map +1 -1
  168. package/dist/conversion-receipt.d.ts +1 -1
  169. package/dist/conversion-receipt.js +1 -1
  170. package/dist/conversion-recovery.d.ts +20 -0
  171. package/dist/conversion-recovery.d.ts.map +1 -0
  172. package/dist/conversion-recovery.js +61 -0
  173. package/dist/conversion-recovery.js.map +1 -0
  174. package/dist/conversion-status-contract.js +1 -1
  175. package/dist/conversion-status-contract.js.map +1 -1
  176. package/dist/credential-setup.d.ts +9 -1
  177. package/dist/credential-setup.d.ts.map +1 -1
  178. package/dist/credential-setup.js +13 -1
  179. package/dist/credential-setup.js.map +1 -1
  180. package/dist/draft-adoption.d.ts +9 -3
  181. package/dist/draft-adoption.d.ts.map +1 -1
  182. package/dist/draft-adoption.js +26 -41
  183. package/dist/draft-adoption.js.map +1 -1
  184. package/dist/draft-identity.d.ts +9 -12
  185. package/dist/draft-identity.d.ts.map +1 -1
  186. package/dist/draft-identity.js +0 -0
  187. package/dist/draft-identity.js.map +1 -1
  188. package/dist/draft-run.d.ts +9 -19
  189. package/dist/draft-run.d.ts.map +1 -1
  190. package/dist/draft-run.js +67 -95
  191. package/dist/draft-run.js.map +1 -1
  192. package/dist/draft-workspace.d.ts +26 -18
  193. package/dist/draft-workspace.d.ts.map +1 -1
  194. package/dist/draft-workspace.js +16 -5
  195. package/dist/draft-workspace.js.map +1 -1
  196. package/dist/hosted-draft-identity.d.ts +20 -0
  197. package/dist/hosted-draft-identity.d.ts.map +1 -0
  198. package/dist/hosted-draft-identity.js +30 -0
  199. package/dist/hosted-draft-identity.js.map +1 -0
  200. package/dist/hosted-draft-run.d.ts +60 -0
  201. package/dist/hosted-draft-run.d.ts.map +1 -0
  202. package/dist/hosted-draft-run.js +97 -0
  203. package/dist/hosted-draft-run.js.map +1 -0
  204. package/dist/legacy-codex-cleanup.d.ts +13 -0
  205. package/dist/legacy-codex-cleanup.d.ts.map +1 -1
  206. package/dist/legacy-codex-cleanup.js +83 -0
  207. package/dist/legacy-codex-cleanup.js.map +1 -1
  208. package/dist/legacy-skill-catalog.d.ts +2 -2
  209. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  210. package/dist/legacy-skill-catalog.js +76 -5
  211. package/dist/legacy-skill-catalog.js.map +1 -1
  212. package/dist/login-auth.d.ts +38 -0
  213. package/dist/login-auth.d.ts.map +1 -1
  214. package/dist/login-auth.js +67 -16
  215. package/dist/login-auth.js.map +1 -1
  216. package/dist/mcp-tool-definitions.js +1 -1
  217. package/dist/mcp-tool-definitions.js.map +1 -1
  218. package/dist/next-target.d.ts +1 -4
  219. package/dist/next-target.d.ts.map +1 -1
  220. package/dist/next-target.js +5 -9
  221. package/dist/next-target.js.map +1 -1
  222. package/dist/next-wait-lease.d.ts +17 -0
  223. package/dist/next-wait-lease.d.ts.map +1 -0
  224. package/dist/next-wait-lease.js +92 -0
  225. package/dist/next-wait-lease.js.map +1 -0
  226. package/dist/operation-poll-policy.d.ts +89 -0
  227. package/dist/operation-poll-policy.d.ts.map +1 -0
  228. package/dist/operation-poll-policy.js +99 -0
  229. package/dist/operation-poll-policy.js.map +1 -0
  230. package/dist/package-client.d.ts +30 -0
  231. package/dist/package-client.d.ts.map +1 -1
  232. package/dist/package-client.js +48 -9
  233. package/dist/package-client.js.map +1 -1
  234. package/dist/package-submission.d.ts +17 -0
  235. package/dist/package-submission.d.ts.map +1 -1
  236. package/dist/package-submission.js +43 -2
  237. package/dist/package-submission.js.map +1 -1
  238. package/dist/pending-auth-store.d.ts +15 -0
  239. package/dist/pending-auth-store.d.ts.map +1 -0
  240. package/dist/pending-auth-store.js +90 -0
  241. package/dist/pending-auth-store.js.map +1 -0
  242. package/dist/responsive-quality.d.ts +2 -2
  243. package/dist/responsive-quality.js +2 -2
  244. package/dist/run-journal-commands.d.ts.map +1 -1
  245. package/dist/run-journal-commands.js +30 -78
  246. package/dist/run-journal-commands.js.map +1 -1
  247. package/dist/run-journal-in-flight.d.ts +2 -2
  248. package/dist/run-journal-in-flight.d.ts.map +1 -1
  249. package/dist/run-journal-in-flight.js +0 -0
  250. package/dist/run-journal-in-flight.js.map +1 -1
  251. package/dist/skill-installer.d.ts +2 -2
  252. package/dist/skill-installer.d.ts.map +1 -1
  253. package/dist/skill-installer.js +2 -2
  254. package/dist/skill-installer.js.map +1 -1
  255. package/open-design.json +3 -3
  256. package/package.json +1 -1
  257. package/skills/12ui-design/SKILL.md +62 -0
  258. package/skills/12ui-design/agents/openai.yaml +6 -0
  259. package/skills/12ui-design/inspire.md +11 -0
  260. package/dist/cli-create-command.d.ts +0 -59
  261. package/dist/cli-create-command.d.ts.map +0 -1
  262. package/dist/cli-create-command.js +0 -354
  263. package/dist/cli-create-command.js.map +0 -1
  264. package/dist/cli-export-command.d.ts +0 -26
  265. package/dist/cli-export-command.d.ts.map +0 -1
  266. package/dist/cli-export-command.js.map +0 -1
  267. package/dist/cli-export-output-directory.d.ts +0 -5
  268. package/dist/cli-export-output-directory.d.ts.map +0 -1
  269. package/dist/cli-export-output-directory.js.map +0 -1
  270. package/dist/cli-image-batch-command.d.ts +0 -29
  271. package/dist/cli-image-batch-command.d.ts.map +0 -1
  272. package/dist/cli-image-batch-command.js +0 -236
  273. package/dist/cli-image-batch-command.js.map +0 -1
  274. package/dist/cli-image-batch-materialize.d.ts +0 -27
  275. package/dist/cli-image-batch-materialize.d.ts.map +0 -1
  276. package/dist/cli-image-batch-materialize.js +0 -41
  277. package/dist/cli-image-batch-materialize.js.map +0 -1
  278. package/dist/cli-image-batch-resume.d.ts +0 -36
  279. package/dist/cli-image-batch-resume.d.ts.map +0 -1
  280. package/dist/cli-image-batch-resume.js +0 -176
  281. package/dist/cli-image-batch-resume.js.map +0 -1
  282. package/dist/cli-image-command.d.ts +0 -10
  283. package/dist/cli-image-command.d.ts.map +0 -1
  284. package/dist/cli-image-command.js +0 -106
  285. package/dist/cli-image-command.js.map +0 -1
  286. package/dist/cli-select-command.d.ts +0 -16
  287. package/dist/cli-select-command.d.ts.map +0 -1
  288. package/dist/cli-select-command.js +0 -60
  289. package/dist/cli-select-command.js.map +0 -1
  290. package/dist/create-identity.d.ts +0 -25
  291. package/dist/create-identity.d.ts.map +0 -1
  292. package/dist/create-identity.js +0 -0
  293. package/dist/create-identity.js.map +0 -1
  294. package/dist/draft-prompts.d.ts +0 -35
  295. package/dist/draft-prompts.d.ts.map +0 -1
  296. package/dist/draft-prompts.js +0 -51
  297. package/dist/draft-prompts.js.map +0 -1
  298. package/dist/image-batch-status.d.ts +0 -42
  299. package/dist/image-batch-status.d.ts.map +0 -1
  300. package/dist/image-batch-status.js +0 -143
  301. package/dist/image-batch-status.js.map +0 -1
  302. package/dist/image-generation-batch-attempt.d.ts +0 -28
  303. package/dist/image-generation-batch-attempt.d.ts.map +0 -1
  304. package/dist/image-generation-batch-attempt.js +0 -48
  305. package/dist/image-generation-batch-attempt.js.map +0 -1
  306. package/dist/image-generation-batch-manifest.d.ts +0 -25
  307. package/dist/image-generation-batch-manifest.d.ts.map +0 -1
  308. package/dist/image-generation-batch-manifest.js +0 -97
  309. package/dist/image-generation-batch-manifest.js.map +0 -1
  310. package/dist/image-generation-completion.d.ts +0 -43
  311. package/dist/image-generation-completion.d.ts.map +0 -1
  312. package/dist/image-generation-completion.js +0 -54
  313. package/dist/image-generation-completion.js.map +0 -1
  314. package/dist/image-generation-error.d.ts +0 -3
  315. package/dist/image-generation-error.d.ts.map +0 -1
  316. package/dist/image-generation-error.js +0 -30
  317. package/dist/image-generation-error.js.map +0 -1
  318. package/dist/image-generation-evidence.d.ts +0 -43
  319. package/dist/image-generation-evidence.d.ts.map +0 -1
  320. package/dist/image-generation-evidence.js +0 -28
  321. package/dist/image-generation-evidence.js.map +0 -1
  322. package/dist/image-generation-fs.d.ts +0 -3
  323. package/dist/image-generation-fs.d.ts.map +0 -1
  324. package/dist/image-generation-fs.js +0 -23
  325. package/dist/image-generation-fs.js.map +0 -1
  326. package/dist/image-generation-output.d.ts +0 -3
  327. package/dist/image-generation-output.d.ts.map +0 -1
  328. package/dist/image-generation-output.js +0 -51
  329. package/dist/image-generation-output.js.map +0 -1
  330. package/dist/image-generation-request.d.ts +0 -43
  331. package/dist/image-generation-request.d.ts.map +0 -1
  332. package/dist/image-generation-request.js +0 -52
  333. package/dist/image-generation-request.js.map +0 -1
  334. package/dist/image-generation-resume.d.ts +0 -49
  335. package/dist/image-generation-resume.d.ts.map +0 -1
  336. package/dist/image-generation-resume.js +0 -96
  337. package/dist/image-generation-resume.js.map +0 -1
  338. package/dist/image-generation-run.d.ts +0 -46
  339. package/dist/image-generation-run.d.ts.map +0 -1
  340. package/dist/image-generation-run.js +0 -158
  341. package/dist/image-generation-run.js.map +0 -1
  342. package/dist/image-generation-staging.d.ts +0 -25
  343. package/dist/image-generation-staging.d.ts.map +0 -1
  344. package/dist/image-generation-staging.js +0 -80
  345. package/dist/image-generation-staging.js.map +0 -1
  346. package/dist/image-generation-usage.d.ts +0 -75
  347. package/dist/image-generation-usage.d.ts.map +0 -1
  348. package/dist/image-generation-usage.js +0 -219
  349. package/dist/image-generation-usage.js.map +0 -1
  350. package/dist/image-provider-preflight.d.ts +0 -21
  351. package/dist/image-provider-preflight.d.ts.map +0 -1
  352. package/dist/image-provider-preflight.js +0 -184
  353. package/dist/image-provider-preflight.js.map +0 -1
  354. package/dist/selection-record.d.ts +0 -97
  355. package/dist/selection-record.d.ts.map +0 -1
  356. package/dist/selection-record.js +0 -138
  357. package/dist/selection-record.js.map +0 -1
  358. package/skills/design/SKILL.md +0 -116
  359. package/skills/design/agents/openai.yaml +0 -8
  360. package/skills/design/assets/large-logo.svg +0 -3
  361. package/skills/design/assets/small-400px.png +0 -0
@@ -1,5 +1,5 @@
1
1
  import type { BranchScope } from './branch-identity.js';
2
- import type { BranchNormalizedPlan } from './branch-plan.js';
2
+ import type { BranchNormalizedPlan, BranchPlanTrim } from './branch-plan.js';
3
3
  /**
4
4
  * The two durable records of a branch run.
5
5
  *
@@ -61,6 +61,9 @@ export type BranchCompletionScreen = {
61
61
  pageIndex: number;
62
62
  pageId: string;
63
63
  viewportOrdinal: number;
64
+ /** Original generation placement when packaging moved this state to a page. */
65
+ generationPageIndex?: number;
66
+ generationViewportOrdinal?: number;
64
67
  /** `blocked` is a screen a FAILED dependency put permanently out of reach. */
65
68
  status: 'succeeded' | 'failed' | 'blocked';
66
69
  direction: string;
@@ -86,6 +89,16 @@ export type BranchCompletionPage = {
86
89
  slots: string[];
87
90
  /** Viewport 1 of a source page is the approved winner, not a generated slot. */
88
91
  startsFromWinner: boolean;
92
+ /** Logical planner page before app states became separate conversion pages. */
93
+ sourcePageIndex?: number;
94
+ sourcePageId?: string;
95
+ sourceViewportOrdinal?: number;
96
+ /**
97
+ * Present (always `true`) on a source page the wire plan omitted because the
98
+ * approved screen already ends. The page is the client's, its content is the
99
+ * user's approved design. Additive and absent otherwise.
100
+ */
101
+ synthesized?: true;
89
102
  conversion?: {
90
103
  status: 'succeeded' | 'failed' | 'skipped';
91
104
  reason?: string;
@@ -149,6 +162,28 @@ export type BranchCompletion = {
149
162
  succeededCount: number;
150
163
  failedCount: number;
151
164
  blockedCount: number;
165
+ /** Pages in the plan this run executed. Additive; `pages.length`, stated. */
166
+ pageCount?: number;
167
+ /** Planner page groups before surface-aware packaging. */
168
+ logicalPageCount?: number;
169
+ /** Pages whose conversion succeeded. 0 when the run did not convert. */
170
+ convertedPageCount?: number;
171
+ /**
172
+ * Present (always `true`) when a page that starts from the approved winner
173
+ * did not convert — failed, or skipped, both of which lose the approved
174
+ * design. A run that converts every speculative sibling and drops the
175
+ * approved page must not read like one that dropped a sibling — the winner
176
+ * page is the run's reason to exist. Additive and absent otherwise, so
177
+ * readers of older completions are unaffected.
178
+ */
179
+ winnerPageFailed?: true;
180
+ /**
181
+ * What `--max-screens` left out. The cap is the caller's own instruction, so
182
+ * a trimmed run still succeeds — but the pages it never planted are named
183
+ * here, in the plan record, and in the notes, rather than left to be found by
184
+ * diffing the plan against the site. Additive and absent otherwise.
185
+ */
186
+ trimmed?: BranchPlanTrim;
152
187
  /** The approved design the run branched from: viewport 1 of the source page. */
153
188
  winner?: {
154
189
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"branch-run-record.d.ts","sourceRoot":"","sources":["../src/branch-run-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-run-record.d.ts","sourceRoot":"","sources":["../src/branch-run-record.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"branch-run-record.js","sourceRoot":"","sources":["../src/branch-run-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-run-record.js","sourceRoot":"","sources":["../src/branch-run-record.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export declare const readBranchStatus: (args: {
7
7
  /** Optional live read of the run; omitted or failing falls back to disk. */
8
8
  refresh?: (runId: string) => Promise<BranchRunEnvelope | null>;
9
9
  now?: number;
10
+ /** Test seam for the process-liveness evidence used on an unmatched worker start. */
11
+ workerAlive?: (pid: number) => boolean;
10
12
  }) => Promise<BranchStatusReport>;
11
13
  //# sourceMappingURL=branch-status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch-status.d.ts","sourceRoot":"","sources":["../src/branch-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAoC9B,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,GACjC,SAAS,SAAS,oBAAoB,EAAE,EACxC,UAAU,iBAAiB,KAC1B,oBAAoB,EAkBtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,MAAM;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,KAAG,OAAO,CAAC,kBAAkB,CA2E7B,CAAC"}
1
+ {"version":3,"file":"branch-status.d.ts","sourceRoot":"","sources":["../src/branch-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AA0D9B,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,GACjC,SAAS,SAAS,oBAAoB,EAAE,EACxC,UAAU,iBAAiB,KAC1B,oBAAoB,EAkBtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,MAAM;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,KAAG,OAAO,CAAC,kBAAkB,CA0G7B,CAAC"}
@@ -4,6 +4,7 @@ import { CliRefusal } from './cli-refusal.js';
4
4
  import { branchProgressPath, readBranchProgress, summarizeBranchProgress, } from './branch-progress.js';
5
5
  import { branchAttemptPath, branchCompletionPath, branchPlanPath, readBranchAttempt, readBranchCompletion, } from './branch-run-record.js';
6
6
  import { MAX_CONCEPT_CHARACTERS } from './concept-input.js';
7
+ import { readRunJournal } from './run-journal.js';
7
8
  /**
8
9
  * `12ui branch status` — the answer to "is it still going?" that a second
9
10
  * session, or the same agent after a sleep, can ask without touching the run.
@@ -26,6 +27,22 @@ const phaseFor = (attemptStatus, progressPhase) => {
26
27
  default: return 'claiming';
27
28
  }
28
29
  };
30
+ const lastBranchWorkerInterruption = (entries, workerAlive, observedAt) => {
31
+ const last = entries.filter((entry) => ((entry.cmd === 'branch execute' || entry.cmd === 'branch resume') && !entry.detached)).at(-1);
32
+ if (!last)
33
+ return undefined;
34
+ const command = last.cmd === 'branch execute' ? 'branch execute' : 'branch resume';
35
+ if ((last.event === 'start' || last.event === 'progress') && !workerAlive(last.pid)) {
36
+ return { command, errorClass: 'worker_missing', occurredAt: observedAt };
37
+ }
38
+ if (last.event !== 'end' || last.outcome !== 'error')
39
+ return undefined;
40
+ return {
41
+ command,
42
+ errorClass: last.error_class ?? 'unclassified',
43
+ occurredAt: last.ts,
44
+ };
45
+ };
29
46
  /** Fold a live run envelope onto the last local snapshot. */
30
47
  export const mergeLiveBranchScreens = (screens, envelope) => {
31
48
  const live = new Map(envelope.candidates.map((candidate) => [candidate.slot, candidate]));
@@ -52,12 +69,13 @@ export const readBranchStatus = async (args) => {
52
69
  const attempt = await readBranchAttempt(branchAttemptPath(outDir));
53
70
  const completion = await readBranchCompletion(branchCompletionPath(outDir));
54
71
  const progress = await readBranchProgress(branchProgressPath(outDir));
72
+ const journal = await readRunJournal({ workspace: outDir });
55
73
  if (!attempt && !completion && !progress) {
56
74
  // Never started is not a failure and not a stall. Name the command that
57
75
  // starts it rather than reporting an absence the caller has to interpret.
58
76
  throw new CliRefusal(`This branch run has never been started — there is nothing to report, and nothing has`
59
77
  + ` failed. ${outDir} holds no branch attempt, progress, or completion record.`
60
- + ' Start one with `12ui branch execute --winner-run <crt-id> --winner-slot <slot>'
78
+ + ' Start one with `12ui branch execute --start <image.png>'
61
79
  + ` --concept <text,1-${MAX_CONCEPT_CHARACTERS}-chars> --scope page|site`
62
80
  + ' --out-dir <directory>`, which blocks for the whole'
63
81
  + ' run and streams progress.', 'branch_never_started');
@@ -74,6 +92,7 @@ export const readBranchStatus = async (args) => {
74
92
  completion,
75
93
  now: args.now ?? Date.now(),
76
94
  }),
95
+ scope: completion.scope,
77
96
  completionPath: branchCompletionPath(outDir),
78
97
  planPath: branchPlanPath(outDir),
79
98
  };
@@ -100,21 +119,47 @@ export const readBranchStatus = async (args) => {
100
119
  // snapshot is still a truthful account of motion.
101
120
  }
102
121
  }
122
+ const report = summarizeBranchProgress({
123
+ outDir,
124
+ ...(runId ? { runId } : {}),
125
+ phase: phaseFor(attempt?.status, progress?.phase),
126
+ screens,
127
+ // The half of the run that takes the longest. Without it a poll during
128
+ // conversion answered with the same sentence every time.
129
+ ...(progress?.packages ? { packages: progress.packages } : {}),
130
+ ...(progress?.pageCount === undefined ? {} : { pageCount: progress.pageCount }),
131
+ ...(progress?.logicalPageCount === undefined
132
+ ? {}
133
+ : { logicalPageCount: progress.logicalPageCount }),
134
+ ...(progress?.startedAt ?? attempt?.createdAt
135
+ ? { startedAt: progress?.startedAt ?? attempt.createdAt }
136
+ : {}),
137
+ ...(progress?.updatedAt ? { updatedAt: progress.updatedAt } : {}),
138
+ now: args.now ?? Date.now(),
139
+ });
140
+ const now = args.now ?? Date.now();
141
+ const workerAlive = args.workerAlive ?? ((pid) => {
142
+ try {
143
+ process.kill(pid, 0);
144
+ return true;
145
+ }
146
+ catch (error) {
147
+ return error.code !== 'ESRCH';
148
+ }
149
+ });
150
+ const interruption = lastBranchWorkerInterruption(journal.entries, workerAlive, new Date(now).toISOString());
103
151
  return {
104
- ...summarizeBranchProgress({
105
- outDir,
106
- ...(runId ? { runId } : {}),
107
- phase: phaseFor(attempt?.status, progress?.phase),
108
- screens,
109
- // The half of the run that takes the longest. Without it a poll during
110
- // conversion answered with the same sentence every time.
111
- ...(progress?.packages ? { packages: progress.packages } : {}),
112
- ...(progress?.startedAt ?? attempt?.createdAt
113
- ? { startedAt: progress?.startedAt ?? attempt.createdAt }
114
- : {}),
115
- ...(progress?.updatedAt ? { updatedAt: progress.updatedAt } : {}),
116
- now: args.now ?? Date.now(),
117
- }),
152
+ ...report,
153
+ ...(attempt?.scope ? { scope: attempt.scope } : {}),
154
+ ...(interruption
155
+ ? {
156
+ interruption,
157
+ narrative: `The local branch worker stopped with ${interruption.errorClass} during`
158
+ + ` ${report.phase}; no completion was written. The saved attempt and stable key remain`
159
+ + ' recoverable, and resume replays settled work.',
160
+ nextAction: `Resume with \`12ui branch resume ${outDir}\`.`,
161
+ }
162
+ : {}),
118
163
  planPath: branchPlanPath(outDir),
119
164
  };
120
165
  };
@@ -1 +1 @@
1
- {"version":3,"file":"branch-status.js","sourceRoot":"","sources":["../src/branch-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-status.js","sourceRoot":"","sources":["../src/branch-status.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,24 @@
1
1
  import type { BranchWinnerInput } from './branch-execution-types.js';
2
2
  import { type CliFlags } from './cli-arguments.js';
3
- export declare const imageWinner: (imagePath: string, label?: string) => Promise<BranchWinnerInput>;
4
- /**
5
- * The winner the run already recorded. Restating a decision is how the two
6
- * records drift apart, so a run directory that holds a selection needs no flag.
7
- */
8
- export declare const winnerFromSelection: (runDir: string) => Promise<BranchWinnerInput | null>;
9
3
  /**
10
- * Both accepted forms and a command the caller can paste. A refusal that only
11
- * says a starting design is required costs another round trip to find out how
12
- * to give one, and this one already cost a paid run on 2026-08-12.
4
+ * Which design a branch run grows from, resolved and proved before the run
5
+ * claims anything.
6
+ *
7
+ * The claim is not free: the service's build claim spends a metered plan call
8
+ * on the winning image before a single screen is dispatched. So the winner is
9
+ * the FIRST input this command settles, ahead of scope and concept, and a run
10
+ * that cannot name one stops here rather than one round trip later.
11
+ *
12
+ * Skill v2 removed the separate select/claim choreography. The starting design
13
+ * is now the one local image named by `--start`, with no implicit selection.
13
14
  */
15
+ export declare const imageWinner: (imagePath: string, label?: string) => Promise<BranchWinnerInput>;
14
16
  export declare const missingWinnerMessage: (args: {
15
- /** The draft run directory this command addressed, when it addressed one. */
16
- runDir: string | null;
17
- outDir: string;
17
+ outDir?: string;
18
18
  }) => string;
19
19
  export type BranchWinnerFlags = {
20
20
  flags: CliFlags;
21
- /** The draft run directory addressed, when the caller named one. */
22
- runDir: string | null;
23
- outDir: string;
21
+ outDir?: string;
24
22
  };
25
23
  /**
26
24
  * Resolve the starting design, or refuse with everything needed to fix it.
@@ -1 +1 @@
1
- {"version":3,"file":"branch-winner.d.ts","sourceRoot":"","sources":["../src/branch-winner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA6B/D,eAAO,MAAM,WAAW,GACtB,WAAW,MAAM,EACjB,cAAoB,KACnB,OAAO,CAAC,iBAAiB,CAc3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAM1F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM;IACzC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,MAqBH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,MAAM,iBAAiB,KAAG,OAAO,CAAC,iBAAiB,CAmD5F,CAAC"}
1
+ {"version":3,"file":"branch-winner.d.ts","sourceRoot":"","sources":["../src/branch-winner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK/D;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,WAAW,GACtB,WAAW,MAAM,EACjB,cAAoB,KACnB,OAAO,CAAC,iBAAiB,CAsB3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,MAWH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,MAAM,iBAAiB,KAAG,OAAO,CAAC,iBAAiB,CAe5F,CAAC"}
@@ -4,9 +4,7 @@ import path from 'node:path';
4
4
  import { stringFlag } from './cli-arguments.js';
5
5
  import { CliRefusal } from './cli-refusal.js';
6
6
  import { MAX_CONCEPT_CHARACTERS } from './concept-input.js';
7
- import { draftPaths } from './draft-workspace.js';
8
7
  import { classifyLocalConversionInput } from './local-conversion-input.js';
9
- import { readSelectionRecord } from './selection-record.js';
10
8
  /**
11
9
  * Which design a branch run grows from, resolved and proved before the run
12
10
  * claims anything.
@@ -16,19 +14,21 @@ import { readSelectionRecord } from './selection-record.js';
16
14
  * the FIRST input this command settles, ahead of scope and concept, and a run
17
15
  * that cannot name one stops here rather than one round trip later.
18
16
  *
19
- * There is exactly one implicit default, and it is a record rather than a
20
- * guess: `12ui select` wrote which candidate won, so `branch execute <run-dir>`
21
- * reads it instead of making the caller restate a decision. Nothing else is
22
- * inferred. Picking a candidate because it happens to be the only file on disk
23
- * would spend the plan call on a design nobody approved, which is worse than
24
- * asking.
17
+ * Skill v2 removed the separate select/claim choreography. The starting design
18
+ * is now the one local image named by `--start`, with no implicit selection.
25
19
  */
26
- const RUN_ID = /^crt-[a-f0-9]{40}$/u;
27
- const SLOT = /^[a-z]{1,2}$/u;
28
- const EXAMPLE_RUN_ID = `crt-${'0'.repeat(40)}`;
29
20
  export const imageWinner = async (imagePath, label = 'The winner') => {
30
21
  const resolved = path.resolve(imagePath);
31
- const classified = classifyLocalConversionInput(resolved);
22
+ const classified = (() => {
23
+ try {
24
+ return classifyLocalConversionInput(resolved);
25
+ }
26
+ catch (error) {
27
+ throw new CliRefusal(`${label} must be a PNG, JPEG, or WebP`, 'branch_winner_not_an_image', {
28
+ cause: error,
29
+ });
30
+ }
31
+ })();
32
32
  if (classified.kind !== 'image') {
33
33
  throw new CliRefusal(`${label} must be a PNG, JPEG, or WebP`, 'branch_winner_not_an_image');
34
34
  }
@@ -41,42 +41,14 @@ export const imageWinner = async (imagePath, label = 'The winner') => {
41
41
  sha256: createHash('sha256').update(bytes).digest('hex'),
42
42
  };
43
43
  };
44
- /**
45
- * The winner the run already recorded. Restating a decision is how the two
46
- * records drift apart, so a run directory that holds a selection needs no flag.
47
- */
48
- export const winnerFromSelection = async (runDir) => {
49
- const selection = await readSelectionRecord(draftPaths(runDir).selection);
50
- if (!selection)
51
- return null;
52
- const chosen = selection.candidates.find((candidate) => candidate.id === selection.winner);
53
- if (!chosen?.path)
54
- return null;
55
- return imageWinner(chosen.path);
56
- };
57
- /**
58
- * Both accepted forms and a command the caller can paste. A refusal that only
59
- * says a starting design is required costs another round trip to find out how
60
- * to give one, and this one already cost a paid run on 2026-08-12.
61
- */
62
44
  export const missingWinnerMessage = (args) => {
63
- const target = args.runDir ?? `--out-dir ${args.outDir}`;
64
- const example = args.runDir
65
- ? `12ui branch execute ${args.runDir} --scope page`
66
- + ` --concept "<what the surface must cover, ${MAX_CONCEPT_CHARACTERS} chars max>"`
67
- + ` --winner-image ${path.join(args.runDir, 'candidates', 'b.png')}`
68
- : `12ui branch execute --out-dir ${args.outDir} --scope page`
69
- + ` --concept "<what the surface must cover, ${MAX_CONCEPT_CHARACTERS} chars max>"`
70
- + ' --winner-image ./winner.png';
45
+ const example = '12ui branch execute --start ./approved.png --scope page'
46
+ + ` --concept "<what the surface must cover, ${MAX_CONCEPT_CHARACTERS} chars max>"`
47
+ + `${args.outDir ? ` --out-dir ${args.outDir}` : ''}`;
71
48
  return [
72
- `A branch run grows from one approved design and ${target} named none.`,
73
- args.runDir
74
- ? `Record the choice once with \`12ui select ${args.runDir} --winner <id> --reason "<why>"\``
75
- + ' and this command reads it, or name the design here:'
76
- : 'Name the design, or pass the draft run directory as `12ui branch execute <run-dir>` and'
77
- + ' the winner `12ui select` recorded is used:',
78
- ' --winner-image <file> a PNG, JPEG, or WebP on disk',
79
- ' --winner-run <crt-id> --winner-slot <slot> a candidate from a create run',
49
+ 'A branch run grows from one approved design and --start was not given.',
50
+ 'Pass the chosen draft, generated candidate, or existing design directly:',
51
+ ' --start <file> a PNG, JPEG, or WebP on disk',
80
52
  `Example:\n ${example}`,
81
53
  'Nothing was claimed and nothing was bought.',
82
54
  ].join('\n');
@@ -87,38 +59,14 @@ export const missingWinnerMessage = (args) => {
87
59
  * read, so it is safe to run before any client is built.
88
60
  */
89
61
  export const resolveBranchWinner = async (args) => {
90
- const runId = stringFlag(args.flags, 'winner-run')?.trim();
91
- const slot = stringFlag(args.flags, 'winner-slot')?.trim();
92
- const image = stringFlag(args.flags, 'winner-image')?.trim();
93
- if (image && runId) {
94
- throw new CliRefusal('A branch run starts from exactly one design, and both --winner-image and --winner-run were'
95
- + ' given. Drop one.', 'branch_winner_ambiguous');
96
- }
97
- if (image)
98
- return imageWinner(image, '--winner-image');
99
- if (runId) {
100
- if (!RUN_ID.test(runId)) {
101
- throw new CliRefusal(`--winner-run must be a crt- run id such as ${EXAMPLE_RUN_ID}, not ${runId}`, 'branch_winner_run_invalid');
102
- }
103
- if (!slot) {
104
- throw new CliRefusal(`--winner-run names the create run and --winner-slot names which candidate in it won;`
105
- + ` ${runId} on its own does not say. Add --winner-slot <slot>, for example`
106
- + ` \`--winner-run ${runId} --winner-slot a\`. Nothing was claimed and nothing was bought.`, 'branch_winner_slot_missing');
62
+ for (const retired of ['winner-image', 'winner-run', 'winner-slot']) {
63
+ if (args.flags[retired] !== undefined) {
64
+ throw new CliRefusal(`--${retired} retired from branch execute; pass the starting image with --start.`, 'branch_start_flag_retired');
107
65
  }
108
- if (!SLOT.test(slot)) {
109
- throw new CliRefusal(`--winner-slot must be a candidate slot such as a, not ${slot}`, 'branch_winner_slot_invalid');
110
- }
111
- return { kind: 'run', runId, slot };
112
- }
113
- if (slot) {
114
- throw new CliRefusal(`--winner-slot ${slot} names a candidate but not the run holding it. Add`
115
- + ` \`--winner-run <crt-id>\`, or point at the design directly with \`--winner-image <file>\`.`
116
- + ' Nothing was claimed and nothing was bought.', 'branch_winner_run_missing');
117
66
  }
118
- // No flag at all. The one recorded decision counts; nothing else is guessed.
119
- const recorded = args.runDir ? await winnerFromSelection(args.runDir) : null;
120
- if (recorded)
121
- return recorded;
122
- throw new CliRefusal(missingWinnerMessage({ runDir: args.runDir, outDir: args.outDir }), 'branch_winner_missing');
67
+ const image = stringFlag(args.flags, 'start')?.trim();
68
+ if (image)
69
+ return imageWinner(image, '--start');
70
+ throw new CliRefusal(missingWinnerMessage({ ...(args.outDir ? { outDir: args.outDir } : {}) }), 'branch_winner_missing');
123
71
  };
124
72
  //# sourceMappingURL=branch-winner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch-winner.js","sourceRoot":"","sources":["../src/branch-winner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-winner.js","sourceRoot":"","sources":["../src/branch-winner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-auth-command.d.ts","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"AAMA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAkD5E,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,KACd,OAAO,CAAC,IAAI,CAoEd,CAAC"}
1
+ {"version":3,"file":"cli-auth-command.d.ts","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAmD5E,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,KACd,OAAO,CAAC,IAAI,CAuEd,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { readStoredConversionCredentials, removeStoredConversionCredentials, resolveCredentialFile, } from './credential-store.js';
2
+ import { MissingTwelveUiCredentialError } from './cli-auth-onboarding.js';
2
3
  import { setUpConversionCredentials } from './credential-setup.js';
3
4
  import { booleanFlag, stringFlag } from './cli-arguments.js';
4
5
  import { declareClientVersion } from './client-version.js';
5
6
  import { usageRefusal } from './cli-usage.js';
7
+ import { hasConfiguredConversionCredential } from './config.js';
6
8
  import { revokeConvertApiKey, TWELVE_UI_DEVICE_SCOPES, verifyTwelveUiCredential, } from './login-auth.js';
7
9
  const readQuota = async (origin, apiKey) => {
8
10
  const response = await fetch(`${origin}/api/v1/convert/quota`, {
@@ -57,6 +59,9 @@ export const runAuthCommand = async (action, flags) => {
57
59
  }
58
60
  const stored = await readStoredConversionCredentials();
59
61
  if (!stored) {
62
+ if (!hasConfiguredConversionCredential(stringFlag(flags, 'api-key'))) {
63
+ throw new MissingTwelveUiCredentialError();
64
+ }
60
65
  throw new Error(`12ui credentials are not configured at ${resolveCredentialFile()}`);
61
66
  }
62
67
  if (action === 'status') {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-auth-command.js","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-auth-command.js","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAE,MAAc,EAAoB,EAAE;IAC3E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,uBAAuB,EAAE;QAC7D,OAAO,EAAE,oBAAoB,CAAC,IAAI,OAAO,CAAC;YACxC,MAAM,EAAE,kBAAkB;YAC1B,aAAa,EAAE,UAAU,MAAM,EAAE;SAClC,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;eACrD,OAAQ,KAAiC,CAAC,MAAM,KAAK,QAAQ;YAChE,CAAC,CAAE,KAAiC,CAAC,MAAM;YAC3C,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,KAAK,EAC1C,MAAc,EACd,WAA+B,EACM,EAAE;IACvC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,wBAAwB,CAAC;gBACpC,MAAM;gBACN,WAAW;gBACX,cAAc,EAAE,CAAC,KAAK,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,cAAc,CACtB,QAAQ,EACR,iFAAiF,CAClF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAA0B,EAC1B,KAAe,EACA,EAAE;IACjB,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC;YACnD,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;YACpC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;YACnC,WAAW;YACX,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC;YACtC,mBAAmB,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,SAAS;YAC/D,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,gCAAgC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE;cACzF,oBAAoB,WAAW,CAAC,cAAc,GAAG,CACpD,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,+BAA+B,EAAE,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,8BAA8B,EAAE,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,MAAM,8BAA8B,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtF,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,eAAe;YAC3B,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,eAAe;YACvB,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,cAAc,EAAE,qBAAqB,EAAE;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;QACF,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACxE,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,eAAe;gBACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChC,CAAC,CAAC,wEAAwE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,mBAAmB,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,iCAAiC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IACD,MAAM,YAAY,CAAC;QACjB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,WAAW,CAAC,CAAC,CAAC,0BAA0B,EAAE;cACrE,mEAAmE;QACvE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,CAAC,MAAM,CAAC;KACf,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const TWELVE_UI_CONNECT_CLI_URL = "https://12ui.com/connect-cli";
2
+ export declare const authOnboardingMessage: (options?: {
3
+ agentFacing?: boolean;
4
+ approvalUrl?: string;
5
+ }) => string;
6
+ export declare const printAuthOnboarding: (options?: {
7
+ approvalUrl?: string;
8
+ }) => void;
9
+ export declare class MissingTwelveUiCredentialError extends Error {
10
+ constructor(approvalUrl?: string);
11
+ }
12
+ //# sourceMappingURL=cli-auth-onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-auth-onboarding.d.ts","sourceRoot":"","sources":["../src/cli-auth-onboarding.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,iCAAiC,CAAC;AASxE,eAAO,MAAM,qBAAqB,GAAI,UAAS;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,MAGG,CAAC;AAEb,eAAO,MAAM,mBAAmB,GAAI,UAAS;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,IAIR,CAAC;AAEF,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,WAAW,CAAC,EAAE,MAAM;CAIjC"}
@@ -0,0 +1,21 @@
1
+ export const TWELVE_UI_CONNECT_CLI_URL = 'https://12ui.com/connect-cli';
2
+ const ownerAuthOnboardingLines = (approvalUrl) => [
3
+ `Sign in/Create an account with this magic link: ${approvalUrl}`,
4
+ 'Takes 5 seconds and you can use 12ui for free.',
5
+ ];
6
+ const AGENT_AUTH_ONBOARDING_LINE = 'Agent: Give this link to your user, then retry after they connect 12ui.';
7
+ export const authOnboardingMessage = (options = {}) => [
8
+ ...ownerAuthOnboardingLines(options.approvalUrl ?? TWELVE_UI_CONNECT_CLI_URL),
9
+ ...(options.agentFacing ? [AGENT_AUTH_ONBOARDING_LINE] : []),
10
+ ].join('\n');
11
+ export const printAuthOnboarding = (options = {}) => {
12
+ for (const line of ownerAuthOnboardingLines(options.approvalUrl ?? TWELVE_UI_CONNECT_CLI_URL))
13
+ console.log(line);
14
+ };
15
+ export class MissingTwelveUiCredentialError extends Error {
16
+ constructor(approvalUrl) {
17
+ super(authOnboardingMessage({ agentFacing: true, approvalUrl }));
18
+ this.name = 'MissingTwelveUiCredentialError';
19
+ }
20
+ }
21
+ //# sourceMappingURL=cli-auth-onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-auth-onboarding.js","sourceRoot":"","sources":["../src/cli-auth-onboarding.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AAExE,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAqB,EAAE,CAAC;IAC3E,mDAAmD,WAAW,EAAE;IAChE,gDAAgD;CACjD,CAAC;AAEF,MAAM,0BAA0B,GAAG,yEAAyE,CAAC;AAE7G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAGlC,EAAE,EAAU,EAAE,CAAC;IACjB,GAAG,wBAAwB,CAAC,OAAO,CAAC,WAAW,IAAI,yBAAyB,CAAC;IAC7E,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAEhC,EAAE,EAAQ,EAAE;IACd,KAAK,MAAM,IAAI,IAAI,wBAAwB,CACzC,OAAO,CAAC,WAAW,IAAI,yBAAyB,CACjD;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IACvD,YAAY,WAAoB;QAC9B,KAAK,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF"}
@@ -17,10 +17,9 @@ export type ResolvedBranchDirectory = {
17
17
  runDir: string | null;
18
18
  };
19
19
  /**
20
- * `12ui branch execute <run-dir>` takes the DRAFT run directory and keeps its
21
- * own records in `<run-dir>/branch`, which is where the skill says the pages
22
- * land. `--out-dir` stays an alias that names the branch directory outright,
23
- * for a branch run with no draft behind it.
20
+ * Execute creates a run directory when none is supplied. `--out-dir` and the
21
+ * positional used by resume both name the run directory; records live beneath
22
+ * it in `<run-dir>/branch`.
24
23
  *
25
24
  * `branch status` accepts either spelling: a directory that already holds
26
25
  * branch records is one, and otherwise `<dir>/branch` is tried, so a caller who
@@ -31,26 +30,22 @@ export declare const resolveBranchDirectory: (args: {
31
30
  runDirArgument?: string;
32
31
  outDirFlag?: string;
33
32
  }) => Promise<ResolvedBranchDirectory>;
34
- /**
35
- * The opening line is the only estimate a caller has before anything moves, so
36
- * it is derived from the run's phases rather than asserted. Pages now convert as
37
- * their own screens land and several at a time, which is why the old sentence —
38
- * one package per page, serial, ~20m for a site — would now overstate a normal
39
- * run by roughly a factor of two, and an overstated wait is what makes a caller
40
- * abandon a run that is on time.
41
- */
42
- export declare const branchExecuteBanner: (args: {
43
- scope: "page" | "site";
44
- outDir: string;
45
- convert: boolean;
46
- concurrency?: number;
47
- }) => string;
33
+ /** Validate every execute input before a detached parent creates its workspace. */
34
+ export declare const prepareDetachedBranchDirectory: (args: {
35
+ flags: CliFlags;
36
+ workspaceRoot?: string;
37
+ }) => Promise<ResolvedBranchDirectory>;
48
38
  export declare const runBranchCommand: (action: string | undefined, flags: CliFlags, dependencies?: {
49
39
  readConfig?: typeof readConversionConfig;
50
40
  createBranchClient?: (config: ReturnType<typeof readConversionConfig>) => TwelveUiBranchClient;
51
41
  createPackageClient?: (config: ReturnType<typeof readConversionConfig>) => TwelveUiConversionPackageClient;
52
- /** The positional `<run-dir>` from `12ui branch execute <run-dir>`. */
42
+ /** Internal detached-worker positional, or the public resume run directory. */
53
43
  runDirArgument?: string;
44
+ /** Test-only root for an automatically created run directory. */
45
+ workspaceRoot?: string;
46
+ /** Receives the run directory as the command's first output line. */
47
+ write?: (line: string) => void;
48
+ onRunDirectory?: (runDir: string) => void;
54
49
  /** Where this command writes down what it did. */
55
50
  journal?: RunJournalNotes;
56
51
  }) => Promise<void>;