@toon-ui/core 0.1.0-beta.0 → 0.2.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 ADDED
@@ -0,0 +1,219 @@
1
+ # @toon-ui/core
2
+
3
+ `@toon-ui/core` is the low-level foundation of ToonUI.
4
+
5
+ Use it when you need:
6
+
7
+ - the server-side Toon protocol
8
+ - prompt generation
9
+ - parsing and validation
10
+ - chat payload formatting
11
+ - a custom renderer outside the default React runtime
12
+
13
+ ---
14
+
15
+ ## Quick path
16
+
17
+ 1. On the server, create `const toon = createToonProtocol()`.
18
+ 2. Compose `toon.prompt` into your system prompt.
19
+ 3. On interaction callbacks, use `toon.createChatMessage(payload)`.
20
+ 4. If you need low-level rendering, use parsing and validation APIs directly.
21
+
22
+ ---
23
+
24
+ ## Install
25
+
26
+ ```bash
27
+ pnpm add @toon-ui/core
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Main exports
33
+
34
+ - `createToonProtocol()`
35
+ - `createToonUI()` low-level runtime
36
+ - `createRules()`
37
+ - `createPrompt()`
38
+ - `createComponentPrompt()`
39
+ - `createSafetyPrompt()`
40
+ - `createExamplesPrompt()`
41
+ - `parseToonUI()`
42
+ - `validateToonUI()`
43
+ - `extractToonBlocks()`
44
+ - `formatReplyMessage()`
45
+ - `formatSubmitMessage()`
46
+ - `createChatMessage()`
47
+
48
+ ---
49
+
50
+ ## Server integration
51
+
52
+ This is the PRIMARY use case for `@toon-ui/core`.
53
+
54
+ ```ts
55
+ import { createToonProtocol } from '@toon-ui/core';
56
+ import { streamText } from 'ai';
57
+ import { openai } from '@ai-sdk/openai';
58
+
59
+ const toon = createToonProtocol();
60
+
61
+ const system = [
62
+ toon.prompt,
63
+ 'Available tools:',
64
+ '- createProduct(name, price, stock)',
65
+ '- deleteProduct(id)',
66
+ ].join('\n\n');
67
+
68
+ export async function POST(req: Request) {
69
+ const { messages } = await req.json();
70
+
71
+ const result = streamText({
72
+ model: openai('gpt-4.1'),
73
+ system,
74
+ messages,
75
+ tools: {
76
+ createProduct: async (input) => ({ ok: true, input }),
77
+ deleteProduct: async ({ id }) => ({ ok: true, id }),
78
+ },
79
+ });
80
+
81
+ return result.toUIMessageStreamResponse();
82
+ }
83
+ ```
84
+
85
+ ### Why `createToonProtocol()` exists
86
+
87
+ Because the server usually needs:
88
+
89
+ - `prompt`
90
+ - `rules`
91
+ - `formatReplyMessage()`
92
+ - `formatSubmitMessage()`
93
+ - `createChatMessage()`
94
+
95
+ It does NOT need a React component registry.
96
+
97
+ ---
98
+
99
+ ## Frontend integration with a custom stack
100
+
101
+ You can use `@toon-ui/core` on the frontend only if you are building your own renderer or analysis tooling.
102
+
103
+ ```ts
104
+ import { extractToonBlocks, parseToonUI, validateToonUI } from '@toon-ui/core';
105
+
106
+ const content = `
107
+ Claro, encontré este producto.
108
+
109
+ \`\`\`toon-ui
110
+ card "Producto encontrado":
111
+ text "Coca-Cola 400ml"
112
+ badge "Activo" success
113
+ \`\`\`
114
+ `;
115
+
116
+ const blocks = extractToonBlocks(content);
117
+ const ast = parseToonUI(blocks[0].raw);
118
+ const result = validateToonUI(ast);
119
+
120
+ console.log(result.ok);
121
+ console.log(ast);
122
+ ```
123
+
124
+ If you want ready-made React rendering, DO NOT stay at this layer. Use:
125
+
126
+ - `@toon-ui/react`
127
+ - or `@toon-ui/toon-ui`
128
+
129
+ ---
130
+
131
+ ## Interaction helpers
132
+
133
+ ### Format a reply payload manually
134
+
135
+ ```ts
136
+ import { formatReplyMessage } from '@toon-ui/core';
137
+
138
+ const content = formatReplyMessage({
139
+ kind: 'ui_reply',
140
+ eventId: 'reply_123',
141
+ source: 'button',
142
+ component: 'button',
143
+ value: 'Sí, elimínalo',
144
+ });
145
+ ```
146
+
147
+ ### Format a submit payload manually
148
+
149
+ ```ts
150
+ import { formatSubmitMessage } from '@toon-ui/core';
151
+
152
+ const content = formatSubmitMessage({
153
+ kind: 'ui_submit',
154
+ eventId: 'submit_123',
155
+ source: 'form',
156
+ intent: 'create_product',
157
+ formTitle: 'Crear producto',
158
+ values: {
159
+ name: 'Coca-Cola 400ml',
160
+ price: 2500,
161
+ stock: 20,
162
+ },
163
+ });
164
+ ```
165
+
166
+ ### Create a chat-ready message
167
+
168
+ ```ts
169
+ import { createChatMessage } from '@toon-ui/core';
170
+
171
+ const message = createChatMessage({
172
+ kind: 'ui_reply',
173
+ eventId: 'reply_123',
174
+ source: 'button',
175
+ component: 'button',
176
+ value: 'Sí, elimínalo',
177
+ });
178
+
179
+ console.log(message.content);
180
+ console.log(message.displayContent);
181
+ ```
182
+
183
+ ---
184
+
185
+ ## When to use `createToonUI()` from core
186
+
187
+ Only use `createToonUI()` from `@toon-ui/core` when you need a low-level runtime object that mixes:
188
+
189
+ - protocol
190
+ - parser
191
+ - validator
192
+ - extractor
193
+ - your own component registry type
194
+
195
+ Most applications should prefer:
196
+
197
+ - `createToonProtocol()` on the server
198
+ - `createToonRuntime()` on the client
199
+
200
+ ---
201
+
202
+ ## Boundary
203
+
204
+ `@toon-ui/core` does NOT own:
205
+
206
+ - React rendering
207
+ - your component library
208
+ - your model provider
209
+ - your backend tools
210
+ - chat persistence
211
+
212
+ It owns:
213
+
214
+ - grammar
215
+ - AST
216
+ - validation
217
+ - protocol
218
+ - prompt generation
219
+ - structured interaction formatting
package/dist/index.d.ts CHANGED
@@ -3,5 +3,5 @@ export { parseToonUI, ToonSyntaxError } from './parser';
3
3
  export { validateToonUI } from './validator';
4
4
  export { extractToonBlocks } from './formatter';
5
5
  export { createPrompt, createComponentPrompt, createSafetyPrompt, createExamplesPrompt } from './prompts';
6
- export { createRules, createToonUI, formatSubmitMessage, formatReplyMessage } from './runtime';
6
+ export { createRules, createToonProtocol, createToonUI, formatSubmitMessage, formatReplyMessage, createChatMessage } from './runtime';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -3,5 +3,5 @@ export { parseToonUI, ToonSyntaxError } from './parser';
3
3
  export { validateToonUI } from './validator';
4
4
  export { extractToonBlocks } from './formatter';
5
5
  export { createPrompt, createComponentPrompt, createSafetyPrompt, createExamplesPrompt } from './prompts';
6
- export { createRules, createToonUI, formatSubmitMessage, formatReplyMessage } from './runtime';
6
+ export { createRules, createToonProtocol, createToonUI, formatSubmitMessage, formatReplyMessage, createChatMessage } from './runtime';
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- import { type CreateToonUIOptions, type ReplyPayload, type SubmitPayload, type ToonComponentRegistry, type ToonRules, type ToonRuntime } from './types';
1
+ import { type CreateToonUIOptions, type ReplyPayload, type SubmitPayload, type ToonChatMessage, type ToonComponentRegistry, type ToonInteractionPayload, type ToonProtocol, type ToonRules, type ToonRuntime } from './types';
2
2
  export declare function createRules(): ToonRules;
3
3
  export declare function formatSubmitMessage(intentOrPayload: string | SubmitPayload, values?: Record<string, string | number | boolean>): string;
4
4
  export declare function formatReplyMessage(valueOrPayload: string | ReplyPayload, metadata?: Record<string, string | number | boolean>): string;
5
+ export declare function createChatMessage<TPayload extends ToonInteractionPayload>(payload: TPayload): ToonChatMessage<TPayload>;
6
+ export declare function createToonProtocol(): ToonProtocol;
5
7
  export declare function createToonUI<TComponents extends ToonComponentRegistry = ToonComponentRegistry>(options?: CreateToonUIOptions<TComponents>): ToonRuntime<TComponents>;
6
8
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyF,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAM/O,wBAAgB,WAAW,IAAI,SAAS,CAQvC;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAiBvI;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAM,GAAG,MAAM,CAiB1I;AAED,wBAAgB,YAAY,CAAC,WAAW,SAAS,qBAAqB,GAAG,qBAAqB,EAAE,OAAO,GAAE,mBAAmB,CAAC,WAAW,CAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAYxK"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyF,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAMrT,wBAAgB,WAAW,IAAI,SAAS,CAQvC;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAiBvI;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAM,GAAG,MAAM,CAiB1I;AAOD,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,sBAAsB,EAAE,OAAO,EAAE,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAkBvH;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAUjD;AAED,wBAAgB,YAAY,CAAC,WAAW,SAAS,qBAAqB,GAAG,qBAAqB,EAAE,OAAO,GAAE,mBAAmB,CAAC,WAAW,CAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CASxK"}
package/dist/runtime.js CHANGED
@@ -49,17 +49,46 @@ export function formatReplyMessage(valueOrPayload, metadata = {}) {
49
49
  });
50
50
  return lines.join('\n');
51
51
  }
52
- export function createToonUI(options = {}) {
52
+ function createSubmitDisplayContent(payload) {
53
+ const entries = Object.entries(payload.values).map(([key, value]) => `${key}: ${String(value)}`);
54
+ return [payload.formTitle, ...entries].join('\n');
55
+ }
56
+ export function createChatMessage(payload) {
57
+ if (payload.kind === 'ui_reply') {
58
+ return {
59
+ role: 'user',
60
+ kind: payload.kind,
61
+ content: formatReplyMessage(payload),
62
+ displayContent: payload.value,
63
+ payload,
64
+ };
65
+ }
66
+ return {
67
+ role: 'user',
68
+ kind: payload.kind,
69
+ content: formatSubmitMessage(payload),
70
+ displayContent: createSubmitDisplayContent(payload),
71
+ payload,
72
+ };
73
+ }
74
+ export function createToonProtocol() {
53
75
  const rules = createRules();
54
76
  return {
55
- components: (options.components ?? {}),
56
77
  prompt: createPrompt(rules),
57
78
  rules,
79
+ formatSubmitMessage,
80
+ formatReplyMessage,
81
+ createChatMessage,
82
+ };
83
+ }
84
+ export function createToonUI(options = {}) {
85
+ const protocol = createToonProtocol();
86
+ return {
87
+ components: (options.components ?? {}),
88
+ ...protocol,
58
89
  parse: parseToonUI,
59
90
  validate: validateToonUI,
60
91
  extractBlocks: extractToonBlocks,
61
- formatSubmitMessage,
62
- formatReplyMessage,
63
92
  };
64
93
  }
65
94
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAiI,MAAM,SAAS,CAAC;AAE/O,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,UAAU,EAAE,uBAAuB;QACnC,cAAc,EAAE,eAAe;QAC/B,aAAa,EAAE,cAAc;QAC7B,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,WAAW;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,eAAuC,EAAE,MAAkD;IAC7H,MAAM,OAAO,GAAkB,OAAO,eAAe,KAAK,QAAQ;QAChE,CAAC,CAAC;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC;YAChC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,eAAe;YACvB,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,MAAM,IAAI,EAAE;SACrB;QACH,CAAC,CAAC,eAAe,CAAC;IAEpB,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,cAAc,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,OAAO,CAAC,MAAM,EAAE,EAAE,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAClI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACtD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,cAAqC,EAAE,WAAsD,EAAE;IAChI,MAAM,OAAO,GAAiB,OAAO,cAAc,KAAK,QAAQ;QAC9D,CAAC,CAAC;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,QAAQ;SAClB;QACH,CAAC,CAAC,cAAc,CAAC;IAEnB,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,cAAc,OAAO,CAAC,OAAO,EAAE,EAAE,YAAY,OAAO,CAAC,KAAK,EAAE,EAAE,aAAa,OAAO,CAAC,MAAM,EAAE,EAAE,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9J,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7D,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAAoE,UAA4C,EAAE;IAC5I,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,OAAO;QACL,UAAU,EAAE,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAgB;QACrD,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;QAC3B,KAAK;QACL,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,cAAc;QACxB,aAAa,EAAE,iBAAiB;QAChC,mBAAmB;QACnB,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -139,20 +139,31 @@ export interface SubmitPayload {
139
139
  values: Record<string, SubmitValue>;
140
140
  line?: number;
141
141
  }
142
+ export type ToonInteractionPayload = ReplyPayload | SubmitPayload;
143
+ export interface ToonChatMessage<TPayload extends ToonInteractionPayload = ToonInteractionPayload> {
144
+ role: "user";
145
+ kind: TPayload["kind"];
146
+ content: string;
147
+ displayContent: string;
148
+ payload: TPayload;
149
+ }
150
+ export interface ToonProtocol {
151
+ prompt: string;
152
+ rules: ToonRules;
153
+ formatSubmitMessage: typeof import('./runtime').formatSubmitMessage;
154
+ formatReplyMessage: typeof import('./runtime').formatReplyMessage;
155
+ createChatMessage: typeof import('./runtime').createChatMessage;
156
+ }
142
157
  export type ToonComponentRegistry = Partial<{
143
158
  [K in keyof ToonNodeByType]: unknown;
144
159
  }>;
145
160
  export interface CreateToonUIOptions<TComponents extends ToonComponentRegistry = ToonComponentRegistry> {
146
161
  components?: TComponents;
147
162
  }
148
- export interface ToonRuntime<TComponents extends ToonComponentRegistry = ToonComponentRegistry> {
163
+ export interface ToonRuntime<TComponents extends ToonComponentRegistry = ToonComponentRegistry> extends ToonProtocol {
149
164
  components: TComponents;
150
- prompt: string;
151
- rules: ToonRules;
152
165
  parse: typeof import('./parser').parseToonUI;
153
166
  validate: typeof import('./validator').validateToonUI;
154
167
  extractBlocks: typeof import('./formatter').extractToonBlocks;
155
- formatSubmitMessage: typeof import('./runtime').formatSubmitMessage;
156
- formatReplyMessage: typeof import('./runtime').formatReplyMessage;
157
168
  }
158
169
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,15 @@
1
1
  {
2
2
  "name": "@toon-ui/core",
3
- "version": "0.1.0-beta.0",
3
+ "version": "0.2.0",
4
4
  "description": "Core parser, AST, validation, and protocol utilities for ToonUI.",
5
- "keywords": ["toon-ui", "ai", "ui", "chat", "dsl", "parser"],
5
+ "keywords": [
6
+ "toon-ui",
7
+ "ai",
8
+ "ui",
9
+ "chat",
10
+ "dsl",
11
+ "parser"
12
+ ],
6
13
  "homepage": "https://github.com/jefferson-lopez/toon-ui#readme",
7
14
  "bugs": {
8
15
  "url": "https://github.com/jefferson-lopez/toon-ui/issues"
@@ -27,13 +34,13 @@
27
34
  "default": "./dist/index.js"
28
35
  }
29
36
  },
37
+ "dependencies": {
38
+ "zod": "^4.4.3"
39
+ },
30
40
  "scripts": {
31
41
  "build": "tsc -p tsconfig.json",
32
42
  "test": "vitest run",
33
43
  "typecheck": "tsc -p tsconfig.json --noEmit",
34
44
  "lint": "tsc -p tsconfig.json --noEmit"
35
- },
36
- "dependencies": {
37
- "zod": "^3.23.8"
38
45
  }
39
- }
46
+ }