@agent-native/creative-context 0.5.12 → 0.6.2

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.
@@ -35,7 +35,7 @@ export default defineAction({
35
35
  autoSelectedConnectionId: connections.length === 1 ? connections[0].connectionId : null,
36
36
  needsPicker: connections.length > 1,
37
37
  needsSetup: connections.length === 0,
38
- connectionsPath: "/settings#integrations",
38
+ connectionsPath: "/settings/integrations",
39
39
  connectPath: creativeContextConnectionPath({ provider, appId }),
40
40
  };
41
41
  },
@@ -284,7 +284,7 @@ function ContextPreviewSheet({ manifest, onOpenChange, }) {
284
284
  function ContextRail({ contexts, selectedContextId, disabled, canCreate, onSelect, onCreate, }) {
285
285
  return (_jsxs("aside", { className: "border-b border-border/70 pb-5", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-sm font-semibold", children: "Contexts" }), _jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: "Choose the reusable context that should guide this work." })] }), _jsx(Badge, { variant: "outline", children: contexts.length })] }), _jsxs("div", { className: "mt-3 flex gap-2 overflow-x-auto pb-1", children: [contexts.map((context) => (_jsxs("button", { type: "button", disabled: disabled, "aria-pressed": selectedContextId === context.id, onClick: () => onSelect(context.id), className: `min-w-40 rounded-md border px-3 py-2 text-start transition-colors disabled:opacity-60 ${selectedContextId === context.id ? "border-foreground/25 bg-accent text-foreground" : "border-border text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`, children: [_jsx("span", { className: "block truncate text-sm font-medium", children: context.name }), _jsx("span", { className: "mt-0.5 block truncate text-xs", children: context.description || `${context.memberCount} resources` })] }, context.id))), _jsxs(Button, { type: "button", variant: "outline", className: "min-w-40 justify-start", disabled: disabled || !canCreate, onClick: onCreate, children: [_jsx(IconPlus, {}), " New context"] }), !contexts.length ? (_jsx("p", { className: "py-2 text-sm text-muted-foreground", children: "Create a context from a resource\u2019s Share tab to start organizing the Library." })) : null] })] }));
286
286
  }
287
- export function CreativeContextPanel({ scope = "user", canManageOrg = false, scopeControl, connectionsHref = "/settings#integrations", }) {
287
+ export function CreativeContextPanel({ scope = "user", canManageOrg = false, scopeControl, connectionsHref = "/settings/integrations", }) {
288
288
  const t = useT();
289
289
  const { formatNumber } = useFormatters();
290
290
  const { data: org } = useOrg();
@@ -12,6 +12,7 @@ export { NotionContextConnector, notionRecommendedRootPageIds, } from "./notion.
12
12
  export { parseUploadedDocument, type ParseDocumentInput, type ParsedDocument, } from "./document-parser.js";
13
13
  export { ContextImportConnectorRegistry } from "./registry.js";
14
14
  export { LayeredRenderedPageProvider, type LayeredRenderedPageProviderOptions, type RenderedPageMethod, type RenderedPageProvider, type RenderedPageRequest, type RenderedPageResult, } from "./rendered-page.js";
15
+ export { brandKitDataFromExtraction, buildDesignMarkdown, extractRenderedDesignSystemFromUrl, styleBriefFromRenderedDesign, type ExtractRenderedDesignOptions, type RenderedDesignExtraction, type RenderedDesignExtractionStatus, } from "./rendered-design.js";
15
16
  export { recommendContextRoots, type ContextRootRecommendation, type ContextRootRecommendationProvider, } from "./recommendations.js";
16
17
  export { smartDefaultExternalIds } from "./smart-defaults.js";
17
18
  export { UploadContextConnector } from "./upload.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAgB/D,wBAAgB,wCAAwC,CACtD,QAAQ,iCAA0C,GACjD,8BAA8B,CAKhC;AAED,wBAAgB,mCAAmC,IAAI,8BAA8B,CAEpF;AAED,wBAAgB,2CAA2C,IAAI,8BAA8B,CAI5F;AAED,OAAO,EACL,6CAA6C,EAC7C,iCAAiC,EACjC,KAAK,6CAA6C,GACnD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kCAAkC,EAClC,4BAA4B,EAC5B,sCAAsC,GACvC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAChC,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAgB/D,wBAAgB,wCAAwC,CACtD,QAAQ,iCAA0C,GACjD,8BAA8B,CAKhC;AAED,wBAAgB,mCAAmC,IAAI,8BAA8B,CAEpF;AAED,wBAAgB,2CAA2C,IAAI,8BAA8B,CAI5F;AAED,OAAO,EACL,6CAA6C,EAC7C,iCAAiC,EACjC,KAAK,6CAA6C,GACnD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kCAAkC,EAClC,4BAA4B,EAC5B,sCAAsC,GACvC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,4BAA4B,EAC5B,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,GACpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAChC,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -37,6 +37,7 @@ export { NotionContextConnector, notionRecommendedRootPageIds, } from "./notion.
37
37
  export { parseUploadedDocument, } from "./document-parser.js";
38
38
  export { ContextImportConnectorRegistry } from "./registry.js";
39
39
  export { LayeredRenderedPageProvider, } from "./rendered-page.js";
40
+ export { brandKitDataFromExtraction, buildDesignMarkdown, extractRenderedDesignSystemFromUrl, styleBriefFromRenderedDesign, } from "./rendered-design.js";
40
41
  export { recommendContextRoots, } from "./recommendations.js";
41
42
  export { smartDefaultExternalIds } from "./smart-defaults.js";
42
43
  export { UploadContextConnector } from "./upload.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,kBAAkB,GAAG;IACzB,IAAI,sBAAsB,EAAE;IAC5B,IAAI,sBAAsB,EAAE;IAC5B,IAAI,4BAA4B,EAAE;IAClC,IAAI,qBAAqB,EAAE;IAC3B,IAAI,sBAAsB,EAAE;IAC5B,IAAI,uBAAuB,EAAE;CACrB,CAAC;AAEX,MAAM,uCAAuC,GAC3C,IAAI,8BAA8B,EAAE,CAAC;AAEvC,MAAM,UAAU,wCAAwC,CACtD,QAAQ,GAAG,uCAAuC;IAElD,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO,wCAAwC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,2CAA2C;IACzD,OAAO,wCAAwC,CAC7C,IAAI,8BAA8B,EAAE,CACrC,CAAC;AACJ,CAAC;AAED,OAAO,EACL,6CAA6C,EAC7C,iCAAiC,GAElC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kCAAkC,EAClC,4BAA4B,EAC5B,sCAAsC,GACvC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,GAOhC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,2BAA2B,GAM5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,kBAAkB,GAAG;IACzB,IAAI,sBAAsB,EAAE;IAC5B,IAAI,sBAAsB,EAAE;IAC5B,IAAI,4BAA4B,EAAE;IAClC,IAAI,qBAAqB,EAAE;IAC3B,IAAI,sBAAsB,EAAE;IAC5B,IAAI,uBAAuB,EAAE;CACrB,CAAC;AAEX,MAAM,uCAAuC,GAC3C,IAAI,8BAA8B,EAAE,CAAC;AAEvC,MAAM,UAAU,wCAAwC,CACtD,QAAQ,GAAG,uCAAuC;IAElD,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO,wCAAwC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,2CAA2C;IACzD,OAAO,wCAAwC,CAC7C,IAAI,8BAA8B,EAAE,CACrC,CAAC;AACJ,CAAC;AAED,OAAO,EACL,6CAA6C,EAC7C,iCAAiC,GAElC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kCAAkC,EAClC,4BAA4B,EAC5B,sCAAsC,GACvC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,GAOhC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EACL,2BAA2B,GAM5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,4BAA4B,GAI7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { BrandKitData } from "@agent-native/core/brand-kit";
2
+ import type { WebsiteDesignTokens } from "@agent-native/core/ingestion";
3
+ import { type RenderedPageProvider, type RenderedPageRequest, type RenderedPageResult } from "./rendered-page.js";
4
+ export type RenderedDesignExtractionStatus = "complete" | "partial" | "failed";
5
+ export interface RenderedDesignExtraction {
6
+ status: RenderedDesignExtractionStatus;
7
+ url: string;
8
+ finalUrl?: string;
9
+ title?: string;
10
+ rendered: boolean;
11
+ method?: RenderedPageResult["method"];
12
+ confidence?: number;
13
+ designTokens?: WebsiteDesignTokens;
14
+ designMd?: string;
15
+ brandKit?: BrandKitData;
16
+ /** Back-compat projections for callers that consumed the old URL action. */
17
+ pageTitle?: string;
18
+ cssCustomProperties?: Record<string, string>;
19
+ colors?: string[];
20
+ fonts?: string[];
21
+ fontFaces?: Array<{
22
+ family: string;
23
+ weight?: string;
24
+ }>;
25
+ googleFonts?: string[];
26
+ stylesheetUrls?: string[];
27
+ assets?: RenderedPageResult["extraction"]["assets"];
28
+ screenshotEvidence?: Array<{
29
+ viewport: "desktop" | "mobile";
30
+ width: number;
31
+ height: number;
32
+ bytes: number;
33
+ }>;
34
+ warnings: string[];
35
+ diagnostics: string[];
36
+ error?: string;
37
+ }
38
+ export interface ExtractRenderedDesignOptions extends Pick<RenderedPageRequest, "timeoutMs" | "preferHosted"> {
39
+ provider?: RenderedPageProvider;
40
+ }
41
+ /**
42
+ * Extract a bounded visual language from a public website. Browser rendering
43
+ * is deliberately delegated to the layered provider so this works with
44
+ * Builder Browser, local Playwright, an approved attached browser, or the
45
+ * existing SSRF-safe static fallback without changing app code.
46
+ */
47
+ export declare function extractRenderedDesignSystemFromUrl(websiteUrl: string, options?: ExtractRenderedDesignOptions): Promise<RenderedDesignExtraction>;
48
+ /** Convert the shared browser result into the Assets style-brief vocabulary. */
49
+ export declare function styleBriefFromRenderedDesign(extraction: RenderedDesignExtraction): Record<string, unknown>;
50
+ export declare function brandKitDataFromExtraction(input: {
51
+ url: string;
52
+ finalUrl?: string;
53
+ title?: string;
54
+ designTokens: WebsiteDesignTokens;
55
+ designMd: string;
56
+ assets?: RenderedPageResult["extraction"]["assets"];
57
+ }): BrandKitData;
58
+ export declare function buildDesignMarkdown(input: {
59
+ url: string;
60
+ finalUrl: string;
61
+ title: string;
62
+ rendered: boolean;
63
+ method: RenderedPageResult["method"];
64
+ confidence: number;
65
+ designTokens: WebsiteDesignTokens;
66
+ warnings: string[];
67
+ }): string;
68
+ //# sourceMappingURL=rendered-design.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rendered-design.d.ts","sourceRoot":"","sources":["../../src/connectors/rendered-design.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,8BAA8B,CAAC;AAMtC,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAqB5B,MAAM,MAAM,8BAA8B,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,8BAA8B,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,kBAAkB,CAAC,EAAE,KAAK,CAAC;QACzB,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CACxD,mBAAmB,EACnB,WAAW,GAAG,cAAc,CAC7B;IACC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,wBAAwB,CAAC,CAmFnC;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,wBAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuCzB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;CACrD,GAAG,YAAY,CAqEf;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,MAAM,CAqFT"}
@@ -0,0 +1,362 @@
1
+ import { classifyBrandKitToken, friendlyTokenName, normalizeBrandWebsiteUrl, } from "@agent-native/core/brand-kit";
2
+ import { LayeredRenderedPageProvider, } from "./rendered-page.js";
3
+ const MAX_DESIGN_MD_CHARS = 20_000;
4
+ const MAX_TOKENS = 500;
5
+ const FALLBACK_COLORS = {
6
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
7
+ primary: "#111827",
8
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
9
+ secondary: "#374151",
10
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
11
+ accent: "#2563EB",
12
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
13
+ background: "#FFFFFF",
14
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
15
+ surface: "#F9FAFB",
16
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
17
+ text: "#111827",
18
+ // guard:allow-raw-color - fallback design-token data, not rendered UI color
19
+ textMuted: "#6B7280",
20
+ };
21
+ /**
22
+ * Extract a bounded visual language from a public website. Browser rendering
23
+ * is deliberately delegated to the layered provider so this works with
24
+ * Builder Browser, local Playwright, an approved attached browser, or the
25
+ * existing SSRF-safe static fallback without changing app code.
26
+ */
27
+ export async function extractRenderedDesignSystemFromUrl(websiteUrl, options = {}) {
28
+ let url;
29
+ try {
30
+ url = normalizeBrandWebsiteUrl(websiteUrl);
31
+ }
32
+ catch (error) {
33
+ return failedExtraction(websiteUrl, error);
34
+ }
35
+ const provider = options.provider ?? new LayeredRenderedPageProvider();
36
+ let page;
37
+ try {
38
+ page = await provider.render({
39
+ url,
40
+ timeoutMs: options.timeoutMs,
41
+ preferHosted: options.preferHosted,
42
+ waitUntil: "load",
43
+ });
44
+ }
45
+ catch (error) {
46
+ return failedExtraction(url, error);
47
+ }
48
+ const designTokens = page.extraction.designTokens;
49
+ const designMd = buildDesignMarkdown({
50
+ url,
51
+ finalUrl: page.finalUrl,
52
+ title: page.title,
53
+ rendered: page.rendered,
54
+ method: page.method,
55
+ confidence: page.confidence,
56
+ designTokens,
57
+ warnings: page.warnings,
58
+ });
59
+ const status = page.rendered
60
+ ? page.warnings.length > 0 || page.screenshots.length < 2
61
+ ? "partial"
62
+ : "complete"
63
+ : "partial";
64
+ return {
65
+ status,
66
+ url,
67
+ finalUrl: page.finalUrl,
68
+ title: page.title,
69
+ rendered: page.rendered,
70
+ method: page.method,
71
+ confidence: page.confidence,
72
+ designTokens,
73
+ designMd,
74
+ brandKit: brandKitDataFromExtraction({
75
+ url,
76
+ finalUrl: page.finalUrl,
77
+ title: page.title,
78
+ designTokens,
79
+ designMd,
80
+ assets: page.extraction.assets,
81
+ }),
82
+ pageTitle: page.title,
83
+ cssCustomProperties: designTokens.cssVariables,
84
+ colors: designTokens.colors,
85
+ fonts: uniqueStrings(designTokens.typography.map((style) => firstFontFamily(style.family))),
86
+ fontFaces: designTokens.typography.slice(0, 24).map((style) => ({
87
+ family: firstFontFamily(style.family),
88
+ weight: style.weight,
89
+ })),
90
+ googleFonts: uniqueStrings(designTokens.typography.map((style) => firstFontFamily(style.family))),
91
+ stylesheetUrls: page.extraction.assets
92
+ .filter((asset) => asset.kind === "stylesheet")
93
+ .map((asset) => asset.url)
94
+ .slice(0, 64),
95
+ assets: page.extraction.assets,
96
+ screenshotEvidence: page.screenshots.map((screenshot) => ({
97
+ viewport: screenshot.viewport,
98
+ width: screenshot.width,
99
+ height: screenshot.height,
100
+ bytes: screenshot.data.byteLength,
101
+ })),
102
+ warnings: page.warnings,
103
+ diagnostics: page.diagnostics,
104
+ };
105
+ }
106
+ /** Convert the shared browser result into the Assets style-brief vocabulary. */
107
+ export function styleBriefFromRenderedDesign(extraction) {
108
+ const tokens = extraction.designTokens;
109
+ const typography = tokens?.typography ?? [];
110
+ const componentStyles = tokens?.components ?? [];
111
+ const semanticColors = tokens?.semanticColors ?? {};
112
+ const bodyTypography = componentStyles.find((style) => style.role === "body");
113
+ const headingTypography = componentStyles.find((style) => style.role === "heading");
114
+ return {
115
+ description: extraction.finalUrl
116
+ ? `Rendered visual language extracted from ${extraction.finalUrl}.`
117
+ : "Rendered visual language extracted from a website.",
118
+ palette: tokens?.colors?.slice(0, 12) ?? [],
119
+ fontFamilies: uniqueStrings(typography.map((style) => firstFontFamily(style.family))),
120
+ fontWeights: uniqueStrings(typography
121
+ .map((style) => style.weight)
122
+ .concat(componentStyles.map((style) => style.fontWeight ?? ""))),
123
+ typographyPolicy: typographyPolicy(headingTypography, bodyTypography),
124
+ composition: tokens?.layout
125
+ ? `Content width ${tokens.layout.contentWidth ?? "fluid"}; page padding ${tokens.layout.pagePadding ?? "not observed"}; section gap ${tokens.layout.sectionGap ?? "not observed"}.`
126
+ : undefined,
127
+ sourceUrl: extraction.finalUrl ?? extraction.url,
128
+ rendered: extraction.rendered,
129
+ designMd: extraction.designMd,
130
+ semanticColors,
131
+ spacing: tokens?.spacing?.slice(0, 24),
132
+ radii: tokens?.radii?.slice(0, 16),
133
+ shadows: tokens?.shadows?.slice(0, 12),
134
+ backgrounds: tokens?.backgrounds?.slice(0, 12),
135
+ componentStyles: componentStyles.slice(0, 12),
136
+ cssVariables: tokens?.cssVariables,
137
+ warnings: extraction.warnings,
138
+ };
139
+ }
140
+ export function brandKitDataFromExtraction(input) {
141
+ const tokens = input.designTokens;
142
+ const semantic = tokens.semanticColors ?? {};
143
+ const colors = {
144
+ primary: semantic.primary ?? tokens.colors[0] ?? FALLBACK_COLORS.primary,
145
+ secondary: semantic.secondary ?? tokens.colors[1] ?? FALLBACK_COLORS.secondary,
146
+ accent: semantic.accent ?? tokens.colors[0] ?? FALLBACK_COLORS.accent,
147
+ background: semantic.background ?? tokens.colors[2] ?? FALLBACK_COLORS.background,
148
+ surface: semantic.surface ?? tokens.colors[3] ?? FALLBACK_COLORS.surface,
149
+ text: semantic.text ?? tokens.colors[4] ?? FALLBACK_COLORS.text,
150
+ textMuted: semantic.textMuted ?? tokens.colors[5] ?? FALLBACK_COLORS.textMuted,
151
+ };
152
+ const heading = tokens.components?.find((component) => component.role === "heading");
153
+ const body = tokens.components?.find((component) => component.role === "body");
154
+ const typography = tokens.typography;
155
+ const headingTypography = typography[0];
156
+ const bodyTypography = typography[1] ?? typography[0];
157
+ const source = input.finalUrl ?? input.url;
158
+ return {
159
+ colors,
160
+ typography: {
161
+ headingFont: firstFontFamily(heading?.fontFamily ?? headingTypography?.family) ||
162
+ "system-ui",
163
+ bodyFont: firstFontFamily(body?.fontFamily ?? bodyTypography?.family) ||
164
+ "system-ui",
165
+ headingWeight: heading?.fontWeight ?? headingTypography?.weight ?? "700",
166
+ bodyWeight: body?.fontWeight ?? bodyTypography?.weight ?? "400",
167
+ headingSizes: {
168
+ h1: componentFontSize(tokens, "heading", "h1") ?? "48px",
169
+ h2: componentFontSize(tokens, "heading", "h2") ?? "36px",
170
+ h3: componentFontSize(tokens, "heading", "h3") ?? "24px",
171
+ },
172
+ },
173
+ spacing: {
174
+ pagePadding: tokens.layout?.pagePadding ?? tokens.spacing[0] ?? "24px",
175
+ elementGap: tokens.layout?.sectionGap ?? tokens.spacing[1] ?? "16px",
176
+ },
177
+ borders: {
178
+ radius: tokens.radii[0] ?? "8px",
179
+ accentWidth: "0px",
180
+ },
181
+ logos: (input.assets ?? [])
182
+ .filter((asset) => asset.role === "logo")
183
+ .slice(0, 12)
184
+ .map((asset, index) => ({
185
+ url: asset.url,
186
+ name: `Logo ${index + 1}`,
187
+ variant: "auto",
188
+ })),
189
+ tokens: tokensToBrandKitTokens(tokens, source),
190
+ notes: [
191
+ `Source: ${source}`,
192
+ input.title ? `Page title: ${input.title}` : "",
193
+ "The values above were inferred from the live computed browser cascade.",
194
+ input.designMd,
195
+ ]
196
+ .filter(Boolean)
197
+ .join("\n\n"),
198
+ };
199
+ }
200
+ export function buildDesignMarkdown(input) {
201
+ const tokens = input.designTokens;
202
+ const semantic = tokens.semanticColors ?? {};
203
+ const lines = [
204
+ `# ${safeHeading(input.title || new URL(input.finalUrl).hostname)} design system`,
205
+ "",
206
+ `Source: ${input.finalUrl}`,
207
+ `Extraction: ${input.rendered ? "real browser computed styles" : "SSRF-safe static HTML fallback"} (${input.method}; confidence ${Math.round(input.confidence * 100)}%)`,
208
+ "",
209
+ "## Colors",
210
+ ...roleLines(semantic),
211
+ ...(tokens.colors.length > 0
212
+ ? ["", `Observed palette: ${tokens.colors.slice(0, 16).join(", ")}`]
213
+ : ["", "No visible color samples were available."]),
214
+ "",
215
+ "## Typography",
216
+ ...tokens.typography
217
+ .slice(0, 12)
218
+ .map((style) => `- ${style.family}; ${style.size}; weight ${style.weight}; line-height ${style.lineHeight}; tracking ${style.letterSpacing}`),
219
+ ...(tokens.typography.length === 0
220
+ ? ["- No visible typography samples were available."]
221
+ : []),
222
+ "",
223
+ "## Spacing, shape, and depth",
224
+ `- Spacing: ${tokens.spacing.slice(0, 20).join(", ") || "not observed"}`,
225
+ `- Radii: ${tokens.radii.slice(0, 12).join(", ") || "not observed"}`,
226
+ `- Shadows: ${(tokens.shadows ?? []).slice(0, 8).join("; ") || "not observed"}`,
227
+ `- Background treatments: ${(tokens.backgrounds ?? []).slice(0, 8).join("; ") || "not observed"}`,
228
+ ...(tokens.layout
229
+ ? [
230
+ `- Layout: content width ${tokens.layout.contentWidth ?? "fluid"}; page padding ${tokens.layout.pagePadding ?? "not observed"}; section gap ${tokens.layout.sectionGap ?? "not observed"}`,
231
+ ]
232
+ : []),
233
+ "",
234
+ "## Component language",
235
+ ...(tokens.components ?? [])
236
+ .slice(0, 12)
237
+ .map((component) => [
238
+ `- ${component.role}:`,
239
+ component.fontFamily,
240
+ component.fontSize ? `size ${component.fontSize}` : undefined,
241
+ component.fontWeight ? `weight ${component.fontWeight}` : undefined,
242
+ component.color ? `color ${component.color}` : undefined,
243
+ component.backgroundColor
244
+ ? `background ${component.backgroundColor}`
245
+ : undefined,
246
+ component.backgroundImage
247
+ ? `background image ${component.backgroundImage}`
248
+ : undefined,
249
+ component.borderRadius
250
+ ? `radius ${component.borderRadius}`
251
+ : undefined,
252
+ component.boxShadow ? `shadow ${component.boxShadow}` : undefined,
253
+ component.padding ? `padding ${component.padding}` : undefined,
254
+ component.textTransform
255
+ ? `case ${component.textTransform}`
256
+ : undefined,
257
+ ]
258
+ .filter(Boolean)
259
+ .join("; ")),
260
+ ...((tokens.components ?? []).length === 0
261
+ ? ["- No representative visible component styles were available."]
262
+ : []),
263
+ "",
264
+ "## CSS variables",
265
+ ...Object.entries(tokens.cssVariables)
266
+ .slice(0, 64)
267
+ .map(([name, value]) => `- ${name}: ${value}`),
268
+ ...(Object.keys(tokens.cssVariables).length === 0
269
+ ? ["- No root CSS custom properties were available."]
270
+ : []),
271
+ ...(input.warnings.length > 0
272
+ ? [
273
+ "",
274
+ "## Extraction notes",
275
+ ...input.warnings.map((warning) => `- ${warning}`),
276
+ ]
277
+ : []),
278
+ ];
279
+ return lines.join("\n").slice(0, MAX_DESIGN_MD_CHARS);
280
+ }
281
+ function failedExtraction(url, error) {
282
+ const message = error instanceof Error ? error.message : String(error);
283
+ return {
284
+ status: "failed",
285
+ url,
286
+ rendered: false,
287
+ warnings: [],
288
+ diagnostics: [],
289
+ error: message,
290
+ };
291
+ }
292
+ function roleLines(colors) {
293
+ const roles = [
294
+ "primary",
295
+ "secondary",
296
+ "accent",
297
+ "background",
298
+ "surface",
299
+ "text",
300
+ "textMuted",
301
+ ];
302
+ return roles.map((role) => `- ${role}: ${colors[role] ?? "not observed"}`);
303
+ }
304
+ function firstFontFamily(value) {
305
+ return (value
306
+ ?.split(",")[0]
307
+ ?.trim()
308
+ .replace(/^['"]|['"]$/g, "") ?? "");
309
+ }
310
+ function uniqueStrings(values) {
311
+ return [...new Set(values.map((value) => value.trim()).filter(Boolean))];
312
+ }
313
+ function typographyPolicy(heading, body) {
314
+ if (!heading && !body)
315
+ return undefined;
316
+ return [
317
+ heading
318
+ ? `Headings use ${firstFontFamily(heading.fontFamily)} at ${heading.fontWeight ?? "default"} weight.`
319
+ : "",
320
+ body
321
+ ? `Body copy uses ${firstFontFamily(body.fontFamily)} at ${body.fontWeight ?? "default"} weight.`
322
+ : "",
323
+ ]
324
+ .filter(Boolean)
325
+ .join(" ");
326
+ }
327
+ function componentFontSize(tokens, role, level) {
328
+ const heading = tokens.components?.find((component) => component.role === role);
329
+ if (!heading?.fontSize)
330
+ return undefined;
331
+ if (level === "h1")
332
+ return heading.fontSize;
333
+ const numeric = Number.parseFloat(heading.fontSize);
334
+ if (!Number.isFinite(numeric))
335
+ return heading.fontSize;
336
+ return `${Math.max(level === "h2" ? 24 : 18, Math.round(numeric * (level === "h2" ? 0.75 : 0.58)))}px`;
337
+ }
338
+ function tokensToBrandKitTokens(tokens, source) {
339
+ const entries = Object.entries(tokens.cssVariables).slice(0, MAX_TOKENS);
340
+ const cssTokens = entries.map(([cssVar, value]) => ({
341
+ name: friendlyTokenName(cssVar),
342
+ cssVar,
343
+ value,
344
+ type: classifyBrandKitToken(cssVar, value),
345
+ source,
346
+ }));
347
+ const observedColors = tokens.colors.slice(0, 32).map((value, index) => ({
348
+ name: `Observed Color ${index + 1}`,
349
+ cssVar: `--observed-color-${index + 1}`,
350
+ value,
351
+ type: "color",
352
+ source,
353
+ }));
354
+ return [...cssTokens, ...observedColors].slice(0, MAX_TOKENS);
355
+ }
356
+ function safeHeading(value) {
357
+ return (value
358
+ .replace(/[\r\n#]/g, " ")
359
+ .trim()
360
+ .slice(0, 160) || "Website");
361
+ }
362
+ //# sourceMappingURL=rendered-design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rendered-design.js","sourceRoot":"","sources":["../../src/connectors/rendered-design.ts"],"names":[],"mappings":"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"}
@@ -34,11 +34,18 @@ interface PlaywrightRequestLike {
34
34
  url(): string;
35
35
  isNavigationRequest(): boolean;
36
36
  resourceType(): string;
37
+ method?(): string;
38
+ headers?(): Record<string, string>;
37
39
  }
38
40
  interface PlaywrightRouteLike {
39
41
  request(): PlaywrightRequestLike;
40
42
  continue(): Promise<void>;
41
43
  abort(errorCode?: string): Promise<void>;
44
+ fulfill(options: {
45
+ status: number;
46
+ headers: Record<string, string>;
47
+ body: Uint8Array;
48
+ }): Promise<void>;
42
49
  }
43
50
  interface PlaywrightPageLike {
44
51
  route(pattern: string, handler: (route: PlaywrightRouteLike) => Promise<void>): Promise<void>;
@@ -46,6 +53,9 @@ interface PlaywrightPageLike {
46
53
  timeout: number;
47
54
  waitUntil: string;
48
55
  }): Promise<unknown>;
56
+ waitForLoadState?(state: "load" | "domcontentloaded" | "networkidle", options?: {
57
+ timeout: number;
58
+ }): Promise<void>;
49
59
  title(): Promise<string>;
50
60
  url(): string;
51
61
  locator(selector: string): {
@@ -64,10 +74,11 @@ interface PlaywrightPageLike {
64
74
  interface PlaywrightContextLike {
65
75
  pages(): PlaywrightPageLike[];
66
76
  newPage(): Promise<PlaywrightPageLike>;
77
+ close?(): Promise<void>;
67
78
  }
68
79
  interface PlaywrightBrowserLike {
69
80
  contexts(): PlaywrightContextLike[];
70
- newContext(): Promise<PlaywrightContextLike>;
81
+ newContext?(): Promise<PlaywrightContextLike>;
71
82
  close(): Promise<void>;
72
83
  }
73
84
  interface PlaywrightLike {
@@ -75,6 +86,8 @@ interface PlaywrightLike {
75
86
  connectOverCDP(endpoint: string): Promise<PlaywrightBrowserLike>;
76
87
  launch(options: {
77
88
  headless: boolean;
89
+ args?: string[];
90
+ executablePath?: string;
78
91
  }): Promise<PlaywrightBrowserLike>;
79
92
  };
80
93
  }
@@ -96,6 +109,7 @@ export declare class LayeredRenderedPageProvider implements RenderedPageProvider
96
109
  constructor(options?: LayeredRenderedPageProviderOptions);
97
110
  render(request: RenderedPageRequest): Promise<RenderedPageResult>;
98
111
  }
112
+ export declare function renderWithPlaywright(playwright: PlaywrightLike, request: RenderedPageRequest, warnings: string[], method: "builder-browser" | "local-playwright" | "attached-chrome", wsUrl?: string): Promise<RenderedPageResult>;
99
113
  export declare function boundWebsiteExtraction(extraction: WebsiteExtraction): WebsiteExtraction;
100
114
  export {};
101
115
  //# sourceMappingURL=rendered-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rendered-page.d.ts","sourceRoot":"","sources":["../../src/connectors/rendered-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendered-page.d.ts","sourceRoot":"","sources":["../../src/connectors/rendered-page.ts"],"names":[],"mappings":"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"}