@allternit/ix 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/README.md +320 -0
- package/dist/adapters/json-render.d.ts +211 -0
- package/dist/adapters/json-render.d.ts.bak +211 -0
- package/dist/adapters/json-render.d.ts.map +1 -0
- package/dist/adapters/json-render.js +576 -0
- package/dist/adapters/json-render.js.bak +576 -0
- package/dist/adapters/json-render.js.map +1 -0
- package/dist/catalog/registry.d.ts +65 -0
- package/dist/catalog/registry.d.ts.bak +65 -0
- package/dist/catalog/registry.d.ts.map +1 -0
- package/dist/catalog/registry.js +388 -0
- package/dist/catalog/registry.js.bak +388 -0
- package/dist/catalog/registry.js.map +1 -0
- package/dist/collab/capsule-registry.d.ts +114 -0
- package/dist/collab/capsule-registry.d.ts.bak +114 -0
- package/dist/collab/capsule-registry.d.ts.map +1 -0
- package/dist/collab/capsule-registry.js +271 -0
- package/dist/collab/capsule-registry.js.bak +271 -0
- package/dist/collab/capsule-registry.js.map +1 -0
- package/dist/collab/index.d.ts +21 -0
- package/dist/collab/index.d.ts.bak +21 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +32 -0
- package/dist/collab/index.js.bak +32 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/visual-editor.d.ts +199 -0
- package/dist/collab/visual-editor.d.ts.bak +199 -0
- package/dist/collab/visual-editor.d.ts.map +1 -0
- package/dist/collab/visual-editor.js +259 -0
- package/dist/collab/visual-editor.js.bak +259 -0
- package/dist/collab/visual-editor.js.map +1 -0
- package/dist/collab/yjs-adapter.d.ts +95 -0
- package/dist/collab/yjs-adapter.d.ts.bak +95 -0
- package/dist/collab/yjs-adapter.d.ts.map +1 -0
- package/dist/collab/yjs-adapter.js +282 -0
- package/dist/collab/yjs-adapter.js.bak +282 -0
- package/dist/collab/yjs-adapter.js.map +1 -0
- package/dist/collab/yjs-client.d.ts +101 -0
- package/dist/collab/yjs-client.d.ts.bak +101 -0
- package/dist/collab/yjs-client.d.ts.map +1 -0
- package/dist/collab/yjs-client.js +193 -0
- package/dist/collab/yjs-client.js.bak +193 -0
- package/dist/collab/yjs-client.js.map +1 -0
- package/dist/collab/yjs-protocols.d.ts +128 -0
- package/dist/collab/yjs-protocols.d.ts.bak +128 -0
- package/dist/collab/yjs-protocols.d.ts.map +1 -0
- package/dist/collab/yjs-protocols.js +245 -0
- package/dist/collab/yjs-protocols.js.bak +245 -0
- package/dist/collab/yjs-protocols.js.map +1 -0
- package/dist/collab/yjs-types.d.ts +201 -0
- package/dist/collab/yjs-types.d.ts.bak +201 -0
- package/dist/collab/yjs-types.d.ts.map +1 -0
- package/dist/collab/yjs-types.js +45 -0
- package/dist/collab/yjs-types.js.bak +45 -0
- package/dist/collab/yjs-types.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.bak +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.bak +48 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline/llm-to-ix.d.ts +249 -0
- package/dist/pipeline/llm-to-ix.d.ts.bak +249 -0
- package/dist/pipeline/llm-to-ix.d.ts.map +1 -0
- package/dist/pipeline/llm-to-ix.js +992 -0
- package/dist/pipeline/llm-to-ix.js.bak +992 -0
- package/dist/pipeline/llm-to-ix.js.map +1 -0
- package/dist/react/index.d.ts +18 -0
- package/dist/react/index.d.ts.bak +18 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +18 -0
- package/dist/react/index.js.bak +18 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/renderer.d.ts +47 -0
- package/dist/react/renderer.d.ts.bak +47 -0
- package/dist/react/renderer.d.ts.map +1 -0
- package/dist/react/renderer.js +420 -0
- package/dist/react/renderer.js.bak +420 -0
- package/dist/react/renderer.js.map +1 -0
- package/dist/renderer/renderer.d.ts +55 -0
- package/dist/renderer/renderer.d.ts.bak +55 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/renderer.js +232 -0
- package/dist/renderer/renderer.js.bak +232 -0
- package/dist/renderer/renderer.js.map +1 -0
- package/dist/runtime/capsule-runtime.d.ts +227 -0
- package/dist/runtime/capsule-runtime.d.ts.bak +227 -0
- package/dist/runtime/capsule-runtime.d.ts.map +1 -0
- package/dist/runtime/capsule-runtime.js +563 -0
- package/dist/runtime/capsule-runtime.js.bak +563 -0
- package/dist/runtime/capsule-runtime.js.map +1 -0
- package/dist/runtime/policy-gates.d.ts +116 -0
- package/dist/runtime/policy-gates.d.ts.bak +116 -0
- package/dist/runtime/policy-gates.d.ts.map +1 -0
- package/dist/runtime/policy-gates.js +317 -0
- package/dist/runtime/policy-gates.js.bak +317 -0
- package/dist/runtime/policy-gates.js.map +1 -0
- package/dist/schema/ui-ir.d.ts +26 -0
- package/dist/schema/ui-ir.d.ts.bak +26 -0
- package/dist/schema/ui-ir.d.ts.map +1 -0
- package/dist/schema/ui-ir.js +51 -0
- package/dist/schema/ui-ir.js.bak +51 -0
- package/dist/schema/ui-ir.js.map +1 -0
- package/dist/sdk/api.d.ts +101 -0
- package/dist/sdk/api.d.ts.bak +101 -0
- package/dist/sdk/api.d.ts.map +1 -0
- package/dist/sdk/api.js +177 -0
- package/dist/sdk/api.js.bak +177 -0
- package/dist/sdk/api.js.map +1 -0
- package/dist/sdk/index.d.ts +9 -0
- package/dist/sdk/index.d.ts.bak +9 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +10 -0
- package/dist/sdk/index.js.bak +10 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/react.d.ts +63 -0
- package/dist/sdk/react.d.ts.bak +63 -0
- package/dist/sdk/react.d.ts.map +1 -0
- package/dist/sdk/react.js +161 -0
- package/dist/sdk/react.js.bak +161 -0
- package/dist/sdk/react.js.map +1 -0
- package/dist/state/index.d.ts +8 -0
- package/dist/state/index.d.ts.bak +8 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +8 -0
- package/dist/state/index.js.bak +8 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/patch.d.ts +73 -0
- package/dist/state/patch.d.ts.bak +73 -0
- package/dist/state/patch.d.ts.map +1 -0
- package/dist/state/patch.js +437 -0
- package/dist/state/patch.js.bak +437 -0
- package/dist/state/patch.js.map +1 -0
- package/dist/state/store.d.ts +50 -0
- package/dist/state/store.d.ts.bak +50 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +246 -0
- package/dist/state/store.js.bak +246 -0
- package/dist/state/store.js.map +1 -0
- package/dist/svelte/index.d.ts +15 -0
- package/dist/svelte/index.d.ts.bak +15 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +15 -0
- package/dist/svelte/index.js.bak +15 -0
- package/dist/svelte/index.js.map +1 -0
- package/dist/svelte/renderer.d.ts +35 -0
- package/dist/svelte/renderer.d.ts.bak +35 -0
- package/dist/svelte/renderer.d.ts.map +1 -0
- package/dist/svelte/renderer.js +317 -0
- package/dist/svelte/renderer.js.bak +317 -0
- package/dist/svelte/renderer.js.map +1 -0
- package/dist/types/index.d.ts +349 -0
- package/dist/types/index.d.ts.bak +349 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +152 -0
- package/dist/types/index.js.bak +152 -0
- package/dist/types/index.js.map +1 -0
- package/dist/vue/index.d.ts +18 -0
- package/dist/vue/index.d.ts.bak +18 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +18 -0
- package/dist/vue/index.js.bak +18 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/renderer.d.ts +46 -0
- package/dist/vue/renderer.d.ts.bak +46 -0
- package/dist/vue/renderer.d.ts.map +1 -0
- package/dist/vue/renderer.js +302 -0
- package/dist/vue/renderer.js.bak +302 -0
- package/dist/vue/renderer.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAyBH,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,oBAAoB,GAGrB,MAAM,oBAAoB,CAAC;AAE5B,cAAc;AACd,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,GAGhB,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GAMtB,MAAM,wBAAwB,CAAC;AAEhC,iBAAiB;AACjB,OAAO,EACL,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAE1B,UAAU;AACV,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GAOtB,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,GAIzB,MAAM,wBAAwB,CAAC;AAEhC,qBAAqB;AACrB,OAAO,EACL,cAAc,EACd,OAAO,EACP,eAAe,GAQhB,MAAM,sBAAsB,CAAC;AAE9B,MAAM;AACN,cAAc,OAAO,CAAC;AAEtB,yBAAyB;AACzB,cAAc,UAAU,CAAC;AAEzB,QAAQ;AACR,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE7F,sBAAsB;AACtB,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM-to-IX Pipeline
|
|
3
|
+
*
|
|
4
|
+
* Converts LLM-generated UI descriptions to A2R-IX format.
|
|
5
|
+
*
|
|
6
|
+
* Supports multiple input formats:
|
|
7
|
+
* - Natural language descriptions
|
|
8
|
+
* - Vercel Labs json-render
|
|
9
|
+
* - JSX-like pseudo-code
|
|
10
|
+
* - Raw component trees
|
|
11
|
+
* - Markdown UI descriptions
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { llmToIxPipeline } from '@allternit/ix/pipeline';
|
|
16
|
+
*
|
|
17
|
+
* const result = llmToIxPipeline({
|
|
18
|
+
* input: llmOutput,
|
|
19
|
+
* options: {
|
|
20
|
+
* applyStyling: true,
|
|
21
|
+
* theme: 'default',
|
|
22
|
+
* generateIds: true,
|
|
23
|
+
* }
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* console.log(result.tree); // IxRenderTree
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import type { UIRoot, StateVariable, UIState, UIAction, StateBinding, EventHandler, Expression, RepeatBinding } from '../types';
|
|
30
|
+
import type { JsonRenderSchema } from '../adapters/json-render';
|
|
31
|
+
export interface LLMToIXOptions {
|
|
32
|
+
/** Schema version to use */
|
|
33
|
+
version?: string;
|
|
34
|
+
/** Auto-generate component IDs */
|
|
35
|
+
generateIds?: boolean;
|
|
36
|
+
/** Validate against catalog */
|
|
37
|
+
validate?: boolean;
|
|
38
|
+
/** Infer state from bindings */
|
|
39
|
+
inferState?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface LLMToIXResult {
|
|
42
|
+
/** Generated UI */
|
|
43
|
+
ui: UIRoot;
|
|
44
|
+
/** Warnings during conversion */
|
|
45
|
+
warnings: string[];
|
|
46
|
+
/** Inferred state variables */
|
|
47
|
+
inferredState: StateVariable[];
|
|
48
|
+
/** Confidence score (0-1) */
|
|
49
|
+
confidence: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A2R-IX Theme Configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface IxTheme {
|
|
55
|
+
/** Theme name */
|
|
56
|
+
name: string;
|
|
57
|
+
/** Color palette */
|
|
58
|
+
colors: {
|
|
59
|
+
primary: string;
|
|
60
|
+
secondary: string;
|
|
61
|
+
success: string;
|
|
62
|
+
warning: string;
|
|
63
|
+
error: string;
|
|
64
|
+
background: string;
|
|
65
|
+
surface: string;
|
|
66
|
+
text: string;
|
|
67
|
+
textMuted: string;
|
|
68
|
+
border: string;
|
|
69
|
+
};
|
|
70
|
+
/** Spacing scale */
|
|
71
|
+
spacing: {
|
|
72
|
+
xs: number;
|
|
73
|
+
sm: number;
|
|
74
|
+
md: number;
|
|
75
|
+
lg: number;
|
|
76
|
+
xl: number;
|
|
77
|
+
};
|
|
78
|
+
/** Typography */
|
|
79
|
+
typography: {
|
|
80
|
+
fontFamily: string;
|
|
81
|
+
fontSize: {
|
|
82
|
+
xs: string;
|
|
83
|
+
sm: string;
|
|
84
|
+
md: string;
|
|
85
|
+
lg: string;
|
|
86
|
+
xl: string;
|
|
87
|
+
};
|
|
88
|
+
fontWeight: {
|
|
89
|
+
normal: number;
|
|
90
|
+
medium: number;
|
|
91
|
+
semibold: number;
|
|
92
|
+
bold: number;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
/** Border radius */
|
|
96
|
+
borderRadius: {
|
|
97
|
+
sm: number;
|
|
98
|
+
md: number;
|
|
99
|
+
lg: number;
|
|
100
|
+
full: number;
|
|
101
|
+
};
|
|
102
|
+
/** Shadows */
|
|
103
|
+
shadows: {
|
|
104
|
+
sm: string;
|
|
105
|
+
md: string;
|
|
106
|
+
lg: string;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* IxRenderTree - Render-ready component tree with styling applied
|
|
111
|
+
*/
|
|
112
|
+
export interface IxRenderTree {
|
|
113
|
+
/** Schema version */
|
|
114
|
+
version: string;
|
|
115
|
+
/** Root components */
|
|
116
|
+
components: IxRenderNode[];
|
|
117
|
+
/** State definitions */
|
|
118
|
+
state: UIState;
|
|
119
|
+
/** Action handlers */
|
|
120
|
+
actions: UIAction[];
|
|
121
|
+
/** Applied theme */
|
|
122
|
+
theme?: IxTheme;
|
|
123
|
+
/** CSS styles */
|
|
124
|
+
styles?: Record<string, Record<string, string | number>>;
|
|
125
|
+
/** Metadata */
|
|
126
|
+
metadata?: {
|
|
127
|
+
title?: string;
|
|
128
|
+
description?: string;
|
|
129
|
+
generatedAt?: string;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* IxRenderNode - Styled component node
|
|
134
|
+
*/
|
|
135
|
+
export interface IxRenderNode {
|
|
136
|
+
/** Unique node ID */
|
|
137
|
+
id: string;
|
|
138
|
+
/** Component type */
|
|
139
|
+
type: string;
|
|
140
|
+
/** Component props */
|
|
141
|
+
props: Record<string, unknown>;
|
|
142
|
+
/** Applied styles */
|
|
143
|
+
style: Record<string, string | number>;
|
|
144
|
+
/** CSS classes */
|
|
145
|
+
className?: string;
|
|
146
|
+
/** Child nodes */
|
|
147
|
+
children?: IxRenderNode[];
|
|
148
|
+
/** State bindings */
|
|
149
|
+
bindings?: StateBinding[];
|
|
150
|
+
/** Event handlers */
|
|
151
|
+
events?: EventHandler[];
|
|
152
|
+
/** Conditional render */
|
|
153
|
+
condition?: Expression;
|
|
154
|
+
/** Repeat/for loop */
|
|
155
|
+
repeat?: RepeatBinding;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Pipeline Options for llmToIxPipeline
|
|
159
|
+
*/
|
|
160
|
+
export interface LlmToIxPipelineOptions {
|
|
161
|
+
/** LLM output to parse */
|
|
162
|
+
input: unknown;
|
|
163
|
+
/** Pipeline options */
|
|
164
|
+
options?: {
|
|
165
|
+
/** Schema version */
|
|
166
|
+
version?: string;
|
|
167
|
+
/** Auto-generate component IDs */
|
|
168
|
+
generateIds?: boolean;
|
|
169
|
+
/** Validate against catalog */
|
|
170
|
+
validate?: boolean;
|
|
171
|
+
/** Infer state from bindings */
|
|
172
|
+
inferState?: boolean;
|
|
173
|
+
/** Apply A2R-IX styling */
|
|
174
|
+
applyStyling?: boolean;
|
|
175
|
+
/** Theme to use */
|
|
176
|
+
theme?: 'default' | 'minimal' | 'compact' | IxTheme;
|
|
177
|
+
/** Output format */
|
|
178
|
+
outputFormat?: 'tree' | 'ui-root' | 'json-render';
|
|
179
|
+
/** Debug mode */
|
|
180
|
+
debug?: boolean;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Pipeline Result
|
|
185
|
+
*/
|
|
186
|
+
export interface LlmToIxPipelineResult {
|
|
187
|
+
/** Render tree */
|
|
188
|
+
tree: IxRenderTree;
|
|
189
|
+
/** Original UI root */
|
|
190
|
+
uiRoot: UIRoot;
|
|
191
|
+
/** Warnings */
|
|
192
|
+
warnings: string[];
|
|
193
|
+
/** Inferred state */
|
|
194
|
+
inferredState: StateVariable[];
|
|
195
|
+
/** Confidence score */
|
|
196
|
+
confidence: number;
|
|
197
|
+
/** Processing metrics */
|
|
198
|
+
metrics: {
|
|
199
|
+
parseTime: number;
|
|
200
|
+
transformTime: number;
|
|
201
|
+
styleTime: number;
|
|
202
|
+
totalTime: number;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Convert LLM output to A2R-IX
|
|
207
|
+
*/
|
|
208
|
+
export declare function convertLLMToIX(input: unknown, options?: LLMToIXOptions): LLMToIXResult;
|
|
209
|
+
/**
|
|
210
|
+
* Detect input format
|
|
211
|
+
*/
|
|
212
|
+
declare function detectInputFormat(input: unknown): 'json-render' | 'jsx-like' | 'component-tree' | 'natural-language' | 'unknown';
|
|
213
|
+
/**
|
|
214
|
+
* LLM-to-IX Pipeline
|
|
215
|
+
*
|
|
216
|
+
* Main pipeline function that:
|
|
217
|
+
* 1. Parses LLM output (JSON or markdown)
|
|
218
|
+
* 2. Transforms to IX component tree
|
|
219
|
+
* 3. Applies A2R-IX styling
|
|
220
|
+
* 4. Returns IxRenderTree
|
|
221
|
+
*/
|
|
222
|
+
export declare function llmToIxPipeline(options: LlmToIxPipelineOptions): LlmToIxPipelineResult;
|
|
223
|
+
/**
|
|
224
|
+
* LLM-to-IX Pipeline API
|
|
225
|
+
*/
|
|
226
|
+
export declare const llmToIX: {
|
|
227
|
+
/**
|
|
228
|
+
* Convert LLM output to IX format
|
|
229
|
+
*/
|
|
230
|
+
convert: typeof convertLLMToIX;
|
|
231
|
+
/**
|
|
232
|
+
* Detect input format
|
|
233
|
+
*/
|
|
234
|
+
detectFormat: typeof detectInputFormat;
|
|
235
|
+
/**
|
|
236
|
+
* Check if input is valid json-render
|
|
237
|
+
*/
|
|
238
|
+
isJsonRender: (input: unknown) => input is JsonRenderSchema;
|
|
239
|
+
/**
|
|
240
|
+
* Quick convert from json-render
|
|
241
|
+
*/
|
|
242
|
+
fromJsonRender: (schema: JsonRenderSchema, options?: LLMToIXOptions) => LLMToIXResult;
|
|
243
|
+
/**
|
|
244
|
+
* Quick convert from JSX-like
|
|
245
|
+
*/
|
|
246
|
+
fromJSX: (jsx: string, options?: LLMToIXOptions) => LLMToIXResult;
|
|
247
|
+
};
|
|
248
|
+
export {};
|
|
249
|
+
//# sourceMappingURL=llm-to-ix.d.ts.map
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM-to-IX Pipeline
|
|
3
|
+
*
|
|
4
|
+
* Converts LLM-generated UI descriptions to A2R-IX format.
|
|
5
|
+
*
|
|
6
|
+
* Supports multiple input formats:
|
|
7
|
+
* - Natural language descriptions
|
|
8
|
+
* - Vercel Labs json-render
|
|
9
|
+
* - JSX-like pseudo-code
|
|
10
|
+
* - Raw component trees
|
|
11
|
+
* - Markdown UI descriptions
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { llmToIxPipeline } from '@allternit/ix/pipeline';
|
|
16
|
+
*
|
|
17
|
+
* const result = llmToIxPipeline({
|
|
18
|
+
* input: llmOutput,
|
|
19
|
+
* options: {
|
|
20
|
+
* applyStyling: true,
|
|
21
|
+
* theme: 'default',
|
|
22
|
+
* generateIds: true,
|
|
23
|
+
* }
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* console.log(result.tree); // IxRenderTree
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import type { UIRoot, StateVariable, UIState, UIAction, StateBinding, EventHandler, Expression, RepeatBinding } from '../types';
|
|
30
|
+
import type { JsonRenderSchema } from '../adapters/json-render';
|
|
31
|
+
export interface LLMToIXOptions {
|
|
32
|
+
/** Schema version to use */
|
|
33
|
+
version?: string;
|
|
34
|
+
/** Auto-generate component IDs */
|
|
35
|
+
generateIds?: boolean;
|
|
36
|
+
/** Validate against catalog */
|
|
37
|
+
validate?: boolean;
|
|
38
|
+
/** Infer state from bindings */
|
|
39
|
+
inferState?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface LLMToIXResult {
|
|
42
|
+
/** Generated UI */
|
|
43
|
+
ui: UIRoot;
|
|
44
|
+
/** Warnings during conversion */
|
|
45
|
+
warnings: string[];
|
|
46
|
+
/** Inferred state variables */
|
|
47
|
+
inferredState: StateVariable[];
|
|
48
|
+
/** Confidence score (0-1) */
|
|
49
|
+
confidence: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A2R-IX Theme Configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface IxTheme {
|
|
55
|
+
/** Theme name */
|
|
56
|
+
name: string;
|
|
57
|
+
/** Color palette */
|
|
58
|
+
colors: {
|
|
59
|
+
primary: string;
|
|
60
|
+
secondary: string;
|
|
61
|
+
success: string;
|
|
62
|
+
warning: string;
|
|
63
|
+
error: string;
|
|
64
|
+
background: string;
|
|
65
|
+
surface: string;
|
|
66
|
+
text: string;
|
|
67
|
+
textMuted: string;
|
|
68
|
+
border: string;
|
|
69
|
+
};
|
|
70
|
+
/** Spacing scale */
|
|
71
|
+
spacing: {
|
|
72
|
+
xs: number;
|
|
73
|
+
sm: number;
|
|
74
|
+
md: number;
|
|
75
|
+
lg: number;
|
|
76
|
+
xl: number;
|
|
77
|
+
};
|
|
78
|
+
/** Typography */
|
|
79
|
+
typography: {
|
|
80
|
+
fontFamily: string;
|
|
81
|
+
fontSize: {
|
|
82
|
+
xs: string;
|
|
83
|
+
sm: string;
|
|
84
|
+
md: string;
|
|
85
|
+
lg: string;
|
|
86
|
+
xl: string;
|
|
87
|
+
};
|
|
88
|
+
fontWeight: {
|
|
89
|
+
normal: number;
|
|
90
|
+
medium: number;
|
|
91
|
+
semibold: number;
|
|
92
|
+
bold: number;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
/** Border radius */
|
|
96
|
+
borderRadius: {
|
|
97
|
+
sm: number;
|
|
98
|
+
md: number;
|
|
99
|
+
lg: number;
|
|
100
|
+
full: number;
|
|
101
|
+
};
|
|
102
|
+
/** Shadows */
|
|
103
|
+
shadows: {
|
|
104
|
+
sm: string;
|
|
105
|
+
md: string;
|
|
106
|
+
lg: string;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* IxRenderTree - Render-ready component tree with styling applied
|
|
111
|
+
*/
|
|
112
|
+
export interface IxRenderTree {
|
|
113
|
+
/** Schema version */
|
|
114
|
+
version: string;
|
|
115
|
+
/** Root components */
|
|
116
|
+
components: IxRenderNode[];
|
|
117
|
+
/** State definitions */
|
|
118
|
+
state: UIState;
|
|
119
|
+
/** Action handlers */
|
|
120
|
+
actions: UIAction[];
|
|
121
|
+
/** Applied theme */
|
|
122
|
+
theme?: IxTheme;
|
|
123
|
+
/** CSS styles */
|
|
124
|
+
styles?: Record<string, Record<string, string | number>>;
|
|
125
|
+
/** Metadata */
|
|
126
|
+
metadata?: {
|
|
127
|
+
title?: string;
|
|
128
|
+
description?: string;
|
|
129
|
+
generatedAt?: string;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* IxRenderNode - Styled component node
|
|
134
|
+
*/
|
|
135
|
+
export interface IxRenderNode {
|
|
136
|
+
/** Unique node ID */
|
|
137
|
+
id: string;
|
|
138
|
+
/** Component type */
|
|
139
|
+
type: string;
|
|
140
|
+
/** Component props */
|
|
141
|
+
props: Record<string, unknown>;
|
|
142
|
+
/** Applied styles */
|
|
143
|
+
style: Record<string, string | number>;
|
|
144
|
+
/** CSS classes */
|
|
145
|
+
className?: string;
|
|
146
|
+
/** Child nodes */
|
|
147
|
+
children?: IxRenderNode[];
|
|
148
|
+
/** State bindings */
|
|
149
|
+
bindings?: StateBinding[];
|
|
150
|
+
/** Event handlers */
|
|
151
|
+
events?: EventHandler[];
|
|
152
|
+
/** Conditional render */
|
|
153
|
+
condition?: Expression;
|
|
154
|
+
/** Repeat/for loop */
|
|
155
|
+
repeat?: RepeatBinding;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Pipeline Options for llmToIxPipeline
|
|
159
|
+
*/
|
|
160
|
+
export interface LlmToIxPipelineOptions {
|
|
161
|
+
/** LLM output to parse */
|
|
162
|
+
input: unknown;
|
|
163
|
+
/** Pipeline options */
|
|
164
|
+
options?: {
|
|
165
|
+
/** Schema version */
|
|
166
|
+
version?: string;
|
|
167
|
+
/** Auto-generate component IDs */
|
|
168
|
+
generateIds?: boolean;
|
|
169
|
+
/** Validate against catalog */
|
|
170
|
+
validate?: boolean;
|
|
171
|
+
/** Infer state from bindings */
|
|
172
|
+
inferState?: boolean;
|
|
173
|
+
/** Apply A2R-IX styling */
|
|
174
|
+
applyStyling?: boolean;
|
|
175
|
+
/** Theme to use */
|
|
176
|
+
theme?: 'default' | 'minimal' | 'compact' | IxTheme;
|
|
177
|
+
/** Output format */
|
|
178
|
+
outputFormat?: 'tree' | 'ui-root' | 'json-render';
|
|
179
|
+
/** Debug mode */
|
|
180
|
+
debug?: boolean;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Pipeline Result
|
|
185
|
+
*/
|
|
186
|
+
export interface LlmToIxPipelineResult {
|
|
187
|
+
/** Render tree */
|
|
188
|
+
tree: IxRenderTree;
|
|
189
|
+
/** Original UI root */
|
|
190
|
+
uiRoot: UIRoot;
|
|
191
|
+
/** Warnings */
|
|
192
|
+
warnings: string[];
|
|
193
|
+
/** Inferred state */
|
|
194
|
+
inferredState: StateVariable[];
|
|
195
|
+
/** Confidence score */
|
|
196
|
+
confidence: number;
|
|
197
|
+
/** Processing metrics */
|
|
198
|
+
metrics: {
|
|
199
|
+
parseTime: number;
|
|
200
|
+
transformTime: number;
|
|
201
|
+
styleTime: number;
|
|
202
|
+
totalTime: number;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Convert LLM output to A2R-IX
|
|
207
|
+
*/
|
|
208
|
+
export declare function convertLLMToIX(input: unknown, options?: LLMToIXOptions): LLMToIXResult;
|
|
209
|
+
/**
|
|
210
|
+
* Detect input format
|
|
211
|
+
*/
|
|
212
|
+
declare function detectInputFormat(input: unknown): 'json-render' | 'jsx-like' | 'component-tree' | 'natural-language' | 'unknown';
|
|
213
|
+
/**
|
|
214
|
+
* LLM-to-IX Pipeline
|
|
215
|
+
*
|
|
216
|
+
* Main pipeline function that:
|
|
217
|
+
* 1. Parses LLM output (JSON or markdown)
|
|
218
|
+
* 2. Transforms to IX component tree
|
|
219
|
+
* 3. Applies A2R-IX styling
|
|
220
|
+
* 4. Returns IxRenderTree
|
|
221
|
+
*/
|
|
222
|
+
export declare function llmToIxPipeline(options: LlmToIxPipelineOptions): LlmToIxPipelineResult;
|
|
223
|
+
/**
|
|
224
|
+
* LLM-to-IX Pipeline API
|
|
225
|
+
*/
|
|
226
|
+
export declare const llmToIX: {
|
|
227
|
+
/**
|
|
228
|
+
* Convert LLM output to IX format
|
|
229
|
+
*/
|
|
230
|
+
convert: typeof convertLLMToIX;
|
|
231
|
+
/**
|
|
232
|
+
* Detect input format
|
|
233
|
+
*/
|
|
234
|
+
detectFormat: typeof detectInputFormat;
|
|
235
|
+
/**
|
|
236
|
+
* Check if input is valid json-render
|
|
237
|
+
*/
|
|
238
|
+
isJsonRender: (input: unknown) => input is JsonRenderSchema;
|
|
239
|
+
/**
|
|
240
|
+
* Quick convert from json-render
|
|
241
|
+
*/
|
|
242
|
+
fromJsonRender: (schema: JsonRenderSchema, options?: LLMToIXOptions) => LLMToIXResult;
|
|
243
|
+
/**
|
|
244
|
+
* Quick convert from JSX-like
|
|
245
|
+
*/
|
|
246
|
+
fromJSX: (jsx: string, options?: LLMToIXOptions) => LLMToIXResult;
|
|
247
|
+
};
|
|
248
|
+
export {};
|
|
249
|
+
//# sourceMappingURL=llm-to-ix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-to-ix.d.ts","sourceRoot":"","sources":["../../src/pipeline/llm-to-ix.ts"],"names":[],"mappings":"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"}
|