@12ui/design 0.2.82 → 0.2.84

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 (259) hide show
  1. package/README.md +4 -1
  2. package/SKILL.md +1 -1
  3. package/dist/branch-execution.d.ts.map +1 -1
  4. package/dist/branch-execution.js +6 -0
  5. package/dist/branch-execution.js.map +1 -1
  6. package/dist/branch-materialize.d.ts.map +1 -1
  7. package/dist/branch-materialize.js +6 -2
  8. package/dist/branch-materialize.js.map +1 -1
  9. package/dist/cli-capabilities.d.ts +2 -5
  10. package/dist/cli-capabilities.d.ts.map +1 -1
  11. package/dist/cli-capabilities.js +2 -2
  12. package/dist/cli-capabilities.js.map +1 -1
  13. package/dist/cli-help/conversion.d.ts +1 -1
  14. package/dist/cli-help/conversion.js +1 -1
  15. package/dist/cli-help/conversion.js.map +1 -1
  16. package/dist/cli-help/index.d.ts +1 -1
  17. package/dist/cli-image-backend.d.ts +6 -1
  18. package/dist/cli-image-backend.d.ts.map +1 -1
  19. package/dist/cli-image-backend.js +8 -3
  20. package/dist/cli-image-backend.js.map +1 -1
  21. package/dist/cli-local-runtime.d.ts +6 -0
  22. package/dist/cli-local-runtime.d.ts.map +1 -1
  23. package/dist/cli-local-runtime.js +14 -1
  24. package/dist/cli-local-runtime.js.map +1 -1
  25. package/dist/cli-usage.js +3 -3
  26. package/dist/cli-workspace-draw.d.ts.map +1 -1
  27. package/dist/cli-workspace-draw.js +2 -0
  28. package/dist/cli-workspace-draw.js.map +1 -1
  29. package/dist/cli-workspace-runner.d.ts.map +1 -1
  30. package/dist/cli-workspace-runner.js +2 -1
  31. package/dist/cli-workspace-runner.js.map +1 -1
  32. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  33. package/dist/legacy-skill-catalog.js +24 -1
  34. package/dist/legacy-skill-catalog.js.map +1 -1
  35. package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
  36. package/dist/mcp-slate-tool-defs.js +3 -2
  37. package/dist/mcp-slate-tool-defs.js.map +1 -1
  38. package/dist/mcp-slate-ui-copy.d.ts +10 -0
  39. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  40. package/dist/mcp-slate-ui-copy.js +9 -0
  41. package/dist/mcp-slate-ui-copy.js.map +1 -1
  42. package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
  43. package/dist/mcp-slate-ui-locales/de-DE.js +5 -0
  44. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  45. package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
  46. package/dist/mcp-slate-ui-locales/es-419.js +5 -0
  47. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  48. package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
  49. package/dist/mcp-slate-ui-locales/es-ES.js +5 -0
  50. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  51. package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
  52. package/dist/mcp-slate-ui-locales/fr-FR.js +5 -0
  53. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  54. package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
  55. package/dist/mcp-slate-ui-locales/hi-IN.js +5 -0
  56. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  57. package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
  58. package/dist/mcp-slate-ui-locales/it-IT.js +5 -0
  59. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  60. package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
  61. package/dist/mcp-slate-ui-locales/ja-JP.js +5 -0
  62. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  63. package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
  64. package/dist/mcp-slate-ui-locales/ko-KR.js +5 -0
  65. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  66. package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
  67. package/dist/mcp-slate-ui-locales/pt-BR.js +5 -0
  68. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  69. package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
  70. package/dist/mcp-slate-ui-locales/zh-CN.js +5 -0
  71. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  72. package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
  73. package/dist/mcp-slate-ui-locales/zh-TW.js +5 -0
  74. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  75. package/dist/mcp-slate-ui-script-board.d.ts +19 -0
  76. package/dist/mcp-slate-ui-script-board.d.ts.map +1 -0
  77. package/dist/mcp-slate-ui-script-board.js +126 -0
  78. package/dist/mcp-slate-ui-script-board.js.map +1 -0
  79. package/dist/mcp-slate-ui-script-designs.d.ts +1 -1
  80. package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -1
  81. package/dist/mcp-slate-ui-script-designs.js +24 -15
  82. package/dist/mcp-slate-ui-script-designs.js.map +1 -1
  83. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts +5 -2
  84. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts.map +1 -1
  85. package/dist/mcp-slate-ui-script-inspiration-collage.js +9 -5
  86. package/dist/mcp-slate-ui-script-inspiration-collage.js.map +1 -1
  87. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +7 -4
  88. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -1
  89. package/dist/mcp-slate-ui-script-inspiration-gallery.js +46 -5
  90. package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -1
  91. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts.map +1 -1
  92. package/dist/mcp-slate-ui-script-inspiration-grid.js +4 -0
  93. package/dist/mcp-slate-ui-script-inspiration-grid.js.map +1 -1
  94. package/dist/mcp-slate-ui-script-pause.d.ts +4 -0
  95. package/dist/mcp-slate-ui-script-pause.d.ts.map +1 -1
  96. package/dist/mcp-slate-ui-script-pause.js +9 -2
  97. package/dist/mcp-slate-ui-script-pause.js.map +1 -1
  98. package/dist/mcp-slate-ui-script-peek.d.ts +16 -0
  99. package/dist/mcp-slate-ui-script-peek.d.ts.map +1 -0
  100. package/dist/mcp-slate-ui-script-peek.js +89 -0
  101. package/dist/mcp-slate-ui-script-peek.js.map +1 -0
  102. package/dist/mcp-slate-ui-script-references.d.ts +4 -2
  103. package/dist/mcp-slate-ui-script-references.d.ts.map +1 -1
  104. package/dist/mcp-slate-ui-script-references.js +39 -7
  105. package/dist/mcp-slate-ui-script-references.js.map +1 -1
  106. package/dist/mcp-slate-ui-script-remote.js +2 -2
  107. package/dist/mcp-slate-ui-script-viewer.d.ts +7 -2
  108. package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -1
  109. package/dist/mcp-slate-ui-script-viewer.js +183 -50
  110. package/dist/mcp-slate-ui-script-viewer.js.map +1 -1
  111. package/dist/mcp-slate-ui-script.d.ts.map +1 -1
  112. package/dist/mcp-slate-ui-script.js +4 -0
  113. package/dist/mcp-slate-ui-script.js.map +1 -1
  114. package/dist/mcp-slate-ui-styles-board.d.ts +7 -0
  115. package/dist/mcp-slate-ui-styles-board.d.ts.map +1 -0
  116. package/dist/mcp-slate-ui-styles-board.js +30 -0
  117. package/dist/mcp-slate-ui-styles-board.js.map +1 -0
  118. package/dist/mcp-slate-ui-styles-designs.d.ts +2 -1
  119. package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -1
  120. package/dist/mcp-slate-ui-styles-designs.js +10 -8
  121. package/dist/mcp-slate-ui-styles-designs.js.map +1 -1
  122. package/dist/mcp-slate-ui-styles-inspiration.d.ts.map +1 -1
  123. package/dist/mcp-slate-ui-styles-inspiration.js +13 -2
  124. package/dist/mcp-slate-ui-styles-inspiration.js.map +1 -1
  125. package/dist/mcp-slate-ui-styles-loading.d.ts +18 -0
  126. package/dist/mcp-slate-ui-styles-loading.d.ts.map +1 -0
  127. package/dist/mcp-slate-ui-styles-loading.js +37 -0
  128. package/dist/mcp-slate-ui-styles-loading.js.map +1 -0
  129. package/dist/mcp-slate-ui-styles-peek.d.ts +8 -0
  130. package/dist/mcp-slate-ui-styles-peek.d.ts.map +1 -0
  131. package/dist/mcp-slate-ui-styles-peek.js +13 -0
  132. package/dist/mcp-slate-ui-styles-peek.js.map +1 -0
  133. package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
  134. package/dist/mcp-slate-ui-styles.js +0 -3
  135. package/dist/mcp-slate-ui-styles.js.map +1 -1
  136. package/dist/mcp-slate-ui.d.ts.map +1 -1
  137. package/dist/mcp-slate-ui.js +4 -1
  138. package/dist/mcp-slate-ui.js.map +1 -1
  139. package/dist/prototype-browsers.d.ts +10 -2
  140. package/dist/prototype-browsers.d.ts.map +1 -1
  141. package/dist/prototype-browsers.js +27 -2
  142. package/dist/prototype-browsers.js.map +1 -1
  143. package/dist/server.d.ts.map +1 -1
  144. package/dist/server.js +2 -1
  145. package/dist/server.js.map +1 -1
  146. package/dist/slate-actions.d.ts +6 -7
  147. package/dist/slate-actions.d.ts.map +1 -1
  148. package/dist/slate-actions.js +6 -9
  149. package/dist/slate-actions.js.map +1 -1
  150. package/dist/slate-branch-runner.d.ts +120 -0
  151. package/dist/slate-branch-runner.d.ts.map +1 -0
  152. package/dist/slate-branch-runner.js +312 -0
  153. package/dist/slate-branch-runner.js.map +1 -0
  154. package/dist/slate-captions-local.d.ts +14 -0
  155. package/dist/slate-captions-local.d.ts.map +1 -0
  156. package/dist/slate-captions-local.js +70 -0
  157. package/dist/slate-captions-local.js.map +1 -0
  158. package/dist/slate-captions-remote.d.ts +29 -0
  159. package/dist/slate-captions-remote.d.ts.map +1 -0
  160. package/dist/slate-captions-remote.js +65 -0
  161. package/dist/slate-captions-remote.js.map +1 -0
  162. package/dist/slate-captions.d.ts +41 -0
  163. package/dist/slate-captions.d.ts.map +1 -0
  164. package/dist/slate-captions.js +112 -0
  165. package/dist/slate-captions.js.map +1 -0
  166. package/dist/slate-commit.d.ts.map +1 -1
  167. package/dist/slate-commit.js +8 -6
  168. package/dist/slate-commit.js.map +1 -1
  169. package/dist/slate-image-executor.d.ts +18 -3
  170. package/dist/slate-image-executor.d.ts.map +1 -1
  171. package/dist/slate-image-executor.js +18 -5
  172. package/dist/slate-image-executor.js.map +1 -1
  173. package/dist/slate-paths.d.ts +3 -1
  174. package/dist/slate-paths.d.ts.map +1 -1
  175. package/dist/slate-paths.js +8 -2
  176. package/dist/slate-paths.js.map +1 -1
  177. package/dist/slate-round-prompt.d.ts +0 -12
  178. package/dist/slate-round-prompt.d.ts.map +1 -1
  179. package/dist/slate-round-prompt.js +0 -15
  180. package/dist/slate-round-prompt.js.map +1 -1
  181. package/dist/slate-round-runner.d.ts.map +1 -1
  182. package/dist/slate-round-runner.js +8 -14
  183. package/dist/slate-round-runner.js.map +1 -1
  184. package/dist/slate-runner-context.d.ts +3 -0
  185. package/dist/slate-runner-context.d.ts.map +1 -1
  186. package/dist/slate-runner-context.js.map +1 -1
  187. package/dist/slate-runner-main.d.ts +3 -0
  188. package/dist/slate-runner-main.d.ts.map +1 -1
  189. package/dist/slate-runner-main.js +5 -1
  190. package/dist/slate-runner-main.js.map +1 -1
  191. package/dist/slate-runner-spawn.js +2 -2
  192. package/dist/slate-runner-spawn.js.map +1 -1
  193. package/dist/slate-site-references-capture.d.ts +38 -1
  194. package/dist/slate-site-references-capture.d.ts.map +1 -1
  195. package/dist/slate-site-references-capture.js +25 -7
  196. package/dist/slate-site-references-capture.js.map +1 -1
  197. package/dist/slate-site-references-client.d.ts +13 -1
  198. package/dist/slate-site-references-client.d.ts.map +1 -1
  199. package/dist/slate-site-references-client.js +39 -14
  200. package/dist/slate-site-references-client.js.map +1 -1
  201. package/dist/slate-site-references-local.d.ts +3 -0
  202. package/dist/slate-site-references-local.d.ts.map +1 -1
  203. package/dist/slate-site-references-local.js +20 -1
  204. package/dist/slate-site-references-local.js.map +1 -1
  205. package/dist/slate-site-references-suggest.d.ts +25 -2
  206. package/dist/slate-site-references-suggest.d.ts.map +1 -1
  207. package/dist/slate-site-references-suggest.js +71 -12
  208. package/dist/slate-site-references-suggest.js.map +1 -1
  209. package/dist/slate-site-references.d.ts +11 -0
  210. package/dist/slate-site-references.d.ts.map +1 -1
  211. package/dist/slate-site-references.js +42 -3
  212. package/dist/slate-site-references.js.map +1 -1
  213. package/dist/slate-view-contract.d.ts +39 -1
  214. package/dist/slate-view-contract.d.ts.map +1 -1
  215. package/dist/slate-view.d.ts.map +1 -1
  216. package/dist/slate-view.js +8 -0
  217. package/dist/slate-view.js.map +1 -1
  218. package/dist/slate-workspace-parse.d.ts.map +1 -1
  219. package/dist/slate-workspace-parse.js +35 -0
  220. package/dist/slate-workspace-parse.js.map +1 -1
  221. package/dist/slate-workspace-types.d.ts +31 -2
  222. package/dist/slate-workspace-types.d.ts.map +1 -1
  223. package/dist/workspace-draw-branch.d.ts +27 -0
  224. package/dist/workspace-draw-branch.d.ts.map +1 -0
  225. package/dist/workspace-draw-branch.js +101 -0
  226. package/dist/workspace-draw-branch.js.map +1 -0
  227. package/dist/workspace-draw-client.d.ts +27 -0
  228. package/dist/workspace-draw-client.d.ts.map +1 -1
  229. package/dist/workspace-draw-client.js +30 -0
  230. package/dist/workspace-draw-client.js.map +1 -1
  231. package/dist/workspace-draw-codex.d.ts +10 -7
  232. package/dist/workspace-draw-codex.d.ts.map +1 -1
  233. package/dist/workspace-draw-codex.js +41 -16
  234. package/dist/workspace-draw-codex.js.map +1 -1
  235. package/dist/workspace-draw-run.d.ts +19 -3
  236. package/dist/workspace-draw-run.d.ts.map +1 -1
  237. package/dist/workspace-draw-run.js +48 -6
  238. package/dist/workspace-draw-run.js.map +1 -1
  239. package/dist/workspace-draw-types.d.ts +23 -2
  240. package/dist/workspace-draw-types.d.ts.map +1 -1
  241. package/dist/workspace-draw-types.js.map +1 -1
  242. package/dist/workspace-runner-main.d.ts +9 -2
  243. package/dist/workspace-runner-main.d.ts.map +1 -1
  244. package/dist/workspace-runner-main.js +21 -2
  245. package/dist/workspace-runner-main.js.map +1 -1
  246. package/dist/workspace-runner-spawn.js +1 -1
  247. package/dist/workspace-runner-spawn.js.map +1 -1
  248. package/open-design.json +2 -2
  249. package/package.json +1 -1
  250. package/runtime/codex-conversion/bin/convert.mjs +1 -1
  251. package/runtime/codex-conversion/src/codex/caller-home.mjs +95 -0
  252. package/runtime/codex-conversion/src/codex/home.mjs +8 -2
  253. package/runtime/codex-conversion/src/images/execute.mjs +1 -1
  254. package/runtime/codex-conversion/src/images/native-invoke.mjs +21 -13
  255. package/runtime/codex-conversion/src/images/native-records.mjs +3 -1
  256. package/runtime/codex-conversion/src/images/native.mjs +42 -19
  257. package/runtime/codex-conversion/src/run.mjs +2 -1
  258. package/skills/12ui-design/SKILL.md +6 -6
  259. package/skills/12ui-design/outputs.md +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-draw-types.js","sourceRoot":"","sources":["../src/workspace-draw-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;CACP,CAAC;AAsDX,MAAM,CAAC,MAAM,aAAa,GAAG,8BAA8B,CAAC"}
1
+ {"version":3,"file":"workspace-draw-types.js","sourceRoot":"","sources":["../src/workspace-draw-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoDH,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;CACP,CAAC;AA0DX,MAAM,CAAC,MAAM,aAAa,GAAG,8BAA8B,CAAC"}
@@ -35,10 +35,17 @@ export type RunnerDependencies = {
35
35
  /** Extra dependencies for each draw (tests hand in the executor and the readiness probe). */
36
36
  drawDeps?: Partial<DrawDependencies>;
37
37
  /**
38
- * Gathers the References tab's websites (slate-site-references.ts). The runner starts it once, the first time a
39
- * round of its workspace waits on the person: the agent's command has handed that round to the runner and returned.
38
+ * Gathers the References tab's websites (slate-site-references.ts). The runner starts it once, on the first heartbeat
39
+ * that lists a request of its workspace, whether that round waits on the person (the agent's command handed it to the
40
+ * runner and returned) or not (the agent's command draws it, or the runner will): the sites then land while the
41
+ * person can still pick them for the first round, and a round that never pauses still gets them.
40
42
  */
41
43
  gatherReferences?: DrawDependencies['gatherReferences'];
44
+ /**
45
+ * Writes the one-line captions (slate-captions-remote.ts): for a round that waits on the person (the tabs' lines and
46
+ * that round's, in one call), and beside each draw of the runner's.
47
+ */
48
+ captions?: DrawDependencies['captions'];
42
49
  now?: () => number;
43
50
  sleep?: (milliseconds: number, signal: AbortSignal) => Promise<void>;
44
51
  policy?: Partial<typeof RUNNER_POLICY>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-runner-main.d.ts","sourceRoot":"","sources":["../src/workspace-runner-main.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE/F,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIvH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAY7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,MAAM,GACN,eAAe,GACf,eAAe,GACf,eAAe,GACf,cAAc,GACd,oBAAoB,GACpB,WAAW,GACX,WAAW,GACX,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oEAAoE;IACpE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5E,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;IACvC,sDAAsD;IACtD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,uHAAuH;AACvH,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAuC1G,eAAO,MAAM,kBAAkB,GAAU,MAAM;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,KAAG,OAAO,CAAC,aAAa,CAuRxB,CAAC"}
1
+ {"version":3,"file":"workspace-runner-main.d.ts","sourceRoot":"","sources":["../src/workspace-runner-main.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE/F,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIvH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAY7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,MAAM,GACN,eAAe,GACf,eAAe,GACf,eAAe,GACf,cAAc,GACd,oBAAoB,GACpB,WAAW,GACX,WAAW,GACX,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oEAAoE;IACpE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5E,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;IACvC,sDAAsD;IACtD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,uHAAuH;AACvH,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAuC1G,eAAO,MAAM,kBAAkB,GAAU,MAAM;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,KAAG,OAAO,CAAC,aAAa,CAySxB,CAAC"}
@@ -125,12 +125,28 @@ export const runWorkspaceRunner = async (args) => {
125
125
  void deps.gatherReferences({ origin: args.origin, token, cliVersion, env, progress: (line) => { void log({ event: 'references', line }); } })
126
126
  .catch((error) => { void log({ event: 'references_stopped', message: error instanceof Error ? error.message : String(error) }); });
127
127
  };
128
+ const captioned = new Set();
129
+ const captionOnce = (opId) => {
130
+ if (captioned.has(opId) || !deps.captions || token === '')
131
+ return;
132
+ captioned.add(opId);
133
+ void deps.captions({ origin: args.origin, token, cliVersion, opId, env, progress: (line) => { void log({ event: 'captions', opId, line }); } })
134
+ .catch((error) => { void log({ event: 'captions_stopped', opId, message: error instanceof Error ? error.message : String(error) }); });
135
+ };
128
136
  const drawOne = (opId) => {
129
137
  const work = (async () => {
130
138
  await log({ event: 'draw_started', opId });
131
139
  let result;
132
140
  try {
133
- result = await draw({ opId, token, origin: args.origin, engine: 'auto', dryRun: false, runnerId }, { processOptions, ...deps.drawDeps, env, dataRoot, cliVersion, progress: (line) => { void log({ event: 'progress', opId, line }); } });
141
+ result = await draw({ opId, token, origin: args.origin, engine: 'auto', dryRun: false, runnerId }, {
142
+ processOptions,
143
+ ...(deps.captions && !captioned.has(opId) ? { captions: deps.captions } : {}),
144
+ ...deps.drawDeps,
145
+ env,
146
+ dataRoot,
147
+ cliVersion,
148
+ progress: (line) => { void log({ event: 'progress', opId, line }); },
149
+ });
134
150
  }
135
151
  catch (error) {
136
152
  await log({ event: 'draw_fault', opId, message: error instanceof Error ? error.message : String(error) });
@@ -171,6 +187,9 @@ export const runWorkspaceRunner = async (args) => {
171
187
  }
172
188
  };
173
189
  const claimAndDraw = async (beat) => {
190
+ // The first sight of a round starts the References tab's gathering, paused or not.
191
+ if (beat.ops.length > 0)
192
+ gatherOnce();
174
193
  for (const op of beat.ops) {
175
194
  if (stop)
176
195
  return;
@@ -194,7 +213,7 @@ export const runWorkspaceRunner = async (args) => {
194
213
  // Its round waits on the person: nobody draws it until they continue (or its countdown ends). It stays listed,
195
214
  // so the runner stays for it, and the person's References tab fills meanwhile.
196
215
  if (op.waiting) {
197
- gatherOnce();
216
+ captionOnce(op.opId);
198
217
  continue;
199
218
  }
200
219
  // The agent's own command is drawing it on this Mac: it is that run's. Its op lock goes quiet while the Mac
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-runner-main.js","sourceRoot":"","sources":["../src/workspace-runner-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-runner-main.js","sourceRoot":"","sources":["../src/workspace-runner-main.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ import { ensureRunnerDir, liveRunnerHolder, runnerDirOf, writeRunnerToken } from
17
17
  export const WORKSPACE_RUNNER_ENV_FLAG = 'TWELVE_UI_WORKSPACE_RUNNER';
18
18
  const INHERITED = [
19
19
  'PATH', 'HOME', 'USER', 'LOGNAME', 'TMPDIR', 'TEMP', 'TMP', 'LANG', 'LC_ALL', 'SYSTEMROOT', 'APPDATA', 'LOCALAPPDATA',
20
- 'XDG_DATA_HOME', 'CODEX_HOME', 'CODEX_CLI_PATH', 'TWELVE_UI_CODEX_BIN', 'TWELVE_UI_INSTALL_SOURCE', 'TWELVE_UI_BUNDLE_ROOT',
20
+ 'XDG_DATA_HOME', 'CODEX_HOME', 'CODEX_CLI_PATH', 'TWELVE_UI_CODEX_BIN', 'TWELVE_UI_CODEX_MODEL', 'TWELVE_UI_INSTALL_SOURCE', 'TWELVE_UI_BUNDLE_ROOT',
21
21
  'HTTPS_PROXY', 'HTTP_PROXY', 'NO_PROXY', 'ALL_PROXY', 'https_proxy', 'http_proxy', 'no_proxy', 'all_proxy',
22
22
  'SSL_CERT_FILE', 'NODE_EXTRA_CA_CERTS',
23
23
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-runner-spawn.js","sourceRoot":"","sources":["../src/workspace-runner-spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-runner-spawn.js","sourceRoot":"","sources":["../src/workspace-runner-spawn.ts"],"names":[],"mappings":"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"}
package/open-design.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "specVersion": "1.0.0",
4
4
  "name": "12ui-design",
5
5
  "title": "12UI Design",
6
- "version": "0.2.82",
6
+ "version": "0.2.84",
7
7
  "description": "Explore corpus-grounded interface directions, choose one, and convert it into production-ready responsive or native artifacts with 12UI.",
8
8
  "author": {
9
9
  "name": "Just Every",
@@ -49,7 +49,7 @@
49
49
  "command": "npx",
50
50
  "args": [
51
51
  "-y",
52
- "@12ui/design@0.2.82",
52
+ "@12ui/design@0.2.84",
53
53
  "mcp"
54
54
  ]
55
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12ui/design",
3
- "version": "0.2.82",
3
+ "version": "0.2.84",
4
4
  "type": "module",
5
5
  "description": "The canonical 12ui CLI, SDK, MCP server, and visual interface design skills",
6
6
  "main": "dist/index.js",
@@ -8,7 +8,7 @@ try {
8
8
  'clean-assets': { type: 'string' }, 'image-backend': { type: 'string' }, reasoning: { type: 'string' }, 'codex-bin': { type: 'string' }, 'timeout-ms': { type: 'string' }, help: { type: 'boolean' },
9
9
  } });
10
10
  if (values.help) {
11
- console.log(JSON.stringify({ usage: '12ui-convert convert --source IMAGE --run-dir NEW_DIR --auth-home CODEX_HOME [--reasoning low|medium] [--clean-assets crop|enhance] [--image-backend external|native] | 12ui-convert resume --run-dir DIR [--auth-home CODEX_HOME]', imageCredentials: { external: 'OPENAI_API_KEY', native: 'Codex account via --auth-home' }, format: 'html-css', defaultImageBackend: 'external', defaultReasoning: 'low' }));
11
+ console.log(JSON.stringify({ usage: '12ui-convert convert --source IMAGE --run-dir NEW_DIR --auth-home CODEX_HOME [--reasoning low|medium] [--clean-assets crop|enhance] [--image-backend external|native] | 12ui-convert resume --run-dir DIR [--auth-home CODEX_HOME]', imageCredentials: { external: 'OPENAI_API_KEY', native: 'Codex account via --auth-home' }, format: 'html-css', defaultImageBackend: 'native', defaultReasoning: 'low' }));
12
12
  } else {
13
13
  if (!values['run-dir'] || !['convert', 'resume'].includes(positionals[0]) || positionals.length !== 1) throw new Error('Expected convert or resume and --run-dir');
14
14
  const options = { cleanAssets: values['clean-assets'], imageBackend: values['image-backend'], reasoning: values.reasoning, source: values.source, runDir: values['run-dir'], authHome: values['auth-home'], binary: values['codex-bin'], timeoutMs: values['timeout-ms'] ? Number(values['timeout-ms']) : undefined, progress: message => process.stderr.write(message + '\n') };
@@ -0,0 +1,95 @@
1
+ import { readdir, readFile } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
3
+ import path from 'node:path';
4
+ import { execFile } from 'node:child_process';
5
+ import { subscriptionEnv } from './home.mjs';
6
+
7
+ /**
8
+ * A native image call runs in the calling agent's own Codex home: the `CODEX_HOME` it was given, so its sign-in, plan
9
+ * and session files are the caller's. With none, the call's environment leaves `CODEX_HOME` unset and Codex uses its
10
+ * own default (`~/.codex`), which is only read here, for the checks and for finding the call's session file.
11
+ */
12
+
13
+ /** A model the home's own models cache lists; a home without the cache cannot run the call. */
14
+ async function requireModel(home, model) {
15
+ let cache;
16
+ try { cache = JSON.parse(await readFile(path.join(home, 'models_cache.json'), 'utf8')); }
17
+ catch (error) { throw new Error(`Codex home ${home} must contain models_cache.json`, { cause: error }); }
18
+ if (!cache.models?.some(entry => entry.slug === model)) throw new Error(`Codex home ${home} does not list the model ${model}`);
19
+ }
20
+
21
+ /**
22
+ * The person's own speed choice: `service_tier` at the top of `<home>/config.toml` (before any table), or null. An
23
+ * image call ignores the rest of the person's config (`--ignore-user-config`), so this one setting is carried over.
24
+ * @param {string} home
25
+ */
26
+ export async function configuredServiceTier(home) {
27
+ let text;
28
+ try { text = await readFile(path.join(home, 'config.toml'), 'utf8'); }
29
+ catch (error) { if (error.code === 'ENOENT') return null; throw error; }
30
+ for (const line of text.split('\n')) {
31
+ if (/^\s*\[/u.test(line)) return null;
32
+ const match = /^\s*service_tier\s*=\s*["']([A-Za-z0-9_-]+)["']\s*(?:#.*)?$/u.exec(line);
33
+ if (match) return match[1];
34
+ }
35
+ return null;
36
+ }
37
+
38
+ /**
39
+ * Checks the caller's home before a call is dispatched: signed in with ChatGPT (never an API key) and listing the
40
+ * call's model. `envHome` is what the call's `CODEX_HOME` is set to (null: unset).
41
+ * @param {{callerHome?: string | null, binary: string, model: string}} options
42
+ */
43
+ export async function prepareCallerHome({ callerHome, binary, model }) {
44
+ const envHome = callerHome?.trim() ? path.resolve(callerHome.trim()) : null;
45
+ const home = envHome ?? path.join(homedir(), '.codex');
46
+ await requireModel(home, model);
47
+ const login = await new Promise(resolve => {
48
+ execFile(binary, ['login', 'status'], { env: subscriptionEnv(envHome), encoding: 'utf8', timeout: 30000 },
49
+ (error, stdout, stderr) => resolve({ ok: !error, output: `${stdout ?? ''}${stderr ?? ''}` }));
50
+ });
51
+ if (!login.ok || !login.output.includes('Logged in using ChatGPT')) {
52
+ throw new Error('ChatGPT authentication unavailable; API authentication is not supported for the planner');
53
+ }
54
+ return { home, envHome, authentication: 'chatgpt', serviceTier: await configuredServiceTier(home) };
55
+ }
56
+
57
+ /** The thread id `codex exec --json` announces first (`thread.started`) in the call's events, or null. */
58
+ export async function threadIdOf(eventsPath) {
59
+ let text;
60
+ try { text = await readFile(eventsPath, 'utf8'); }
61
+ catch (error) { if (error.code === 'ENOENT') return null; throw error; }
62
+ for (const line of text.split('\n')) {
63
+ try {
64
+ const event = JSON.parse(line);
65
+ if (event?.type === 'thread.started' && typeof event.thread_id === 'string') return event.thread_id;
66
+ } catch { /* a malformed line is the collector's to report */ }
67
+ }
68
+ return null;
69
+ }
70
+
71
+ const dayDirs = (home, times) => [...new Set(times.flatMap(time => {
72
+ const date = new Date(time);
73
+ const pad = value => String(value).padStart(2, '0');
74
+ return [
75
+ path.join(home, 'sessions', String(date.getFullYear()), pad(date.getMonth() + 1), pad(date.getDate())),
76
+ path.join(home, 'sessions', String(date.getUTCFullYear()), pad(date.getUTCMonth() + 1), pad(date.getUTCDate())),
77
+ ];
78
+ }))];
79
+
80
+ /**
81
+ * The call's own session file: `<home>/sessions/YYYY/MM/DD/rollout-*-<threadId>.jsonl`, looked up only in the day
82
+ * folders the call ran across (a person's home can hold thousands of sessions). Empty when there is none.
83
+ * @param {string} home @param {string | null} threadId @param {Array<string | number | Date>} times
84
+ */
85
+ export async function callRollouts(home, threadId, times) {
86
+ if (!threadId) return [];
87
+ const found = [];
88
+ for (const dir of dayDirs(home, times)) {
89
+ let names;
90
+ try { names = await readdir(dir); }
91
+ catch (error) { if (error.code === 'ENOENT') continue; throw error; }
92
+ for (const name of names) if (name.startsWith('rollout-') && name.endsWith(`-${threadId}.jsonl`)) found.push(path.join(dir, name));
93
+ }
94
+ return found.sort();
95
+ }
@@ -5,10 +5,13 @@ import { execFile } from 'node:child_process';
5
5
 
6
6
  const TEMP_HOME_PREFIX = '12ui-codex-';
7
7
 
8
- /** The planner receives an allowlisted environment, never provider credentials. @param {string} home */
8
+ /**
9
+ * The planner receives an allowlisted environment, never provider credentials. With no home, `CODEX_HOME` stays unset
10
+ * and Codex uses its own default home. @param {string | null | undefined} home
11
+ */
9
12
  export function subscriptionEnv(home) {
10
13
  /** @type {NodeJS.ProcessEnv} */
11
- const env = { CODEX_HOME: home };
14
+ const env = home ? { CODEX_HOME: home } : {};
12
15
  for (const key of ['PATH', 'HOME', 'TMPDIR', 'TEMP', 'TMP', 'LANG', 'LC_ALL', 'SYSTEMROOT']) {
13
16
  if (process.env[key]) env[key] = process.env[key];
14
17
  }
@@ -49,6 +52,9 @@ export async function prepareHome({ authHome, binary, runDir, reasoning = 'low'
49
52
  }
50
53
 
51
54
 
55
+ /** Whether a recorded home is one of this module's temp homes (image calls of earlier releases ran in one). */
56
+ export const isTempHome = home => typeof home === 'string' && path.basename(home).startsWith(TEMP_HOME_PREFIX);
57
+
52
58
  /**
53
59
  * Remove one temp home this module made. Only a directory directly under the temp root whose name
54
60
  * carries the temp-home prefix is ever removed, so a corrupted record cannot point this at a real home.
@@ -34,7 +34,7 @@ async function executeGroup({group,sourceBytes,runDir,store,env,progress,fetchIm
34
34
  progress?.({phase:'image-complete',groupId:group.id,reused:result.reused});
35
35
  return {assets,receipt};
36
36
  }
37
- export async function executeImages({plan,sourcePath,runDir,store,env=process.env,progress,fetchImpl=fetch,imageBackend='external',codexBinary='codex',codexHome=undefined,timeoutMs=1800000,nativeModel='gpt-6-astra'}) {
37
+ export async function executeImages({plan,sourcePath,runDir,store,env=process.env,progress,fetchImpl=fetch,imageBackend='native',codexBinary='codex',codexHome=undefined,timeoutMs=1800000,nativeModel='gpt-6-astra'}) {
38
38
  if(!['external','native'].includes(imageBackend))throw Error('Unsupported image backend');
39
39
  if(nativeModel!=='gpt-6-astra')throw Error('Unsupported native model');
40
40
  await fs.mkdir(runDir,{recursive:true});
@@ -3,26 +3,35 @@ import path from 'node:path';
3
3
  import {spawn} from 'node:child_process';
4
4
  import {createWriteStream} from 'node:fs';
5
5
  import {finished} from 'node:stream/promises';
6
- import {subscriptionEnv,removeTempHome} from '../codex/home.mjs';
7
- import {filesUnder} from './native-files.mjs';
6
+ import {subscriptionEnv} from '../codex/home.mjs';
7
+ import {callRollouts,threadIdOf} from '../codex/caller-home.mjs';
8
8
  import {collectNative,packNativeReceipt} from './native-collect.mjs';
9
9
 
10
+ /** The model that wraps the image tool, and its effort, when a request names neither. */
11
+ export const NATIVE_DEFAULTS=Object.freeze({model:'gpt-6-astra',effort:'medium'});
12
+
10
13
  // Based on the successful C-N03 study invocation; separate from the no-tool planner.
11
14
  // The call is unattended (`-a never`) and its prompt carries text from outside (a person's typed edit, a plan built
12
15
  // from a source image), so its sandbox is read-only: the model may read the attached images and call the image tool,
13
16
  // whose output Codex itself records in the rollout and its own home, but any command it is talked into cannot write.
14
17
  // Proven with real Codex 0.159.3 (docs/slate-remote.md, "Image calls are read-only").
18
+ // `--ignore-user-config` keeps the person's MCP servers, plugins and hooks out of the call; their `service_tier` (their
19
+ // own fast-lane choice) is carried over by itself when the home sets one.
15
20
  export const NATIVE_SANDBOX = 'read-only';
16
21
  export function nativeArgv(spec, finalPath) {
22
+ const model = spec.model ?? NATIVE_DEFAULTS.model, effort = spec.effort ?? NATIVE_DEFAULTS.effort;
17
23
  return ['-a', 'never', 'exec', '--ignore-user-config', '--ignore-rules', '--strict-config', '-C', spec.workDir,
18
- '--skip-git-repo-check', '-s', NATIVE_SANDBOX, '-m', 'gpt-6-astra', '-c', 'model_reasoning_effort="medium"',
24
+ '--skip-git-repo-check', '-s', NATIVE_SANDBOX, '-m', model, '-c', `model_reasoning_effort="${effort}"`,
19
25
  '-c', 'model_provider="openai"', '-c', 'forced_login_method="chatgpt"', '-c', 'project_doc_max_bytes=0',
26
+ ...(spec.serviceTier ? ['-c', `service_tier="${spec.serviceTier}"`] : []),
20
27
  '--enable', 'skip_host_skill_discovery', '--json', '--color', 'never', '--output-last-message', finalPath,
21
28
  ...(spec.referencePaths ?? [spec.referencePath]).flatMap(file => ['--image', file]), '-'];
22
29
  }
23
30
  /**
24
- * One native image call: `codex exec` in its own process group, its prompt on stdin, its events and stderr kept in the
25
- * call directory. Optional in `spec`:
31
+ * One native image call: `codex exec` in its own process group, in the caller's Codex home (`auth.envHome`; unset
32
+ * leaves Codex's default), its prompt on stdin, its events and stderr kept in the call directory. The call's own
33
+ * session file, found by the thread id its events announce, is copied into the call's native-custody and stays in the
34
+ * home like any other session. Optional in `spec`:
26
35
  * - `interruptOnSignal` (default true): a SIGINT or SIGTERM of this process stops the call. A caller that finishes its
27
36
  * calls on a signal itself (the Design workspace runner) passes false, so the call runs to its own end or timeout.
28
37
  * - `onSpawn({pgid, callDir})` / `onExit({pgid})`: told the child's process group (it leads its own) once it runs and
@@ -32,14 +41,15 @@ export async function invokeNative(spec, {callDir, persistMetadata}) {
32
41
  await fs.mkdir(spec.workDir, {recursive: true});
33
42
  const auth = spec.auth;
34
43
  const finalPath = path.join(callDir, 'final.txt'), argv = nativeArgv(spec, finalPath);
35
- const metadata = {model: 'gpt-6-astra', effort: 'medium', authentication: auth.authentication, home: auth.home, argv, startedAt: new Date().toISOString()};
44
+ const metadata = {model: spec.model ?? NATIVE_DEFAULTS.model, effort: spec.effort ?? NATIVE_DEFAULTS.effort, serviceTier: spec.serviceTier ?? null,
45
+ authentication: auth.authentication, home: auth.home, envHome: auth.envHome, argv, startedAt: new Date().toISOString()};
36
46
  await persistMetadata(metadata); // Private runtime location needed for collection after interruption.
37
47
  await fs.writeFile(path.join(callDir, 'invocation.json'), JSON.stringify(metadata, null, 2) + '\n', {flag: 'wx'});
38
48
  const stdout = createWriteStream(path.join(callDir, 'events.jsonl'), {flags: 'wx'});
39
49
  const stderr = createWriteStream(path.join(callDir, 'stderr.log'), {flags: 'wx'});
40
50
  const prompt = spec.prompt;
41
51
  let timedOut = false, killTimer;
42
- const child = spawn(spec.binary, argv, {cwd: spec.workDir, env: subscriptionEnv(auth.home), detached: true, stdio: ['pipe', 'pipe', 'pipe']});
52
+ const child = spawn(spec.binary, argv, {cwd: spec.workDir, env: subscriptionEnv(auth.envHome), detached: true, stdio: ['pipe', 'pipe', 'pipe']});
43
53
  // ESRCH: the group is gone. EPERM: macOS answers so for a group whose members are all zombies.
44
54
  const stop = signal => { if (child.pid) try { process.kill(-child.pid, signal); } catch (error) { if (error.code !== 'ESRCH' && error.code !== 'EPERM') throw error; } };
45
55
  const terminate = () => { stop('SIGTERM'); killTimer = setTimeout(() => stop('SIGKILL'), 5000); };
@@ -59,13 +69,11 @@ export async function invokeNative(spec, {callDir, persistMetadata}) {
59
69
  const events=(await fs.readFile(path.join(callDir,'events.jsonl'),'utf8')).split('\n').filter(Boolean).flatMap(line=>{try{return [JSON.parse(line)];}catch{return [{type:'malformed-event'}];}});
60
70
  const diagnostics=events.filter(event=>['error','turn.failed','malformed-event'].includes(event.type));
61
71
  const codexUsage=events.filter(event=>event.type==='turn.completed').map(event=>event.usage);
62
- const completed = {...metadata, diagnostics, codexUsage, ...result, timedOut, finishedAt: new Date().toISOString()};
72
+ const threadId = await threadIdOf(path.join(callDir, 'events.jsonl'));
73
+ const completed = {...metadata, threadId, diagnostics, codexUsage, ...result, timedOut, finishedAt: new Date().toISOString()};
63
74
  await persistMetadata(completed);
64
75
  await fs.writeFile(path.join(callDir, 'completion.json'), JSON.stringify(completed, null, 2) + '\n', {flag: 'wx'});
65
- const rolloutPaths = (await filesUnder(path.join(auth.home, 'sessions')).catch(error => error.code === 'ENOENT' ? [] : Promise.reject(error))).filter(file => file.endsWith('.jsonl'));
76
+ const rolloutPaths = await callRollouts(auth.home, threadId, [metadata.startedAt, completed.finishedAt]);
66
77
  const receipt = await collectNative({rolloutPaths, outputDir: path.join(callDir, 'native-custody'), expected: spec.expected});
67
- // The rollouts now live in the call's native-custody; the temp home (~66 MB) is removed. A call that dies
68
- // before this line keeps its home, because recovery collects from it.
69
- await removeTempHome(auth.home);
70
- return {bytes: await packNativeReceipt(receipt), metadata: {...completed,nativeToolMs:receipt.toolMs,quotaBefore:receipt.quotaBefore,quotaAfter:receipt.quotaAfter,tokenUsage:receipt.tokenUsage,tempHomeRemoved:true}};
78
+ return {bytes: await packNativeReceipt(receipt), metadata: {...completed,nativeToolMs:receipt.toolMs,quotaBefore:receipt.quotaBefore,quotaAfter:receipt.quotaAfter,tokenUsage:receipt.tokenUsage}};
71
79
  }
@@ -25,7 +25,9 @@ export function parseNativeRecords(text) {
25
25
  }
26
26
  if (p.type === 'function_call' && /^(image_gen[._]imagegen|image_gen__imagegen)$/.test(p.name ?? '')) calls.set(p.call_id, {callId: p.call_id, count: 1, prompts: [functionCallPrompt(p.arguments)], line: index + 1, timestamp: record.timestamp});
27
27
  if (item?.kind === 'image_gen.generation' && p.type === 'item_completed') {
28
- const bytes = typeof item.result === 'string' ? Buffer.from(item.result, 'base64') : null;
28
+ // A refused generation (status "failed", e.g. the image tool's output moderation) carries `result: ""`: no bytes,
29
+ // so its call audits as native-failed instead of crashing collection on a zero-byte "PNG" before the receipt.
30
+ const bytes = typeof item.result === 'string' && item.result.length > 0 ? Buffer.from(item.result, 'base64') : null;
29
31
  const entry = {id: item.id, status: item.status, failure: item.failure ?? null, savedPath: item.savedPath ?? null,
30
32
  transparentBackground: item.transparentBackground, revisedPrompt: item.revisedPrompt,
31
33
  line: index + 1, timestamp: record.timestamp, threadId: p.thread_id, turnId: p.turn_id,
@@ -1,23 +1,27 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import os from 'node:os';
4
3
  import sharp from 'sharp';
5
- import {prepareHome,removeTempHome} from '../codex/home.mjs';
6
- import {invokeNative} from './native-invoke.mjs';
4
+ import {isTempHome,removeTempHome} from '../codex/home.mjs';
5
+ import {callRollouts,prepareCallerHome,threadIdOf} from '../codex/caller-home.mjs';
6
+ import {invokeNative,NATIVE_DEFAULTS} from './native-invoke.mjs';
7
7
  import {collectNative,packNativeReceipt} from './native-collect.mjs';
8
- import {filesUnder,inputFileNames} from './native-files.mjs';
8
+ import {inputFileNames} from './native-files.mjs';
9
9
  import {sha256,pngDimensions,parseNativeRecords} from './native-records.mjs';
10
10
  import {fitToFrame} from './native-frame.mjs';
11
11
 
12
12
  /** How a native image meets its frame: conversion's exact stretch (the default), or the aspect-preserving fit (native-frame.mjs). */
13
13
  export const NATIVE_NORMALIZATIONS=Object.freeze({stretch:'exact-stretch-lanczos3',preserveAspect:'aspect-preserving-lanczos3'});
14
14
  /** @typedef {typeof NATIVE_NORMALIZATIONS[keyof typeof NATIVE_NORMALIZATIONS]} NativeNormalization */
15
- /** @param {Buffer} bytes @param {{normalization?: NativeNormalization}} [options] */
16
- export async function decodeNativeResponse(bytes,{normalization=NATIVE_NORMALIZATIONS.stretch}={}) {
15
+ /**
16
+ * `expect` is the model and effort the request asked for (conversion's defaults when omitted): a receipt run under any
17
+ * other is refused.
18
+ * @param {Buffer} bytes @param {{normalization?: NativeNormalization, expect?: {model?: string, effort?: string}}} [options]
19
+ */
20
+ export async function decodeNativeResponse(bytes,{normalization=NATIVE_NORMALIZATIONS.stretch,expect={}}={}) {
17
21
  if(!Object.values(NATIVE_NORMALIZATIONS).includes(normalization)) throw Error('Unknown native normalization: '+normalization);
18
22
  const receipt=JSON.parse(bytes.toString('utf8'));
19
23
  if(!['exact-size-pass','size-mismatch'].includes(receipt.state)||receipt.outputs.length!==1) throw Error('Native image call requires inspection: '+receipt.state);
20
- if(receipt.model!=='gpt-6-astra'||receipt.effort!=='medium')throw Error('Native coordinator model/effort does not match requested execution');
24
+ if(receipt.model!==(expect.model??NATIVE_DEFAULTS.model)||receipt.effort!==(expect.effort??NATIVE_DEFAULTS.effort))throw Error('Native coordinator model/effort does not match requested execution');
21
25
  const original=Buffer.from(receipt.outputs[0].base64,'base64');
22
26
  if(sha256(original)!==receipt.outputs[0].sha256) throw Error('Native original custody mismatch');
23
27
  const actual=pngDimensions(original), expected=receipt.geometry.raw.expected;
@@ -26,32 +30,51 @@ export async function decodeNativeResponse(bytes,{normalization=NATIVE_NORMALIZA
26
30
  :{png:await sharp(original).resize(expected.width,expected.height,{fit:'fill',kernel:'lanczos3'}).png().toBuffer(),normalization:{name:'exact-stretch',kernel:'lanczos3',output:expected,scaleX:expected.width/actual.width,scaleY:expected.height/actual.height}};
27
31
  return {png:fitted.png,usage:{codexTokens:receipt.tokenUsage??[],imageUsage:null},revisedPrompt:receipt.generations[0].revisedPrompt??null,native:{originalPath:receipt.outputs[0].path,originalSha256:sha256(original),originalDimensions:actual,normalization:fitted.normalization,model:receipt.model,effort:receipt.effort,imageModel:null,invocationCount:receipt.invocationCount}};
28
32
  }
29
- /** `processOptions` reaches the call's `codex exec` child: `interruptOnSignal`, `onSpawn`, `onExit` (native-invoke.mjs). */
33
+
34
+ /**
35
+ * The wrapper turn's instructions. The images ride along with `--image`, so the model already sees them: it is told to
36
+ * call the image tool straight away instead of opening them again first (a whole model turn, measured at ~10 s).
37
+ * @param {string[]} referencePaths @param {string} imagePrompt
38
+ */
39
+ export function nativeCallPrompt(referencePaths,imagePrompt) {
40
+ const paths=`[${referencePaths.map(file=>JSON.stringify(file)).join(', ')}]`;
41
+ const references=referencePaths.length===1
42
+ ?`referenced_image_paths=${paths}. That image is already attached to this message, so do not view it first`
43
+ :`referenced_image_paths=${paths}, one for each of these files, in this order. Those images are already attached to this message, so do not view them first`;
44
+ return `This is an asset-execution task. Invoke tools.image_gen__imagegen exactly once, as your first action, with the following prompt copied verbatim and ${references}. Do not use shell, web, apps, other image providers, or image-editing code. No retries, extra calls, HTML work, or visual repair. If unavailable or unsuccessful, report failure. Emit the native image result with generatedImage and finish. Do not print base64.\n\nIMAGE PROMPT:\n${imagePrompt}\n`;
45
+ }
46
+
47
+ /**
48
+ * `codexHome` is the caller's Codex home, where the call runs (its `CODEX_HOME`; null leaves Codex's default). The
49
+ * request's `model` and `effort` drive the wrapper turn (conversion's defaults when omitted).
50
+ * `processOptions` reaches the call's `codex exec` child: `interruptOnSignal`, `onSpawn`, `onExit` (native-invoke.mjs).
51
+ */
30
52
  export async function executeNativeCall({request,input,callId,store,codexBinary='codex',codexHome,timeoutMs=1800000,processOptions={}}) {
31
53
  let auth;
54
+ const model=request.model??NATIVE_DEFAULTS.model, effort=request.effort??NATIVE_DEFAULTS.effort;
32
55
  return store.runCall(callId,request,async({callDir,persistMetadata})=>{
33
56
  // One reference is the conversion case; a list attaches every image in order (design workspace edits and variations).
34
57
  const inputs=Array.isArray(input)?input:[input];
35
58
  // Each input is named by its sniffed type (reference.webp, reference-2.png), never a blanket .png.
36
59
  const referencePaths=inputFileNames(inputs).map(name=>path.join(callDir,name));
37
60
  for(const [index,bytes] of inputs.entries())await fs.writeFile(referencePaths[index],bytes,{flag:'wx'});
38
- const referencePath=referencePaths[0];
39
- const inspect=referencePaths.length===1?`Use tools.view_image once to inspect ${referencePath}.`:`Use tools.view_image once for each of these files, in this order: ${referencePaths.join(', ')}.`;
40
- const prompt=`This is an asset-execution task. ${inspect} Then invoke tools.image_gen__imagegen exactly once with referenced_image_paths=[${referencePaths.map(file=>JSON.stringify(file)).join(', ')}] and the following prompt copied verbatim. Do not use shell, web, apps, other image providers, or image-editing code. No retries, extra calls, HTML work, or visual repair. If unavailable or unsuccessful, report failure. Emit the native image result with generatedImage and finish. Do not print base64.\n\nIMAGE PROMPT:\n${request.prompt}\n`;
41
- return invokeNative({...processOptions,auth,binary:codexBinary,workDir:path.join(callDir,'work'),referencePath,referencePaths,prompt,timeoutMs,expected:request.expected},{callDir,persistMetadata});
42
- },{prepare:async({callDir})=>{
43
- const authHome=codexHome??process.env.CODEX_HOME??path.join(os.homedir(),'.codex');
44
- auth=await prepareHome({authHome,binary:codexBinary,runDir:callDir});
61
+ const prompt=nativeCallPrompt(referencePaths,request.prompt);
62
+ return invokeNative({...processOptions,auth,binary:codexBinary,model,effort,serviceTier:auth.serviceTier,workDir:path.join(callDir,'work'),referencePath:referencePaths[0],referencePaths,prompt,timeoutMs,expected:request.expected},{callDir,persistMetadata});
63
+ },{prepare:async()=>{
64
+ // An explicit null is "no CODEX_HOME"; only an omitted home falls back to this process's own.
65
+ auth=await prepareCallerHome({callerHome:codexHome===undefined?process.env.CODEX_HOME??null:codexHome,binary:codexBinary,model});
45
66
  },recover:async({callDir,metadata})=>{
46
67
  if(!metadata?.home)return null;
47
- const rolloutPaths=(await filesUnder(path.join(metadata.home,'sessions')).catch(error=>{if(error.code==='ENOENT')return [];throw error;})).filter(file=>file.endsWith('.jsonl'));
68
+ // The call's own session file, by the thread id its events announced (an earlier release's call ran in a temp home).
69
+ const threadId=metadata.threadId??await threadIdOf(path.join(callDir,'events.jsonl'));
70
+ const rolloutPaths=await callRollouts(metadata.home,threadId,[metadata.startedAt,Date.now()]);
48
71
  if(!rolloutPaths.length)return null;
49
72
  const audit=parseNativeRecords((await Promise.all(rolloutPaths.map(file=>fs.readFile(file,'utf8')))).join('\n'));
50
73
  if(audit.state!=='completed-awaiting-dimensions')return null;
51
74
  const receipt=await collectNative({rolloutPaths,outputDir:path.join(callDir,'native-custody'),expected:request.expected});
52
75
  if(!['exact-size-pass','size-mismatch'].includes(receipt.state))return null;
53
- // Recovered and in custody: the temp home has nothing left that anything will read.
54
- await removeTempHome(metadata.home);
55
- return {bytes:await packNativeReceipt(receipt),metadata:{...metadata,nativeToolMs:receipt.toolMs,quotaBefore:receipt.quotaBefore,quotaAfter:receipt.quotaAfter,tokenUsage:receipt.tokenUsage,collectionRecovery:true,tempHomeRemoved:true}};
76
+ // Recovered and in custody: an earlier release's temp home has nothing left that anything will read.
77
+ if(isTempHome(metadata.home))await removeTempHome(metadata.home);
78
+ return {bytes:await packNativeReceipt(receipt),metadata:{...metadata,threadId,nativeToolMs:receipt.toolMs,quotaBefore:receipt.quotaBefore,quotaAfter:receipt.quotaAfter,tokenUsage:receipt.tokenUsage,collectionRecovery:true}};
56
79
  }});
57
80
  }
@@ -36,7 +36,8 @@ async function initialize(options) {
36
36
  const source = { path: 'source.image', sha256: hash(bytes), width: metadata.width, height: metadata.height, mimeType: `image/${metadata.format}` };
37
37
  const effort = options.reasoning ?? 'low';
38
38
  if (!['low', 'medium'].includes(effort)) throw new Error('reasoning must be low or medium');
39
- const imageBackend = options.imageBackend ?? 'external';
39
+ // External spends on the user's own OpenAI key, so a new run reaches it only by naming it; the default is the Codex sign-in.
40
+ const imageBackend = options.imageBackend ?? 'native';
40
41
  if (!['external', 'native'].includes(imageBackend)) throw new Error('imageBackend must be external or native');
41
42
  const cleanAssets=options.cleanAssets??'enhance';
42
43
  if(!['crop','enhance'].includes(cleanAssets))throw Error('cleanAssets must be crop or enhance');