@vinkius-core/mcp-fusion 2.6.0 → 2.7.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 (77) hide show
  1. package/dist/client/FusionClient.d.ts +122 -1
  2. package/dist/client/FusionClient.d.ts.map +1 -1
  3. package/dist/client/FusionClient.js +173 -11
  4. package/dist/client/FusionClient.js.map +1 -1
  5. package/dist/client/index.d.ts +2 -2
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/index.js +1 -1
  8. package/dist/client/index.js.map +1 -1
  9. package/dist/core/StandardSchema.d.ts +178 -0
  10. package/dist/core/StandardSchema.d.ts.map +1 -0
  11. package/dist/core/StandardSchema.js +166 -0
  12. package/dist/core/StandardSchema.js.map +1 -0
  13. package/dist/core/createGroup.d.ts +140 -0
  14. package/dist/core/createGroup.d.ts.map +1 -0
  15. package/dist/core/createGroup.js +133 -0
  16. package/dist/core/createGroup.js.map +1 -0
  17. package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -1
  18. package/dist/core/execution/ExecutionPipeline.js +6 -2
  19. package/dist/core/execution/ExecutionPipeline.js.map +1 -1
  20. package/dist/core/index.d.ts +7 -1
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +6 -0
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/initFusion.d.ts +201 -0
  25. package/dist/core/initFusion.d.ts.map +1 -0
  26. package/dist/core/initFusion.js +134 -0
  27. package/dist/core/initFusion.js.map +1 -0
  28. package/dist/core/response.d.ts +49 -2
  29. package/dist/core/response.d.ts.map +1 -1
  30. package/dist/core/response.js +27 -5
  31. package/dist/core/response.js.map +1 -1
  32. package/dist/index.d.ts +16 -8
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +8 -4
  35. package/dist/index.js.map +1 -1
  36. package/dist/presenter/ZodDescriptionExtractor.d.ts +54 -0
  37. package/dist/presenter/ZodDescriptionExtractor.d.ts.map +1 -0
  38. package/dist/presenter/ZodDescriptionExtractor.js +131 -0
  39. package/dist/presenter/ZodDescriptionExtractor.js.map +1 -0
  40. package/dist/presenter/definePresenter.d.ts +172 -0
  41. package/dist/presenter/definePresenter.d.ts.map +1 -0
  42. package/dist/presenter/definePresenter.js +96 -0
  43. package/dist/presenter/definePresenter.js.map +1 -0
  44. package/dist/presenter/index.d.ts +3 -0
  45. package/dist/presenter/index.d.ts.map +1 -1
  46. package/dist/presenter/index.js +4 -0
  47. package/dist/presenter/index.js.map +1 -1
  48. package/dist/server/DevServer.d.ts +96 -0
  49. package/dist/server/DevServer.d.ts.map +1 -0
  50. package/dist/server/DevServer.js +187 -0
  51. package/dist/server/DevServer.js.map +1 -0
  52. package/dist/server/autoDiscover.d.ts +63 -0
  53. package/dist/server/autoDiscover.d.ts.map +1 -0
  54. package/dist/server/autoDiscover.js +157 -0
  55. package/dist/server/autoDiscover.js.map +1 -0
  56. package/dist/server/index.d.ts +4 -0
  57. package/dist/server/index.d.ts.map +1 -1
  58. package/dist/server/index.js +4 -0
  59. package/dist/server/index.js.map +1 -1
  60. package/dist/state-sync/PolicyValidator.d.ts +36 -0
  61. package/dist/state-sync/PolicyValidator.d.ts.map +1 -1
  62. package/dist/state-sync/PolicyValidator.js +35 -0
  63. package/dist/state-sync/PolicyValidator.js.map +1 -1
  64. package/dist/state-sync/ResponseDecorator.d.ts.map +1 -1
  65. package/dist/state-sync/ResponseDecorator.js +2 -1
  66. package/dist/state-sync/ResponseDecorator.js.map +1 -1
  67. package/dist/state-sync/StateSyncLayer.d.ts +5 -4
  68. package/dist/state-sync/StateSyncLayer.d.ts.map +1 -1
  69. package/dist/state-sync/StateSyncLayer.js +35 -4
  70. package/dist/state-sync/StateSyncLayer.js.map +1 -1
  71. package/dist/state-sync/index.d.ts +3 -1
  72. package/dist/state-sync/index.d.ts.map +1 -1
  73. package/dist/state-sync/index.js +1 -0
  74. package/dist/state-sync/index.js.map +1 -1
  75. package/dist/state-sync/types.d.ts +62 -0
  76. package/dist/state-sync/types.d.ts.map +1 -1
  77. package/package.json +38 -1
@@ -0,0 +1,201 @@
1
+ /**
2
+ * initFusion() — tRPC-Style Context Initialization
3
+ *
4
+ * Eliminates the need to pass `<AppContext>` as a generic parameter
5
+ * everywhere. Define your context type once, and every `f.tool()`,
6
+ * `f.presenter()`, `f.prompt()`, and `f.middleware()` call
7
+ * automatically inherits it.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // src/fusion.ts — defined once in the project
12
+ * import { initFusion } from '@vinkius-core/mcp-fusion';
13
+ *
14
+ * interface AppContext {
15
+ * db: PrismaClient;
16
+ * user: { id: string; role: string };
17
+ * }
18
+ *
19
+ * export const f = initFusion<AppContext>();
20
+ *
21
+ * // src/tools/billing.ts — daily usage, super clean
22
+ * import { f } from '../fusion';
23
+ * import { z } from 'zod';
24
+ *
25
+ * export const getInvoice = f.tool({
26
+ * name: 'billing.get_invoice',
27
+ * input: z.object({ id: z.string() }),
28
+ * handler: async ({ input, ctx }) => {
29
+ * // ctx is fully typed as AppContext!
30
+ * return await ctx.db.invoices.findUnique(input.id);
31
+ * },
32
+ * });
33
+ * ```
34
+ *
35
+ * @module
36
+ */
37
+ import { type ZodType, type ZodObject, type ZodRawShape } from 'zod';
38
+ import { GroupedToolBuilder } from './builder/GroupedToolBuilder.js';
39
+ import { type ToolResponse } from './response.js';
40
+ import { type MiddlewareFn } from './types.js';
41
+ import { ToolRegistry } from './registry/ToolRegistry.js';
42
+ import { type Presenter } from '../presenter/Presenter.js';
43
+ import { type PresenterConfig } from '../presenter/definePresenter.js';
44
+ import { type MiddlewareDefinition } from './middleware/index.js';
45
+ import { type ToolConfig } from './builder/defineTool.js';
46
+ import { type PromptBuilder, type PromptConfig } from '../prompt/types.js';
47
+ import { type ParamsMap, type InferParams } from './builder/ParamDescriptors.js';
48
+ /**
49
+ * Ergonomic tool config for `f.tool()`.
50
+ *
51
+ * The `handler` receives `{ input, ctx }` instead of `(ctx, args)` —
52
+ * a more intuitive destructured pattern inspired by tRPC v11.
53
+ *
54
+ * @typeParam TContext - Application context (inherited from `initFusion`)
55
+ * @typeParam TInput - Input schema type (inferred from `input`)
56
+ */
57
+ export interface FusionToolConfig<TContext, TInput extends ZodObject<ZodRawShape> | ParamsMap = ParamsMap> {
58
+ /** Tool name — use `domain.action` convention for flat exposition */
59
+ readonly name: string;
60
+ /** Human-readable description for the LLM */
61
+ readonly description?: string;
62
+ /** Input schema (Zod object or JSON param descriptors) */
63
+ readonly input?: TInput;
64
+ /** Capability tags for filtering */
65
+ readonly tags?: string[];
66
+ /** MCP annotations */
67
+ readonly annotations?: Record<string, unknown>;
68
+ /** Mark as read-only (no side effects) */
69
+ readonly readOnly?: boolean;
70
+ /** Mark as destructive (irreversible) */
71
+ readonly destructive?: boolean;
72
+ /** Mark as idempotent (safe to retry) */
73
+ readonly idempotent?: boolean;
74
+ /** Global middleware */
75
+ readonly middleware?: MiddlewareFn<TContext>[];
76
+ /** MVA Presenter for automatic response formatting */
77
+ readonly returns?: Presenter<unknown>;
78
+ /** Handler function — receives destructured `{ input, ctx }` */
79
+ readonly handler: (args: {
80
+ input: TInput extends ZodObject<ZodRawShape> ? TInput['_output'] : TInput extends ParamsMap ? InferParams<TInput> : Record<string, unknown>;
81
+ ctx: TContext;
82
+ }) => Promise<ToolResponse | unknown>;
83
+ }
84
+ /**
85
+ * The initialized Fusion instance.
86
+ *
87
+ * Provides context-typed factory methods for tools, presenters,
88
+ * prompts, middleware, and registry. Every method automatically
89
+ * inherits the `TContext` defined in `initFusion<TContext>()`.
90
+ *
91
+ * @typeParam TContext - The application context type
92
+ */
93
+ export interface FusionInstance<TContext> {
94
+ /**
95
+ * Define a tool with automatic context typing.
96
+ *
97
+ * The handler receives `{ input, ctx }` where `ctx` is your `AppContext`
98
+ * and `input` is fully typed from the `input` schema.
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const myTool = f.tool({
103
+ * name: 'users.list',
104
+ * input: z.object({ limit: z.number().optional() }),
105
+ * readOnly: true,
106
+ * handler: async ({ input, ctx }) => {
107
+ * return await ctx.db.users.findMany({ take: input.limit });
108
+ * },
109
+ * });
110
+ * ```
111
+ */
112
+ tool<TInput extends ZodObject<ZodRawShape> | ParamsMap>(config: FusionToolConfig<TContext, TInput>): GroupedToolBuilder<TContext>;
113
+ /**
114
+ * Define a Presenter with the standard object-config API.
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const InvoicePresenter = f.presenter({
119
+ * name: 'Invoice',
120
+ * schema: invoiceSchema,
121
+ * rules: ['CRITICAL: amount_cents is in CENTS.'],
122
+ * ui: (inv) => [ui.echarts({ ... })],
123
+ * });
124
+ * ```
125
+ */
126
+ presenter<TSchema extends ZodType>(config: PresenterConfig<TSchema['_output']> & {
127
+ schema: TSchema;
128
+ }): Presenter<TSchema['_output']>;
129
+ /**
130
+ * Define a prompt with automatic context typing.
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * const greetPrompt = f.prompt('greet', {
135
+ * args: z.object({ name: z.string() }),
136
+ * handler: async (ctx, args) => ({
137
+ * messages: [PromptMessage.user(`Hello ${args.name}`)],
138
+ * }),
139
+ * });
140
+ * ```
141
+ */
142
+ prompt(name: string, config: Omit<PromptConfig<TContext>, 'handler'> & {
143
+ handler: PromptConfig<TContext>['handler'];
144
+ }): PromptBuilder<TContext>;
145
+ /**
146
+ * Define a context-derivation middleware.
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * const withUser = f.middleware(async (ctx) => ({
151
+ * user: await ctx.db.users.findUnique(ctx.userId),
152
+ * }));
153
+ * ```
154
+ */
155
+ middleware<TDerived extends Record<string, unknown>>(derive: (ctx: TContext) => TDerived | Promise<TDerived>): MiddlewareDefinition<TContext, TDerived>;
156
+ /**
157
+ * Create a fully configured tool using the standard `defineTool()` config.
158
+ * For power users who want the full `ToolConfig` API with context typing.
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * const platform = f.defineTool('platform', {
163
+ * shared: { workspace_id: 'string' },
164
+ * groups: { users: { actions: { list: { handler: listUsers } } } },
165
+ * });
166
+ * ```
167
+ */
168
+ defineTool(name: string, config: ToolConfig<TContext>): GroupedToolBuilder<TContext>;
169
+ /**
170
+ * Create a pre-typed ToolRegistry ready for registration.
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * const registry = f.registry();
175
+ * registry.register(myTool);
176
+ * ```
177
+ */
178
+ registry(): ToolRegistry<TContext>;
179
+ }
180
+ /**
181
+ * Initialize a Fusion instance with a fixed context type.
182
+ *
183
+ * Call once per project. All factory methods on the returned instance
184
+ * automatically inherit the context type — zero generic repetition.
185
+ *
186
+ * @typeParam TContext - The application-level context type
187
+ * @returns A {@link FusionInstance} with context-typed factories
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * // Single definition, typically in src/fusion.ts
192
+ * export const f = initFusion<AppContext>();
193
+ *
194
+ * // Usage anywhere in the project
195
+ * const tool = f.tool({ name: 'tasks.list', handler: ... });
196
+ * const presenter = f.presenter({ name: 'Task', schema: taskSchema });
197
+ * const registry = f.registry();
198
+ * ```
199
+ */
200
+ export declare function initFusion<TContext = void>(): FusionInstance<TContext>;
201
+ //# sourceMappingURL=initFusion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initFusion.d.ts","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * initFusion() — tRPC-Style Context Initialization
3
+ *
4
+ * Eliminates the need to pass `<AppContext>` as a generic parameter
5
+ * everywhere. Define your context type once, and every `f.tool()`,
6
+ * `f.presenter()`, `f.prompt()`, and `f.middleware()` call
7
+ * automatically inherits it.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // src/fusion.ts — defined once in the project
12
+ * import { initFusion } from '@vinkius-core/mcp-fusion';
13
+ *
14
+ * interface AppContext {
15
+ * db: PrismaClient;
16
+ * user: { id: string; role: string };
17
+ * }
18
+ *
19
+ * export const f = initFusion<AppContext>();
20
+ *
21
+ * // src/tools/billing.ts — daily usage, super clean
22
+ * import { f } from '../fusion';
23
+ * import { z } from 'zod';
24
+ *
25
+ * export const getInvoice = f.tool({
26
+ * name: 'billing.get_invoice',
27
+ * input: z.object({ id: z.string() }),
28
+ * handler: async ({ input, ctx }) => {
29
+ * // ctx is fully typed as AppContext!
30
+ * return await ctx.db.invoices.findUnique(input.id);
31
+ * },
32
+ * });
33
+ * ```
34
+ *
35
+ * @module
36
+ */
37
+ import {} from 'zod';
38
+ import { GroupedToolBuilder } from './builder/GroupedToolBuilder.js';
39
+ import { success } from './response.js';
40
+ import {} from './types.js';
41
+ import { ToolRegistry } from './registry/ToolRegistry.js';
42
+ import {} from '../presenter/Presenter.js';
43
+ import { definePresenter } from '../presenter/definePresenter.js';
44
+ import { defineMiddleware } from './middleware/index.js';
45
+ import { defineTool } from './builder/defineTool.js';
46
+ import { definePrompt } from '../prompt/definePrompt.js';
47
+ import {} from '../prompt/types.js';
48
+ import { isZodSchema } from './schema/SchemaUtils.js';
49
+ import { convertParamsToZod } from './builder/ParamDescriptors.js';
50
+ // ── Factory ──────────────────────────────────────────────
51
+ /**
52
+ * Initialize a Fusion instance with a fixed context type.
53
+ *
54
+ * Call once per project. All factory methods on the returned instance
55
+ * automatically inherit the context type — zero generic repetition.
56
+ *
57
+ * @typeParam TContext - The application-level context type
58
+ * @returns A {@link FusionInstance} with context-typed factories
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * // Single definition, typically in src/fusion.ts
63
+ * export const f = initFusion<AppContext>();
64
+ *
65
+ * // Usage anywhere in the project
66
+ * const tool = f.tool({ name: 'tasks.list', handler: ... });
67
+ * const presenter = f.presenter({ name: 'Task', schema: taskSchema });
68
+ * const registry = f.registry();
69
+ * ```
70
+ */
71
+ export function initFusion() {
72
+ return {
73
+ tool(config) {
74
+ // Parse the tool name into group + action
75
+ // Convention: 'domain.action' → tool named 'domain' with single action 'action'
76
+ const dotIndex = config.name.indexOf('.');
77
+ const toolName = dotIndex > 0 ? config.name.slice(0, dotIndex) : config.name;
78
+ const actionName = dotIndex > 0 ? config.name.slice(dotIndex + 1) : 'default';
79
+ // Resolve input schema
80
+ let schema;
81
+ if (config.input) {
82
+ schema = isZodSchema(config.input)
83
+ ? config.input
84
+ : convertParamsToZod(config.input);
85
+ }
86
+ // Wrap handler: { input, ctx } → (ctx, args)
87
+ const wrappedHandler = async (ctx, args) => {
88
+ const result = await config.handler({ input: args, ctx });
89
+ // Auto-wrap non-ToolResponse results
90
+ if (typeof result === 'object' &&
91
+ result !== null &&
92
+ 'content' in result &&
93
+ Array.isArray(result.content)) {
94
+ return result;
95
+ }
96
+ return success(result);
97
+ };
98
+ // Build via defineTool for consistency
99
+ const toolConfig = {
100
+ ...(config.description ? { description: config.description } : {}),
101
+ ...(config.tags && config.tags.length > 0 ? { tags: config.tags } : {}),
102
+ ...(config.annotations ? { annotations: config.annotations } : {}),
103
+ ...(config.middleware ? { middleware: config.middleware } : {}),
104
+ actions: {
105
+ [actionName]: {
106
+ handler: wrappedHandler,
107
+ ...(schema ? { params: schema } : {}),
108
+ ...(config.readOnly !== undefined ? { readOnly: config.readOnly } : {}),
109
+ ...(config.destructive !== undefined ? { destructive: config.destructive } : {}),
110
+ ...(config.idempotent !== undefined ? { idempotent: config.idempotent } : {}),
111
+ ...(config.returns ? { returns: config.returns } : {}),
112
+ },
113
+ },
114
+ };
115
+ return defineTool(toolName, toolConfig);
116
+ },
117
+ presenter(config) {
118
+ return definePresenter(config);
119
+ },
120
+ prompt(name, config) {
121
+ return definePrompt(name, config);
122
+ },
123
+ middleware(derive) {
124
+ return defineMiddleware(derive);
125
+ },
126
+ defineTool(name, config) {
127
+ return defineTool(name, config);
128
+ },
129
+ registry() {
130
+ return new ToolRegistry();
131
+ },
132
+ };
133
+ }
134
+ //# sourceMappingURL=initFusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initFusion.js","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"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"}
@@ -127,7 +127,7 @@ export declare function success(data: string | object): ToolResponse;
127
127
  * @see {@link required} for missing field errors
128
128
  * @see {@link success} for success responses
129
129
  */
130
- export declare function error(message: string): ToolResponse;
130
+ export declare function error(message: string, code?: ErrorCode): ToolResponse;
131
131
  /**
132
132
  * Create a validation error for a missing required field.
133
133
  *
@@ -176,6 +176,29 @@ export declare function required(field: string): ToolResponse;
176
176
  * @see {@link success} for standard JSON responses
177
177
  */
178
178
  export declare function toonSuccess(data: unknown, options?: EncodeOptions): ToolResponse;
179
+ /**
180
+ * Canonical error codes for deterministic agent self-correction.
181
+ *
182
+ * Provides compile-time autocomplete while allowing custom codes
183
+ * via the `string` fallback. Constants cover the most common
184
+ * failure modes in agentic pipelines.
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * return toolError('VALIDATION_ERROR', { message: '...' });
189
+ * return toolError('RateLimited', { message: '...' }); // custom code — also valid
190
+ * ```
191
+ */
192
+ export type ErrorCode = 'MISSING_DISCRIMINATOR' | 'UNKNOWN_ACTION' | 'VALIDATION_ERROR' | 'MISSING_REQUIRED_FIELD' | 'INTERNAL_ERROR' | 'RATE_LIMITED' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'CONFLICT' | 'TIMEOUT' | 'SERVER_BUSY' | 'DEPRECATED' | 'AUTH_REQUIRED' | (string & {});
193
+ /**
194
+ * Error severity level.
195
+ *
196
+ * - `'warning'` — Non-fatal. The operation succeeded but with caveats
197
+ * (e.g. deprecated tool, partial results, soft quota approaching).
198
+ * - `'error'` — The operation failed. Agent should attempt recovery.
199
+ * - `'critical'` — Unrecoverable. Agent should escalate to the user.
200
+ */
201
+ export type ErrorSeverity = 'warning' | 'error' | 'critical';
179
202
  /**
180
203
  * Options for a self-healing error response.
181
204
  *
@@ -188,6 +211,30 @@ export interface ToolErrorOptions {
188
211
  suggestion?: string;
189
212
  /** Action names the agent should try instead */
190
213
  availableActions?: string[];
214
+ /**
215
+ * Error severity.
216
+ *
217
+ * Defaults to `'error'` when omitted.
218
+ *
219
+ * @example `'warning'` for deprecation notices
220
+ */
221
+ severity?: ErrorSeverity;
222
+ /**
223
+ * Structured metadata about the error (e.g. the invalid value,
224
+ * the entity ID that wasn't found, or constraint violations).
225
+ *
226
+ * Rendered as `<details>` child elements in the XML envelope.
227
+ *
228
+ * @example `{ entity_id: 'inv_123', expected_type: 'string' }`
229
+ */
230
+ details?: Record<string, string>;
231
+ /**
232
+ * Suggested retry delay in seconds for transient errors.
233
+ *
234
+ * Rendered as `<retry_after>{n} seconds</retry_after>` in the
235
+ * XML envelope. Useful for rate-limit and concurrency errors.
236
+ */
237
+ retryAfter?: number;
191
238
  }
192
239
  /**
193
240
  * Create a self-healing error response with recovery instructions.
@@ -229,5 +276,5 @@ export interface ToolErrorOptions {
229
276
  * @see {@link error} for simple error responses
230
277
  * @see {@link required} for missing field errors
231
278
  */
232
- export declare function toolError(code: string, options: ToolErrorOptions): ToolResponse;
279
+ export declare function toolError(code: ErrorCode, options: ToolErrorOptions): ToolResponse;
233
280
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAKnD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAIhF;AAMD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAc/E"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAMrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAIhF;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACf,uBAAuB,GACvB,gBAAgB,GAChB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAqClF"}
@@ -124,9 +124,10 @@ export function success(data) {
124
124
  * @see {@link required} for missing field errors
125
125
  * @see {@link success} for success responses
126
126
  */
127
- export function error(message) {
127
+ export function error(message, code) {
128
+ const codeAttr = code !== undefined ? ` code="${escapeXmlAttr(code)}"` : '';
128
129
  return {
129
- content: [{ type: "text", text: `<tool_error>\n<message>${escapeXml(message)}</message>\n</tool_error>` }],
130
+ content: [{ type: "text", text: `<tool_error${codeAttr}>\n<message>${escapeXml(message)}</message>\n</tool_error>` }],
130
131
  isError: true,
131
132
  };
132
133
  }
@@ -232,14 +233,35 @@ export function toonSuccess(data, options) {
232
233
  * @see {@link required} for missing field errors
233
234
  */
234
235
  export function toolError(code, options) {
235
- const parts = [`<tool_error code="${escapeXmlAttr(code)}">`, `<message>${escapeXml(options.message)}</message>`];
236
+ const severity = options.severity ?? 'error';
237
+ const parts = [
238
+ `<tool_error code="${escapeXmlAttr(code)}" severity="${escapeXmlAttr(severity)}">`,
239
+ `<message>${escapeXml(options.message)}</message>`,
240
+ ];
236
241
  if (options.suggestion) {
237
242
  parts.push(`<recovery>${escapeXml(options.suggestion)}</recovery>`);
238
243
  }
239
244
  if ((options.availableActions?.length ?? 0) > 0) {
240
- parts.push(`<available_actions>${options.availableActions.map(escapeXml).join(', ')}</available_actions>`);
245
+ parts.push('<available_actions>');
246
+ for (const action of options.availableActions) {
247
+ parts.push(` <action>${escapeXml(action)}</action>`);
248
+ }
249
+ parts.push('</available_actions>');
250
+ }
251
+ if (options.details != null && Object.keys(options.details).length > 0) {
252
+ parts.push('<details>');
253
+ for (const [key, value] of Object.entries(options.details)) {
254
+ parts.push(` <detail key="${escapeXmlAttr(key)}">${escapeXml(value)}</detail>`);
255
+ }
256
+ parts.push('</details>');
257
+ }
258
+ if (options.retryAfter !== undefined) {
259
+ parts.push(`<retry_after>${options.retryAfter} seconds</retry_after>`);
241
260
  }
242
261
  parts.push('</tool_error>');
243
- return { content: [{ type: "text", text: parts.join('\n') }], isError: true };
262
+ // Warnings are non-fatal do not set isError so the response
263
+ // flows through the success path while still carrying guidance.
264
+ const isError = severity !== 'warning';
265
+ return { content: [{ type: "text", text: parts.join('\n') }], isError };
244
266
  }
245
267
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -43,21 +43,21 @@ export { Resource } from './domain/Resource.js';
43
43
  /** @category Converters */
44
44
  export { ConverterBase, type GroupConverter, GroupConverterBase, type ToolConverter, ToolConverterBase, type PromptConverter, PromptConverterBase, type ResourceConverter, ResourceConverterBase, type ToolAnnotationsConverter, ToolAnnotationsConverterBase } from './converters/index.js';
45
45
  /** @category Core */
46
- export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, } from './core/index.js';
46
+ export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, initFusion, createGroup, toStandardValidator, fromZodSchema, isStandardSchema, autoValidator, } from './core/index.js';
47
47
  /** @category Core */
48
- export type { ToolResponse, ToolErrorOptions, ActionConfig, MiddlewareFn, GroupConfigurator, ToolFilter, ToolBuilder, ActionMetadata, Result, Success, Failure, ToolConfig, ActionDef, GroupDef, ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, ProgressEvent, ProgressSink, MiddlewareDefinition, MergeContext, InferContextOut, ConcurrencyConfig, EgressConfig, } from './core/index.js';
48
+ export type { ToolResponse, ToolErrorOptions, ErrorCode, ErrorSeverity, ActionConfig, MiddlewareFn, GroupConfigurator, ToolFilter, ToolBuilder, ActionMetadata, Result, Success, Failure, ToolConfig, ActionDef, GroupDef, ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, ProgressEvent, ProgressSink, MiddlewareDefinition, MergeContext, InferContextOut, ConcurrencyConfig, EgressConfig, FusionInstance, FusionToolConfig, GroupConfig, GroupAction, CompiledGroup, StandardSchemaV1, StandardSchemaIssue, InferStandardOutput, FusionValidator, ValidationResult, } from './core/index.js';
49
49
  /** @category Client */
50
- export { createFusionClient, createTypedRegistry } from './client/index.js';
50
+ export { createFusionClient, createTypedRegistry, FusionClientError } from './client/index.js';
51
51
  /** @category Client */
52
- export type { FusionClient, FusionTransport, RouterMap, InferRouter, TypedToolRegistry } from './client/index.js';
52
+ export type { FusionClient, FusionTransport, RouterMap, InferRouter, TypedToolRegistry, ClientMiddleware, FusionClientOptions } from './client/index.js';
53
53
  /** @category Observability */
54
54
  export { createDebugObserver, SpanStatusCode } from './observability/index.js';
55
55
  /** @category Observability */
56
56
  export type { DebugEvent, DebugObserverFn, RouteEvent, ValidateEvent, MiddlewareEvent, ExecuteEvent, ErrorEvent, FusionSpan, FusionTracer, FusionAttributeValue, } from './observability/index.js';
57
57
  /** @category Presenter */
58
- export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, } from './presenter/index.js';
58
+ export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, } from './presenter/index.js';
59
59
  /** @category Presenter */
60
- export type { UiBlock, ActionSuggestion } from './presenter/index.js';
60
+ export type { UiBlock, ActionSuggestion, PresenterConfig, AgentLimitDef, EmbedDef } from './presenter/index.js';
61
61
  /** @category Prompt */
62
62
  export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
63
63
  /** @category Prompt */
@@ -68,12 +68,20 @@ export type { PromptMessagePayload, PromptResult, PromptParamDef, PromptParamsMa
68
68
  export type { McpPromptDef, PromptFilter } from './prompt/PromptRegistry.js';
69
69
  /** @category Server */
70
70
  export type { AttachOptions, DetachFn } from './server/index.js';
71
+ /** @category Server */
72
+ export { autoDiscover } from './server/index.js';
73
+ /** @category Server */
74
+ export type { AutoDiscoverOptions } from './server/index.js';
75
+ /** @category Server */
76
+ export { createDevServer } from './server/index.js';
77
+ /** @category Server */
78
+ export type { DevServerConfig, DevServer } from './server/index.js';
71
79
  /** @category Exposition */
72
80
  export type { ToolExposition, ExpositionConfig } from './exposition/index.js';
73
81
  /** @category StateSync */
74
- export { StateSyncLayer, PolicyEngine, matchGlob } from './state-sync/index.js';
82
+ export { StateSyncLayer, PolicyEngine, matchGlob, detectOverlaps } from './state-sync/index.js';
75
83
  /** @category StateSync */
76
- export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, } from './state-sync/index.js';
84
+ export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, InvalidationEvent, ResourceNotification, OverlapWarning, } from './state-sync/index.js';
77
85
  /** @category Testing */
78
86
  export { MVA_META_SYMBOL } from './testing/MvaMetaSymbol.js';
79
87
  /** @category Testing */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -46,24 +46,28 @@ export { Resource } from './domain/Resource.js';
46
46
  export { ConverterBase, GroupConverterBase, ToolConverterBase, PromptConverterBase, ResourceConverterBase, ToolAnnotationsConverterBase } from './converters/index.js';
47
47
  // ── Core (Builder, Registry, Execution, Middleware) ──────
48
48
  /** @category Core */
49
- export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, } from './core/index.js';
49
+ export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, initFusion, createGroup, toStandardValidator, fromZodSchema, isStandardSchema, autoValidator, } from './core/index.js';
50
50
  // ── Client (tRPC-style type-safe) ────────────────────────
51
51
  /** @category Client */
52
- export { createFusionClient, createTypedRegistry } from './client/index.js';
52
+ export { createFusionClient, createTypedRegistry, FusionClientError } from './client/index.js';
53
53
  // ── Observability (Debug + Tracing) ──────────────────────
54
54
  /** @category Observability */
55
55
  export { createDebugObserver, SpanStatusCode } from './observability/index.js';
56
56
  // ── Presenter (MVA View Layer) ───────────────────────────
57
57
  /** @category Presenter */
58
- export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, } from './presenter/index.js';
58
+ export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, } from './presenter/index.js';
59
59
  // ── Prompt Engine ────────────────────────────────────────
60
60
  /** @category Prompt */
61
61
  export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
62
62
  /** @category Prompt */
63
63
  export { PromptRegistry } from './prompt/PromptRegistry.js';
64
+ /** @category Server */
65
+ export { autoDiscover } from './server/index.js';
66
+ /** @category Server */
67
+ export { createDevServer } from './server/index.js';
64
68
  // ── State Sync (Epistemic Cache-Control) ─────────────────
65
69
  /** @category StateSync */
66
- export { StateSyncLayer, PolicyEngine, matchGlob } from './state-sync/index.js';
70
+ export { StateSyncLayer, PolicyEngine, matchGlob, detectOverlaps } from './state-sync/index.js';
67
71
  // ── Testing (In-Memory MVA Backdoor) ─────────────────────
68
72
  /** @category Testing */
69
73
  export { MVA_META_SYMBOL } from './testing/MvaMetaSymbol.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAoB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,8BAA8B;AAC9B,OAAO,EAAwB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACQ,kBAAkB,EACnB,iBAAiB,EACf,mBAAmB,EACjB,qBAAqB,EACd,4BAA4B,EAC9D,MAAM,uBAAuB,CAAC;AAE/B,4DAA4D;AAC5D,qBAAqB;AACrB,OAAO,EACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAChD,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAC9D,YAAY,EACZ,uBAAuB,EACvB,OAAO,EAAE,IAAI,EACb,QAAQ,EACR,gBAAgB,EAAE,iBAAiB,GACtC,MAAM,iBAAiB,CAAC;AAiBzB,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ/E,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EACH,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAC5C,EAAE,EACF,SAAS,EAAE,eAAe,EAAE,WAAW,EACvC,wBAAwB,GAC3B,MAAM,sBAAsB,CAAC;AAI9B,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpG,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAkB5D,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMhF,4DAA4D;AAC5D,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAoB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,8BAA8B;AAC9B,OAAO,EAAwB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACQ,kBAAkB,EACnB,iBAAiB,EACf,mBAAmB,EACjB,qBAAqB,EACd,4BAA4B,EAC9D,MAAM,uBAAuB,CAAC;AAE/B,4DAA4D;AAC5D,qBAAqB;AACrB,OAAO,EACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAChD,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAC9D,YAAY,EACZ,uBAAuB,EACvB,OAAO,EAAE,IAAI,EACb,QAAQ,EACR,gBAAgB,EAAE,iBAAiB,EACnC,UAAU,EACV,WAAW,EACX,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,GACtE,MAAM,iBAAiB,CAAC;AAqBzB,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI/F,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ/E,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EACH,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAC5C,EAAE,EACF,SAAS,EAAE,eAAe,EAAE,WAAW,EACvC,wBAAwB,EACxB,eAAe,EACf,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAI9B,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpG,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAa5D,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQpD,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOhG,4DAA4D;AAC5D,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}