@vinkius-core/mcp-fusion 0.9.1 → 0.11.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 (42) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +13 -2
  3. package/dist/framework/builder/GroupedToolBuilder.d.ts +44 -8
  4. package/dist/framework/builder/GroupedToolBuilder.d.ts.map +1 -1
  5. package/dist/framework/builder/GroupedToolBuilder.js +89 -5
  6. package/dist/framework/builder/GroupedToolBuilder.js.map +1 -1
  7. package/dist/framework/builder/defineTool.d.ts +21 -10
  8. package/dist/framework/builder/defineTool.d.ts.map +1 -1
  9. package/dist/framework/builder/defineTool.js.map +1 -1
  10. package/dist/framework/client/InferRouter.d.ts +91 -0
  11. package/dist/framework/client/InferRouter.d.ts.map +1 -0
  12. package/dist/framework/client/InferRouter.js +30 -0
  13. package/dist/framework/client/InferRouter.js.map +1 -0
  14. package/dist/framework/client/createTypedRegistry.d.ts +25 -0
  15. package/dist/framework/client/createTypedRegistry.d.ts.map +1 -0
  16. package/dist/framework/client/createTypedRegistry.js +74 -0
  17. package/dist/framework/client/createTypedRegistry.js.map +1 -0
  18. package/dist/framework/client/index.d.ts +2 -0
  19. package/dist/framework/client/index.d.ts.map +1 -1
  20. package/dist/framework/client/index.js +1 -0
  21. package/dist/framework/client/index.js.map +1 -1
  22. package/dist/framework/index.d.ts +4 -2
  23. package/dist/framework/index.d.ts.map +1 -1
  24. package/dist/framework/index.js +3 -1
  25. package/dist/framework/index.js.map +1 -1
  26. package/dist/framework/observability/DebugObserver.d.ts +150 -0
  27. package/dist/framework/observability/DebugObserver.d.ts.map +1 -0
  28. package/dist/framework/observability/DebugObserver.js +95 -0
  29. package/dist/framework/observability/DebugObserver.js.map +1 -0
  30. package/dist/framework/registry/ToolRegistry.d.ts +20 -0
  31. package/dist/framework/registry/ToolRegistry.d.ts.map +1 -1
  32. package/dist/framework/registry/ToolRegistry.js +31 -0
  33. package/dist/framework/registry/ToolRegistry.js.map +1 -1
  34. package/dist/framework/server/ServerAttachment.d.ts +20 -0
  35. package/dist/framework/server/ServerAttachment.d.ts.map +1 -1
  36. package/dist/framework/server/ServerAttachment.js +6 -1
  37. package/dist/framework/server/ServerAttachment.js.map +1 -1
  38. package/dist/index.d.ts +2 -2
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/index.js.map +1 -1
  42. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.10.0] - 2026-02-22
9
+
10
+ ### Added
11
+ - **`InferRouter<typeof registry>` — Compile-Time Router Type Extraction (Task 2.1):**
12
+ - New `createTypedRegistry<TContext>()` curried factory that creates a `ToolRegistry` while preserving builder types for compile-time inference.
13
+ - New `InferRouter<T>` type utility that extracts a fully typed `RouterMap` from a `TypedToolRegistry`, producing `{ 'toolName.actionName': ArgsType }` entries with zero runtime cost.
14
+ - New `TypedToolRegistry<TContext, TBuilders>` interface for type-safe registry wrapping.
15
+ - `GroupedToolBuilder` now carries `TName` (literal tool name) and `TRouterMap` (accumulated action entries) as phantom generics — each `.action()` call widens the type with the new action's key and args.
16
+ - `createTool()` now captures the tool name as a string literal type for inference.
17
+ - 19 new tests covering runtime behavior + type-level inference verification.
18
+
19
+ - **Typed Handler Args via Schema Inference (Task 2.2):**
20
+ - **`defineTool()` path:** `ActionDef` is now generic over `TParams`, so when `params: { name: 'string' }` is specified, the handler receives `args: { name: string }` — no casts needed. Works with shared params too: `args: InferParams<TParams> & InferParams<TShared>`.
21
+ - **`createTool()` path:** Already supported via typed overload — verified with new compile-time tests.
22
+ - Removed legacy double-cast pattern `(args as Record<string, unknown>)['message'] as string` from existing tests — `args.message` now works directly.
23
+ - 6 new type-level tests verifying both `defineTool()` and `createTool()` paths.
24
+
25
+ ### Changed
26
+ - **`GroupedToolBuilder` generics:** Expanded from `<TContext, TCommon>` to `<TContext, TCommon, TName, TRouterMap>`. Fully backward-compatible — all new generics have default values.
27
+ - **`ActionDef` generics:** Expanded from `<TContext, TArgs>` to `<TContext, TSharedArgs, TParams>`. Handler args are now conditionally typed based on params presence.
28
+ - **`ToolConfig.actions` / `GroupDef.actions`:** Changed from `Record<string, ActionDef>` to mapped types `{ [K in string]: ActionDef }` for per-action param inference.
29
+ - **Test count:** 842 tests across 36 files, all passing.
30
+
31
+
8
32
  ## [0.9.1] - 2026-02-22
9
33
 
10
34
  ### Fixed
package/README.md CHANGED
@@ -282,9 +282,18 @@ handler: async function* (ctx, args) {
282
282
  }
283
283
  ```
284
284
 
285
- ### Type-Safe Client — `createFusionClient()` (tRPC-style)
286
- End-to-end type safety from server to client, with full autocomplete:
285
+ ### Type-Safe Client — `createFusionClient()` + `InferRouter` (tRPC-style)
286
+ End-to-end type safety from server to client, with full autocomplete — **no manual type definitions**:
287
287
  ```typescript
288
+ // ── Server: automatic router extraction ──
289
+ import { createTool, createTypedRegistry } from '@vinkius-core/mcp-fusion';
290
+ import type { InferRouter } from '@vinkius-core/mcp-fusion';
291
+
292
+ const registry = createTypedRegistry<AppContext>()(projects, billing);
293
+ export type AppRouter = InferRouter<typeof registry>;
294
+ // Produces: { 'projects.list': { workspace_id: string }, 'billing.refund': { invoice_id: string, amount: number } }
295
+
296
+ // ── Client: full autocomplete ──
288
297
  import { createFusionClient } from '@vinkius-core/mcp-fusion/client';
289
298
  import type { AppRouter } from './mcp-server';
290
299
 
@@ -396,6 +405,8 @@ Six pure-function modules organized by bounded context. Every module is independ
396
405
  | **`defineTool()` — JSON-First API** | Build tools without Zod imports — strings, enums, arrays, regex |
397
406
  | **`createTool()` — Zod Power Mode** | Full `.refine()`, `.transform()`, `.regex()` for advanced validation |
398
407
  | **`createFusionClient()` — Typed Client** | tRPC-style end-to-end type safety from server to client |
408
+ | **`InferRouter<T>` — Automatic Router Types** | Zero-manual-typing: extracts RouterMap from `createTypedRegistry()` at compile time |
409
+ | **Typed Handler Args** | Handler `args` automatically typed from schema/params — no casts needed |
399
410
  | **`defineMiddleware()` — Context Derivation** | tRPC-style derive data into context with type inference |
400
411
  | **`toolError()` — Self-Healing Errors** | Structured error recovery for autonomous LLM agents |
401
412
  | **`progress()` — Streaming Progress** | Generator handlers yield progress during long operations |
@@ -46,6 +46,7 @@
46
46
  import { type ZodObject, type ZodRawShape } from 'zod';
47
47
  import { type Tool as McpTool } from '@modelcontextprotocol/sdk/types.js';
48
48
  import { type ToolResponse, type ToolBuilder, type ActionMetadata, type MiddlewareFn, type ActionConfig } from '../types.js';
49
+ import { type DebugObserverFn } from '../observability/DebugObserver.js';
49
50
  import { type GroupConfigurator } from './ActionGroupBuilder.js';
50
51
  export { ActionGroupBuilder } from './ActionGroupBuilder.js';
51
52
  export type { GroupConfigurator } from './ActionGroupBuilder.js';
@@ -98,7 +99,7 @@ export type { GroupConfigurator } from './ActionGroupBuilder.js';
98
99
  * @see {@link GroupedToolBuilder} for the full builder API
99
100
  * @see {@link ToolRegistry.register} for tool registration
100
101
  */
101
- export declare function createTool<TContext = void>(name: string): GroupedToolBuilder<TContext>;
102
+ export declare function createTool<TContext = void, TName extends string = string>(name: TName): GroupedToolBuilder<TContext, Record<string, never>, TName>;
102
103
  /**
103
104
  * Fluent builder for creating consolidated MCP tools.
104
105
  *
@@ -108,10 +109,12 @@ export declare function createTool<TContext = void>(name: string): GroupedToolBu
108
109
  *
109
110
  * @typeParam TContext - Application context passed to every handler
110
111
  * @typeParam TCommon - Shape of the common schema (inferred automatically)
112
+ * @typeParam TName - Tool name literal (inferred by createTool)
113
+ * @typeParam TRouterMap - Accumulated action entries for InferRouter (phantom type)
111
114
  *
112
115
  * @see {@link createTool} for the recommended factory function
113
116
  */
114
- export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<string, unknown> = Record<string, never>> implements ToolBuilder<TContext> {
117
+ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<string, unknown> = Record<string, never>, TName extends string = string, TRouterMap extends Record<string, unknown> = Record<string, never>> implements ToolBuilder<TContext> {
115
118
  private readonly _name;
116
119
  private _description?;
117
120
  private _discriminator;
@@ -124,6 +127,7 @@ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<
124
127
  private _hasGroup;
125
128
  private _toonMode;
126
129
  private _frozen;
130
+ private _debug?;
127
131
  private _cachedTool?;
128
132
  private _executionContext?;
129
133
  constructor(name: string);
@@ -233,7 +237,7 @@ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<
233
237
  * });
234
238
  * ```
235
239
  */
236
- commonSchema<TSchema extends ZodObject<ZodRawShape>>(schema: TSchema): GroupedToolBuilder<TContext, TSchema["_output"]>;
240
+ commonSchema<TSchema extends ZodObject<ZodRawShape>>(schema: TSchema): GroupedToolBuilder<TContext, TSchema["_output"], TName, TRouterMap>;
237
241
  /**
238
242
  * Enable TOON-formatted descriptions for token optimization.
239
243
  *
@@ -316,8 +320,8 @@ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<
316
320
  * @see {@link ActionConfig} for all configuration options
317
321
  * @see {@link GroupedToolBuilder.group} for hierarchical grouping
318
322
  */
319
- action<TSchema extends ZodObject<ZodRawShape>, TOmit extends keyof TCommon = never>(config: {
320
- name: string;
323
+ action<TActionName extends string, TSchema extends ZodObject<ZodRawShape>, TOmit extends keyof TCommon = never>(config: {
324
+ name: TActionName;
321
325
  description?: string;
322
326
  schema: TSchema;
323
327
  destructive?: boolean;
@@ -325,9 +329,15 @@ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<
325
329
  readOnly?: boolean;
326
330
  omitCommon?: TOmit[];
327
331
  handler: (ctx: TContext, args: TSchema["_output"] & Omit<TCommon, TOmit>) => Promise<ToolResponse>;
328
- }): this;
329
- /** Register a flat action (untyped: no schema) */
330
- action(config: ActionConfig<TContext>): this;
332
+ }): GroupedToolBuilder<TContext, TCommon, TName, TRouterMap & {
333
+ [K in `${TName}.${TActionName}`]: TSchema["_output"] & Omit<TCommon, TOmit>;
334
+ }>;
335
+ /** Register a flat action (untyped: no schema, args default to Record<string, unknown>) */
336
+ action<TActionName extends string>(config: ActionConfig<TContext> & {
337
+ name: TActionName;
338
+ }): GroupedToolBuilder<TContext, TCommon, TName, TRouterMap & {
339
+ [K in `${TName}.${TActionName}`]: TCommon extends Record<string, never> ? Record<string, unknown> : TCommon;
340
+ }>;
331
341
  /**
332
342
  * Register a group of actions under a namespace.
333
343
  *
@@ -378,12 +388,38 @@ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<
378
388
  * ```
379
389
  */
380
390
  buildToolDefinition(): McpTool;
391
+ /**
392
+ * Enable debug observability for this tool.
393
+ *
394
+ * When enabled, structured {@link DebugEvent} events are emitted at
395
+ * each step of the execution pipeline.
396
+ *
397
+ * When disabled (the default), there is **zero runtime overhead** —
398
+ * no conditionals, no timing, no object allocations in the hot path.
399
+ *
400
+ * @param observer - A {@link DebugObserverFn} created by `createDebugObserver()`
401
+ * @returns `this` for chaining
402
+ *
403
+ * @example
404
+ * ```typescript
405
+ * import { createTool, createDebugObserver, success } from '@vinkius-core/mcp-fusion';
406
+ *
407
+ * const debug = createDebugObserver();
408
+ *
409
+ * const tool = createTool<void>('users')
410
+ * .debug(debug) // ← enable observability
411
+ * .action({ name: 'list', handler: async () => success([]) });
412
+ * ```
413
+ */
414
+ debug(observer: DebugObserverFn): this;
381
415
  /**
382
416
  * Route a tool call to the correct action handler.
383
417
  *
384
418
  * Pipeline: `parseDiscriminator → resolveAction → validateArgs → runChain`
385
419
  *
386
420
  * Auto-calls {@link buildToolDefinition} if not called yet.
421
+ * If a debug observer is active, structured events are emitted
422
+ * at each pipeline step with timing information.
387
423
  *
388
424
  * @param ctx - Application context
389
425
  * @param args - Raw arguments from the LLM (includes discriminator)
@@ -1 +1 @@
1
- {"version":3,"file":"GroupedToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/framework/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACvD,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACpB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAEH,KAAK,iBAAiB,EAEzB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,UAAU,CAAC,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAEtF;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB,CAAC,QAAQ,GAAG,IAAI,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC;IAC9I,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAA0B;IAC/C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAC,CAAyB;IAC/C,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,WAAW,CAAC,CAAU;IAC9B,OAAO,CAAC,iBAAiB,CAAC,CAA6B;gBAE3C,IAAI,EAAE,MAAM;IAMxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM/B;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM7C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAM7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YAAY,CAAC,OAAO,SAAS,SAAS,CAAC,WAAW,CAAC,EAC/C,MAAM,EAAE,OAAO,GAChB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAMnD;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,IAAI,IAAI;IAMvB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,MAAM,CAAC,OAAO,SAAS,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,SAAS,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE;QACxF,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;KACtG,GAAG,IAAI;IACR,kDAAkD;IAClD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IA6B5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI;IAC1E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI;IAsC/F;;;;;;;;;;;;;;;;;;;OAmBG;IACH,mBAAmB,IAAI,OAAO;IAyB9B;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBlF,yBAAyB;IACzB,OAAO,IAAI,MAAM;IAEjB,yCAAyC;IACzC,OAAO,IAAI,MAAM,EAAE;IAEnB,mGAAmG;IACnG,cAAc,IAAI,MAAM,EAAE;IAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,aAAa,IAAI,MAAM;IA8DvB;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,IAAI,cAAc,EAAE;IAgBrC,OAAO,CAAC,gBAAgB;CAQ3B"}
1
+ {"version":3,"file":"GroupedToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/framework/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ import {} from 'zod';
47
47
  import {} from '@modelcontextprotocol/sdk/types.js';
48
48
  import { error } from '../response.js';
49
49
  import {} from '../types.js';
50
+ import {} from '../observability/DebugObserver.js';
50
51
  import { getActionRequiredFields } from '../schema/SchemaUtils.js';
51
52
  import { parseDiscriminator, resolveAction, validateArgs, runChain, } from '../execution/ExecutionPipeline.js';
52
53
  import { compileToolDefinition } from './ToolDefinitionCompiler.js';
@@ -118,6 +119,8 @@ export function createTool(name) {
118
119
  *
119
120
  * @typeParam TContext - Application context passed to every handler
120
121
  * @typeParam TCommon - Shape of the common schema (inferred automatically)
122
+ * @typeParam TName - Tool name literal (inferred by createTool)
123
+ * @typeParam TRouterMap - Accumulated action entries for InferRouter (phantom type)
121
124
  *
122
125
  * @see {@link createTool} for the recommended factory function
123
126
  */
@@ -134,6 +137,7 @@ export class GroupedToolBuilder {
134
137
  _hasGroup = false;
135
138
  _toonMode = false;
136
139
  _frozen = false;
140
+ _debug;
137
141
  // Cached build result
138
142
  _cachedTool;
139
143
  _executionContext;
@@ -404,6 +408,35 @@ export class GroupedToolBuilder {
404
408
  Object.freeze(this._actions);
405
409
  return result.tool;
406
410
  }
411
+ // ── Debug (opt-in observability) ──────────────────────
412
+ /**
413
+ * Enable debug observability for this tool.
414
+ *
415
+ * When enabled, structured {@link DebugEvent} events are emitted at
416
+ * each step of the execution pipeline.
417
+ *
418
+ * When disabled (the default), there is **zero runtime overhead** —
419
+ * no conditionals, no timing, no object allocations in the hot path.
420
+ *
421
+ * @param observer - A {@link DebugObserverFn} created by `createDebugObserver()`
422
+ * @returns `this` for chaining
423
+ *
424
+ * @example
425
+ * ```typescript
426
+ * import { createTool, createDebugObserver, success } from '@vinkius-core/mcp-fusion';
427
+ *
428
+ * const debug = createDebugObserver();
429
+ *
430
+ * const tool = createTool<void>('users')
431
+ * .debug(debug) // ← enable observability
432
+ * .action({ name: 'list', handler: async () => success([]) });
433
+ * ```
434
+ */
435
+ debug(observer) {
436
+ // No frozen check — debug is safe to attach after build
437
+ this._debug = observer;
438
+ return this;
439
+ }
407
440
  // ── Execute (delegates to ExecutionPipeline) ────────
408
441
  /**
409
442
  * Route a tool call to the correct action handler.
@@ -411,6 +444,8 @@ export class GroupedToolBuilder {
411
444
  * Pipeline: `parseDiscriminator → resolveAction → validateArgs → runChain`
412
445
  *
413
446
  * Auto-calls {@link buildToolDefinition} if not called yet.
447
+ * If a debug observer is active, structured events are emitted
448
+ * at each pipeline step with timing information.
414
449
  *
415
450
  * @param ctx - Application context
416
451
  * @param args - Raw arguments from the LLM (includes discriminator)
@@ -433,16 +468,65 @@ export class GroupedToolBuilder {
433
468
  if (!execCtx) {
434
469
  return error(`Builder "${this._name}" failed to initialize.`);
435
470
  }
471
+ // Fast path: no debug observer → zero overhead
472
+ if (!this._debug) {
473
+ const disc = parseDiscriminator(execCtx, args);
474
+ if (!disc.ok)
475
+ return disc.response;
476
+ const resolved = resolveAction(execCtx, disc.value);
477
+ if (!resolved.ok)
478
+ return resolved.response;
479
+ const validated = validateArgs(execCtx, resolved.value, args);
480
+ if (!validated.ok)
481
+ return validated.response;
482
+ return runChain(execCtx, resolved.value, ctx, validated.value);
483
+ }
484
+ // Debug path: emit structured events at each step
485
+ const debug = this._debug;
486
+ const startTime = performance.now();
487
+ // Step 1: Route
436
488
  const disc = parseDiscriminator(execCtx, args);
437
- if (!disc.ok)
489
+ if (!disc.ok) {
490
+ debug({ type: 'error', tool: this._name, action: '?', error: 'Missing discriminator', step: 'route', timestamp: Date.now() });
438
491
  return disc.response;
439
- const resolved = resolveAction(execCtx, disc.value);
440
- if (!resolved.ok)
492
+ }
493
+ const actionName = disc.value;
494
+ debug({ type: 'route', tool: this._name, action: actionName, timestamp: Date.now() });
495
+ // Step 2: Resolve
496
+ const resolved = resolveAction(execCtx, actionName);
497
+ if (!resolved.ok) {
498
+ debug({ type: 'error', tool: this._name, action: actionName, error: `Unknown action "${actionName}"`, step: 'route', timestamp: Date.now() });
441
499
  return resolved.response;
500
+ }
501
+ // Step 3: Validate
502
+ const validateStart = performance.now();
442
503
  const validated = validateArgs(execCtx, resolved.value, args);
443
- if (!validated.ok)
504
+ const validateDuration = performance.now() - validateStart;
505
+ if (!validated.ok) {
506
+ debug({ type: 'validate', tool: this._name, action: actionName, valid: false, error: 'Validation failed', durationMs: validateDuration, timestamp: Date.now() });
444
507
  return validated.response;
445
- return runChain(execCtx, resolved.value, ctx, validated.value);
508
+ }
509
+ debug({ type: 'validate', tool: this._name, action: actionName, valid: true, durationMs: validateDuration, timestamp: Date.now() });
510
+ // Step 4: Middleware chain info (global + action-level)
511
+ const actionMwCount = resolved.value.action.middlewares?.length ?? 0;
512
+ const globalMwCount = this._middlewares.length;
513
+ const chainLength = globalMwCount + actionMwCount;
514
+ if (chainLength > 0) {
515
+ debug({ type: 'middleware', tool: this._name, action: actionName, chainLength, timestamp: Date.now() });
516
+ }
517
+ // Step 5: Execute
518
+ try {
519
+ const response = await runChain(execCtx, resolved.value, ctx, validated.value);
520
+ const totalDuration = performance.now() - startTime;
521
+ const isErr = response.isError === true;
522
+ debug({ type: 'execute', tool: this._name, action: actionName, durationMs: totalDuration, isError: isErr, timestamp: Date.now() });
523
+ return response;
524
+ }
525
+ catch (err) {
526
+ const message = err instanceof Error ? err.message : String(err);
527
+ debug({ type: 'error', tool: this._name, action: actionName, error: message, step: 'execute', timestamp: Date.now() });
528
+ throw err;
529
+ }
446
530
  }
447
531
  // ── Introspection ───────────────────────────────────
448
532
  /** Get the tool name. */
@@ -1 +1 @@
1
- {"version":3,"file":"GroupedToolBuilder.js","sourceRoot":"","sources":["../../../src/framework/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroupedToolBuilder.js","sourceRoot":"","sources":["../../../src/framework/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}
@@ -31,14 +31,19 @@ import { type ParamsMap, type InferParams } from './ParamDescriptors.js';
31
31
  /**
32
32
  * Action definition within a `defineTool()` config.
33
33
  *
34
+ * When `params` is provided as a `ParamsMap`, the handler's `args` are
35
+ * automatically typed as `InferParams<TParams> & TSharedArgs`.
36
+ * When `params` is a ZodObject, use `z.infer<typeof schema>` for manual typing.
37
+ *
34
38
  * @typeParam TContext - Application context type
35
- * @typeParam TArgs - Inferred args type (from params + shared)
39
+ * @typeParam TSharedArgs - Shared args inherited from ToolConfig.shared
40
+ * @typeParam TParams - Action-specific params (inferred from the params field)
36
41
  */
37
- export interface ActionDef<TContext, TArgs = Record<string, never>> {
42
+ export interface ActionDef<TContext, TSharedArgs = Record<string, never>, TParams extends ParamsMap = ParamsMap> {
38
43
  /** Human-readable description for the LLM */
39
44
  description?: string;
40
45
  /** Parameter definitions (JSON descriptors or Zod schema) */
41
- params?: ParamsMap | ZodObject<ZodRawShape>;
46
+ params?: TParams | ZodObject<ZodRawShape>;
42
47
  /** Mark as read-only (no side effects) */
43
48
  readOnly?: boolean;
44
49
  /** Mark as destructive (irreversible) */
@@ -49,8 +54,8 @@ export interface ActionDef<TContext, TArgs = Record<string, never>> {
49
54
  omitCommon?: string[];
50
55
  /** Action-level middleware */
51
56
  middleware?: MiddlewareFn<TContext>[];
52
- /** The handler function */
53
- handler: (ctx: TContext, args: TArgs) => Promise<ToolResponse>;
57
+ /** The handler function — args are fully typed when params is specified */
58
+ handler: (ctx: TContext, args: TParams extends ParamsMap ? (keyof TParams extends never ? TSharedArgs & Record<string, unknown> : InferParams<TParams> & TSharedArgs) : TSharedArgs & Record<string, unknown>) => Promise<ToolResponse>;
54
59
  }
55
60
  /**
56
61
  * Group definition within a `defineTool()` config.
@@ -65,8 +70,10 @@ export interface GroupDef<TContext, TSharedArgs = Record<string, never>> {
65
70
  omitCommon?: string[];
66
71
  /** Group-scoped middleware */
67
72
  middleware?: MiddlewareFn<TContext>[];
68
- /** Actions within this group */
69
- actions: Record<string, ActionDef<TContext, TSharedArgs & Record<string, unknown>>>;
73
+ /** Actions within this group — each action's params are inferred independently */
74
+ actions: {
75
+ [K in string]: ActionDef<TContext, TSharedArgs>;
76
+ };
70
77
  }
71
78
  /**
72
79
  * Full `defineTool()` configuration.
@@ -87,10 +94,14 @@ export interface ToolConfig<TContext, TShared extends ParamsMap = ParamsMap> {
87
94
  shared?: TShared | ZodObject<ZodRawShape>;
88
95
  /** Global middleware applied to all actions */
89
96
  middleware?: MiddlewareFn<TContext>[];
90
- /** Flat actions (mutually exclusive with `groups`) */
91
- actions?: Record<string, ActionDef<TContext, InferParams<TShared> & Record<string, unknown>>>;
97
+ /** Flat actions each action's params are inferred independently */
98
+ actions?: {
99
+ [K in string]: ActionDef<TContext, InferParams<TShared>>;
100
+ };
92
101
  /** Hierarchical groups (mutually exclusive with `actions`) */
93
- groups?: Record<string, GroupDef<TContext, InferParams<TShared>>>;
102
+ groups?: {
103
+ [K in string]: GroupDef<TContext, InferParams<TShared>>;
104
+ };
94
105
  }
95
106
  /** Expected return type for handlers */
96
107
  export type ExpectedHandlerReturnType = Promise<ToolResponse> | AsyncGenerator<unknown, ToolResponse, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"defineTool.d.ts","sourceRoot":"","sources":["../../../src/framework/builder/defineTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defineTool.d.ts","sourceRoot":"","sources":["../../../src/framework/builder/defineTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defineTool.js","sourceRoot":"","sources":["../../../src/framework/builder/defineTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defineTool.js","sourceRoot":"","sources":["../../../src/framework/builder/defineTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * InferRouter — Compile-Time Router Type Extraction
3
+ *
4
+ * Extracts a fully typed `RouterMap` from a `TypedToolRegistry` or
5
+ * an array of `GroupedToolBuilder` instances. This is the key piece
6
+ * that makes the FusionClient tRPC-style experience real.
7
+ *
8
+ * **Zero runtime cost** — this module contains only type declarations.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // ── SERVER SIDE ──
13
+ * const registry = createTypedRegistry<AppContext>()(
14
+ * projectsTool, // GroupedToolBuilder<AppContext, ..., 'projects', { 'projects.list': ..., ... }>
15
+ * billingTool,
16
+ * );
17
+ * export type AppRouter = InferRouter<typeof registry>;
18
+ *
19
+ * // ── CLIENT SIDE ──
20
+ * import type { AppRouter } from './server';
21
+ * const client = createFusionClient<AppRouter>(transport);
22
+ * await client.execute('projects.list', { workspace_id: 'ws_1' });
23
+ * // ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
24
+ * // autocomplete! typed args!
25
+ * ```
26
+ *
27
+ * @module
28
+ */
29
+ import { type GroupedToolBuilder } from '../builder/GroupedToolBuilder.js';
30
+ /**
31
+ * A typed wrapper around `ToolRegistry` that preserves builder types
32
+ * for compile-time router inference.
33
+ *
34
+ * Created by {@link createTypedRegistry}. The registry itself stores
35
+ * builders at runtime via a standard `ToolRegistry`, but the `_builders`
36
+ * tuple type is preserved for `InferRouter` extraction.
37
+ *
38
+ * @typeParam TContext - Application context type
39
+ * @typeParam TBuilders - Tuple of registered builder types
40
+ */
41
+ export interface TypedToolRegistry<TContext, TBuilders extends readonly unknown[]> {
42
+ /** The underlying ToolRegistry instance (for runtime use) */
43
+ readonly registry: import('../registry/ToolRegistry.js').ToolRegistry<TContext>;
44
+ /** Branded field for type inference — never accessed at runtime */
45
+ readonly _builders: TBuilders;
46
+ /** Branded phantom type for context inference */
47
+ readonly _context: TContext;
48
+ }
49
+ /**
50
+ * Infer a `RouterMap` from a `TypedToolRegistry`.
51
+ *
52
+ * Extracts the accumulated `TRouterMap` from each builder registered
53
+ * in the typed registry, producing a flat intersection of all
54
+ * `{ 'toolName.actionName': ArgsType }` entries.
55
+ *
56
+ * @typeParam T - A `TypedToolRegistry` instance type
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const projects = createTool<Ctx>('projects')
61
+ * .action({ name: 'list', schema: z.object({ status: z.string() }), handler: ... })
62
+ * .action({ name: 'create', schema: z.object({ name: z.string() }), handler: ... });
63
+ *
64
+ * const registry = createTypedRegistry<Ctx>()(projects);
65
+ * type AppRouter = InferRouter<typeof registry>;
66
+ * // Result: {
67
+ * // 'projects.list': { status: string };
68
+ * // 'projects.create': { name: string };
69
+ * // }
70
+ * ```
71
+ */
72
+ export type InferRouter<T> = T extends TypedToolRegistry<infer _TCtx, infer TBuilders> ? InferRouterFromBuilders<TBuilders> : T extends readonly unknown[] ? InferRouterFromBuilders<T> : Record<string, Record<string, unknown>>;
73
+ /**
74
+ * Infer router entries from a tuple of builders.
75
+ *
76
+ * Recursively intersects the `TRouterMap` from each builder in the tuple.
77
+ *
78
+ * @internal
79
+ */
80
+ type InferRouterFromBuilders<T> = T extends readonly [infer First, ...infer Rest] ? ExtractRouterMap<First> & InferRouterFromBuilders<Rest> : T extends readonly [] ? {} : Record<string, Record<string, unknown>>;
81
+ /**
82
+ * Extract the accumulated `TRouterMap` from a single `GroupedToolBuilder`.
83
+ *
84
+ * The 4th generic parameter of `GroupedToolBuilder<TCtx, TCommon, TName, TRouterMap>`
85
+ * carries the compile-time action map. This type extracts it.
86
+ *
87
+ * @internal
88
+ */
89
+ type ExtractRouterMap<T> = T extends GroupedToolBuilder<infer _TCtx, infer _TCommon, infer _TName, infer TRouterMap> ? TRouterMap : Record<string, Record<string, unknown>>;
90
+ export {};
91
+ //# sourceMappingURL=InferRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InferRouter.d.ts","sourceRoot":"","sources":["../../../src/framework/client/InferRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAM3E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE;IAC7E,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChF,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,CAAC,SAAS,iBAAiB,CAAC,MAAM,KAAK,EAAE,MAAM,SAAS,CAAC,GACnD,uBAAuB,CAAC,SAAS,CAAC,GAClC,CAAC,SAAS,SAAS,OAAO,EAAE,GACxB,uBAAuB,CAAC,CAAC,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,KAAK,uBAAuB,CAAC,CAAC,IAC1B,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GACzC,gBAAgB,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,GACvD,CAAC,SAAS,SAAS,EAAE,GAEjB,EAAE,GACF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtD;;;;;;;GAOG;AACH,KAAK,gBAAgB,CAAC,CAAC,IACnB,CAAC,SAAS,kBAAkB,CAAC,MAAM,KAAK,EAAE,MAAM,QAAQ,EAAE,MAAM,MAAM,EAAE,MAAM,UAAU,CAAC,GACnF,UAAU,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * InferRouter — Compile-Time Router Type Extraction
3
+ *
4
+ * Extracts a fully typed `RouterMap` from a `TypedToolRegistry` or
5
+ * an array of `GroupedToolBuilder` instances. This is the key piece
6
+ * that makes the FusionClient tRPC-style experience real.
7
+ *
8
+ * **Zero runtime cost** — this module contains only type declarations.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // ── SERVER SIDE ──
13
+ * const registry = createTypedRegistry<AppContext>()(
14
+ * projectsTool, // GroupedToolBuilder<AppContext, ..., 'projects', { 'projects.list': ..., ... }>
15
+ * billingTool,
16
+ * );
17
+ * export type AppRouter = InferRouter<typeof registry>;
18
+ *
19
+ * // ── CLIENT SIDE ──
20
+ * import type { AppRouter } from './server';
21
+ * const client = createFusionClient<AppRouter>(transport);
22
+ * await client.execute('projects.list', { workspace_id: 'ws_1' });
23
+ * // ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
24
+ * // autocomplete! typed args!
25
+ * ```
26
+ *
27
+ * @module
28
+ */
29
+ import {} from '../builder/GroupedToolBuilder.js';
30
+ //# sourceMappingURL=InferRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InferRouter.js","sourceRoot":"","sources":["../../../src/framework/client/InferRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAA2B,MAAM,kCAAkC,CAAC"}