@12ui/design 0.2.49 → 0.2.51

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 (43) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/branch-page-conversion.d.ts +1 -4
  3. package/dist/branch-page-conversion.d.ts.map +1 -1
  4. package/dist/branch-page-conversion.js +17 -27
  5. package/dist/branch-page-conversion.js.map +1 -1
  6. package/dist/branch-run-record.d.ts +0 -2
  7. package/dist/branch-run-record.d.ts.map +1 -1
  8. package/dist/branch-run-record.js.map +1 -1
  9. package/dist/cli-redesign-command.d.ts.map +1 -1
  10. package/dist/cli-redesign-command.js +0 -51
  11. package/dist/cli-redesign-command.js.map +1 -1
  12. package/dist/package-client.d.ts +0 -11
  13. package/dist/package-client.d.ts.map +1 -1
  14. package/dist/package-client.js.map +1 -1
  15. package/dist/package-submission.d.ts +0 -12
  16. package/dist/package-submission.d.ts.map +1 -1
  17. package/dist/package-submission.js +0 -5
  18. package/dist/package-submission.js.map +1 -1
  19. package/dist/redesign-capture.d.ts +1 -9
  20. package/dist/redesign-capture.d.ts.map +1 -1
  21. package/dist/redesign-capture.js +1 -47
  22. package/dist/redesign-capture.js.map +1 -1
  23. package/dist/redesign-plan-client.d.ts +0 -17
  24. package/dist/redesign-plan-client.d.ts.map +1 -1
  25. package/dist/redesign-plan-client.js +0 -10
  26. package/dist/redesign-plan-client.js.map +1 -1
  27. package/dist/redesign-plan-identity.d.ts.map +1 -1
  28. package/dist/redesign-plan-identity.js +0 -1
  29. package/dist/redesign-plan-identity.js.map +1 -1
  30. package/dist/redesign-workspace.d.ts +0 -26
  31. package/dist/redesign-workspace.d.ts.map +1 -1
  32. package/dist/redesign-workspace.js +76 -1
  33. package/dist/redesign-workspace.js.map +1 -1
  34. package/open-design.json +2 -2
  35. package/package.json +1 -1
  36. package/dist/redesign-brand-asset-inventory.d.ts +0 -71
  37. package/dist/redesign-brand-asset-inventory.d.ts.map +0 -1
  38. package/dist/redesign-brand-asset-inventory.js +0 -318
  39. package/dist/redesign-brand-asset-inventory.js.map +0 -1
  40. package/dist/redesign-pinned-asset.d.ts +0 -20
  41. package/dist/redesign-pinned-asset.d.ts.map +0 -1
  42. package/dist/redesign-pinned-asset.js +0 -35
  43. package/dist/redesign-pinned-asset.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"redesign-workspace.js","sourceRoot":"","sources":["../src/redesign-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redesign-workspace.js","sourceRoot":"","sources":["../src/redesign-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAGjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAA0B,EAAE,CAAC,CACvE,eAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvD,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;IAClD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,IAAI,GAAG,IAAI;SACd,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,IAAI,IAAI,UAAU,CAAC;AAC5B,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAiB,EAAE;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,0BAA0B,CAAC;QAC3D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC;QACvD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC;QACzD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,IAI7C,EAA0B,EAAE;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AAoEF;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAkB,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC,GAAG;IACf,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;IACrC,GAAG,CAAC,MAAM,CAAC,mBAAmB,KAAK,SAAS;QAC1C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACxD,GAAG,CAAC,MAAM,CAAC,wBAAwB,KAAK,SAAS;QAC/C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,CAAC;IAClE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;SACJ;KACF,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC5B,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;gBACnC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;gBACnC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;aACvF;YACD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;YAC1C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/C,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;aAC1D,CAAC;SACH;KACF,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;YAChC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;SAC3B;KACF,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClB,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;SACJ;KACF,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClB,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;SACJ;KACF,CAAC,CAAC,CAAC,EAAE,CAAC;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAuC,EAAE;IAC5F,IAAI,CAAC;QACH,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAmB,CAAC,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,IAAY,EAAE,MAAsB,EAAiB,EAAE;IAC/F,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,IAO/C,EAA2B,EAAE;IAC5B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO;QACL,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,wBAAwB,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC,CAAC"}
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.49",
6
+ "version": "0.2.51",
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.49",
52
+ "@12ui/design@0.2.51",
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.49",
3
+ "version": "0.2.51",
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",
@@ -1,71 +0,0 @@
1
- /**
2
- * Brand assets are evidence collected while the original page is still open.
3
- * They are deliberately local capture artifacts: no asset is guessed from a
4
- * logo name, and no later stage has to revisit an already-captured site.
5
- */
6
- export declare const REDESIGN_MAX_BRAND_ASSET_CANDIDATES = 24;
7
- export declare const REDESIGN_MAX_NATIVE_BRAND_ASSET_BYTES: number;
8
- export type RedesignBrandAssetSource = 'same-origin-file' | 'inline-svg' | 'screenshot-crop';
9
- /** The [x, y, width, height] box in full-page screenshot/document coordinates. */
10
- export type RedesignCaptureBox = readonly [number, number, number, number];
11
- /** A frozen brand candidate, suitable for pinning by a later redesign stage. */
12
- export type RedesignBrandAssetInventoryEntry = {
13
- inventoryId: string;
14
- /** Page namespace of inventoryId; IDs are unique across a redesign run. */
15
- pageId: string;
16
- domPath: string;
17
- captureBox: RedesignCaptureBox;
18
- /** Absolute location of the frozen native asset, SVG serialization, or PNG crop. */
19
- bytesPath: string;
20
- sha256: string;
21
- mediaType: string;
22
- width: number;
23
- height: number;
24
- /** The resolved authored source URL when the candidate had one; inline SVGs use null. */
25
- sourceUrl: string | null;
26
- source: RedesignBrandAssetSource;
27
- inlineSvg: boolean;
28
- };
29
- export type BrowserBrandAssetCandidate = {
30
- kind: 'img' | 'inline-svg' | 'css-background';
31
- domPath: string;
32
- captureBox: RedesignCaptureBox;
33
- documentUrl: string;
34
- sourceUrl: string | null;
35
- inlineSvg: string | null;
36
- };
37
- /** The small Playwright surface this module needs, kept injectable for offline tests. */
38
- export type RedesignBrandAssetPage = {
39
- evaluate: <Result, Argument = undefined>(pageFunction: (argument: Argument) => Result | Promise<Result>, argument?: Argument) => Promise<Result>;
40
- screenshot: (options: {
41
- path: string;
42
- clip?: {
43
- x: number;
44
- y: number;
45
- width: number;
46
- height: number;
47
- };
48
- }) => Promise<Buffer>;
49
- };
50
- /**
51
- * Finds all potentially brand-bearing painted nodes in the site's own chrome.
52
- * This runs in the already-open page so computed CSS and document-coordinate
53
- * geometry are facts from the exact page captured in the screenshot.
54
- */
55
- export declare const collectRedesignBrandAssetCandidates: (page: RedesignBrandAssetPage) => Promise<BrowserBrandAssetCandidate[]>;
56
- /**
57
- * Freezes a page's brand candidates before its browser closes. Same-origin
58
- * files retain their original bytes; inline SVG retains markup; every painted
59
- * asset that cannot safely be read natively becomes a PNG crop of the exact
60
- * screenshot coordinates recorded in the inventory.
61
- */
62
- export declare const captureRedesignBrandAssetInventory: (args: {
63
- page: RedesignBrandAssetPage;
64
- pageId: string;
65
- assetsDir: string;
66
- /** Candidates measured immediately before the reference screenshot. */
67
- candidates?: readonly BrowserBrandAssetCandidate[];
68
- /** The exact full-page PNG persisted as the capture record. */
69
- captureImagePath: string;
70
- }) => Promise<RedesignBrandAssetInventoryEntry[]>;
71
- //# sourceMappingURL=redesign-brand-asset-inventory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redesign-brand-asset-inventory.d.ts","sourceRoot":"","sources":["../src/redesign-brand-asset-inventory.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AAEH,eAAO,MAAM,mCAAmC,KAAK,CAAC;AACtD,eAAO,MAAM,qCAAqC,QAAkB,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAE7F,kFAAkF;AAClF,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3E,gFAAgF;AAChF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,KAAK,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAQF,yFAAyF;AACzF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,EACrC,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAC9D,QAAQ,CAAC,EAAE,QAAQ,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,OAAO,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAChE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AA4DF;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,GAC9C,MAAM,sBAAsB,KAC3B,OAAO,CAAC,0BAA0B,EAAE,CAmHA,CAAC;AAwExC;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,GAAU,MAAM;IAC7D,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACnD,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;CAC1B,KAAG,OAAO,CAAC,gCAAgC,EAAE,CA+D7C,CAAC"}
@@ -1,318 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { mkdir, writeFile } from 'node:fs/promises';
3
- import path from 'node:path';
4
- import sharp from 'sharp';
5
- /**
6
- * Brand assets are evidence collected while the original page is still open.
7
- * They are deliberately local capture artifacts: no asset is guessed from a
8
- * logo name, and no later stage has to revisit an already-captured site.
9
- */
10
- export const REDESIGN_MAX_BRAND_ASSET_CANDIDATES = 24;
11
- export const REDESIGN_MAX_NATIVE_BRAND_ASSET_BYTES = 5 * 1024 * 1024;
12
- const hashBytes = (bytes) => createHash('sha256').update(bytes).digest('hex');
13
- const dimensionsOf = async (bytes, fallback) => {
14
- try {
15
- const metadata = await sharp(bytes, { animated: false, failOn: 'warning' }).metadata();
16
- if (metadata.width && metadata.height)
17
- return { width: metadata.width, height: metadata.height };
18
- }
19
- catch {
20
- // A source can still be useful evidence even when its media parser does not know its canvas.
21
- }
22
- return {
23
- width: Math.max(1, Math.round(fallback[2])),
24
- height: Math.max(1, Math.round(fallback[3])),
25
- };
26
- };
27
- const mediaTypeFromUrl = (sourceUrl) => {
28
- const pathname = (() => {
29
- try {
30
- return new URL(sourceUrl).pathname.toLowerCase();
31
- }
32
- catch {
33
- return '';
34
- }
35
- })();
36
- if (/\.svg$/u.test(pathname))
37
- return 'image/svg+xml';
38
- if (/\.png$/u.test(pathname))
39
- return 'image/png';
40
- if (/\.jpe?g$/u.test(pathname))
41
- return 'image/jpeg';
42
- if (/\.webp$/u.test(pathname))
43
- return 'image/webp';
44
- if (/\.gif$/u.test(pathname))
45
- return 'image/gif';
46
- if (/\.avif$/u.test(pathname))
47
- return 'image/avif';
48
- return 'application/octet-stream';
49
- };
50
- const fileExtensionFor = (mediaType) => {
51
- const normalized = mediaType.toLowerCase().split(';', 1)[0];
52
- if (normalized === 'image/svg+xml')
53
- return 'svg';
54
- if (normalized === 'image/png')
55
- return 'png';
56
- if (normalized === 'image/jpeg')
57
- return 'jpg';
58
- if (normalized === 'image/webp')
59
- return 'webp';
60
- if (normalized === 'image/gif')
61
- return 'gif';
62
- if (normalized === 'image/avif')
63
- return 'avif';
64
- return 'bin';
65
- };
66
- const isSameOriginFile = (documentUrl, sourceUrl) => {
67
- try {
68
- const document = new URL(documentUrl);
69
- const source = new URL(sourceUrl);
70
- if (document.protocol === 'file:' && source.protocol === 'file:')
71
- return true;
72
- return document.origin !== 'null' && document.origin === source.origin;
73
- }
74
- catch {
75
- return false;
76
- }
77
- };
78
- const candidatePath = (inventoryId, mediaType, directory) => (path.resolve(directory, `${inventoryId}.${fileExtensionFor(mediaType)}`));
79
- /**
80
- * Finds all potentially brand-bearing painted nodes in the site's own chrome.
81
- * This runs in the already-open page so computed CSS and document-coordinate
82
- * geometry are facts from the exact page captured in the screenshot.
83
- */
84
- export const collectRedesignBrandAssetCandidates = async (page) => page.evaluate((maximum) => {
85
- const isRootLink = (node) => {
86
- const anchor = node.closest('a[href]');
87
- const href = anchor?.getAttribute('href');
88
- if (!href)
89
- return false;
90
- // `setContent()` fixtures have an opaque about:blank origin but still
91
- // express the same root-link intent as a live document.
92
- if (/^\/(?:[?#].*)?$/u.test(href.trim()))
93
- return true;
94
- try {
95
- const url = new URL(href, location.href);
96
- return url.origin === location.origin && url.pathname === '/';
97
- }
98
- catch {
99
- return false;
100
- }
101
- };
102
- const isBrandScope = (node) => (node.closest('header, nav, [class*="logo" i]') !== null || isRootLink(node));
103
- const domPath = (node) => {
104
- const segments = [];
105
- let current = node;
106
- while (current && current !== document.documentElement) {
107
- const tag = current.localName.toLowerCase();
108
- if (current.id) {
109
- segments.unshift(`${tag}#${current.id}`);
110
- break;
111
- }
112
- let ordinal = 1;
113
- let sibling = current.previousElementSibling;
114
- while (sibling) {
115
- if (sibling.localName === current.localName)
116
- ordinal += 1;
117
- sibling = sibling.previousElementSibling;
118
- }
119
- segments.unshift(`${tag}:nth-of-type(${ordinal})`);
120
- current = current.parentElement;
121
- }
122
- return `html > ${segments.join(' > ')}`;
123
- };
124
- const sourceFromBackground = (backgroundImage) => {
125
- const match = /url\(\s*(['"]?)(.*?)\1\s*\)/u.exec(backgroundImage);
126
- if (!match?.[2])
127
- return null;
128
- try {
129
- return new URL(match[2], location.href).href;
130
- }
131
- catch {
132
- return null;
133
- }
134
- };
135
- const scoped = new Set();
136
- for (const node of Array.from(document.querySelectorAll('header, header *, nav, nav *, [class*="logo" i], [class*="logo" i] *, a, a *'))) {
137
- if (isBrandScope(node))
138
- scoped.add(node);
139
- }
140
- const result = [];
141
- for (const node of scoped) {
142
- if (result.length >= maximum)
143
- break;
144
- const rect = node.getBoundingClientRect();
145
- if (rect.width < 1 || rect.height < 1)
146
- continue;
147
- const captureBox = [
148
- rect.left + window.scrollX,
149
- rect.top + window.scrollY,
150
- rect.width,
151
- rect.height,
152
- ];
153
- const path = domPath(node);
154
- if (node instanceof HTMLImageElement) {
155
- const source = node.currentSrc || node.src;
156
- result.push({
157
- kind: 'img',
158
- domPath: path,
159
- captureBox,
160
- documentUrl: location.href,
161
- sourceUrl: source || null,
162
- inlineSvg: null,
163
- });
164
- continue;
165
- }
166
- if (node instanceof SVGElement && !node.parentElement?.closest('svg')) {
167
- result.push({
168
- kind: 'inline-svg',
169
- domPath: path,
170
- captureBox,
171
- documentUrl: location.href,
172
- sourceUrl: null,
173
- inlineSvg: new XMLSerializer().serializeToString(node),
174
- });
175
- continue;
176
- }
177
- const backgroundImage = getComputedStyle(node).backgroundImage;
178
- if (backgroundImage && backgroundImage !== 'none') {
179
- result.push({
180
- kind: 'css-background',
181
- domPath: path,
182
- captureBox,
183
- documentUrl: location.href,
184
- sourceUrl: sourceFromBackground(backgroundImage),
185
- inlineSvg: null,
186
- });
187
- }
188
- }
189
- return result;
190
- }, REDESIGN_MAX_BRAND_ASSET_CANDIDATES);
191
- const fetchSameOriginAsset = async (page, sourceUrl) => page.evaluate(async (args) => {
192
- try {
193
- const response = await fetch(args.sourceUrl, { credentials: 'include' });
194
- if (!response.ok)
195
- return null;
196
- const announcedLength = Number(response.headers.get('content-length'));
197
- if (Number.isFinite(announcedLength) && announcedLength > args.maximumBytes)
198
- return null;
199
- const bytes = new Uint8Array(await response.arrayBuffer());
200
- if (bytes.byteLength > args.maximumBytes)
201
- return null;
202
- let binary = '';
203
- for (let start = 0; start < bytes.length; start += 0x8000) {
204
- binary += String.fromCharCode(...bytes.subarray(start, start + 0x8000));
205
- }
206
- return {
207
- bytesBase64: btoa(binary),
208
- mediaType: response.headers.get('content-type'),
209
- finalUrl: response.url,
210
- };
211
- }
212
- catch {
213
- return null;
214
- }
215
- }, { sourceUrl, maximumBytes: REDESIGN_MAX_NATIVE_BRAND_ASSET_BYTES });
216
- const captureFallbackCrop = async (args) => {
217
- const bytesPath = candidatePath(args.inventoryId, 'image/png', args.assetsDir);
218
- const capture = sharp(args.captureImagePath, { animated: false, failOn: 'warning' });
219
- const metadata = await capture.metadata();
220
- if (!metadata.width || !metadata.height) {
221
- throw new Error(`Captured page ${args.captureImagePath} has no raster dimensions`);
222
- }
223
- const left = Math.max(0, Math.floor(args.candidate.captureBox[0]));
224
- const top = Math.max(0, Math.floor(args.candidate.captureBox[1]));
225
- const right = Math.min(metadata.width, Math.ceil(args.candidate.captureBox[0] + args.candidate.captureBox[2]));
226
- const bottom = Math.min(metadata.height, Math.ceil(args.candidate.captureBox[1] + args.candidate.captureBox[3]));
227
- if (right <= left || bottom <= top) {
228
- throw new Error(`Brand candidate ${args.inventoryId} falls outside the captured page frame`);
229
- }
230
- const bytes = await sharp(args.captureImagePath, { animated: false, failOn: 'warning' })
231
- .extract({ left, top, width: right - left, height: bottom - top })
232
- .png()
233
- .toBuffer();
234
- await writeFile(bytesPath, bytes);
235
- const dimensions = await dimensionsOf(bytes, args.candidate.captureBox);
236
- return {
237
- inventoryId: args.inventoryId,
238
- pageId: args.pageId,
239
- domPath: args.candidate.domPath,
240
- captureBox: args.candidate.captureBox,
241
- bytesPath,
242
- sha256: hashBytes(bytes),
243
- mediaType: 'image/png',
244
- ...dimensions,
245
- sourceUrl: args.candidate.sourceUrl,
246
- source: 'screenshot-crop',
247
- inlineSvg: false,
248
- };
249
- };
250
- /**
251
- * Freezes a page's brand candidates before its browser closes. Same-origin
252
- * files retain their original bytes; inline SVG retains markup; every painted
253
- * asset that cannot safely be read natively becomes a PNG crop of the exact
254
- * screenshot coordinates recorded in the inventory.
255
- */
256
- export const captureRedesignBrandAssetInventory = async (args) => {
257
- await mkdir(args.assetsDir, { recursive: true });
258
- const candidates = args.candidates ?? await collectRedesignBrandAssetCandidates(args.page);
259
- const entries = [];
260
- for (const [index, candidate] of candidates.entries()) {
261
- const inventoryId = `${args.pageId}-brand-${String(index + 1).padStart(2, '0')}`;
262
- if (candidate.kind === 'inline-svg' && candidate.inlineSvg) {
263
- const bytes = Buffer.from(candidate.inlineSvg, 'utf8');
264
- const bytesPath = candidatePath(inventoryId, 'image/svg+xml', args.assetsDir);
265
- await writeFile(bytesPath, bytes);
266
- const dimensions = await dimensionsOf(bytes, candidate.captureBox);
267
- entries.push({
268
- inventoryId,
269
- pageId: args.pageId,
270
- domPath: candidate.domPath,
271
- captureBox: candidate.captureBox,
272
- bytesPath,
273
- sha256: hashBytes(bytes),
274
- mediaType: 'image/svg+xml',
275
- ...dimensions,
276
- sourceUrl: null,
277
- source: 'inline-svg',
278
- inlineSvg: true,
279
- });
280
- continue;
281
- }
282
- if (candidate.sourceUrl && isSameOriginFile(candidate.documentUrl, candidate.sourceUrl)) {
283
- const fetched = await fetchSameOriginAsset(args.page, candidate.sourceUrl);
284
- const finishedSameOrigin = fetched !== null && isSameOriginFile(candidate.documentUrl, fetched.finalUrl);
285
- if (finishedSameOrigin && fetched) {
286
- const bytes = Buffer.from(fetched.bytesBase64, 'base64');
287
- const mediaType = fetched.mediaType?.split(';', 1)[0].trim() || mediaTypeFromUrl(candidate.sourceUrl);
288
- const bytesPath = candidatePath(inventoryId, mediaType, args.assetsDir);
289
- await writeFile(bytesPath, bytes);
290
- const dimensions = await dimensionsOf(bytes, candidate.captureBox);
291
- entries.push({
292
- inventoryId,
293
- pageId: args.pageId,
294
- domPath: candidate.domPath,
295
- captureBox: candidate.captureBox,
296
- bytesPath,
297
- sha256: hashBytes(bytes),
298
- mediaType,
299
- // Dimensions follow the frozen source bytes, not CSS density or layout size.
300
- ...dimensions,
301
- sourceUrl: candidate.sourceUrl,
302
- source: 'same-origin-file',
303
- inlineSvg: false,
304
- });
305
- continue;
306
- }
307
- }
308
- entries.push(await captureFallbackCrop({
309
- candidate,
310
- pageId: args.pageId,
311
- inventoryId,
312
- assetsDir: args.assetsDir,
313
- captureImagePath: args.captureImagePath,
314
- }));
315
- }
316
- return entries;
317
- };
318
- //# sourceMappingURL=redesign-brand-asset-inventory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redesign-brand-asset-inventory.js","sourceRoot":"","sources":["../src/redesign-brand-asset-inventory.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { RedesignBrandAssetInventoryEntry } from './redesign-brand-asset-inventory.js';
2
- import type { RedesignPinnedAssetRecord } from './redesign-workspace.js';
3
- export type RedesignCapturedAssetInventory = {
4
- id: string;
5
- /** Optional for records written before capture inventory existed. */
6
- brandAssetInventory?: readonly RedesignBrandAssetInventoryEntry[];
7
- };
8
- /**
9
- * Converts a planner's durable choice into the exact capture evidence it
10
- * named. There is deliberately no nearest-match fallback: an absent or
11
- * ambiguous choice must not turn into a pin for another asset.
12
- */
13
- export declare const resolveRedesignPinnedAsset: (args: {
14
- pinnedAssetChoice: {
15
- inventoryId: string;
16
- reason: string;
17
- } | null;
18
- pages: readonly RedesignCapturedAssetInventory[];
19
- }) => RedesignPinnedAssetRecord | null;
20
- //# sourceMappingURL=redesign-pinned-asset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redesign-pinned-asset.d.ts","sourceRoot":"","sources":["../src/redesign-pinned-asset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAC;CACnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,MAAM;IAC/C,iBAAiB,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE,KAAK,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAClD,KAAG,yBAAyB,GAAG,IA2B/B,CAAC"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Converts a planner's durable choice into the exact capture evidence it
3
- * named. There is deliberately no nearest-match fallback: an absent or
4
- * ambiguous choice must not turn into a pin for another asset.
5
- */
6
- export const resolveRedesignPinnedAsset = (args) => {
7
- const choice = args.pinnedAssetChoice;
8
- if (choice === null)
9
- return null;
10
- const matches = args.pages.flatMap((page) => (page.brandAssetInventory ?? [])
11
- .filter((asset) => asset.inventoryId === choice.inventoryId)
12
- .map((asset) => ({ page, asset })));
13
- if (matches.length !== 1) {
14
- throw new Error(matches.length === 0
15
- ? `Hosted plan chose unknown brand asset ${choice.inventoryId}.`
16
- : `Hosted plan chose ambiguous brand asset ${choice.inventoryId}.`);
17
- }
18
- const { page, asset } = matches[0];
19
- if (asset.pageId !== page.id) {
20
- throw new Error(`Captured brand asset ${asset.inventoryId} belongs to ${asset.pageId}, not ${page.id}.`);
21
- }
22
- return {
23
- inventoryId: asset.inventoryId,
24
- pageId: asset.pageId,
25
- sourceUrl: asset.sourceUrl,
26
- inlineSvg: asset.inlineSvg,
27
- bytesPath: asset.bytesPath,
28
- sha256: asset.sha256,
29
- mediaType: asset.mediaType,
30
- width: asset.width,
31
- height: asset.height,
32
- captureBox: [...asset.captureBox],
33
- };
34
- };
35
- //# sourceMappingURL=redesign-pinned-asset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redesign-pinned-asset.js","sourceRoot":"","sources":["../src/redesign-pinned-asset.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAG1C,EAAoC,EAAE;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACtC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;SAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;SAC3D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAClC,CAAC,CAAC,yCAAyC,MAAM,CAAC,WAAW,GAAG;YAChE,CAAC,CAAC,2CAA2C,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,WAAW,eAAe,KAAK,CAAC,MAAM,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAqC;KACtE,CAAC;AACJ,CAAC,CAAC"}