p1-polymorph-studio 0.1.0
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/bin/314-lex.js +2 -0
- package/dist/chunk-BCH2RATL.js +817 -0
- package/dist/chunk-BCH2RATL.js.map +1 -0
- package/dist/chunk-HGZJ53NR.cjs +817 -0
- package/dist/chunk-HGZJ53NR.cjs.map +1 -0
- package/dist/cli/index.cjs +423 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +2 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +423 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.cjs +59 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +895 -0
- package/dist/index.d.ts +895 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/errors.ts","../src/utils/api.ts","../src/client/kuds.ts","../src/types/registry.ts","../src/types/kud.ts","../src/utils/diff.ts","../src/utils/cosine.ts","../src/client/kuis.ts","../src/client/layouts.ts","../src/client/tokens.ts","../src/utils/css-parser.ts","../src/client/config.ts","../src/types/kui.ts","../src/types/layout.ts","../src/types/config.ts","../src/types/tokens.ts","../src/index.ts"],"sourcesContent":["export class LexApiError extends Error {\n constructor(\n message: string,\n public statusCode: number,\n public body: unknown,\n ) {\n super(message)\n this.name = 'LexApiError'\n }\n}\n\nexport class LexValidationError extends Error {\n constructor(\n message: string,\n public errors: string[],\n ) {\n super(message)\n this.name = 'LexValidationError'\n }\n}\n\nexport class LexConfigError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'LexConfigError'\n }\n}\n","import type { LexClientOptions } from '../types/config.js'\nimport { LexApiError } from './errors.js'\n\nfunction toSnakeCase(str: string): string {\n return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`)\n}\n\nfunction toCamelCase(str: string): string {\n return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())\n}\n\nfunction convertKeys(obj: unknown, converter: (key: string) => string): unknown {\n if (obj === null || obj === undefined) return obj\n if (Array.isArray(obj)) return obj.map((item) => convertKeys(item, converter))\n if (typeof obj === 'object') {\n const result: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(obj as Record<string, unknown>)) {\n result[converter(key)] = convertKeys(value, converter)\n }\n return result\n }\n return obj\n}\n\nexport function toApiPayload(obj: unknown): unknown {\n return convertKeys(obj, toSnakeCase)\n}\n\nexport function fromApiResponse(obj: unknown): unknown {\n return convertKeys(obj, toCamelCase)\n}\n\nexport interface ApiClient {\n get<T = unknown>(path: string, params?: Record<string, string>): Promise<T>\n post<T = unknown>(path: string, body?: unknown): Promise<T>\n put<T = unknown>(path: string, body?: unknown): Promise<T>\n del<T = unknown>(path: string): Promise<T>\n}\n\nexport function createApiClient(options: LexClientOptions): ApiClient {\n const { baseUrl, token, projectId } = options\n const fetchFn = options.fetch ?? globalThis.fetch\n\n async function request<T>(method: string, path: string, body?: unknown, params?: Record<string, string>): Promise<T> {\n const url = new URL(path, baseUrl)\n url.searchParams.set('project_id', projectId)\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.set(key, value)\n }\n }\n\n const headers: Record<string, string> = {\n 'Authorization': `Bearer ${token}`,\n 'Content-Type': 'application/json',\n }\n\n const init: RequestInit = { method, headers }\n if (body !== undefined) {\n init.body = JSON.stringify(toApiPayload(body))\n }\n\n const response = await fetchFn(url.toString(), init)\n\n if (!response.ok) {\n let errorBody: unknown\n try {\n errorBody = await response.json()\n } catch {\n errorBody = await response.text()\n }\n throw new LexApiError(\n `API request failed: ${method} ${path} → ${response.status}`,\n response.status,\n errorBody,\n )\n }\n\n if (response.status === 204) return undefined as T\n\n const data = await response.json()\n return fromApiResponse(data) as T\n }\n\n return {\n get: <T>(path: string, params?: Record<string, string>) => request<T>('GET', path, undefined, params),\n post: <T>(path: string, body?: unknown) => request<T>('POST', path, body),\n put: <T>(path: string, body?: unknown) => request<T>('PUT', path, body),\n del: <T>(path: string) => request<T>('DELETE', path),\n }\n}\n","import { readFile, writeFile } from 'node:fs/promises'\nimport type { ApiClient } from '../utils/api.js'\nimport type { KUD, CreateKUDInput, UpdateKUDInput } from '../types/kud.js'\nimport type { KudRegistry, KudRegistryEntry } from '../types/registry.js'\nimport { KudRegistrySchema } from '../types/registry.js'\nimport { diffRegistryVsDatabase } from '../utils/diff.js'\n\nexport interface SyncResult {\n created: number\n updated: number\n deleted: number\n unchanged: number\n}\n\nexport interface KudsClient {\n list(): Promise<KUD[]>\n getByType(type: string): Promise<KUD | null>\n create(input: CreateKUDInput): Promise<KUD>\n update(id: string, input: UpdateKUDInput): Promise<KUD>\n delete(id: string): Promise<void>\n syncFromRegistry(registryPath: string): Promise<SyncResult>\n syncToRegistry(registryPath: string): Promise<void>\n}\n\nexport function createKudsClient(api: ApiClient, projectId: string): KudsClient {\n return {\n async list(): Promise<KUD[]> {\n return api.get<KUD[]>('/kuds')\n },\n\n async getByType(type: string): Promise<KUD | null> {\n const kuds = await api.get<KUD[]>('/kuds', { type })\n return kuds[0] ?? null\n },\n\n async create(input: CreateKUDInput): Promise<KUD> {\n return api.post<KUD>('/kuds', input)\n },\n\n async update(id: string, input: UpdateKUDInput): Promise<KUD> {\n return api.put<KUD>(`/kuds/${id}`, input)\n },\n\n async delete(id: string): Promise<void> {\n await api.del(`/kuds/${id}`)\n },\n\n async syncFromRegistry(registryPath: string): Promise<SyncResult> {\n const raw = await readFile(registryPath, 'utf-8')\n const registry = KudRegistrySchema.parse(JSON.parse(raw))\n const dbKuds = await api.get<KUD[]>('/kuds')\n\n const diff = diffRegistryVsDatabase(registry.kuds, dbKuds)\n\n for (const entry of diff.toCreate) {\n await api.post('/kuds', {\n type: entry.type,\n label: entry.label,\n schema: entry.schema,\n metadata: entry.metadata,\n })\n }\n\n for (const { entry, existingId } of diff.toUpdate) {\n await api.put(`/kuds/${existingId}`, {\n schema: entry.schema,\n label: entry.label,\n metadata: entry.metadata,\n })\n }\n\n for (const kud of diff.toDelete) {\n await api.del(`/kuds/${kud.id}`)\n }\n\n return {\n created: diff.toCreate.length,\n updated: diff.toUpdate.length,\n deleted: diff.toDelete.length,\n unchanged: diff.unchanged.length,\n }\n },\n\n async syncToRegistry(registryPath: string): Promise<void> {\n const dbKuds = await api.get<KUD[]>('/kuds')\n\n const registry: KudRegistry = {\n version: 1,\n projectId,\n generatedAt: new Date().toISOString(),\n kuds: dbKuds.map((kud) => ({\n type: kud.type,\n label: kud.label ?? undefined,\n version: kud.version,\n schema: kud.schema,\n metadata: kud.metadata ?? undefined,\n })),\n }\n\n await writeFile(registryPath, JSON.stringify(registry, null, 2) + '\\n', 'utf-8')\n },\n }\n}\n","import { z } from 'zod'\nimport { KUDFieldDefSchema } from './kud.js'\n\nexport const KudRegistryEntrySchema = z.object({\n type: z.string(),\n label: z.string().optional(),\n version: z.number().int().default(1),\n schema: z.record(z.string(), KUDFieldDefSchema),\n componentPath: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type KudRegistryEntry = z.infer<typeof KudRegistryEntrySchema>\n\nexport const KudRegistrySchema = z.object({\n version: z.number().int().default(1),\n projectId: z.string(),\n generatedAt: z.string(),\n kuds: z.array(KudRegistryEntrySchema),\n})\n\nexport type KudRegistry = z.infer<typeof KudRegistrySchema>\n","import { z } from 'zod'\n\nexport const KUDFieldTypeSchema = z.enum([\n 'string',\n 'text',\n 'number',\n 'boolean',\n 'image',\n 'link',\n 'array',\n 'object',\n])\n\nexport type KUDFieldType = z.infer<typeof KUDFieldTypeSchema>\n\nexport const KUDFieldDefSchema: z.ZodType<KUDFieldDef> = z.lazy(() =>\n z.object({\n type: KUDFieldTypeSchema,\n required: z.boolean().optional(),\n description: z.string().optional(),\n items: KUDFieldDefSchema.optional(),\n properties: z.record(z.string(), KUDFieldDefSchema).optional(),\n })\n)\n\nexport interface KUDFieldDef {\n type: KUDFieldType\n required?: boolean\n description?: string\n items?: KUDFieldDef\n properties?: Record<string, KUDFieldDef>\n}\n\nexport const KUDSchema = z.object({\n id: z.string().uuid(),\n projectId: z.string(),\n type: z.string(),\n label: z.string().nullable().optional(),\n version: z.number().int().default(1),\n schema: z.record(z.string(), KUDFieldDefSchema),\n defaultKuiId: z.string().uuid().nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).nullable().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n})\n\nexport type KUD = z.infer<typeof KUDSchema>\n\nexport const CreateKUDInputSchema = z.object({\n type: z.string().min(1),\n label: z.string().optional(),\n schema: z.record(z.string(), KUDFieldDefSchema),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type CreateKUDInput = z.infer<typeof CreateKUDInputSchema>\n\nexport const UpdateKUDInputSchema = z.object({\n label: z.string().optional(),\n schema: z.record(z.string(), KUDFieldDefSchema).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type UpdateKUDInput = z.infer<typeof UpdateKUDInputSchema>\n","import type { KUD } from '../types/kud.js'\nimport type { KudRegistryEntry } from '../types/registry.js'\n\nexport interface DiffResult {\n toCreate: KudRegistryEntry[]\n toUpdate: Array<{ entry: KudRegistryEntry; existingId: string }>\n toDelete: KUD[]\n unchanged: KUD[]\n}\n\nfunction deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true\n if (a === null || b === null) return false\n if (typeof a !== typeof b) return false\n if (typeof a !== 'object') return false\n\n const aObj = a as Record<string, unknown>\n const bObj = b as Record<string, unknown>\n const aKeys = Object.keys(aObj)\n const bKeys = Object.keys(bObj)\n\n if (aKeys.length !== bKeys.length) return false\n\n return aKeys.every((key) => deepEqual(aObj[key], bObj[key]))\n}\n\nexport function diffRegistryVsDatabase(\n registry: KudRegistryEntry[],\n dbKuds: KUD[],\n): DiffResult {\n const dbByType = new Map(dbKuds.map((kud) => [kud.type, kud]))\n const registryTypes = new Set(registry.map((e) => e.type))\n\n const toCreate: KudRegistryEntry[] = []\n const toUpdate: Array<{ entry: KudRegistryEntry; existingId: string }> = []\n const unchanged: KUD[] = []\n\n for (const entry of registry) {\n const existing = dbByType.get(entry.type)\n if (!existing) {\n toCreate.push(entry)\n } else if (!deepEqual(entry.schema, existing.schema)) {\n toUpdate.push({ entry, existingId: existing.id })\n } else {\n unchanged.push(existing)\n }\n }\n\n const toDelete = dbKuds.filter((kud) => !registryTypes.has(kud.type))\n\n return { toCreate, toUpdate, toDelete, unchanged }\n}\n","export function cosineSimilarity(a: number[], b: number[]): number {\n if (a.length !== b.length) {\n throw new Error(`Vector length mismatch: ${a.length} vs ${b.length}`)\n }\n\n let dot = 0\n let magA = 0\n let magB = 0\n\n for (let i = 0; i < a.length; i++) {\n dot += a[i] * b[i]\n magA += a[i] * a[i]\n magB += b[i] * b[i]\n }\n\n const magnitude = Math.sqrt(magA) * Math.sqrt(magB)\n if (magnitude === 0) return 0\n\n return dot / magnitude\n}\n\nexport interface RankedCandidate {\n id: string\n score: number\n positionScore: number\n velocityScore: number\n}\n\nexport interface ScoringOptions {\n queryVector: number[]\n queryVelocity?: number[]\n velocityWeight?: number\n}\n\n/**\n * Compute a blended score from position similarity and velocity similarity.\n *\n * finalScore = (1 - velocityWeight) * positionSimilarity + velocityWeight * velocitySimilarity\n *\n * If either the candidate or the query has no velocity vector, only position\n * similarity is used (velocity contribution is 0).\n */\nexport function blendedScore(\n candidatePosition: number[],\n candidateVelocity: number[] | null | undefined,\n query: ScoringOptions,\n): { score: number; positionScore: number; velocityScore: number } {\n const positionScore = cosineSimilarity(candidatePosition, query.queryVector)\n\n const weight = query.velocityWeight ?? 0.3\n if (!query.queryVelocity || !candidateVelocity || weight === 0) {\n return { score: positionScore, positionScore, velocityScore: 0 }\n }\n\n const velocityScore = cosineSimilarity(candidateVelocity, query.queryVelocity)\n const score = (1 - weight) * positionScore + weight * velocityScore\n\n return { score, positionScore, velocityScore }\n}\n\nexport function rankBySimilarity(\n candidates: Array<{ id: string; vector: number[]; velocity?: number[] | null; priority?: number }>,\n query: ScoringOptions,\n): RankedCandidate[] {\n return candidates\n .map((c) => {\n const { score, positionScore, velocityScore } = blendedScore(\n c.vector,\n c.velocity,\n query,\n )\n return {\n id: c.id,\n score,\n positionScore,\n velocityScore,\n priority: c.priority ?? 0,\n }\n })\n .sort((a, b) => {\n const scoreDiff = b.score - a.score\n if (Math.abs(scoreDiff) > 1e-9) return scoreDiff\n return b.priority - a.priority\n })\n .map(({ id, score, positionScore, velocityScore }) => ({ id, score, positionScore, velocityScore }))\n}\n","import type { ApiClient } from '../utils/api.js'\nimport type { KUI, CreateKUIInput, UpdateKUIInput, ResolveKUIInput, ListKUIsFilter } from '../types/kui.js'\nimport { blendedScore } from '../utils/cosine.js'\nimport { LexApiError } from '../utils/errors.js'\n\nexport interface BulkImportResult {\n created: number\n errors: Array<{ index: number; error: string }>\n}\n\nexport interface KuisClient {\n list(filter?: ListKUIsFilter): Promise<KUI[]>\n resolve(input: ResolveKUIInput): Promise<KUI | null>\n create(input: CreateKUIInput): Promise<KUI>\n update(id: string, input: UpdateKUIInput): Promise<KUI>\n publish(id: string): Promise<KUI>\n archive(id: string): Promise<KUI>\n bulkImport(items: CreateKUIInput[]): Promise<BulkImportResult>\n}\n\nexport function createKuisClient(api: ApiClient, _projectId: string): KuisClient {\n return {\n async list(filter?: ListKUIsFilter): Promise<KUI[]> {\n const params: Record<string, string> = {}\n if (filter?.kudType) params.kud_type = filter.kudType\n if (filter?.locale) params.locale = filter.locale\n if (filter?.status) params.status = filter.status\n if (filter?.intentStage) params.intent_stage = filter.intentStage\n return api.get<KUI[]>('/kuis', params)\n },\n\n async resolve(input: ResolveKUIInput): Promise<KUI | null> {\n try {\n return await api.post<KUI>('/kuis/resolve', input)\n } catch (err) {\n if (err instanceof LexApiError && err.statusCode === 404) {\n // Fallback: local cosine similarity\n const kuis = await api.get<KUI[]>('/kuis', {\n kud_type: input.kudType,\n locale: input.locale,\n status: 'published',\n })\n\n if (kuis.length === 0) return null\n\n let bestKui: KUI | null = null\n let bestScore = -Infinity\n\n for (const kui of kuis) {\n const { score } = blendedScore(\n kui.intentAffinity,\n kui.intentVelocity,\n {\n queryVector: input.intentVector,\n queryVelocity: input.intentVelocity,\n velocityWeight: input.velocityWeight,\n },\n )\n if (score > bestScore || (score === bestScore && kui.priority > (bestKui?.priority ?? 0))) {\n bestScore = score\n bestKui = kui\n }\n }\n\n return bestKui\n }\n throw err\n }\n },\n\n async create(input: CreateKUIInput): Promise<KUI> {\n return api.post<KUI>('/kuis', input)\n },\n\n async update(id: string, input: UpdateKUIInput): Promise<KUI> {\n return api.put<KUI>(`/kuis/${id}`, input)\n },\n\n async publish(id: string): Promise<KUI> {\n return api.put<KUI>(`/kuis/${id}`, { status: 'published' })\n },\n\n async archive(id: string): Promise<KUI> {\n return api.put<KUI>(`/kuis/${id}`, { status: 'archived' })\n },\n\n async bulkImport(items: CreateKUIInput[]): Promise<BulkImportResult> {\n let created = 0\n const errors: Array<{ index: number; error: string }> = []\n\n for (let i = 0; i < items.length; i++) {\n try {\n await api.post('/kuis', items[i])\n created++\n } catch (err) {\n errors.push({\n index: i,\n error: err instanceof Error ? err.message : String(err),\n })\n }\n }\n\n return { created, errors }\n },\n }\n}\n","import type { ApiClient } from '../utils/api.js'\nimport type { PageLayout, ResolvedPage, UpdateLayoutInput } from '../types/layout.js'\nimport type { KUI } from '../types/kui.js'\nimport type { IntentVector } from '../types/kui.js'\nimport { blendedScore } from '../utils/cosine.js'\nimport { LexApiError } from '../utils/errors.js'\n\nexport interface ResolveLayoutOptions {\n locale?: string\n intentVector: IntentVector\n intentVelocity?: IntentVector\n velocityWeight?: number\n}\n\nexport interface LayoutsClient {\n get(pageId: string, locale?: string): Promise<PageLayout>\n update(pageId: string, locale: string, input: UpdateLayoutInput): Promise<PageLayout>\n resolve(pageId: string, opts: ResolveLayoutOptions): Promise<ResolvedPage>\n}\n\nexport function createLayoutsClient(api: ApiClient, _projectId: string): LayoutsClient {\n return {\n async get(pageId: string, locale?: string): Promise<PageLayout> {\n const params: Record<string, string> = {}\n if (locale) params.locale = locale\n return api.get<PageLayout>(`/layouts/${pageId}`, params)\n },\n\n async update(pageId: string, locale: string, input: UpdateLayoutInput): Promise<PageLayout> {\n return api.put<PageLayout>(`/layouts/${pageId}`, { locale, ...input })\n },\n\n async resolve(pageId: string, opts: ResolveLayoutOptions): Promise<ResolvedPage> {\n try {\n return await api.post<ResolvedPage>(`/layouts/${pageId}/resolve`, {\n locale: opts.locale ?? 'en',\n intentVector: opts.intentVector,\n intentVelocity: opts.intentVelocity,\n velocityWeight: opts.velocityWeight,\n })\n } catch (err) {\n if (err instanceof LexApiError && err.statusCode === 404) {\n // Fallback: local resolution\n const locale = opts.locale ?? 'en'\n const layout = await this.get(pageId, locale)\n\n const resolvedSlots = await Promise.all(\n layout.slots.map(async (slot) => {\n const kuis = await api.get<KUI[]>('/kuis', {\n kud_type: slot.kudId,\n locale,\n status: 'published',\n })\n\n let bestKui: KUI | null = null\n let bestScore = -Infinity\n\n for (const kui of kuis) {\n const { score } = blendedScore(\n kui.intentAffinity,\n kui.intentVelocity,\n {\n queryVector: opts.intentVector,\n queryVelocity: opts.intentVelocity,\n velocityWeight: opts.velocityWeight,\n },\n )\n if (score > bestScore || (score === bestScore && kui.priority > (bestKui?.priority ?? 0))) {\n bestScore = score\n bestKui = kui\n }\n }\n\n return {\n slotId: slot.slotId,\n kui: bestKui!,\n score: bestScore,\n }\n })\n )\n\n return {\n pageId,\n slots: resolvedSlots.filter((s) => s.kui !== null),\n }\n }\n throw err\n }\n },\n }\n}\n","import { readFile, writeFile } from 'node:fs/promises'\nimport type { ApiClient } from '../utils/api.js'\nimport type { DesignToken } from '../types/tokens.js'\nimport { extractTokensFromCSS, generateCSSFromTokens } from '../utils/css-parser.js'\n\nexport interface PullFromFigmaOptions {\n fileKey: string\n figmaToken: string\n}\n\nexport interface TokensClient {\n pushFromCode(cssPath: string): Promise<{ upserted: number }>\n pullToCode(cssPath: string): Promise<void>\n pullFromFigma(opts: PullFromFigmaOptions): Promise<{ synced: number }>\n exportDTCG(): Promise<Record<string, unknown>>\n}\n\nexport function createTokensClient(api: ApiClient, _projectId: string): TokensClient {\n return {\n async pushFromCode(cssPath: string): Promise<{ upserted: number }> {\n const css = await readFile(cssPath, 'utf-8')\n const extracted = extractTokensFromCSS(css)\n\n let upserted = 0\n for (const token of extracted) {\n await api.post('/tokens', {\n collection: token.collection,\n name: token.name,\n valueLight: token.value,\n })\n upserted++\n }\n\n return { upserted }\n },\n\n async pullToCode(cssPath: string): Promise<void> {\n const tokens = await api.get<DesignToken[]>('/tokens')\n const css = generateCSSFromTokens(tokens)\n await writeFile(cssPath, css, 'utf-8')\n },\n\n async pullFromFigma(opts: PullFromFigmaOptions): Promise<{ synced: number }> {\n const url = `https://api.figma.com/v1/files/${opts.fileKey}/variables/local`\n const response = await fetch(url, {\n headers: { 'X-Figma-Token': opts.figmaToken },\n })\n\n if (!response.ok) {\n throw new Error(`Figma API error: ${response.status} ${response.statusText}`)\n }\n\n const data = await response.json() as {\n meta: {\n variables: Record<string, {\n id: string\n name: string\n resolvedType: string\n valuesByMode: Record<string, unknown>\n }>\n variableCollections: Record<string, {\n name: string\n modes: Array<{ modeId: string; name: string }>\n }>\n }\n }\n\n let synced = 0\n const variables = Object.values(data.meta.variables)\n\n for (const variable of variables) {\n const collection = variable.resolvedType.toLowerCase() === 'color' ? 'colors' : 'other'\n const modes = Object.entries(variable.valuesByMode)\n const lightValue = modes[0]?.[1]\n const darkValue = modes[1]?.[1]\n\n await api.post('/tokens', {\n collection,\n name: variable.name,\n valueLight: lightValue,\n valueDark: darkValue,\n figmaVariableId: variable.id,\n })\n synced++\n }\n\n return { synced }\n },\n\n async exportDTCG(): Promise<Record<string, unknown>> {\n const tokens = await api.get<DesignToken[]>('/tokens')\n\n const dtcg: Record<string, unknown> = {}\n\n for (const token of tokens) {\n const parts = token.name.split('/')\n let current = dtcg\n for (let i = 0; i < parts.length - 1; i++) {\n if (!current[parts[i]]) current[parts[i]] = {}\n current = current[parts[i]] as Record<string, unknown>\n }\n\n const leafName = parts[parts.length - 1]\n current[leafName] = {\n $value: token.valueLight,\n $type: token.collection === 'colors' ? 'color' : token.collection,\n ...(token.valueDark ? { $extensions: { 'com.figma': { dark: token.valueDark } } } : {}),\n }\n }\n\n return dtcg\n },\n }\n}\n","import type { DesignToken } from '../types/tokens.js'\n\ninterface ExtractedToken {\n collection: string\n name: string\n value: string\n}\n\nfunction classifyToken(name: string): string {\n if (name.startsWith('--color-') || name.startsWith('--tw-color-')) return 'colors'\n if (name.startsWith('--font-') || name.startsWith('--tw-font-')) return 'typography'\n if (name.startsWith('--spacing-') || name.startsWith('--tw-spacing-')) return 'spacing'\n if (name.startsWith('--radius-') || name.startsWith('--tw-radius-')) return 'borderRadius'\n if (name.startsWith('--shadow-') || name.startsWith('--tw-shadow-')) return 'shadows'\n return 'other'\n}\n\nfunction stripPrefix(name: string): string {\n return name.replace(/^--(?:tw-)?/, '')\n}\n\nexport function extractTokensFromCSS(cssContent: string): ExtractedToken[] {\n const tokens: ExtractedToken[] = []\n\n // Match :root { ... } blocks\n const rootBlockRegex = /:root\\s*\\{([^}]+)\\}/g\n let match: RegExpExecArray | null\n\n while ((match = rootBlockRegex.exec(cssContent)) !== null) {\n const block = match[1]\n parseCustomProperties(block, tokens)\n }\n\n // Match @theme { ... } blocks (Tailwind v4)\n const themeBlockRegex = /@theme\\s*\\{([^}]+)\\}/g\n while ((match = themeBlockRegex.exec(cssContent)) !== null) {\n const block = match[1]\n parseCustomProperties(block, tokens)\n }\n\n return tokens\n}\n\nfunction parseCustomProperties(block: string, tokens: ExtractedToken[]): void {\n const propRegex = /(--[\\w-]+)\\s*:\\s*([^;]+);/g\n let match: RegExpExecArray | null\n\n while ((match = propRegex.exec(block)) !== null) {\n const name = match[1]\n const value = match[2].trim()\n tokens.push({\n collection: classifyToken(name),\n name: stripPrefix(name),\n value,\n })\n }\n}\n\nexport function generateCSSFromTokens(tokens: DesignToken[]): string {\n const lines: string[] = [':root {']\n\n for (const token of tokens) {\n const cssName = `--${token.name}`\n const value = token.valueLight ?? token.valueDark\n if (value !== null && value !== undefined) {\n lines.push(` ${cssName}: ${String(value)};`)\n }\n }\n\n lines.push('}')\n\n // Dark mode tokens\n const darkTokens = tokens.filter((t) => t.valueDark !== null && t.valueDark !== undefined)\n if (darkTokens.length > 0) {\n lines.push('')\n lines.push('@media (prefers-color-scheme: dark) {')\n lines.push(' :root {')\n for (const token of darkTokens) {\n lines.push(` --${token.name}: ${String(token.valueDark)};`)\n }\n lines.push(' }')\n lines.push('}')\n }\n\n return lines.join('\\n') + '\\n'\n}\n","import { readFile, writeFile, watch as fsWatch } from 'node:fs/promises'\nimport { watch as fsWatchSync } from 'node:fs'\nimport type { ApiClient } from '../utils/api.js'\nimport type { LexConfig } from '../types/config.js'\nimport type { KudRegistry } from '../types/registry.js'\nimport type { KUD } from '../types/kud.js'\n\nexport interface WatchOptions {\n paths: string[]\n onChange: (changedFile: string) => Promise<void> | void\n}\n\nexport interface ConfigClient {\n generate(outputPath?: string): Promise<void>\n generateRegistry(outputPath?: string): Promise<void>\n watch(opts: WatchOptions): () => void\n}\n\nexport function createConfigClient(api: ApiClient, projectId: string): ConfigClient {\n return {\n async generate(outputPath = '314-lex.config.json'): Promise<void> {\n let existing: Partial<LexConfig> = {}\n try {\n const raw = await readFile(outputPath, 'utf-8')\n existing = JSON.parse(raw)\n } catch {\n // No existing config, start fresh\n }\n\n const config: LexConfig = {\n $schema: 'https://unpkg.com/@314-lex/sdk/schema/config.json',\n version: 2,\n name: existing.name ?? projectId,\n projectId: existing.projectId ?? projectId,\n tokens: existing.tokens,\n kuds: existing.kuds,\n figma: existing.figma,\n api: existing.api ?? {\n baseUrl: 'env:POLYMORPH_BASE_URL',\n token: 'env:POLYMORPH_TOKEN',\n routes: '/api/314-lex',\n },\n github: existing.github,\n }\n\n await writeFile(outputPath, JSON.stringify(config, null, 2) + '\\n', 'utf-8')\n },\n\n async generateRegistry(outputPath = 'kuds.registry.json'): Promise<void> {\n const dbKuds = await api.get<KUD[]>('/kuds')\n\n const registry: KudRegistry = {\n version: 1,\n projectId,\n generatedAt: new Date().toISOString(),\n kuds: dbKuds.map((kud) => ({\n type: kud.type,\n label: kud.label ?? undefined,\n version: kud.version,\n schema: kud.schema,\n metadata: kud.metadata ?? undefined,\n })),\n }\n\n await writeFile(outputPath, JSON.stringify(registry, null, 2) + '\\n', 'utf-8')\n },\n\n watch(opts: WatchOptions): () => void {\n const watchers: ReturnType<typeof fsWatchSync>[] = []\n\n for (const path of opts.paths) {\n const watcher = fsWatchSync(path, { recursive: true }, (_event, filename) => {\n if (filename) {\n opts.onChange(filename)\n }\n })\n watchers.push(watcher)\n }\n\n return () => {\n for (const watcher of watchers) {\n watcher.close()\n }\n }\n },\n }\n}\n","import { z } from 'zod'\n\nexport const IntentVectorSchema = z.tuple([\n z.number(),\n z.number(),\n z.number(),\n z.number(),\n z.number(),\n])\n\nexport type IntentVector = z.infer<typeof IntentVectorSchema>\n\nexport const KUIStatusSchema = z.enum(['draft', 'published', 'archived'])\n\nexport type KUIStatus = z.infer<typeof KUIStatusSchema>\n\nexport const KUISchema = z.object({\n id: z.string().uuid(),\n kudId: z.string().uuid(),\n kudType: z.string(),\n projectId: z.string(),\n locale: z.string().default('en'),\n intentAffinity: IntentVectorSchema,\n intentVelocity: IntentVectorSchema.nullable().optional(),\n priority: z.number().int().default(0),\n content: z.record(z.string(), z.unknown()),\n metadata: z.record(z.string(), z.unknown()).nullable().optional(),\n status: KUIStatusSchema.default('draft'),\n createdAt: z.string(),\n updatedAt: z.string(),\n})\n\nexport type KUI = z.infer<typeof KUISchema>\n\nexport const CreateKUIInputSchema = z.object({\n kudType: z.string().min(1),\n locale: z.string().default('en'),\n intentAffinity: IntentVectorSchema,\n intentVelocity: IntentVectorSchema.optional(),\n priority: z.number().int().default(0),\n content: z.record(z.string(), z.unknown()),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type CreateKUIInput = z.infer<typeof CreateKUIInputSchema>\n\nexport const UpdateKUIInputSchema = z.object({\n locale: z.string().optional(),\n intentAffinity: IntentVectorSchema.optional(),\n intentVelocity: IntentVectorSchema.nullable().optional(),\n priority: z.number().int().optional(),\n content: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n status: KUIStatusSchema.optional(),\n})\n\nexport type UpdateKUIInput = z.infer<typeof UpdateKUIInputSchema>\n\nexport const ResolveKUIInputSchema = z.object({\n kudType: z.string().min(1),\n intentVector: IntentVectorSchema,\n intentVelocity: IntentVectorSchema.optional(),\n velocityWeight: z.number().min(0).max(1).default(0.3),\n locale: z.string().default('en'),\n})\n\nexport type ResolveKUIInput = z.infer<typeof ResolveKUIInputSchema>\n\nexport const ListKUIsFilterSchema = z.object({\n kudType: z.string().optional(),\n locale: z.string().optional(),\n status: KUIStatusSchema.optional(),\n intentStage: z.enum(['awareness', 'interest', 'consideration', 'decision', 'evaluation']).optional(),\n})\n\nexport type ListKUIsFilter = z.infer<typeof ListKUIsFilterSchema>\n","import { z } from 'zod'\nimport { KUISchema } from './kui.js'\n\nexport const PageSlotSchema = z.object({\n slotId: z.string(),\n kudId: z.string(),\n required: z.boolean().default(true),\n candidateKuiIds: z.array(z.string()).optional(),\n})\n\nexport type PageSlot = z.infer<typeof PageSlotSchema>\n\nexport const PageLayoutSchema = z.object({\n id: z.string().uuid(),\n projectId: z.string(),\n pageId: z.string(),\n locale: z.string().default('en'),\n slots: z.array(PageSlotSchema),\n createdAt: z.string(),\n updatedAt: z.string(),\n})\n\nexport type PageLayout = z.infer<typeof PageLayoutSchema>\n\nexport const ResolvedSlotSchema = z.object({\n slotId: z.string(),\n kui: KUISchema,\n score: z.number(),\n})\n\nexport type ResolvedSlot = z.infer<typeof ResolvedSlotSchema>\n\nexport const ResolvedPageSchema = z.object({\n pageId: z.string(),\n slots: z.array(ResolvedSlotSchema),\n})\n\nexport type ResolvedPage = z.infer<typeof ResolvedPageSchema>\n\nexport const UpdateLayoutInputSchema = z.object({\n slots: z.array(PageSlotSchema),\n})\n\nexport type UpdateLayoutInput = z.infer<typeof UpdateLayoutInputSchema>\n","import { z } from 'zod'\n\nexport const LexConfigSchema = z.object({\n $schema: z.string().optional(),\n version: z.number().int(),\n name: z.string(),\n projectId: z.string(),\n\n tokens: z.object({\n source: z.string(),\n css: z.string(),\n overrides: z.record(z.string(), z.unknown()).optional(),\n }).optional(),\n\n kuds: z.object({\n typesFile: z.string(),\n componentsDir: z.string(),\n registry: z.string().default('kuds.registry.json'),\n autoSync: z.boolean().default(false),\n }).optional(),\n\n figma: z.object({\n fileKey: z.string(),\n variableCollections: z.array(z.string()).optional(),\n }).optional(),\n\n api: z.object({\n baseUrl: z.string(),\n token: z.string(),\n routes: z.string().default('/api/314-lex'),\n }).optional(),\n\n github: z.object({\n repo: z.string(),\n branchPrefix: z.string().optional(),\n }).optional(),\n})\n\nexport type LexConfig = z.infer<typeof LexConfigSchema>\n\nexport const LexClientOptionsSchema = z.object({\n baseUrl: z.string().url(),\n token: z.string().min(1),\n projectId: z.string().min(1),\n fetch: z.function().optional(),\n})\n\nexport interface LexClientOptions {\n baseUrl: string\n token: string\n projectId: string\n fetch?: typeof globalThis.fetch\n}\n","import { z } from 'zod'\n\nexport const DesignTokenSchema = z.object({\n id: z.string().uuid(),\n projectId: z.string(),\n collection: z.string(),\n name: z.string(),\n valueLight: z.unknown().nullable().optional(),\n valueDark: z.unknown().nullable().optional(),\n figmaVariableId: z.string().nullable().optional(),\n updatedAt: z.string(),\n})\n\nexport type DesignToken = z.infer<typeof DesignTokenSchema>\n\nexport const DTCGTokenSchema = z.object({\n $value: z.unknown(),\n $type: z.string().optional(),\n $description: z.string().optional(),\n})\n\nexport type DTCGToken = z.infer<typeof DTCGTokenSchema>\n","import type { LexClientOptions } from './types/config.js'\nimport { createApiClient } from './utils/api.js'\nimport { createKudsClient, type KudsClient } from './client/kuds.js'\nimport { createKuisClient, type KuisClient } from './client/kuis.js'\nimport { createLayoutsClient, type LayoutsClient } from './client/layouts.js'\nimport { createTokensClient, type TokensClient } from './client/tokens.js'\nimport { createConfigClient, type ConfigClient } from './client/config.js'\n\nexport interface LexClient {\n kuds: KudsClient\n kuis: KuisClient\n layouts: LayoutsClient\n tokens: TokensClient\n config: ConfigClient\n}\n\nexport function createLexClient(options: LexClientOptions): LexClient {\n const api = createApiClient(options)\n\n return {\n kuds: createKudsClient(api, options.projectId),\n kuis: createKuisClient(api, options.projectId),\n layouts: createLayoutsClient(api, options.projectId),\n tokens: createTokensClient(api, options.projectId),\n config: createConfigClient(api, options.projectId),\n }\n}\n\n// Re-export all types\nexport * from './types/index.js'\n\n// Re-export errors\nexport { LexApiError, LexValidationError, LexConfigError } from './utils/errors.js'\n\n// Re-export client types\nexport type { SyncResult } from './client/kuds.js'\nexport type { BulkImportResult } from './client/kuis.js'\nexport type { ResolveLayoutOptions } from './client/layouts.js'\nexport type { PullFromFigmaOptions } from './client/tokens.js'\nexport type { WatchOptions } from './client/config.js'\n"],"mappings":"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","names":["z","z","readFile","writeFile","readFile","writeFile","readFile","writeFile","z","z","z","z","z"]}
|