@12ui/design 0.2.77 → 0.2.79

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 (91) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/cli-workspace-draw.d.ts +1 -1
  3. package/dist/cli-workspace-draw.d.ts.map +1 -1
  4. package/dist/cli-workspace-draw.js +3 -2
  5. package/dist/cli-workspace-draw.js.map +1 -1
  6. package/dist/mcp-slate-ui-copy.d.ts +6 -6
  7. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  8. package/dist/mcp-slate-ui-copy.js +6 -5
  9. package/dist/mcp-slate-ui-copy.js.map +1 -1
  10. package/dist/mcp-slate-ui-locales/de-DE.js +2 -2
  11. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  12. package/dist/mcp-slate-ui-locales/es-419.js +2 -2
  13. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  14. package/dist/mcp-slate-ui-locales/es-ES.js +2 -2
  15. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  16. package/dist/mcp-slate-ui-locales/fr-FR.js +2 -2
  17. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  18. package/dist/mcp-slate-ui-locales/hi-IN.js +2 -2
  19. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  20. package/dist/mcp-slate-ui-locales/it-IT.js +2 -2
  21. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  22. package/dist/mcp-slate-ui-locales/ja-JP.js +2 -2
  23. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  24. package/dist/mcp-slate-ui-locales/ko-KR.js +2 -2
  25. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  26. package/dist/mcp-slate-ui-locales/pt-BR.js +2 -2
  27. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  28. package/dist/mcp-slate-ui-locales/zh-CN.js +2 -2
  29. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  30. package/dist/mcp-slate-ui-locales/zh-TW.js +2 -2
  31. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  32. package/dist/mcp-slate-ui-script-more.d.ts +9 -5
  33. package/dist/mcp-slate-ui-script-more.d.ts.map +1 -1
  34. package/dist/mcp-slate-ui-script-more.js +15 -7
  35. package/dist/mcp-slate-ui-script-more.js.map +1 -1
  36. package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
  37. package/dist/mcp-slate-ui-script-remote.js +10 -2
  38. package/dist/mcp-slate-ui-script-remote.js.map +1 -1
  39. package/dist/mcp-slate-ui-script-stage.d.ts +10 -9
  40. package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -1
  41. package/dist/mcp-slate-ui-script-stage.js +18 -16
  42. package/dist/mcp-slate-ui-script-stage.js.map +1 -1
  43. package/dist/mcp-slate-ui-styles-dialog.d.ts +3 -2
  44. package/dist/mcp-slate-ui-styles-dialog.d.ts.map +1 -1
  45. package/dist/mcp-slate-ui-styles-dialog.js +14 -6
  46. package/dist/mcp-slate-ui-styles-dialog.js.map +1 -1
  47. package/dist/mcp-slate-ui-styles-stage.d.ts +9 -6
  48. package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -1
  49. package/dist/mcp-slate-ui-styles-stage.js +28 -21
  50. package/dist/mcp-slate-ui-styles-stage.js.map +1 -1
  51. package/dist/slate-image-executor.d.ts +10 -2
  52. package/dist/slate-image-executor.d.ts.map +1 -1
  53. package/dist/slate-image-executor.js +55 -12
  54. package/dist/slate-image-executor.js.map +1 -1
  55. package/dist/slate-round-prompt.d.ts +15 -3
  56. package/dist/slate-round-prompt.d.ts.map +1 -1
  57. package/dist/slate-round-prompt.js +14 -5
  58. package/dist/slate-round-prompt.js.map +1 -1
  59. package/dist/slate-workspace-types.d.ts +1 -1
  60. package/dist/slate-workspace-types.d.ts.map +1 -1
  61. package/dist/workspace-draw-client.d.ts +16 -4
  62. package/dist/workspace-draw-client.d.ts.map +1 -1
  63. package/dist/workspace-draw-client.js +28 -4
  64. package/dist/workspace-draw-client.js.map +1 -1
  65. package/dist/workspace-draw-messages.d.ts +8 -1
  66. package/dist/workspace-draw-messages.d.ts.map +1 -1
  67. package/dist/workspace-draw-messages.js +7 -2
  68. package/dist/workspace-draw-messages.js.map +1 -1
  69. package/dist/workspace-draw-run.d.ts.map +1 -1
  70. package/dist/workspace-draw-run.js +28 -8
  71. package/dist/workspace-draw-run.js.map +1 -1
  72. package/dist/workspace-draw-types.d.ts +1 -0
  73. package/dist/workspace-draw-types.d.ts.map +1 -1
  74. package/dist/workspace-draw-types.js +1 -0
  75. package/dist/workspace-draw-types.js.map +1 -1
  76. package/dist/workspace-runner-children.d.ts +11 -0
  77. package/dist/workspace-runner-children.d.ts.map +1 -1
  78. package/dist/workspace-runner-children.js +27 -0
  79. package/dist/workspace-runner-children.js.map +1 -1
  80. package/dist/workspace-runner-client.d.ts +2 -0
  81. package/dist/workspace-runner-client.d.ts.map +1 -1
  82. package/dist/workspace-runner-client.js +11 -2
  83. package/dist/workspace-runner-client.js.map +1 -1
  84. package/dist/workspace-runner-main.d.ts.map +1 -1
  85. package/dist/workspace-runner-main.js +38 -10
  86. package/dist/workspace-runner-main.js.map +1 -1
  87. package/open-design.json +2 -2
  88. package/package.json +1 -1
  89. package/runtime/codex-conversion/src/images/native-frame.mjs +103 -0
  90. package/runtime/codex-conversion/src/images/native.mjs +11 -3
  91. package/runtime/codex-conversion/src/run-store.mjs +21 -1
@@ -2,8 +2,42 @@ import { createHash } from 'node:crypto';
2
2
  import path from 'node:path';
3
3
  import { fileURLToPath, pathToFileURL } from 'node:url';
4
4
  import { resolveCodexBinary } from './codex-binary.js';
5
+ /** How the call's image meets its frame: by one scale on both axes, never a stretch. */
6
+ export const SLATE_IMAGE_NORMALIZATION = 'aspect-preserving-lanczos3';
5
7
  /** One image call may run this long before it is stopped. */
6
8
  export const IMAGE_CALL_TIMEOUT_MS = 15 * 60_000;
9
+ /**
10
+ * The parts of a call's identity a release changes without changing what the image is drawn from: how the image meets
11
+ * its frame (applied to the original after it arrives) and the prompt's words for the same option (a revision, such as
12
+ * the frame sentence of slate-plan-create-v2). The images, the frame, the model and its effort are the draw itself.
13
+ */
14
+ const RELEASE_FIELDS = new Set(['normalization', 'prompt']);
15
+ const drawnFrom = (runtime, request) => runtime.canonical(Object.fromEntries(Object.entries(request).filter(([field]) => !RELEASE_FIELDS.has(field))));
16
+ /**
17
+ * A call id whose identity changed (`REQUEST_CHANGED`) may hold an image an earlier release received and never pushed
18
+ * (a 0.2.77 draw stopped before its push, rerun on 0.2.78). When that response holds a usable original drawn from the
19
+ * same images, frame and model, it is this call's paid image: it is fitted with the current method and used, with no
20
+ * second call (CLAUDE.md item 3), and the adoption is written beside it for operators. Otherwise (no received
21
+ * response, one without an image, or one drawn from something else) null: the change fails explicitly as before.
22
+ */
23
+ const adoptEarlier = async (runtime, root, callId, request, error) => {
24
+ if (error?.code !== 'REQUEST_CHANGED')
25
+ return null;
26
+ const earlier = await runtime.readReceived(root, callId);
27
+ if (!earlier || drawnFrom(runtime, earlier.request) !== drawnFrom(runtime, request))
28
+ return null;
29
+ const decoded = await runtime.decodeNativeResponse(earlier.bytes, { normalization: SLATE_IMAGE_NORMALIZATION }).catch(() => null);
30
+ if (!decoded)
31
+ return null;
32
+ await runtime.writeJson(path.join(earlier.callDir, 'adopted.json'), {
33
+ adoptedAt: new Date().toISOString(),
34
+ requestHash: runtime.hash(runtime.canonical(request)),
35
+ earlierRequestHash: earlier.requestHash,
36
+ changed: [...RELEASE_FIELDS].filter((field) => runtime.canonical(earlier.request[field] ?? null) !== runtime.canonical(request[field] ?? null)),
37
+ normalization: SLATE_IMAGE_NORMALIZATION,
38
+ });
39
+ return decoded.png;
40
+ };
7
41
  const importRuntime = async () => {
8
42
  const base = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'runtime', 'codex-conversion', 'src');
9
43
  const load = async (file) => await import(pathToFileURL(path.join(base, file)).href);
@@ -23,23 +57,32 @@ export const createNativeImageExecutor = (args) => {
23
57
  model: 'gpt-6-astra',
24
58
  effort: 'medium',
25
59
  imageModel: null,
26
- normalization: 'exact-stretch-lanczos3',
60
+ normalization: SLATE_IMAGE_NORMALIZATION,
27
61
  expected: call.expected,
28
62
  prompt: call.prompt,
29
63
  inputSha256: call.images.map(sha256),
30
64
  };
31
- const result = await runtime.executeNativeCall({
32
- request,
33
- input: call.images,
34
- callId: call.callId,
35
- store,
36
- codexBinary: resolveCodexBinary(env),
37
- ...(env.CODEX_HOME?.trim() ? { codexHome: env.CODEX_HOME.trim() } : {}),
38
- timeoutMs: IMAGE_CALL_TIMEOUT_MS,
39
- ...(args.processOptions ? { processOptions: args.processOptions } : {}),
40
- });
65
+ let result;
66
+ try {
67
+ result = await runtime.executeNativeCall({
68
+ request,
69
+ input: call.images,
70
+ callId: call.callId,
71
+ store,
72
+ codexBinary: resolveCodexBinary(env),
73
+ ...(env.CODEX_HOME?.trim() ? { codexHome: env.CODEX_HOME.trim() } : {}),
74
+ timeoutMs: IMAGE_CALL_TIMEOUT_MS,
75
+ ...(args.processOptions ? { processOptions: args.processOptions } : {}),
76
+ });
77
+ }
78
+ catch (error) {
79
+ const adopted = await adoptEarlier(runtime, args.root, call.callId, request, error);
80
+ if (!adopted)
81
+ throw error;
82
+ return { png: adopted, reused: true };
83
+ }
41
84
  try {
42
- const decoded = await runtime.decodeNativeResponse(result.bytes);
85
+ const decoded = await runtime.decodeNativeResponse(result.bytes, { normalization: SLATE_IMAGE_NORMALIZATION });
43
86
  return { png: decoded.png, reused: result.reused };
44
87
  }
45
88
  catch (cause) {
@@ -1 +1 @@
1
- {"version":3,"file":"slate-image-executor.js","sourceRoot":"","sources":["../src/slate-image-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-image-executor.js","sourceRoot":"","sources":["../src/slate-image-executor.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,25 @@ import type { SlateAspect } from './slate-workspace-types.js';
2
2
  /**
3
3
  * The frame and the words of one option of a round. The frame is the size the
4
4
  * image tool returns for the aspect (`workflow/adapter-openai.ts`); the
5
- * native call stretches its raw result to exactly this, so every option of a
6
- * round has one known size.
5
+ * native call fits its raw result to it by one scale, never stretched
6
+ * (slate-image-executor.ts), so every option of a round has one known size.
7
7
  */
8
- export declare const roundFrame: (aspect: SlateAspect) => {
8
+ export type RoundFrame = {
9
9
  width: number;
10
10
  height: number;
11
11
  };
12
+ export declare const roundFrame: (aspect: SlateAspect) => RoundFrame;
13
+ /**
14
+ * The option's frame, in words: the sentence the hosted workspace's root and new round prompts end with
15
+ * (`frameSentence` in workers/api/src/slate/plan/prompts.ts, held equal by its drift test). The Codex image tool takes
16
+ * no size, and with an attached reference it drew the reference's shape; named in the prompt, the frame held in 14 of
17
+ * 14 real calls, against 0 of 4 without it.
18
+ */
19
+ export declare const frameSentence: (frame: RoundFrame, hasReference: boolean) => string;
20
+ /**
21
+ * One option's prompt. A root or new round's option draws from a reference of any shape, so it ends by naming its
22
+ * frame (`frameSentence`); a like round draws from its parent, already in the frame's shape, and is unchanged.
23
+ */
12
24
  export declare const optionPrompt: (args: {
13
25
  aspect: SlateAspect;
14
26
  concept: string;
@@ -1 +1 @@
1
- {"version":3,"file":"slate-round-prompt.d.ts","sourceRoot":"","sources":["../src/slate-round-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;;GAKG;AAEH,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAE/E,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,MAW3G,CAAC"}
1
+ {"version":3,"file":"slate-round-prompt.d.ts","sourceRoot":"","sources":["../src/slate-round-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW,KAAG,UAEhD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,EAAE,cAAc,OAAO,KAAG,MAGxE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,MAY3G,CAAC"}
@@ -1,10 +1,18 @@
1
+ export const roundFrame = (aspect) => (aspect === 'portrait' ? { width: 1024, height: 1536 } : aspect === 'square' ? { width: 1024, height: 1024 } : { width: 1536, height: 1024 });
1
2
  /**
2
- * The frame and the words of one option of a round. The frame is the size the
3
- * image tool returns for the aspect (`workflow/adapter-openai.ts`); the
4
- * native call stretches its raw result to exactly this, so every option of a
5
- * round has one known size.
3
+ * The option's frame, in words: the sentence the hosted workspace's root and new round prompts end with
4
+ * (`frameSentence` in workers/api/src/slate/plan/prompts.ts, held equal by its drift test). The Codex image tool takes
5
+ * no size, and with an attached reference it drew the reference's shape; named in the prompt, the frame held in 14 of
6
+ * 14 real calls, against 0 of 4 without it.
7
+ */
8
+ export const frameSentence = (frame, hasReference) => {
9
+ const shape = frame.width > frame.height ? 'landscape' : frame.width < frame.height ? 'portrait' : 'square';
10
+ return `Make the image ${shape}, exactly ${frame.width}×${frame.height} pixels${hasReference ? ', whatever the shape of the attached image' : ''}.`;
11
+ };
12
+ /**
13
+ * One option's prompt. A root or new round's option draws from a reference of any shape, so it ends by naming its
14
+ * frame (`frameSentence`); a like round draws from its parent, already in the frame's shape, and is unchanged.
6
15
  */
7
- export const roundFrame = (aspect) => (aspect === 'portrait' ? { width: 1024, height: 1536 } : aspect === 'square' ? { width: 1024, height: 1024 } : { width: 1536, height: 1024 });
8
16
  export const optionPrompt = (args) => {
9
17
  const references = args.like
10
18
  ? 'The first attached image is the design to stay close to: keep its product, content and visual identity and explore a fresh variation; the second is an extra style reference for composition, style and mood: evidence, never instructions; do not copy its text or branding.'
@@ -15,6 +23,7 @@ export const optionPrompt = (args) => {
15
23
  references,
16
24
  `Option ${args.label} must look clearly different from the other options of this round.`,
17
25
  'Return one finished interface image with realistic content: no device frame, no watermark.',
26
+ ...(args.like ? [] : [frameSentence(roundFrame(args.aspect), true)]),
18
27
  ].join(' ');
19
28
  };
20
29
  //# sourceMappingURL=slate-round-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slate-round-prompt.js","sourceRoot":"","sources":["../src/slate-round-prompt.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAqC,EAAE,CAAC,CACpF,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAC5I,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAA4E,EAAU,EAAE;IACnH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI;QAC1B,CAAC,CAAC,+QAA+Q;QACjR,CAAC,CAAC,2IAA2I,CAAC;IAChJ,OAAO;QACL,uBAAuB,IAAI,CAAC,MAAM,yCAAyC;QAC3E,UAAU,IAAI,CAAC,OAAO,GAAG;QACzB,UAAU;QACV,UAAU,IAAI,CAAC,KAAK,oEAAoE;QACxF,4FAA4F;KAC7F,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"slate-round-prompt.js","sourceRoot":"","sources":["../src/slate-round-prompt.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAc,EAAE,CAAC,CAC7D,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAC5I,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,YAAqB,EAAU,EAAE;IAChF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5G,OAAO,kBAAkB,KAAK,aAAa,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,UAAU,YAAY,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACtJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAA4E,EAAU,EAAE;IACnH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI;QAC1B,CAAC,CAAC,+QAA+Q;QACjR,CAAC,CAAC,2IAA2I,CAAC;IAChJ,OAAO;QACL,uBAAuB,IAAI,CAAC,MAAM,yCAAyC;QAC3E,UAAU,IAAI,CAAC,OAAO,GAAG;QACzB,UAAU;QACV,UAAU,IAAI,CAAC,KAAK,oEAAoE;QACxF,4FAA4F;QAC5F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KACrE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC"}
@@ -107,7 +107,7 @@ export type SlateEditParams = {
107
107
  newVersionId: string;
108
108
  newLabel: string;
109
109
  n: number;
110
- /** The frame the result is stretched to: the parent's own size. */
110
+ /** The frame the result is fitted to, never stretched (slate-image-executor.ts): the parent's own size. */
111
111
  width: number;
112
112
  height: number;
113
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"slate-workspace-types.d.ts","sourceRoot":"","sources":["../src/slate-workspace-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-workspace-types.d.ts","sourceRoot":"","sources":["../src/slate-workspace-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAElF,eAAO,MAAM,sBAAsB,EAAG,wBAAiC,CAAC;AACxE,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,2GAA2G;IAC3G,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gDAAgD;IAChD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8FAA8F;IAC9F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kHAAkH;IAClH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,kCAAkC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,uGAAuG;IACvG,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzD,uFAAuF;IACvF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAEnE,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvG,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpH,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,sBAAsB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,CAAC;IAChD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/C,iDAAiD;IACjD,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC,CAAC"}
@@ -18,6 +18,12 @@ export declare const WAITS_PAUSE = "pause";
18
18
  */
19
19
  export declare const RUNNER_HEADER = "X-12ui-Runner";
20
20
  export declare const MAX_RETRIES = 3;
21
+ /**
22
+ * Every call to design.12ui.com carries the upload token in `X-12ui-Push`, and fetch keeps custom headers across a
23
+ * redirect, even to another host. So no call follows one: fetch hands the redirect back unfollowed (`manual`), and the
24
+ * call fails as a redirect (`redirectOf`) before anything is sent to where it points.
25
+ */
26
+ export declare const NO_REDIRECT: RequestRedirect;
21
27
  /** How long a plan may stay `plan_pending` (its direction call in flight) before the run gives up on it. */
22
28
  export declare const PLAN_PENDING_LIMIT_MS = 180000;
23
29
  /**
@@ -41,15 +47,21 @@ export declare class DrawHttpError extends Error {
41
47
  constructor(status: number, code: string, retryAfterSeconds: number | null, body: unknown);
42
48
  }
43
49
  /**
44
- * The server could not be reached (`unreachable`), bytes arrived other than declared (`corrupt`), or its answer was
45
- * not what I1 says (`malformed`: a server this CLI is too old to read).
50
+ * The server could not be reached (`unreachable`), answered with a redirect this CLI does not follow (`redirect`; the
51
+ * message names the origin that answered), bytes arrived other than declared (`corrupt`), or its answer was not what
52
+ * I1 says (`malformed`: a server this CLI is too old to read).
46
53
  */
47
54
  export declare class DrawTransportError extends Error {
48
- readonly kind: 'unreachable' | 'corrupt' | 'malformed';
49
- constructor(kind: 'unreachable' | 'corrupt' | 'malformed', message: string, options?: {
55
+ readonly kind: 'unreachable' | 'redirect' | 'corrupt' | 'malformed';
56
+ constructor(kind: 'unreachable' | 'redirect' | 'corrupt' | 'malformed', message: string, options?: {
50
57
  cause?: unknown;
51
58
  });
52
59
  }
60
+ /**
61
+ * A redirect answer, as the error the call fails with (its body is let go unread), or null for any other answer. The
62
+ * status and the address it pointed at travel in `cause`, for the record; nothing is ever sent there.
63
+ */
64
+ export declare const redirectOf: (url: string, response: Response) => Promise<DrawTransportError | null>;
53
65
  export type DrawFetch = (url: string, init: RequestInit) => Promise<Response>;
54
66
  export type PlanImage = {
55
67
  bytes: Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-draw-client.d.ts","sourceRoot":"","sources":["../src/workspace-draw-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-draw-client.d.ts","sourceRoot":"","sources":["../src/workspace-draw-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { OPTION_FAILURE_CODES } from './workspace-draw-messages.js';
2
+ import { DRAW_MESSAGES, OPTION_FAILURE_CODES } from './workspace-draw-messages.js';
3
3
  import { PLAN_SCHEMA } from './workspace-draw-types.js';
4
4
  /**
5
5
  * The CLI's side of interface I1: the three `/api/v1/slate/` routes `12ui workspace draw` calls on
@@ -20,6 +20,14 @@ export const WAITS_PAUSE = 'pause';
20
20
  */
21
21
  export const RUNNER_HEADER = 'X-12ui-Runner';
22
22
  export const MAX_RETRIES = 3;
23
+ /**
24
+ * Every call to design.12ui.com carries the upload token in `X-12ui-Push`, and fetch keeps custom headers across a
25
+ * redirect, even to another host. So no call follows one: fetch hands the redirect back unfollowed (`manual`), and the
26
+ * call fails as a redirect (`redirectOf`) before anything is sent to where it points.
27
+ */
28
+ export const NO_REDIRECT = 'manual';
29
+ /** The statuses fetch would follow (Fetch standard, "redirect status"). */
30
+ const REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
23
31
  /** How long a plan may stay `plan_pending` (its direction call in flight) before the run gives up on it. */
24
32
  export const PLAN_PENDING_LIMIT_MS = 180_000;
25
33
  /** The server answered with an error (`{ok:false,error:{code,...}}`, or the flat `{error:"code"}` form). */
@@ -37,8 +45,9 @@ export class DrawHttpError extends Error {
37
45
  }
38
46
  }
39
47
  /**
40
- * The server could not be reached (`unreachable`), bytes arrived other than declared (`corrupt`), or its answer was
41
- * not what I1 says (`malformed`: a server this CLI is too old to read).
48
+ * The server could not be reached (`unreachable`), answered with a redirect this CLI does not follow (`redirect`; the
49
+ * message names the origin that answered), bytes arrived other than declared (`corrupt`), or its answer was not what
50
+ * I1 says (`malformed`: a server this CLI is too old to read).
42
51
  */
43
52
  export class DrawTransportError extends Error {
44
53
  kind;
@@ -47,6 +56,18 @@ export class DrawTransportError extends Error {
47
56
  this.kind = kind;
48
57
  }
49
58
  }
59
+ /**
60
+ * A redirect answer, as the error the call fails with (its body is let go unread), or null for any other answer. The
61
+ * status and the address it pointed at travel in `cause`, for the record; nothing is ever sent there.
62
+ */
63
+ export const redirectOf = async (url, response) => {
64
+ if (response.type !== 'opaqueredirect' && !REDIRECT_STATUSES.has(response.status))
65
+ return null;
66
+ await response.body?.cancel().catch(() => undefined);
67
+ return new DrawTransportError('redirect', DRAW_MESSAGES.redirected({ origin: new URL(url).origin }), {
68
+ cause: { status: response.status, location: response.headers.get('location') },
69
+ });
70
+ };
50
71
  const sha256 = (bytes) => createHash('sha256').update(bytes).digest('hex');
51
72
  const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
52
73
  const stringOrNull = (value) => (typeof value === 'string' ? value : null);
@@ -152,11 +173,14 @@ export const createDrawClient = (args) => {
152
173
  for (let attempt = 0;; attempt += 1) {
153
174
  let response;
154
175
  try {
155
- response = await fetcher(url, { ...init, headers: { ...identity, ...init.headers } });
176
+ response = await fetcher(url, { ...init, redirect: NO_REDIRECT, headers: { ...identity, ...init.headers } });
156
177
  }
157
178
  catch (cause) {
158
179
  throw new DrawTransportError('unreachable', `${new URL(url).host} could not be reached`, { cause });
159
180
  }
181
+ const redirected = await redirectOf(url, response);
182
+ if (redirected)
183
+ throw redirected;
160
184
  if (response.ok)
161
185
  return response;
162
186
  const body = await readBody(response);
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-draw-client.js","sourceRoot":"","sources":["../src/workspace-draw-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-draw-client.js","sourceRoot":"","sources":["../src/workspace-draw-client.ts"],"names":[],"mappings":"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"}
@@ -20,13 +20,20 @@ export declare const DRAW_MESSAGES: {
20
20
  readonly unknownOp: () => string;
21
21
  readonly notDrawing: () => string;
22
22
  readonly opInProgress: () => string;
23
- /** A runner whose Mac stopped answering mid-draw still holds the request: its images may land, so nothing is drawn. */
23
+ /**
24
+ * A workspace runner holds the request: drawing it now, or on a Mac that stopped answering mid-draw. Either way its
25
+ * images may land, so nothing is drawn here, and the sentence is true of both.
26
+ */
24
27
  readonly opInFlight: (args: {
25
28
  minutes: number;
26
29
  }) => string;
27
30
  readonly usage: (reason: string) => string;
28
31
  readonly needsEscalation: () => string;
29
32
  readonly unreachable: () => string;
33
+ /** The server answered with a redirect, which no call follows (the upload token travels in a header). */
34
+ readonly redirected: (args: {
35
+ origin: string;
36
+ }) => string;
30
37
  readonly serverFault: () => string;
31
38
  /**
32
39
  * Codex cannot draw here (decision D2-B): why, in the user's words (the probe's own detail, which names conversion
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-draw-messages.d.ts","sourceRoot":"","sources":["../src/workspace-draw-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AASvE,eAAO,MAAM,aAAa;2BACV;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAG,MAAM;8BAG5D;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;6BAG3B;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;4BAG1C;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;iCAGvB,MAAM;8BACT,MAAM;+BACL,MAAM;iCACJ,MAAM;IACxB,uHAAuH;gCACpG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;6BAG/B,MAAM,KAAG,MAAM;oCACV,MAAM;gCACV,MAAM;gCACN,MAAM;IACvB;;;;OAIG;+BACe,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,KAAG,MAAM;iCAG9C,MAAM;gCACP,MAAM;IACvB,kHAAkH;mCAC5F;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;CAG9C,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,UAAU;kCACA,MAAM,KAAG,MAAM;yBAC1B,MAAM;CACR,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,kFAAkF;AAClF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,CASjF,CAAC;AAEF,uGAAuG;AACvG,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAMjF,CAAC"}
1
+ {"version":3,"file":"workspace-draw-messages.d.ts","sourceRoot":"","sources":["../src/workspace-draw-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AASvE,eAAO,MAAM,aAAa;2BACV;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAG,MAAM;8BAG5D;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;6BAG3B;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;4BAG1C;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;iCAGvB,MAAM;8BACT,MAAM;+BACL,MAAM;iCACJ,MAAM;IACxB;;;OAGG;gCACgB;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;6BAG/B,MAAM,KAAG,MAAM;oCACV,MAAM;gCACV,MAAM;IACvB,yGAAyG;gCACtF;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;gCAG7B,MAAM;IACvB;;;;OAIG;+BACe,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,KAAG,MAAM;iCAG9C,MAAM;gCACP,MAAM;IACvB,kHAAkH;mCAC5F;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM;CAG9C,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,UAAU;kCACA,MAAM,KAAG,MAAM;yBAC1B,MAAM;CACR,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,kFAAkF;AAClF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,CASjF,CAAC;AAEF,uGAAuG;AACvG,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAMjF,CAAC"}
@@ -12,11 +12,16 @@ export const DRAW_MESSAGES = {
12
12
  unknownOp: () => 'That request is not in this workspace.',
13
13
  notDrawing: () => 'That request has no options to draw.',
14
14
  opInProgress: () => 'This request is already being drawn on this Mac. Wait for that command to finish.',
15
- /** A runner whose Mac stopped answering mid-draw still holds the request: its images may land, so nothing is drawn. */
16
- opInFlight: (args) => (`This request is still being drawn by a 12ui helper that stopped answering, and its images may still land. Wait for it; if nothing lands, it comes back to you in about ${plural(args.minutes, 'minute')}.`),
15
+ /**
16
+ * A workspace runner holds the request: drawing it now, or on a Mac that stopped answering mid-draw. Either way its
17
+ * images may land, so nothing is drawn here, and the sentence is true of both.
18
+ */
19
+ opInFlight: (args) => (`This request is being drawn by a 12ui helper, and its images may still land. Wait for it; if nothing lands, it comes back to you in about ${plural(args.minutes, 'minute')}.`),
17
20
  usage: (reason) => `${reason} Usage: 12ui workspace draw --op <request id> --token <upload token> [--origin <url>] [--engine auto|codex] [--dry-run]`,
18
21
  needsEscalation: () => 'This command must run outside the sandbox. Run the same command again with escalated permissions.',
19
22
  unreachable: () => 'design.12ui.com could not be reached from here. Run the same command again with escalated permissions.',
23
+ /** The server answered with a redirect, which no call follows (the upload token travels in a header). */
24
+ redirected: (args) => (`The 12ui server at ${args.origin} answered with a redirect, which this command does not follow. Check the --origin, then run the same command again.`),
20
25
  serverFault: () => 'design.12ui.com did not finish the request. Run the same command again.',
21
26
  /**
22
27
  * Codex cannot draw here (decision D2-B): why, in the user's words (the probe's own detail, which names conversion
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-draw-messages.js","sourceRoot":"","sources":["../src/workspace-draw-messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-draw-messages.js","sourceRoot":"","sources":["../src/workspace-draw-messages.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAEpG,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,CAAC,IAA4D,EAAU,EAAE,CAAC,CAC/E,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CACxH;IACD,QAAQ,EAAE,CAAC,IAAuB,EAAU,EAAE,CAAC,CAC7C,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAClH;IACD,OAAO,EAAE,CAAC,IAAsC,EAAU,EAAE,CAAC,CAC3D,SAAS,IAAI,CAAC,KAAK,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,oEAAoE,CAC3H;IACD,MAAM,EAAE,CAAC,IAAuB,EAAU,EAAE,CAAC,CAC3C,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,wDAAwD,CAC/L;IACD,YAAY,EAAE,GAAW,EAAE,CAAC,oHAAoH;IAChJ,SAAS,EAAE,GAAW,EAAE,CAAC,wCAAwC;IACjE,UAAU,EAAE,GAAW,EAAE,CAAC,sCAAsC;IAChE,YAAY,EAAE,GAAW,EAAE,CAAC,mFAAmF;IAC/G;;;OAGG;IACH,UAAU,EAAE,CAAC,IAAyB,EAAU,EAAE,CAAC,CACjD,6IAA6I,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAC/K;IACD,KAAK,EAAE,CAAC,MAAc,EAAU,EAAE,CAAC,GAAG,MAAM,yHAAyH;IACrK,eAAe,EAAE,GAAW,EAAE,CAAC,mGAAmG;IAClI,WAAW,EAAE,GAAW,EAAE,CAAC,wGAAwG;IACnI,yGAAyG;IACzG,UAAU,EAAE,CAAC,IAAwB,EAAU,EAAE,CAAC,CAChD,sBAAsB,IAAI,CAAC,MAAM,qHAAqH,CACvJ;IACD,WAAW,EAAE,GAAW,EAAE,CAAC,yEAAyE;IACpG;;;;OAIG;IACH,QAAQ,EAAE,CAAC,KAA4C,EAAU,EAAE,CAAC,CAClE,GAAG,eAAe,CAAC,KAAK,CAAC,wEAAwE,CAClG;IACD,YAAY,EAAE,GAAW,EAAE,CAAC,2FAA2F;IACvH,WAAW,EAAE,GAAW,EAAE,CAAC,sHAAsH;IACjJ,kHAAkH;IAClH,aAAa,EAAE,CAAC,IAA6B,EAAU,EAAE,CAAC,CACxD,+CAA+C,IAAI,CAAC,WAAW,gGAAgG,CAChK;CACO,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,CAAC,OAAe,EAAU,EAAE,CAAC,+GAA+G,OAAO,yBAAyB;IACvL,IAAI,EAAE,GAAW,EAAE,CAAC,sGAAsG;CAClH,CAAC;AAEX,qEAAqE;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAA0D;IACpF,SAAS,EAAE,qCAAqC;IAChD,MAAM,EAAE,mDAAmD;IAC3D,SAAS,EAAE,qCAAqC;IAChD,aAAa,EAAE,kDAAkD;IACjE,YAAY,EAAE,kDAAkD;IAChE,UAAU,EAAE,sEAAsE;IAClF,MAAM,EAAE,0FAA0F;IAClG,gBAAgB,EAAE,iEAAiE;CACpF,CAAC;AAEF,uGAAuG;AACvG,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,gDAAgD;IACzD,QAAQ,EAAE,sDAAsD;IAChE,OAAO,EAAE,0CAA0C;IACnD,OAAO,EAAE,yFAAyF;IAClG,gBAAgB,EAAE,0EAA0E;CACpF,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAqD;IACpF,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe;IAC1C,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,eAAe;IAC3C,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc;IACzC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,qBAAqB;IAChD,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,wBAAwB;CAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-draw-run.d.ts","sourceRoot":"","sources":["../src/workspace-draw-run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAwE,KAAK,SAAS,EAAkB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAClK,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIrG,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAGL,KAAK,QAAQ,EASd,MAAM,2BAA2B,CAAC;AAEnC;;;;;;GAMG;AAEH,sHAAsH;AACtH,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzI,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,uHAAuH;IACvH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAE/E,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAUjD,6GAA6G;AAC7G,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,GAAG,IAkBhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAG,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAS1F,CAAC;AAyBF,eAAO,MAAM,gBAAgB,GAAU,MAAM,aAAa,EAAE,OAAM,gBAAqB,KAAG,OAAO,CAAC,UAAU,CAwI3G,CAAC"}
1
+ {"version":3,"file":"workspace-draw-run.d.ts","sourceRoot":"","sources":["../src/workspace-draw-run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAwE,KAAK,SAAS,EAAkB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAClK,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKrG,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAGL,KAAK,QAAQ,EASd,MAAM,2BAA2B,CAAC;AAEnC;;;;;;GAMG;AAEH,sHAAsH;AACtH,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzI,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,uHAAuH;IACvH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAE/E,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAUjD,6GAA6G;AAC7G,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,GAAG,IAmBhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAG,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAS1F,CAAC;AAyBF,eAAO,MAAM,gBAAgB,GAAU,MAAM,aAAa,EAAE,OAAM,gBAAqB,KAAG,OAAO,CAAC,UAAU,CAgJ3G,CAAC"}
@@ -4,6 +4,7 @@ import { drawOptionWithCodex } from './workspace-draw-codex.js';
4
4
  import { chooseEngine } from './workspace-draw-engine.js';
5
5
  import { DRAW_MESSAGES, DRAW_WAIT_EVERY_SECONDS, DRAW_WAITS, OPTION_FAILURES } from './workspace-draw-messages.js';
6
6
  import { defaultDataRoot, opRootOf, readPreviousRecord, takeOpLock, writeRecord } from './workspace-draw-store.js';
7
+ import { recordedForOp } from './workspace-runner-children.js';
7
8
  import { RUNNER_POLICY } from './workspace-runner-policy.js';
8
9
  import { DRAW_EXIT_CODES, RECORD_SCHEMA, } from './workspace-draw-types.js';
9
10
  class DrawAbort extends Error {
@@ -20,6 +21,8 @@ export const abortOf = (error) => {
20
21
  if (error instanceof DrawTransportError) {
21
22
  if (error.kind === 'unreachable')
22
23
  return { code: 'needs_escalation', message: DRAW_MESSAGES.unreachable() };
24
+ if (error.kind === 'redirect')
25
+ return { code: 'redirected', message: error.message };
23
26
  if (error.kind === 'corrupt')
24
27
  return { code: 'needs_escalation', message: DRAW_MESSAGES.serverFault() };
25
28
  return { code: 'cli_outdated', message: DRAW_MESSAGES.cliOutdated() };
@@ -60,7 +63,7 @@ const refusal = (opId, abort) => ({
60
63
  output: { ok: false, code: abort.code, op: opId, message: abort.message, record: null },
61
64
  });
62
65
  /** The precedence of run-level outcomes when several options fail differently: the one a rerun most needs first. */
63
- const ABORT_PRECEDENCE = ['cli_outdated', 'token_invalid', 'unknown_op', 'needs_escalation'];
66
+ const ABORT_PRECEDENCE = ['cli_outdated', 'token_invalid', 'unknown_op', 'redirected', 'needs_escalation'];
64
67
  const imageNames = (plan) => [...new Set(plan.options.flatMap((option) => option.images.map((image) => image.name)))];
65
68
  const imageRecords = (option, fetched) => option.images.map((image) => {
66
69
  const bytes = fetched.get(image.name);
@@ -105,11 +108,15 @@ export const runWorkspaceDraw = async (args, deps = {}) => {
105
108
  ...(deps.sleep ? { sleep: deps.sleep } : {}),
106
109
  });
107
110
  const opRoot = opRootOf(deps.dataRoot ?? defaultDataRoot(env), args.opId);
111
+ // Every Codex call is recorded under the request's own folder too, so a runner that finds this run's op lock gone
112
+ // quiet (a Mac that slept) sees the call still drawing and leaves the request alone.
113
+ const processOptions = recordedForOp(opRoot, deps.processOptions);
108
114
  // 2. Op lock (a dry run draws nothing and writes nothing, so it takes none).
109
115
  const lock = args.dryRun ? null : await takeOpLock(opRoot);
110
116
  if (!args.dryRun && !lock)
111
117
  return refusal(args.opId, { code: 'op_in_progress', message: DRAW_MESSAGES.opInProgress() });
112
- try {
118
+ /** Steps 3-8, under the op lock; every answer they give says whether this run left the runner behind (below). */
119
+ const drawLocked = async () => {
113
120
  const startedAt = clock();
114
121
  // 3. The plan and every image it names, each checked against its sha256.
115
122
  let plan;
@@ -150,11 +157,11 @@ export const runWorkspaceDraw = async (args, deps = {}) => {
150
157
  // The runner for this workspace's later clicks (already left behind if the round waited on the person). Its
151
158
  // failure to start is reported, never this request's failure: the screen then keeps telling the agent, as it does
152
159
  // when no runner is alive.
153
- const runnerReport = await leaveRunner(plan.workspace);
160
+ await leaveRunner(plan.workspace);
154
161
  // 5-7. Every pending option at once; each settles on its own.
155
162
  const previous = await readPreviousRecord(opRoot);
156
163
  const runs = await Promise.all(plan.options.map((option) => drawOption({
157
- option, fetched, engine: choice.engine, client, env, opRoot, clock, previous, deps,
164
+ option, fetched, engine: choice.engine, client, env, opRoot, clock, previous, deps, processOptions,
158
165
  }).then((run) => {
159
166
  progress(progressLine(run, choice.engine));
160
167
  return run;
@@ -194,17 +201,30 @@ export const runWorkspaceDraw = async (args, deps = {}) => {
194
201
  ...(run.record.failure ? { failure: run.record.failure } : {}),
195
202
  })),
196
203
  noReference: plan.options.filter((option) => option.noReferenceReason !== null).map((option) => option.key),
197
- // The person is told, in the sentence the agent relays, that a helper now stays on this Mac.
198
- message: runnerReport?.state === 'started' ? `${message} ${DRAW_MESSAGES.runnerStarted({ idleMinutes: RUNNER_POLICY.idleMs / 60_000 })}` : message,
204
+ message,
199
205
  record: recordPath,
200
- ...(runnerReport ? { runner: runnerReport } : {}),
201
206
  },
202
207
  };
208
+ };
209
+ try {
210
+ const result = await drawLocked();
211
+ return withRunnerReport(result, runner ? await runner : null);
203
212
  }
204
213
  finally {
205
214
  await lock?.release();
206
215
  }
207
216
  };
217
+ /**
218
+ * Whatever the run answers (drawn, refused, or no engine), once it left the runner behind: the `runner` report, and, in
219
+ * the sentence the agent relays, that a helper now stays on this Mac when one was started.
220
+ */
221
+ const withRunnerReport = (result, report) => {
222
+ if (!report)
223
+ return result;
224
+ const message = typeof result.output.message === 'string' ? result.output.message : '';
225
+ const told = report.state === 'started' ? `${message} ${DRAW_MESSAGES.runnerStarted({ idleMinutes: RUNNER_POLICY.idleMs / 60_000 })}`.trim() : message;
226
+ return { ...result, output: { ...result.output, message: told, runner: report } };
227
+ };
208
228
  const launchLine = (launched) => {
209
229
  if (launched.state === 'off')
210
230
  return `12ui workspace draw: no workspace runner (${launched.reason === 'opted_out' ? 'TWELVE_UI_NO_RUNNER=1' : 'not design.12ui.com'})`;
@@ -342,7 +362,7 @@ const drawOption = async (context) => {
342
362
  option,
343
363
  images: option.images.map((image) => context.fetched.get(image.name).bytes),
344
364
  ...(context.deps.executorFactory ? { executorFactory: context.deps.executorFactory } : {}),
345
- ...(context.deps.processOptions ? { processOptions: context.deps.processOptions } : {}),
365
+ processOptions: context.processOptions,
346
366
  });
347
367
  if (result.kind === 'environment') {
348
368
  return finish({ codex: result.details, failure: result.error }, { codexEnvironment: result.error });