@12ui/design 0.2.25 → 0.2.26
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.
- package/SKILL.md +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/responsive-quality.d.ts +65 -14
- package/dist/responsive-quality.d.ts.map +1 -1
- package/dist/responsive-quality.js +58 -50
- package/dist/responsive-quality.js.map +1 -1
- package/open-design.json +2 -2
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -28,7 +28,7 @@ dispatch paid work when it is absent, rejected, or times out.
|
|
|
28
28
|
Use `12ui` when it is available on `PATH`. Otherwise invoke the pinned CLI that
|
|
29
29
|
the plugin's `open-design.json` MCP entry uses:
|
|
30
30
|
|
|
31
|
-
npx -y @12ui/design@0.2.
|
|
31
|
+
npx -y @12ui/design@0.2.26 <command> ...
|
|
32
32
|
|
|
33
33
|
Run `12ui auth status --json` (or its pinned `npx` equivalent) before the paid
|
|
34
34
|
preflight. A desktop user can authenticate with `12ui auth login`; a headless
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { LAYERDOC_V2_MEDIA_TYPE, MAX_LAYERDOC_INPUT_BYTES, TwelveUiConversionCli
|
|
|
3
3
|
export { CONVERSION_FIXED_EXPORT_OUTPUTS, CONVERSION_OUTPUT_EXTENSIONS, CONVERSION_OUTPUT_FILENAME_SUFFIXES, CONVERSION_OUTPUT_FORMATS, CONVERSION_OUTPUT_MEDIA_TYPES, CONVERSION_OUTPUTS, LAYERDOC_INPUT_OUTPUTS, isConversionOutput, isLayerDocInputOutput, type ConversionFixedExportOutput, type ConversionOutputFormat, type LayerDocInputOutput, } from './conversion-outputs.js';
|
|
4
4
|
export { APP_PROJECT_CAPABILITIES, APP_PROJECT_FRAMEWORKS, APP_PROJECT_LANGUAGES, APP_PROJECT_PACKAGINGS, APP_PROJECT_STYLINGS, CONVERSION_PROJECT_OUTPUTS, PROJECT_PROFILE_REQUIRED_FIELDS, PROJECT_PROFILE_SCHEMA, WEB_PROJECT_CAPABILITIES, WEB_PROJECT_FRAMEWORKS, WEB_PROJECT_LANGUAGES, WEB_PROJECT_PACKAGINGS, WEB_PROJECT_STYLINGS, canonicalConversionOutputProfileJson, isProjectConversionOutput, parseConversionOutputProfile, type AppProjectFramework, type AppProjectLanguage, type AppProjectPackaging, type AppProjectProfileV1, type AppProjectStyling, type ConversionOutputProfile, type ConversionProjectOutput, type WebProjectFramework, type WebProjectLanguage, type WebProjectPackaging, type WebProjectProfileV1, type WebProjectStyling, } from './project-profiles.js';
|
|
5
5
|
export { CONVERSION_PROBLEM_CODES, type ConversionProblemCode, } from './conversion-problems.js';
|
|
6
|
-
export { RESPONSIVE_CONVERSION_QUALITIES, PERSISTED_RESPONSIVE_CONVERSION_QUALITIES,
|
|
6
|
+
export { RESPONSIVE_CONVERSION_QUALITIES, PERSISTED_RESPONSIVE_CONVERSION_QUALITIES, RESPONSIVE_CONVERSION_ANCHOR_IDS, RESPONSIVE_CONVERSION_ANCHOR_GENERATORS, RESPONSIVE_CONVERSION_ANCHOR_GENERATOR_QUALITIES, RESPONSIVE_CONVERSION_ANCHOR_IMAGE_SIZES, isResponsiveConversionQuality, isPersistedResponsiveConversionQuality, parseResponsiveConversionPlan, type ResponsiveConversionAnchor, type ResponsiveConversionAnchorId, type ResponsiveConversionPlan, type ResponsiveConversionQuality, type PersistedResponsiveConversionQuality, } from './responsive-quality.js';
|
|
7
7
|
export { materializeConversionArtifacts, type MaterializedArtifact, type MaterializedArtifactManifest, } from './artifact-materializer.js';
|
|
8
8
|
export { normalizeConversionOrigin, readConversionConfig, type ConversionConfig } from './config.js';
|
|
9
9
|
export { DEFAULT_TWELVE_UI_DEVICE_SCOPES, DEFAULT_TWELVE_UI_LOGIN_ORIGIN, TWELVE_UI_DEVICE_SCOPES, authenticateTwelveUiDevice, normalizeLoginOrigin, revokeTwelveUiCredential, verifyTwelveUiCredential, type TwelveUiDeviceCredential, type TwelveUiDeviceScope, type VerifiedTwelveUiCredential, } from './login-auth.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,0CAA0C,EAC/C,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oCAAoC,EACpC,yBAAyB,EACzB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,yCAAyC,EACzC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { LAYERDOC_V2_MEDIA_TYPE, MAX_LAYERDOC_INPUT_BYTES, TwelveUiConversionCli
|
|
|
3
3
|
export { CONVERSION_FIXED_EXPORT_OUTPUTS, CONVERSION_OUTPUT_EXTENSIONS, CONVERSION_OUTPUT_FILENAME_SUFFIXES, CONVERSION_OUTPUT_FORMATS, CONVERSION_OUTPUT_MEDIA_TYPES, CONVERSION_OUTPUTS, LAYERDOC_INPUT_OUTPUTS, isConversionOutput, isLayerDocInputOutput, } from './conversion-outputs.js';
|
|
4
4
|
export { APP_PROJECT_CAPABILITIES, APP_PROJECT_FRAMEWORKS, APP_PROJECT_LANGUAGES, APP_PROJECT_PACKAGINGS, APP_PROJECT_STYLINGS, CONVERSION_PROJECT_OUTPUTS, PROJECT_PROFILE_REQUIRED_FIELDS, PROJECT_PROFILE_SCHEMA, WEB_PROJECT_CAPABILITIES, WEB_PROJECT_FRAMEWORKS, WEB_PROJECT_LANGUAGES, WEB_PROJECT_PACKAGINGS, WEB_PROJECT_STYLINGS, canonicalConversionOutputProfileJson, isProjectConversionOutput, parseConversionOutputProfile, } from './project-profiles.js';
|
|
5
5
|
export { CONVERSION_PROBLEM_CODES, } from './conversion-problems.js';
|
|
6
|
-
export { RESPONSIVE_CONVERSION_QUALITIES, PERSISTED_RESPONSIVE_CONVERSION_QUALITIES,
|
|
6
|
+
export { RESPONSIVE_CONVERSION_QUALITIES, PERSISTED_RESPONSIVE_CONVERSION_QUALITIES, RESPONSIVE_CONVERSION_ANCHOR_IDS, RESPONSIVE_CONVERSION_ANCHOR_GENERATORS, RESPONSIVE_CONVERSION_ANCHOR_GENERATOR_QUALITIES, RESPONSIVE_CONVERSION_ANCHOR_IMAGE_SIZES, isResponsiveConversionQuality, isPersistedResponsiveConversionQuality, parseResponsiveConversionPlan, } from './responsive-quality.js';
|
|
7
7
|
export { materializeConversionArtifacts, } from './artifact-materializer.js';
|
|
8
8
|
export { normalizeConversionOrigin, readConversionConfig } from './config.js';
|
|
9
9
|
export { DEFAULT_TWELVE_UI_DEVICE_SCOPES, DEFAULT_TWELVE_UI_LOGIN_ORIGIN, TWELVE_UI_DEVICE_SCOPES, authenticateTwelveUiDevice, normalizeLoginOrigin, revokeTwelveUiCredential, verifyTwelveUiCredential, } from './login-auth.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GAmBzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GAItB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oCAAoC,EACpC,yBAAyB,EACzB,4BAA4B,GAa7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,yCAAyC,EACzC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GAmBzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GAItB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oCAAoC,EACpC,yBAAyB,EACzB,4BAA4B,GAa7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,yCAAyC,EACzC,gCAAgC,EAChC,uCAAuC,EACvC,gDAAgD,EAChD,wCAAwC,EACxC,6BAA6B,EAC7B,sCAAsC,EACtC,6BAA6B,GAM9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,8BAA8B,GAG/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAyB,MAAM,aAAa,CAAC;AACrG,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GAIzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,+BAA+B,GAQhC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GASnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,GAKf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,GAKxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D;;;GAGG;AACH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,cAAc,GAMf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EACjC,iBAAiB,EACjB,gCAAgC,EAChC,oBAAoB,GAkBrB,MAAM,oBAAoB,CAAC"}
|
|
@@ -2,25 +2,76 @@ export declare const RESPONSIVE_CONVERSION_QUALITIES: readonly ["standard", "pro
|
|
|
2
2
|
export type ResponsiveConversionQuality = typeof RESPONSIVE_CONVERSION_QUALITIES[number];
|
|
3
3
|
export declare const PERSISTED_RESPONSIVE_CONVERSION_QUALITIES: readonly ["standard", "enhanced", "pro"];
|
|
4
4
|
export type PersistedResponsiveConversionQuality = typeof PERSISTED_RESPONSIVE_CONVERSION_QUALITIES[number];
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
/**
|
|
6
|
+
* The anchor vocabulary the published contract declares.
|
|
7
|
+
*
|
|
8
|
+
* These three lists are the closed sets in
|
|
9
|
+
* `packages/design-contract/src/conversion.ts` → `ResponsiveConversionAnchor`,
|
|
10
|
+
* mirrored here because this package publishes standalone and cannot depend on
|
|
11
|
+
* the contract workspace. `workers/api/test/conversionResponsivePlanContract.test.ts`
|
|
12
|
+
* asserts the mirror against every anchor the service can actually emit, so a
|
|
13
|
+
* new direction, generator, or image size fails a local test rather than a
|
|
14
|
+
* customer's install.
|
|
15
|
+
*/
|
|
16
|
+
export declare const RESPONSIVE_CONVERSION_ANCHOR_IDS: readonly ["mobile", "tablet", "compact-desktop"];
|
|
17
|
+
export type ResponsiveConversionAnchorId = typeof RESPONSIVE_CONVERSION_ANCHOR_IDS[number];
|
|
18
|
+
export declare const RESPONSIVE_CONVERSION_ANCHOR_GENERATORS: readonly ["gpt-image-2"];
|
|
19
|
+
export declare const RESPONSIVE_CONVERSION_ANCHOR_GENERATOR_QUALITIES: readonly ["low"];
|
|
20
|
+
export declare const RESPONSIVE_CONVERSION_ANCHOR_IMAGE_SIZES: readonly ["1024x3072", "1536x2048", "2048x1536"];
|
|
11
21
|
export declare const isResponsiveConversionQuality: (value: unknown) => value is ResponsiveConversionQuality;
|
|
12
22
|
export declare const isPersistedResponsiveConversionQuality: (value: unknown) => value is PersistedResponsiveConversionQuality;
|
|
23
|
+
export type ResponsiveConversionAnchor = {
|
|
24
|
+
id: ResponsiveConversionAnchorId;
|
|
25
|
+
viewport_width: number;
|
|
26
|
+
generator: typeof RESPONSIVE_CONVERSION_ANCHOR_GENERATORS[number];
|
|
27
|
+
generator_quality: typeof RESPONSIVE_CONVERSION_ANCHOR_GENERATOR_QUALITIES[number];
|
|
28
|
+
image_size: typeof RESPONSIVE_CONVERSION_ANCHOR_IMAGE_SIZES[number];
|
|
29
|
+
};
|
|
13
30
|
export type ResponsiveConversionPlan = {
|
|
14
|
-
|
|
31
|
+
/**
|
|
32
|
+
* The service's name for its own anchor derivation. OPAQUE to every client:
|
|
33
|
+
* the published contract types it as a plain string
|
|
34
|
+
* (`packages/design-contract/src/conversion.ts`), and this package reads it
|
|
35
|
+
* only to hand it back to the caller as evidence.
|
|
36
|
+
*
|
|
37
|
+
* Until 0.2.26 this was a union of six literals. See the note on
|
|
38
|
+
* `parseResponsiveConversionPlan` for what that cost.
|
|
39
|
+
*/
|
|
40
|
+
revision: string;
|
|
15
41
|
quality: PersistedResponsiveConversionQuality;
|
|
16
42
|
native_width: number;
|
|
17
|
-
anchors:
|
|
18
|
-
id: 'mobile' | 'tablet' | 'compact-desktop';
|
|
19
|
-
viewport_width: number;
|
|
20
|
-
generator: 'gpt-image-2';
|
|
21
|
-
generator_quality: 'low';
|
|
22
|
-
image_size: '1024x3072' | '1536x2048' | '2048x1536';
|
|
23
|
-
}>;
|
|
43
|
+
anchors: ResponsiveConversionAnchor[];
|
|
24
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Validate the SHAPE of a responsive plan, and only the shape.
|
|
47
|
+
*
|
|
48
|
+
* ## Why there is no revision list here
|
|
49
|
+
*
|
|
50
|
+
* A plan names which anchor directions a quality bought at a given native
|
|
51
|
+
* width — a *service pricing decision*. Until 0.2.26 this parser refused any
|
|
52
|
+
* `revision` outside a closed `v1…v6` list and, worse, recomputed the topology
|
|
53
|
+
* the service had chosen and asserted equality. That made every published
|
|
54
|
+
* client a reader that must know every derivation the service will ever use,
|
|
55
|
+
* by name.
|
|
56
|
+
*
|
|
57
|
+
* On 2026-08-15 the service shipped `responsive-anchor-plan-v7` (pipeline
|
|
58
|
+
* v175, `workers/api/src/conversion/responsiveAnchorPlan.ts`). From that deploy
|
|
59
|
+
* every API-key client refused the whole conversion operation with
|
|
60
|
+
* "Conversion operation has an invalid responsive plan" — including operations
|
|
61
|
+
* for responsive exports it had already paid for and that had already
|
|
62
|
+
* succeeded, so `--export html`, `convert --output html`, and `resume --output
|
|
63
|
+
* html` all failed and the delivered work could not even be collected. The
|
|
64
|
+
* payload had not changed shape: a Standard v6 plan and a Standard v7 plan for
|
|
65
|
+
* the same source are byte-identical apart from that one string.
|
|
66
|
+
*
|
|
67
|
+
* So: `revision` is opaque, anchor *topology* is not re-derived, and what is
|
|
68
|
+
* checked is what this package actually reads — the declared vocabulary of
|
|
69
|
+
* `packages/design-contract/src/conversion.ts`. A malformed plan still refuses.
|
|
70
|
+
*
|
|
71
|
+
* The fence against this returning is
|
|
72
|
+
* `workers/api/test/conversionResponsivePlanContract.test.ts`: it walks every
|
|
73
|
+
* plan the service can emit, current and every frozen compatibility
|
|
74
|
+
* derivation, through this function.
|
|
75
|
+
*/
|
|
25
76
|
export declare const parseResponsiveConversionPlan: (value: unknown) => ResponsiveConversionPlan;
|
|
26
77
|
//# sourceMappingURL=responsive-quality.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responsive-quality.d.ts","sourceRoot":"","sources":["../src/responsive-quality.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,8BAA+B,CAAC;AAC5E,MAAM,MAAM,2BAA2B,GAAG,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC;AACzF,eAAO,MAAM,yCAAyC,0CAA2C,CAAC;AAClG,MAAM,MAAM,oCAAoC,GAAG,OAAO,yCAAyC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"responsive-quality.d.ts","sourceRoot":"","sources":["../src/responsive-quality.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,8BAA+B,CAAC;AAC5E,MAAM,MAAM,2BAA2B,GAAG,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC;AACzF,eAAO,MAAM,yCAAyC,0CAA2C,CAAC;AAClG,MAAM,MAAM,oCAAoC,GAAG,OAAO,yCAAyC,CAAC,MAAM,CAAC,CAAC;AAE5G;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gCAAgC,kDAAmD,CAAC;AACjG,MAAM,MAAM,4BAA4B,GAAG,OAAO,gCAAgC,CAAC,MAAM,CAAC,CAAC;AAC3F,eAAO,MAAM,uCAAuC,0BAA2B,CAAC;AAChF,eAAO,MAAM,gDAAgD,kBAAmB,CAAC;AACjF,eAAO,MAAM,wCAAwC,kDAAmD,CAAC;AAEzG,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,2BAEvE,CAAC;AAEF,eAAO,MAAM,sCAAsC,GACjD,OAAO,OAAO,KACb,KAAK,IAAI,oCAGX,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,4BAA4B,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,uCAAuC,CAAC,MAAM,CAAC,CAAC;IAClE,iBAAiB,EAAE,OAAO,gDAAgD,CAAC,MAAM,CAAC,CAAC;IACnF,UAAU,EAAE,OAAO,wCAAwC,CAAC,MAAM,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC,CAAC;AAcF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,wBAoB9D,CAAC"}
|
|
@@ -1,65 +1,73 @@
|
|
|
1
1
|
export const RESPONSIVE_CONVERSION_QUALITIES = ['standard', 'pro'];
|
|
2
2
|
export const PERSISTED_RESPONSIVE_CONVERSION_QUALITIES = ['standard', 'enhanced', 'pro'];
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
/**
|
|
4
|
+
* The anchor vocabulary the published contract declares.
|
|
5
|
+
*
|
|
6
|
+
* These three lists are the closed sets in
|
|
7
|
+
* `packages/design-contract/src/conversion.ts` → `ResponsiveConversionAnchor`,
|
|
8
|
+
* mirrored here because this package publishes standalone and cannot depend on
|
|
9
|
+
* the contract workspace. `workers/api/test/conversionResponsivePlanContract.test.ts`
|
|
10
|
+
* asserts the mirror against every anchor the service can actually emit, so a
|
|
11
|
+
* new direction, generator, or image size fails a local test rather than a
|
|
12
|
+
* customer's install.
|
|
13
|
+
*/
|
|
14
|
+
export const RESPONSIVE_CONVERSION_ANCHOR_IDS = ['mobile', 'tablet', 'compact-desktop'];
|
|
15
|
+
export const RESPONSIVE_CONVERSION_ANCHOR_GENERATORS = ['gpt-image-2'];
|
|
16
|
+
export const RESPONSIVE_CONVERSION_ANCHOR_GENERATOR_QUALITIES = ['low'];
|
|
17
|
+
export const RESPONSIVE_CONVERSION_ANCHOR_IMAGE_SIZES = ['1024x3072', '1536x2048', '2048x1536'];
|
|
9
18
|
export const isResponsiveConversionQuality = (value) => (typeof value === 'string' && RESPONSIVE_CONVERSION_QUALITIES.includes(value));
|
|
10
19
|
export const isPersistedResponsiveConversionQuality = (value) => (typeof value === 'string'
|
|
11
20
|
&& PERSISTED_RESPONSIVE_CONVERSION_QUALITIES.includes(value));
|
|
12
|
-
const THREE_TIER_ANCHORS = [
|
|
13
|
-
{ id: 'mobile', viewport_width: 390 },
|
|
14
|
-
{ id: 'tablet', viewport_width: 768 },
|
|
15
|
-
{ id: 'compact-desktop', viewport_width: 1024 },
|
|
16
|
-
];
|
|
17
|
-
const CURRENT_ANCHORS = [
|
|
18
|
-
{ id: 'mobile', viewport_width: 390, image_size: '1024x3072' },
|
|
19
|
-
{ id: 'tablet', viewport_width: 768, image_size: '1536x2048' },
|
|
20
|
-
{ id: 'compact-desktop', viewport_width: 1280, image_size: '2048x1536' },
|
|
21
|
-
];
|
|
22
21
|
const isRecord = (value) => (typeof value === 'object' && value !== null && !Array.isArray(value));
|
|
22
|
+
const isPositiveInteger = (value) => (Number.isSafeInteger(value) && Number(value) > 0);
|
|
23
|
+
const oneOf = (value, allowed) => (typeof value === 'string' && allowed.includes(value));
|
|
24
|
+
/**
|
|
25
|
+
* Validate the SHAPE of a responsive plan, and only the shape.
|
|
26
|
+
*
|
|
27
|
+
* ## Why there is no revision list here
|
|
28
|
+
*
|
|
29
|
+
* A plan names which anchor directions a quality bought at a given native
|
|
30
|
+
* width — a *service pricing decision*. Until 0.2.26 this parser refused any
|
|
31
|
+
* `revision` outside a closed `v1…v6` list and, worse, recomputed the topology
|
|
32
|
+
* the service had chosen and asserted equality. That made every published
|
|
33
|
+
* client a reader that must know every derivation the service will ever use,
|
|
34
|
+
* by name.
|
|
35
|
+
*
|
|
36
|
+
* On 2026-08-15 the service shipped `responsive-anchor-plan-v7` (pipeline
|
|
37
|
+
* v175, `workers/api/src/conversion/responsiveAnchorPlan.ts`). From that deploy
|
|
38
|
+
* every API-key client refused the whole conversion operation with
|
|
39
|
+
* "Conversion operation has an invalid responsive plan" — including operations
|
|
40
|
+
* for responsive exports it had already paid for and that had already
|
|
41
|
+
* succeeded, so `--export html`, `convert --output html`, and `resume --output
|
|
42
|
+
* html` all failed and the delivered work could not even be collected. The
|
|
43
|
+
* payload had not changed shape: a Standard v6 plan and a Standard v7 plan for
|
|
44
|
+
* the same source are byte-identical apart from that one string.
|
|
45
|
+
*
|
|
46
|
+
* So: `revision` is opaque, anchor *topology* is not re-derived, and what is
|
|
47
|
+
* checked is what this package actually reads — the declared vocabulary of
|
|
48
|
+
* `packages/design-contract/src/conversion.ts`. A malformed plan still refuses.
|
|
49
|
+
*
|
|
50
|
+
* The fence against this returning is
|
|
51
|
+
* `workers/api/test/conversionResponsivePlanContract.test.ts`: it walks every
|
|
52
|
+
* plan the service can emit, current and every frozen compatibility
|
|
53
|
+
* derivation, through this function.
|
|
54
|
+
*/
|
|
23
55
|
export const parseResponsiveConversionPlan = (value) => {
|
|
24
|
-
if (!isRecord(value)
|
|
25
|
-
|
|
26
|
-
&& value.revision !== RASTER_WIDTH_RESPONSIVE_ANCHOR_PLAN_REVISION
|
|
27
|
-
&& value.revision !== THREE_TIER_RESPONSIVE_ANCHOR_PLAN_REVISION
|
|
28
|
-
&& value.revision !== PRE_NATIVE_RESPONSIVE_ANCHOR_PLAN_REVISION
|
|
29
|
-
&& value.revision !== LEGACY_RESPONSIVE_ANCHOR_PLAN_REVISION)
|
|
56
|
+
if (!isRecord(value)
|
|
57
|
+
|| typeof value.revision !== 'string' || value.revision.trim() === ''
|
|
30
58
|
|| !isPersistedResponsiveConversionQuality(value.quality)
|
|
31
|
-
|| !
|
|
32
|
-
|| !Array.isArray(value.anchors)) {
|
|
59
|
+
|| !isPositiveInteger(value.native_width)
|
|
60
|
+
|| !Array.isArray(value.anchors) || value.anchors.length === 0) {
|
|
33
61
|
throw new TypeError('Invalid responsive conversion plan.');
|
|
34
62
|
}
|
|
35
|
-
const nativeWidth = Number(value.native_width);
|
|
36
|
-
const currentTopologyRevision = value.revision === RESPONSIVE_ANCHOR_PLAN_REVISION
|
|
37
|
-
|| value.revision === LOGICAL_WIDTH_RESPONSIVE_ANCHOR_PLAN_REVISION
|
|
38
|
-
|| value.revision === RASTER_WIDTH_RESPONSIVE_ANCHOR_PLAN_REVISION;
|
|
39
|
-
if (currentTopologyRevision && value.quality === 'enhanced') {
|
|
40
|
-
throw new TypeError('Current responsive conversion plans do not support Enhanced quality.');
|
|
41
|
-
}
|
|
42
|
-
const oldLimit = value.quality === 'standard' ? 1 : value.quality === 'enhanced' ? 2 : 3;
|
|
43
|
-
const oldBudget = THREE_TIER_ANCHORS.slice(0, oldLimit);
|
|
44
|
-
const expected = currentTopologyRevision
|
|
45
|
-
? CURRENT_ANCHORS.slice(0, value.quality === 'standard' ? 1 : nativeWidth > 1440 ? 3 : 2)
|
|
46
|
-
: value.revision === LEGACY_RESPONSIVE_ANCHOR_PLAN_REVISION
|
|
47
|
-
? oldBudget.filter((anchor) => anchor.viewport_width < nativeWidth)
|
|
48
|
-
: oldBudget;
|
|
49
|
-
if (value.anchors.length !== expected.length || expected.length === 0) {
|
|
50
|
-
throw new TypeError('Responsive conversion plan has an invalid anchor count.');
|
|
51
|
-
}
|
|
52
63
|
for (const [index, anchorValue] of value.anchors.entries()) {
|
|
53
64
|
const anchor = isRecord(anchorValue) ? anchorValue : null;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|| anchor.
|
|
60
|
-
|| anchor.generator !== 'gpt-image-2'
|
|
61
|
-
|| anchor.generator_quality !== 'low'
|
|
62
|
-
|| anchor.image_size !== expectedImageSize) {
|
|
65
|
+
if (!anchor
|
|
66
|
+
|| !oneOf(anchor.id, RESPONSIVE_CONVERSION_ANCHOR_IDS)
|
|
67
|
+
|| !isPositiveInteger(anchor.viewport_width)
|
|
68
|
+
|| !oneOf(anchor.generator, RESPONSIVE_CONVERSION_ANCHOR_GENERATORS)
|
|
69
|
+
|| !oneOf(anchor.generator_quality, RESPONSIVE_CONVERSION_ANCHOR_GENERATOR_QUALITIES)
|
|
70
|
+
|| !oneOf(anchor.image_size, RESPONSIVE_CONVERSION_ANCHOR_IMAGE_SIZES)) {
|
|
63
71
|
throw new TypeError(`Responsive conversion plan anchor ${index} is invalid.`);
|
|
64
72
|
}
|
|
65
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responsive-quality.js","sourceRoot":"","sources":["../src/responsive-quality.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,UAAU,EAAE,KAAK,CAAU,CAAC;AAE5E,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"responsive-quality.js","sourceRoot":"","sources":["../src/responsive-quality.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.
|
|
6
|
+
"version": "0.2.26",
|
|
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.
|
|
52
|
+
"@12ui/design@0.2.26",
|
|
53
53
|
"mcp"
|
|
54
54
|
]
|
|
55
55
|
}
|