@afromero/kin3o 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.
Files changed (45) hide show
  1. package/README.md +204 -0
  2. package/dist/brand.d.ts +39 -0
  3. package/dist/brand.js +63 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +249 -0
  6. package/dist/packager.d.ts +16 -0
  7. package/dist/packager.js +40 -0
  8. package/dist/preview.d.ts +2 -0
  9. package/dist/preview.js +30 -0
  10. package/dist/prompts/examples-interactive.d.ts +339 -0
  11. package/dist/prompts/examples-interactive.js +139 -0
  12. package/dist/prompts/examples-mascot.d.ts +765 -0
  13. package/dist/prompts/examples-mascot.js +319 -0
  14. package/dist/prompts/examples.d.ts +238 -0
  15. package/dist/prompts/examples.js +168 -0
  16. package/dist/prompts/index.d.ts +17 -0
  17. package/dist/prompts/index.js +21 -0
  18. package/dist/prompts/system-interactive.d.ts +2 -0
  19. package/dist/prompts/system-interactive.js +93 -0
  20. package/dist/prompts/system.d.ts +3 -0
  21. package/dist/prompts/system.js +94 -0
  22. package/dist/prompts/tokens.d.ts +6 -0
  23. package/dist/prompts/tokens.js +28 -0
  24. package/dist/providers/anthropic.d.ts +2 -0
  25. package/dist/providers/anthropic.js +25 -0
  26. package/dist/providers/claude.d.ts +2 -0
  27. package/dist/providers/claude.js +47 -0
  28. package/dist/providers/codex.d.ts +2 -0
  29. package/dist/providers/codex.js +60 -0
  30. package/dist/providers/registry.d.ts +18 -0
  31. package/dist/providers/registry.js +62 -0
  32. package/dist/state-machine-validator.d.ts +6 -0
  33. package/dist/state-machine-validator.js +182 -0
  34. package/dist/utils.d.ts +20 -0
  35. package/dist/utils.js +89 -0
  36. package/dist/validator.d.ts +8 -0
  37. package/dist/validator.js +195 -0
  38. package/examples/interactive-button.lottie +0 -0
  39. package/examples/mascot.json +760 -0
  40. package/examples/mascot.lottie +0 -0
  41. package/examples/pulse.json +75 -0
  42. package/examples/waveform.json +179 -0
  43. package/package.json +54 -0
  44. package/preview/template-interactive.html +223 -0
  45. package/preview/template.html +133 -0
@@ -0,0 +1,339 @@
1
+ /** Hand-crafted interactive button example for few-shot prompting */
2
+ export declare const INTERACTIVE_BUTTON: {
3
+ animations: {
4
+ idle: {
5
+ ip: number;
6
+ op: number;
7
+ layers: {
8
+ ty: number;
9
+ ind: number;
10
+ nm: string;
11
+ ip: number;
12
+ op: number;
13
+ st: number;
14
+ ddd: number;
15
+ ks: {
16
+ a: {
17
+ a: number;
18
+ k: number[];
19
+ };
20
+ p: {
21
+ a: number;
22
+ k: number[];
23
+ };
24
+ s: object;
25
+ r: {
26
+ a: number;
27
+ k: number;
28
+ };
29
+ o: {
30
+ a: number;
31
+ k: number;
32
+ };
33
+ };
34
+ shapes: {
35
+ ty: string;
36
+ nm: string;
37
+ it: ({
38
+ ty: string;
39
+ nm: string;
40
+ p: {
41
+ a: number;
42
+ k: number[];
43
+ };
44
+ s: {
45
+ a: number;
46
+ k: number[];
47
+ };
48
+ r: {
49
+ a: number;
50
+ k: number;
51
+ };
52
+ c?: undefined;
53
+ o?: undefined;
54
+ a?: undefined;
55
+ } | {
56
+ ty: string;
57
+ nm: string;
58
+ c: {
59
+ a: number;
60
+ k: [number, number, number, number];
61
+ };
62
+ o: {
63
+ a: number;
64
+ k: number;
65
+ };
66
+ r: number;
67
+ p?: undefined;
68
+ s?: undefined;
69
+ a?: undefined;
70
+ } | {
71
+ ty: string;
72
+ p: {
73
+ a: number;
74
+ k: number[];
75
+ };
76
+ a: {
77
+ a: number;
78
+ k: number[];
79
+ };
80
+ s: {
81
+ a: number;
82
+ k: number[];
83
+ };
84
+ r: {
85
+ a: number;
86
+ k: number;
87
+ };
88
+ o: {
89
+ a: number;
90
+ k: number;
91
+ };
92
+ nm?: undefined;
93
+ c?: undefined;
94
+ })[];
95
+ }[];
96
+ bm: number;
97
+ }[];
98
+ v: string;
99
+ fr: number;
100
+ w: number;
101
+ h: number;
102
+ ddd: number;
103
+ assets: never[];
104
+ };
105
+ hover: {
106
+ ip: number;
107
+ op: number;
108
+ layers: {
109
+ ty: number;
110
+ ind: number;
111
+ nm: string;
112
+ ip: number;
113
+ op: number;
114
+ st: number;
115
+ ddd: number;
116
+ ks: {
117
+ a: {
118
+ a: number;
119
+ k: number[];
120
+ };
121
+ p: {
122
+ a: number;
123
+ k: number[];
124
+ };
125
+ s: object;
126
+ r: {
127
+ a: number;
128
+ k: number;
129
+ };
130
+ o: {
131
+ a: number;
132
+ k: number;
133
+ };
134
+ };
135
+ shapes: {
136
+ ty: string;
137
+ nm: string;
138
+ it: ({
139
+ ty: string;
140
+ nm: string;
141
+ p: {
142
+ a: number;
143
+ k: number[];
144
+ };
145
+ s: {
146
+ a: number;
147
+ k: number[];
148
+ };
149
+ r: {
150
+ a: number;
151
+ k: number;
152
+ };
153
+ c?: undefined;
154
+ o?: undefined;
155
+ a?: undefined;
156
+ } | {
157
+ ty: string;
158
+ nm: string;
159
+ c: {
160
+ a: number;
161
+ k: [number, number, number, number];
162
+ };
163
+ o: {
164
+ a: number;
165
+ k: number;
166
+ };
167
+ r: number;
168
+ p?: undefined;
169
+ s?: undefined;
170
+ a?: undefined;
171
+ } | {
172
+ ty: string;
173
+ p: {
174
+ a: number;
175
+ k: number[];
176
+ };
177
+ a: {
178
+ a: number;
179
+ k: number[];
180
+ };
181
+ s: {
182
+ a: number;
183
+ k: number[];
184
+ };
185
+ r: {
186
+ a: number;
187
+ k: number;
188
+ };
189
+ o: {
190
+ a: number;
191
+ k: number;
192
+ };
193
+ nm?: undefined;
194
+ c?: undefined;
195
+ })[];
196
+ }[];
197
+ bm: number;
198
+ }[];
199
+ v: string;
200
+ fr: number;
201
+ w: number;
202
+ h: number;
203
+ ddd: number;
204
+ assets: never[];
205
+ };
206
+ pressed: {
207
+ ip: number;
208
+ op: number;
209
+ layers: {
210
+ ty: number;
211
+ ind: number;
212
+ nm: string;
213
+ ip: number;
214
+ op: number;
215
+ st: number;
216
+ ddd: number;
217
+ ks: {
218
+ a: {
219
+ a: number;
220
+ k: number[];
221
+ };
222
+ p: {
223
+ a: number;
224
+ k: number[];
225
+ };
226
+ s: object;
227
+ r: {
228
+ a: number;
229
+ k: number;
230
+ };
231
+ o: {
232
+ a: number;
233
+ k: number;
234
+ };
235
+ };
236
+ shapes: {
237
+ ty: string;
238
+ nm: string;
239
+ it: ({
240
+ ty: string;
241
+ nm: string;
242
+ p: {
243
+ a: number;
244
+ k: number[];
245
+ };
246
+ s: {
247
+ a: number;
248
+ k: number[];
249
+ };
250
+ r: {
251
+ a: number;
252
+ k: number;
253
+ };
254
+ c?: undefined;
255
+ o?: undefined;
256
+ a?: undefined;
257
+ } | {
258
+ ty: string;
259
+ nm: string;
260
+ c: {
261
+ a: number;
262
+ k: [number, number, number, number];
263
+ };
264
+ o: {
265
+ a: number;
266
+ k: number;
267
+ };
268
+ r: number;
269
+ p?: undefined;
270
+ s?: undefined;
271
+ a?: undefined;
272
+ } | {
273
+ ty: string;
274
+ p: {
275
+ a: number;
276
+ k: number[];
277
+ };
278
+ a: {
279
+ a: number;
280
+ k: number[];
281
+ };
282
+ s: {
283
+ a: number;
284
+ k: number[];
285
+ };
286
+ r: {
287
+ a: number;
288
+ k: number;
289
+ };
290
+ o: {
291
+ a: number;
292
+ k: number;
293
+ };
294
+ nm?: undefined;
295
+ c?: undefined;
296
+ })[];
297
+ }[];
298
+ bm: number;
299
+ }[];
300
+ v: string;
301
+ fr: number;
302
+ w: number;
303
+ h: number;
304
+ ddd: number;
305
+ assets: never[];
306
+ };
307
+ };
308
+ stateMachine: {
309
+ initial: string;
310
+ states: {
311
+ name: string;
312
+ type: string;
313
+ animation: string;
314
+ transitions: {
315
+ type: string;
316
+ toState: string;
317
+ guards: {
318
+ type: string;
319
+ inputName: string;
320
+ conditionType: string;
321
+ compareTo: boolean;
322
+ }[];
323
+ }[];
324
+ }[];
325
+ interactions: {
326
+ type: string;
327
+ actions: {
328
+ type: string;
329
+ inputName: string;
330
+ value: boolean;
331
+ }[];
332
+ }[];
333
+ inputs: {
334
+ name: string;
335
+ type: string;
336
+ value: boolean;
337
+ }[];
338
+ };
339
+ };
@@ -0,0 +1,139 @@
1
+ /** Hand-crafted interactive button example for few-shot prompting */
2
+ const BUTTON_BASE = {
3
+ v: '5.5.2',
4
+ fr: 60,
5
+ w: 512,
6
+ h: 512,
7
+ ddd: 0,
8
+ assets: [],
9
+ };
10
+ const makeButtonLayer = (color, scaleKf, op) => ({
11
+ ty: 4,
12
+ ind: 0,
13
+ nm: 'Button',
14
+ ip: 0,
15
+ op,
16
+ st: 0,
17
+ ddd: 0,
18
+ ks: {
19
+ a: { a: 0, k: [0, 0] },
20
+ p: { a: 0, k: [256, 256] },
21
+ s: scaleKf,
22
+ r: { a: 0, k: 0 },
23
+ o: { a: 0, k: 100 },
24
+ },
25
+ shapes: [
26
+ {
27
+ ty: 'gr',
28
+ nm: 'Button Shape',
29
+ it: [
30
+ {
31
+ ty: 'rc',
32
+ nm: 'Rect',
33
+ p: { a: 0, k: [0, 0] },
34
+ s: { a: 0, k: [200, 80] },
35
+ r: { a: 0, k: 20 },
36
+ },
37
+ {
38
+ ty: 'fl',
39
+ nm: 'Fill',
40
+ c: { a: 0, k: color },
41
+ o: { a: 0, k: 100 },
42
+ r: 1,
43
+ },
44
+ {
45
+ ty: 'tr',
46
+ p: { a: 0, k: [0, 0] },
47
+ a: { a: 0, k: [0, 0] },
48
+ s: { a: 0, k: [100, 100] },
49
+ r: { a: 0, k: 0 },
50
+ o: { a: 0, k: 100 },
51
+ },
52
+ ],
53
+ },
54
+ ],
55
+ bm: 0,
56
+ });
57
+ const IDLE_ANIM = {
58
+ ...BUTTON_BASE,
59
+ ip: 0,
60
+ op: 120,
61
+ layers: [
62
+ makeButtonLayer([0.851, 0.467, 0.024, 1], { a: 0, k: [100, 100] }, 120),
63
+ ],
64
+ };
65
+ const HOVER_ANIM = {
66
+ ...BUTTON_BASE,
67
+ ip: 0,
68
+ op: 60,
69
+ layers: [
70
+ makeButtonLayer([0.937, 0.553, 0.098, 1], {
71
+ a: 1,
72
+ k: [
73
+ { t: 0, s: [100, 100], o: { x: [0.42], y: [0] }, i: { x: [0.58], y: [1] } },
74
+ { t: 30, s: [108, 108] },
75
+ ],
76
+ }, 60),
77
+ ],
78
+ };
79
+ const PRESSED_ANIM = {
80
+ ...BUTTON_BASE,
81
+ ip: 0,
82
+ op: 30,
83
+ layers: [
84
+ makeButtonLayer([0.725, 0.376, 0.016, 1], {
85
+ a: 1,
86
+ k: [
87
+ { t: 0, s: [108, 108], o: { x: [0.42], y: [0] }, i: { x: [0.58], y: [1] } },
88
+ { t: 15, s: [95, 95] },
89
+ ],
90
+ }, 30),
91
+ ],
92
+ };
93
+ export const INTERACTIVE_BUTTON = {
94
+ animations: {
95
+ idle: IDLE_ANIM,
96
+ hover: HOVER_ANIM,
97
+ pressed: PRESSED_ANIM,
98
+ },
99
+ stateMachine: {
100
+ initial: 'idle_state',
101
+ states: [
102
+ {
103
+ name: 'idle_state',
104
+ type: 'PlaybackState',
105
+ animation: 'idle',
106
+ transitions: [
107
+ { type: 'Transition', toState: 'hover_state', guards: [{ type: 'Boolean', inputName: 'hovering', conditionType: 'Equal', compareTo: true }] },
108
+ ],
109
+ },
110
+ {
111
+ name: 'hover_state',
112
+ type: 'PlaybackState',
113
+ animation: 'hover',
114
+ transitions: [
115
+ { type: 'Transition', toState: 'idle_state', guards: [{ type: 'Boolean', inputName: 'hovering', conditionType: 'Equal', compareTo: false }] },
116
+ { type: 'Transition', toState: 'pressed_state', guards: [{ type: 'Boolean', inputName: 'pressing', conditionType: 'Equal', compareTo: true }] },
117
+ ],
118
+ },
119
+ {
120
+ name: 'pressed_state',
121
+ type: 'PlaybackState',
122
+ animation: 'pressed',
123
+ transitions: [
124
+ { type: 'Transition', toState: 'hover_state', guards: [{ type: 'Boolean', inputName: 'pressing', conditionType: 'Equal', compareTo: false }] },
125
+ ],
126
+ },
127
+ ],
128
+ interactions: [
129
+ { type: 'PointerEnter', actions: [{ type: 'SetBoolean', inputName: 'hovering', value: true }] },
130
+ { type: 'PointerExit', actions: [{ type: 'SetBoolean', inputName: 'hovering', value: false }] },
131
+ { type: 'PointerDown', actions: [{ type: 'SetBoolean', inputName: 'pressing', value: true }] },
132
+ { type: 'PointerUp', actions: [{ type: 'SetBoolean', inputName: 'pressing', value: false }] },
133
+ ],
134
+ inputs: [
135
+ { name: 'hovering', type: 'Boolean', value: false },
136
+ { name: 'pressing', type: 'Boolean', value: false },
137
+ ],
138
+ },
139
+ };