@vinkius-core/mcp-fusion 2.9.0 → 2.12.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/dist/cli/fusion.d.ts +3 -0
- package/dist/cli/fusion.d.ts.map +1 -1
- package/dist/cli/fusion.js +125 -3
- package/dist/cli/fusion.js.map +1 -1
- package/dist/cli/templates/config.js +3 -3
- package/dist/cli/templates/config.js.map +1 -1
- package/dist/cli/templates/constants.d.ts +1 -1
- package/dist/cli/templates/constants.d.ts.map +1 -1
- package/dist/cli/templates/constants.js +1 -1
- package/dist/cli/templates/constants.js.map +1 -1
- package/dist/cli/templates/core.js +5 -5
- package/dist/cli/templates/middleware.d.ts +1 -1
- package/dist/cli/templates/middleware.d.ts.map +1 -1
- package/dist/cli/templates/middleware.js +16 -13
- package/dist/cli/templates/middleware.js.map +1 -1
- package/dist/cli/templates/readme.d.ts.map +1 -1
- package/dist/cli/templates/readme.js +14 -18
- package/dist/cli/templates/readme.js.map +1 -1
- package/dist/cli/templates/tools.d.ts +4 -0
- package/dist/cli/templates/tools.d.ts.map +1 -1
- package/dist/cli/templates/tools.js +26 -29
- package/dist/cli/templates/tools.js.map +1 -1
- package/dist/cli/templates/vectors/database.d.ts.map +1 -1
- package/dist/cli/templates/vectors/database.js +14 -19
- package/dist/cli/templates/vectors/database.js.map +1 -1
- package/dist/cli/templates/vectors/oauth.d.ts.map +1 -1
- package/dist/cli/templates/vectors/oauth.js +4 -5
- package/dist/cli/templates/vectors/oauth.js.map +1 -1
- package/dist/cli/templates/vectors/openapi.js +2 -2
- package/dist/cli/templates/vectors/workflow.js +1 -1
- package/dist/cli/templates/vectors/workflow.js.map +1 -1
- package/dist/client/FusionClient.d.ts +55 -0
- package/dist/client/FusionClient.d.ts.map +1 -1
- package/dist/client/FusionClient.js +30 -0
- package/dist/client/FusionClient.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/core/builder/ActionGroupBuilder.d.ts +86 -46
- package/dist/core/builder/ActionGroupBuilder.d.ts.map +1 -1
- package/dist/core/builder/ActionGroupBuilder.js +68 -26
- package/dist/core/builder/ActionGroupBuilder.js.map +1 -1
- package/dist/core/builder/ErrorBuilder.d.ts +59 -0
- package/dist/core/builder/ErrorBuilder.d.ts.map +1 -0
- package/dist/core/builder/ErrorBuilder.js +99 -0
- package/dist/core/builder/ErrorBuilder.js.map +1 -0
- package/dist/core/builder/FluentRouter.d.ts +91 -0
- package/dist/core/builder/FluentRouter.d.ts.map +1 -0
- package/dist/core/builder/FluentRouter.js +121 -0
- package/dist/core/builder/FluentRouter.js.map +1 -0
- package/dist/core/builder/FluentSchemaHelpers.d.ts +237 -0
- package/dist/core/builder/FluentSchemaHelpers.d.ts.map +1 -0
- package/dist/core/builder/FluentSchemaHelpers.js +227 -0
- package/dist/core/builder/FluentSchemaHelpers.js.map +1 -0
- package/dist/core/builder/FluentToolBuilder.d.ts +347 -0
- package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -0
- package/dist/core/builder/FluentToolBuilder.js +525 -0
- package/dist/core/builder/FluentToolBuilder.js.map +1 -0
- package/dist/core/builder/GroupedToolBuilder.d.ts +91 -1
- package/dist/core/builder/GroupedToolBuilder.d.ts.map +1 -1
- package/dist/core/builder/GroupedToolBuilder.js +122 -4
- package/dist/core/builder/GroupedToolBuilder.js.map +1 -1
- package/dist/core/builder/ToolDefinitionCompiler.d.ts +1 -0
- package/dist/core/builder/ToolDefinitionCompiler.d.ts.map +1 -1
- package/dist/core/builder/ToolDefinitionCompiler.js +1 -1
- package/dist/core/builder/ToolDefinitionCompiler.js.map +1 -1
- package/dist/core/builder/index.d.ts +4 -0
- package/dist/core/builder/index.d.ts.map +1 -1
- package/dist/core/builder/index.js +7 -0
- package/dist/core/builder/index.js.map +1 -1
- package/dist/core/execution/EgressGuard.js +1 -1
- package/dist/core/execution/EgressGuard.js.map +1 -1
- package/dist/core/execution/ExecutionPipeline.d.ts +8 -2
- package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -1
- package/dist/core/execution/ExecutionPipeline.js +18 -9
- package/dist/core/execution/ExecutionPipeline.js.map +1 -1
- package/dist/core/execution/PipelineHooks.d.ts +0 -6
- package/dist/core/execution/PipelineHooks.d.ts.map +1 -1
- package/dist/core/execution/PipelineHooks.js +7 -3
- package/dist/core/execution/PipelineHooks.js.map +1 -1
- package/dist/core/index.d.ts +5 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/initFusion.d.ts +119 -87
- package/dist/core/initFusion.d.ts.map +1 -1
- package/dist/core/initFusion.js +56 -66
- package/dist/core/initFusion.js.map +1 -1
- package/dist/core/registry/ToolRegistry.d.ts +1 -1
- package/dist/core/registry/ToolRegistry.d.ts.map +1 -1
- package/dist/core/registry/ToolRegistry.js +1 -1
- package/dist/core/registry/ToolRegistry.js.map +1 -1
- package/dist/core/schema/SchemaGenerator.d.ts +1 -1
- package/dist/core/schema/SchemaGenerator.d.ts.map +1 -1
- package/dist/core/schema/SchemaGenerator.js +38 -1
- package/dist/core/schema/SchemaGenerator.js.map +1 -1
- package/dist/core/types.d.ts +19 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/exposition/ExpositionCompiler.d.ts.map +1 -1
- package/dist/exposition/ExpositionCompiler.js +25 -2
- package/dist/exposition/ExpositionCompiler.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/introspection/BehaviorDigest.d.ts +2 -2
- package/dist/introspection/BehaviorDigest.d.ts.map +1 -1
- package/dist/introspection/BehaviorDigest.js +38 -36
- package/dist/introspection/BehaviorDigest.js.map +1 -1
- package/dist/introspection/CapabilityLockfile.d.ts +2 -2
- package/dist/introspection/CapabilityLockfile.d.ts.map +1 -1
- package/dist/introspection/CapabilityLockfile.js +9 -9
- package/dist/introspection/CapabilityLockfile.js.map +1 -1
- package/dist/introspection/CryptoAttestation.d.ts.map +1 -1
- package/dist/introspection/CryptoAttestation.js +27 -36
- package/dist/introspection/CryptoAttestation.js.map +1 -1
- package/dist/introspection/ToolContract.d.ts +2 -2
- package/dist/introspection/ToolContract.d.ts.map +1 -1
- package/dist/introspection/ToolContract.js +9 -9
- package/dist/introspection/ToolContract.js.map +1 -1
- package/dist/introspection/canonicalize.d.ts +16 -1
- package/dist/introspection/canonicalize.d.ts.map +1 -1
- package/dist/introspection/canonicalize.js +24 -3
- package/dist/introspection/canonicalize.js.map +1 -1
- package/dist/presenter/PostProcessor.d.ts +4 -2
- package/dist/presenter/PostProcessor.d.ts.map +1 -1
- package/dist/presenter/PostProcessor.js +10 -10
- package/dist/presenter/PostProcessor.js.map +1 -1
- package/dist/presenter/Presenter.d.ts +112 -6
- package/dist/presenter/Presenter.d.ts.map +1 -1
- package/dist/presenter/Presenter.js +134 -40
- package/dist/presenter/Presenter.js.map +1 -1
- package/dist/presenter/SelectUtils.d.ts +78 -0
- package/dist/presenter/SelectUtils.d.ts.map +1 -0
- package/dist/presenter/SelectUtils.js +141 -0
- package/dist/presenter/SelectUtils.js.map +1 -0
- package/dist/presenter/index.d.ts +3 -0
- package/dist/presenter/index.d.ts.map +1 -1
- package/dist/presenter/index.js +6 -0
- package/dist/presenter/index.js.map +1 -1
- package/dist/presenter/suggest.d.ts +39 -0
- package/dist/presenter/suggest.d.ts.map +1 -0
- package/dist/presenter/suggest.js +41 -0
- package/dist/presenter/suggest.js.map +1 -0
- package/dist/presenter/typeHelpers.d.ts +147 -0
- package/dist/presenter/typeHelpers.d.ts.map +1 -0
- package/dist/presenter/typeHelpers.js +152 -0
- package/dist/presenter/typeHelpers.js.map +1 -0
- package/dist/prompt/FluentPromptBuilder.d.ts +155 -0
- package/dist/prompt/FluentPromptBuilder.d.ts.map +1 -0
- package/dist/prompt/FluentPromptBuilder.js +193 -0
- package/dist/prompt/FluentPromptBuilder.js.map +1 -0
- package/dist/prompt/index.d.ts +1 -0
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +1 -0
- package/dist/prompt/index.js.map +1 -1
- package/dist/server/DevServer.js +8 -8
- package/dist/server/DevServer.js.map +1 -1
- package/dist/server/ServerAttachment.d.ts +1 -1
- package/dist/server/ServerAttachment.d.ts.map +1 -1
- package/dist/server/ServerAttachment.js +57 -4
- package/dist/server/ServerAttachment.js.map +1 -1
- package/dist/state-sync/ResponseDecorator.d.ts +1 -1
- package/dist/state-sync/StateSyncBuilder.d.ts +75 -0
- package/dist/state-sync/StateSyncBuilder.d.ts.map +1 -0
- package/dist/state-sync/StateSyncBuilder.js +123 -0
- package/dist/state-sync/StateSyncBuilder.js.map +1 -0
- package/dist/state-sync/index.d.ts +1 -0
- package/dist/state-sync/index.d.ts.map +1 -1
- package/dist/state-sync/index.js +1 -0
- package/dist/state-sync/index.js.map +1 -1
- package/package.json +1 -1
package/dist/core/index.d.ts
CHANGED
|
@@ -4,19 +4,17 @@
|
|
|
4
4
|
* Public API for the core tool consolidation engine.
|
|
5
5
|
* Contains only the foundational building blocks: response helpers,
|
|
6
6
|
* result monad, types, builder, registry, schema, execution, and middleware.
|
|
7
|
-
*
|
|
8
|
-
* Top-level modules (client, observability, presenter, prompt, server,
|
|
9
|
-
* state-sync, introspection, exposition) are exported from their own
|
|
10
|
-
* barrel files and re-aggregated in src/index.ts.
|
|
11
7
|
*/
|
|
12
8
|
export { success, error, required, toonSuccess, toolError } from './response.js';
|
|
13
9
|
export type { ToolResponse, ToolErrorOptions, ErrorCode, ErrorSeverity } from './response.js';
|
|
14
10
|
export { succeed, fail } from './result.js';
|
|
15
11
|
export type { Result, Success, Failure } from './result.js';
|
|
16
|
-
export type { ToolBuilder, ActionMetadata, InternalAction, MiddlewareFn, ActionConfig, } from './types.js';
|
|
12
|
+
export type { ToolBuilder, ActionMetadata, InternalAction, MiddlewareFn, ActionConfig, StateSyncHint, } from './types.js';
|
|
17
13
|
export { GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool } from './builder/index.js';
|
|
14
|
+
export { FluentToolBuilder } from './builder/index.js';
|
|
15
|
+
export { FluentRouter } from './builder/index.js';
|
|
18
16
|
export type { GroupConfigurator, ToolConfig, ActionDef, GroupDef } from './builder/index.js';
|
|
19
|
-
export type {
|
|
17
|
+
export type { SemanticDefaults } from './builder/index.js';
|
|
20
18
|
export { ToolRegistry } from './registry/index.js';
|
|
21
19
|
export type { ToolFilter } from './registry/index.js';
|
|
22
20
|
export { generateToonDescription } from './schema/index.js';
|
|
@@ -27,7 +25,7 @@ export type { EgressConfig } from './execution/index.js';
|
|
|
27
25
|
export { defineMiddleware, resolveMiddleware } from './middleware/index.js';
|
|
28
26
|
export type { MiddlewareDefinition, MergeContext, InferContextOut } from './middleware/index.js';
|
|
29
27
|
export { initFusion } from './initFusion.js';
|
|
30
|
-
export type { FusionInstance
|
|
28
|
+
export type { FusionInstance } from './initFusion.js';
|
|
31
29
|
export { createGroup } from './createGroup.js';
|
|
32
30
|
export type { GroupConfig, GroupAction, CompiledGroup } from './createGroup.js';
|
|
33
31
|
export { toStandardValidator, fromZodSchema, isStandardSchema, autoValidator, } from './StandardSchema.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY,EACR,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,YAAY,EAC5B,YAAY,EAAE,aAAa,GAC9B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGhF,OAAO,EACH,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,GACtE,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACR,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAC1D,eAAe,EAAE,gBAAgB,GACpC,MAAM,qBAAqB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -4,16 +4,14 @@
|
|
|
4
4
|
* Public API for the core tool consolidation engine.
|
|
5
5
|
* Contains only the foundational building blocks: response helpers,
|
|
6
6
|
* result monad, types, builder, registry, schema, execution, and middleware.
|
|
7
|
-
*
|
|
8
|
-
* Top-level modules (client, observability, presenter, prompt, server,
|
|
9
|
-
* state-sync, introspection, exposition) are exported from their own
|
|
10
|
-
* barrel files and re-aggregated in src/index.ts.
|
|
11
7
|
*/
|
|
12
8
|
// ── Cross-cutting ────────────────────────────────────────
|
|
13
9
|
export { success, error, required, toonSuccess, toolError } from './response.js';
|
|
14
10
|
export { succeed, fail } from './result.js';
|
|
15
11
|
// ── Builder ──────────────────────────────────────────────
|
|
16
12
|
export { GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool } from './builder/index.js';
|
|
13
|
+
export { FluentToolBuilder } from './builder/index.js';
|
|
14
|
+
export { FluentRouter } from './builder/index.js';
|
|
17
15
|
// ── Registry ─────────────────────────────────────────────
|
|
18
16
|
export { ToolRegistry } from './registry/index.js';
|
|
19
17
|
// ── Schema (public strategies) ───────────────────────────
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,4DAA4D;AAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAU5C,4DAA4D;AAC5D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,4DAA4D;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG5E,2DAA2D;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,4DAA4D;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,4DAA4D;AAC5D,OAAO,EACH,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,GACtE,MAAM,qBAAqB,CAAC"}
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* initFusion() — tRPC-Style Context Initialization
|
|
3
3
|
*
|
|
4
4
|
* Eliminates the need to pass `<AppContext>` as a generic parameter
|
|
5
|
-
* everywhere. Define your context type once, and every `f.
|
|
6
|
-
* `f.
|
|
7
|
-
* automatically inherits it.
|
|
5
|
+
* everywhere. Define your context type once, and every `f.query()`,
|
|
6
|
+
* `f.mutation()`, `f.action()` call automatically inherits it.
|
|
8
7
|
*
|
|
9
8
|
* @example
|
|
10
9
|
* ```typescript
|
|
@@ -18,69 +17,33 @@
|
|
|
18
17
|
*
|
|
19
18
|
* export const f = initFusion<AppContext>();
|
|
20
19
|
*
|
|
21
|
-
* // src/tools/billing.ts —
|
|
20
|
+
* // src/tools/billing.ts — clean fluent API
|
|
22
21
|
* import { f } from '../fusion';
|
|
23
|
-
* import { z } from 'zod';
|
|
24
22
|
*
|
|
25
|
-
* export const getInvoice = f.
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* },
|
|
32
|
-
* });
|
|
23
|
+
* export const getInvoice = f.query('billing.get_invoice')
|
|
24
|
+
* .describe('Get an invoice by ID')
|
|
25
|
+
* .withString('id', 'The invoice ID')
|
|
26
|
+
* .handle(async (input, ctx) => {
|
|
27
|
+
* return await ctx.db.invoices.findUnique(input.id);
|
|
28
|
+
* });
|
|
33
29
|
* ```
|
|
34
30
|
*
|
|
35
31
|
* @module
|
|
36
32
|
*/
|
|
37
|
-
import { type ZodType
|
|
33
|
+
import { type ZodType } from 'zod';
|
|
38
34
|
import { GroupedToolBuilder } from './builder/GroupedToolBuilder.js';
|
|
39
|
-
import { type ToolResponse } from './response.js';
|
|
40
|
-
import { type MiddlewareFn } from './types.js';
|
|
41
35
|
import { ToolRegistry } from './registry/ToolRegistry.js';
|
|
42
36
|
import { type Presenter } from '../presenter/Presenter.js';
|
|
43
37
|
import { type PresenterConfig } from '../presenter/definePresenter.js';
|
|
44
38
|
import { type MiddlewareDefinition } from './middleware/index.js';
|
|
45
39
|
import { type ToolConfig } from './builder/defineTool.js';
|
|
40
|
+
import { FluentPromptBuilder } from '../prompt/FluentPromptBuilder.js';
|
|
46
41
|
import { type PromptBuilder, type PromptConfig } from '../prompt/types.js';
|
|
47
|
-
import {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
}
|
|
42
|
+
import { FluentToolBuilder } from './builder/FluentToolBuilder.js';
|
|
43
|
+
import { FluentRouter } from './builder/FluentRouter.js';
|
|
44
|
+
import { ErrorBuilder } from './builder/ErrorBuilder.js';
|
|
45
|
+
import { StateSyncBuilder } from '../state-sync/StateSyncBuilder.js';
|
|
46
|
+
import { type ErrorCode } from './response.js';
|
|
84
47
|
/**
|
|
85
48
|
* The initialized Fusion instance.
|
|
86
49
|
*
|
|
@@ -92,24 +55,59 @@ export interface FusionToolConfig<TContext, TInput extends ZodObject<ZodRawShape
|
|
|
92
55
|
*/
|
|
93
56
|
export interface FusionInstance<TContext> {
|
|
94
57
|
/**
|
|
95
|
-
*
|
|
58
|
+
* Create a **read-only** query tool (readOnly: true by default).
|
|
96
59
|
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
60
|
+
* @param name - Tool name in `domain.action` format
|
|
61
|
+
* @returns A type-chaining {@link FluentToolBuilder}
|
|
99
62
|
*
|
|
100
63
|
* @example
|
|
101
64
|
* ```typescript
|
|
102
|
-
* const
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
65
|
+
* const listUsers = f.query('users.list')
|
|
66
|
+
* .describe('List users from the database')
|
|
67
|
+
* .withNumber('limit', 'Max results to return')
|
|
68
|
+
* .withOptionalEnum('status', ['active', 'inactive'], 'Filter by status')
|
|
69
|
+
* .handle(async (input, ctx) => {
|
|
70
|
+
* return ctx.db.user.findMany({ take: input.limit });
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
query(name: string): FluentToolBuilder<TContext>;
|
|
75
|
+
/**
|
|
76
|
+
* Create a **destructive** mutation tool (destructive: true by default).
|
|
77
|
+
*
|
|
78
|
+
* @param name - Tool name in `domain.action` format
|
|
79
|
+
* @returns A type-chaining {@link FluentToolBuilder}
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const deleteUser = f.mutation('users.delete')
|
|
84
|
+
* .describe('Delete a user permanently')
|
|
85
|
+
* .withString('id', 'User ID to delete')
|
|
86
|
+
* .handle(async (input, ctx) => {
|
|
87
|
+
* await ctx.db.user.delete({ where: { id: input.id } });
|
|
88
|
+
* });
|
|
110
89
|
* ```
|
|
111
90
|
*/
|
|
112
|
-
|
|
91
|
+
mutation(name: string): FluentToolBuilder<TContext>;
|
|
92
|
+
/**
|
|
93
|
+
* Create a **neutral** action tool (no defaults applied).
|
|
94
|
+
*
|
|
95
|
+
* @param name - Tool name in `domain.action` format
|
|
96
|
+
* @returns A type-chaining {@link FluentToolBuilder}
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const updateUser = f.action('users.update')
|
|
101
|
+
* .describe('Update user profile')
|
|
102
|
+
* .idempotent()
|
|
103
|
+
* .withString('id', 'User ID')
|
|
104
|
+
* .withOptionalString('name', 'New display name')
|
|
105
|
+
* .handle(async (input, ctx) => {
|
|
106
|
+
* return ctx.db.user.update({ where: { id: input.id }, data: input });
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
action(name: string): FluentToolBuilder<TContext>;
|
|
113
111
|
/**
|
|
114
112
|
* Define a Presenter with the standard object-config API.
|
|
115
113
|
*
|
|
@@ -127,18 +125,19 @@ export interface FusionInstance<TContext> {
|
|
|
127
125
|
schema: TSchema;
|
|
128
126
|
}): Presenter<TSchema['_output']>;
|
|
129
127
|
/**
|
|
130
|
-
* Define a prompt
|
|
128
|
+
* Define a prompt — fluent builder.
|
|
131
129
|
*
|
|
132
130
|
* @example
|
|
133
131
|
* ```typescript
|
|
134
|
-
* const
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
132
|
+
* const greet = f.prompt('greet')
|
|
133
|
+
* .describe('Greet a user')
|
|
134
|
+
* .withString('name', 'User name')
|
|
135
|
+
* .handler(async (ctx, { name }) => ({
|
|
136
|
+
* messages: [PromptMessage.user(`Hello ${name}!`)],
|
|
137
|
+
* }));
|
|
140
138
|
* ```
|
|
141
139
|
*/
|
|
140
|
+
prompt(name: string): FluentPromptBuilder<TContext>;
|
|
142
141
|
prompt(name: string, config: Omit<PromptConfig<TContext>, 'handler'> & {
|
|
143
142
|
handler: PromptConfig<TContext>['handler'];
|
|
144
143
|
}): PromptBuilder<TContext>;
|
|
@@ -154,28 +153,58 @@ export interface FusionInstance<TContext> {
|
|
|
154
153
|
*/
|
|
155
154
|
middleware<TDerived extends Record<string, unknown>>(derive: (ctx: TContext) => TDerived | Promise<TDerived>): MiddlewareDefinition<TContext, TDerived>;
|
|
156
155
|
/**
|
|
157
|
-
* Create a
|
|
158
|
-
* For power users who want the full `ToolConfig` API with context typing.
|
|
156
|
+
* Create a pre-typed ToolRegistry ready for registration.
|
|
159
157
|
*
|
|
160
158
|
* @example
|
|
161
159
|
* ```typescript
|
|
162
|
-
* const
|
|
163
|
-
*
|
|
164
|
-
* groups: { users: { actions: { list: { handler: listUsers } } } },
|
|
165
|
-
* });
|
|
160
|
+
* const registry = f.registry();
|
|
161
|
+
* registry.register(listUsers);
|
|
166
162
|
* ```
|
|
167
163
|
*/
|
|
168
|
-
|
|
164
|
+
registry(): ToolRegistry<TContext>;
|
|
169
165
|
/**
|
|
170
|
-
* Create a
|
|
166
|
+
* Create a router that shares prefix, middleware, and tags.
|
|
167
|
+
*
|
|
168
|
+
* @param prefix - Common prefix for all tools (e.g. `'users'`)
|
|
169
|
+
* @returns A {@link FluentRouter} for creating child tools
|
|
171
170
|
*
|
|
172
171
|
* @example
|
|
173
172
|
* ```typescript
|
|
174
|
-
* const
|
|
175
|
-
*
|
|
173
|
+
* const users = f.router('users')
|
|
174
|
+
* .describe('User management')
|
|
175
|
+
* .use(requireAuth);
|
|
176
|
+
*
|
|
177
|
+
* const listUsers = users.query('list')
|
|
178
|
+
* .withNumber('limit', 'Max results')
|
|
179
|
+
* .handle(async (input) => { ... });
|
|
176
180
|
* ```
|
|
177
181
|
*/
|
|
178
|
-
|
|
182
|
+
router(prefix: string): FluentRouter<TContext>;
|
|
183
|
+
/**
|
|
184
|
+
* Create a fluent, self-healing error builder.
|
|
185
|
+
*
|
|
186
|
+
* @param code - Canonical error code
|
|
187
|
+
* @param message - Human-readable error message
|
|
188
|
+
* @returns A chaining {@link ErrorBuilder}
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* return f.error('NOT_FOUND', `Project "${id}" not found`)
|
|
193
|
+
* .suggest('Check the list for valid IDs')
|
|
194
|
+
* .actions('projects.list');
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
error(code: ErrorCode, message: string): ErrorBuilder;
|
|
198
|
+
/**
|
|
199
|
+
* Create a fluent builder for centralized State Sync policies.
|
|
200
|
+
*/
|
|
201
|
+
stateSync(): StateSyncBuilder;
|
|
202
|
+
/**
|
|
203
|
+
* Create a tool using the low-level `defineTool()` config.
|
|
204
|
+
* For internal use and advanced scenarios only.
|
|
205
|
+
* @internal
|
|
206
|
+
*/
|
|
207
|
+
defineTool(name: string, config: ToolConfig<TContext>): GroupedToolBuilder<TContext>;
|
|
179
208
|
}
|
|
180
209
|
/**
|
|
181
210
|
* Initialize a Fusion instance with a fixed context type.
|
|
@@ -191,10 +220,13 @@ export interface FusionInstance<TContext> {
|
|
|
191
220
|
* // Single definition, typically in src/fusion.ts
|
|
192
221
|
* export const f = initFusion<AppContext>();
|
|
193
222
|
*
|
|
194
|
-
* //
|
|
195
|
-
* const
|
|
196
|
-
*
|
|
197
|
-
*
|
|
223
|
+
* // Build tools with the Fluent API
|
|
224
|
+
* const listUsers = f.query('users.list')
|
|
225
|
+
* .describe('List all users')
|
|
226
|
+
* .withOptionalNumber('limit', 'Max results (default: 50)')
|
|
227
|
+
* .handle(async (input, ctx) => {
|
|
228
|
+
* return ctx.db.users.findMany({ take: input.limit ?? 50 });
|
|
229
|
+
* });
|
|
198
230
|
* ```
|
|
199
231
|
*/
|
|
200
232
|
export declare function initFusion<TContext = void>(): FusionInstance<TContext>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFusion.d.ts","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"initFusion.d.ts","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"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"}
|
package/dist/core/initFusion.js
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* initFusion() — tRPC-Style Context Initialization
|
|
3
3
|
*
|
|
4
4
|
* Eliminates the need to pass `<AppContext>` as a generic parameter
|
|
5
|
-
* everywhere. Define your context type once, and every `f.
|
|
6
|
-
* `f.
|
|
7
|
-
* automatically inherits it.
|
|
5
|
+
* everywhere. Define your context type once, and every `f.query()`,
|
|
6
|
+
* `f.mutation()`, `f.action()` call automatically inherits it.
|
|
8
7
|
*
|
|
9
8
|
* @example
|
|
10
9
|
* ```typescript
|
|
@@ -18,25 +17,22 @@
|
|
|
18
17
|
*
|
|
19
18
|
* export const f = initFusion<AppContext>();
|
|
20
19
|
*
|
|
21
|
-
* // src/tools/billing.ts —
|
|
20
|
+
* // src/tools/billing.ts — clean fluent API
|
|
22
21
|
* import { f } from '../fusion';
|
|
23
|
-
* import { z } from 'zod';
|
|
24
22
|
*
|
|
25
|
-
* export const getInvoice = f.
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* },
|
|
32
|
-
* });
|
|
23
|
+
* export const getInvoice = f.query('billing.get_invoice')
|
|
24
|
+
* .describe('Get an invoice by ID')
|
|
25
|
+
* .withString('id', 'The invoice ID')
|
|
26
|
+
* .handle(async (input, ctx) => {
|
|
27
|
+
* return await ctx.db.invoices.findUnique(input.id);
|
|
28
|
+
* });
|
|
33
29
|
* ```
|
|
34
30
|
*
|
|
35
31
|
* @module
|
|
36
32
|
*/
|
|
37
33
|
import {} from 'zod';
|
|
38
34
|
import { GroupedToolBuilder } from './builder/GroupedToolBuilder.js';
|
|
39
|
-
import {
|
|
35
|
+
import {} from './response.js';
|
|
40
36
|
import {} from './types.js';
|
|
41
37
|
import { ToolRegistry } from './registry/ToolRegistry.js';
|
|
42
38
|
import {} from '../presenter/Presenter.js';
|
|
@@ -44,9 +40,13 @@ import { definePresenter } from '../presenter/definePresenter.js';
|
|
|
44
40
|
import { defineMiddleware } from './middleware/index.js';
|
|
45
41
|
import { defineTool } from './builder/defineTool.js';
|
|
46
42
|
import { definePrompt } from '../prompt/definePrompt.js';
|
|
43
|
+
import { FluentPromptBuilder } from '../prompt/FluentPromptBuilder.js';
|
|
47
44
|
import {} from '../prompt/types.js';
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
45
|
+
import { FluentToolBuilder, QUERY_DEFAULTS, MUTATION_DEFAULTS, ACTION_DEFAULTS, } from './builder/FluentToolBuilder.js';
|
|
46
|
+
import { FluentRouter } from './builder/FluentRouter.js';
|
|
47
|
+
import { ErrorBuilder } from './builder/ErrorBuilder.js';
|
|
48
|
+
import { StateSyncBuilder } from '../state-sync/StateSyncBuilder.js';
|
|
49
|
+
import {} from './response.js';
|
|
50
50
|
// ── Factory ──────────────────────────────────────────────
|
|
51
51
|
/**
|
|
52
52
|
* Initialize a Fusion instance with a fixed context type.
|
|
@@ -62,73 +62,63 @@ import { convertParamsToZod } from './builder/ParamDescriptors.js';
|
|
|
62
62
|
* // Single definition, typically in src/fusion.ts
|
|
63
63
|
* export const f = initFusion<AppContext>();
|
|
64
64
|
*
|
|
65
|
-
* //
|
|
66
|
-
* const
|
|
67
|
-
*
|
|
68
|
-
*
|
|
65
|
+
* // Build tools with the Fluent API
|
|
66
|
+
* const listUsers = f.query('users.list')
|
|
67
|
+
* .describe('List all users')
|
|
68
|
+
* .withOptionalNumber('limit', 'Max results (default: 50)')
|
|
69
|
+
* .handle(async (input, ctx) => {
|
|
70
|
+
* return ctx.db.users.findMany({ take: input.limit ?? 50 });
|
|
71
|
+
* });
|
|
69
72
|
* ```
|
|
70
73
|
*/
|
|
71
74
|
export function initFusion() {
|
|
72
75
|
return {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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);
|
|
76
|
+
// ── Semantic Verbs ────────────────────────────────
|
|
77
|
+
query(name) {
|
|
78
|
+
return new FluentToolBuilder(name, QUERY_DEFAULTS);
|
|
79
|
+
},
|
|
80
|
+
mutation(name) {
|
|
81
|
+
return new FluentToolBuilder(name, MUTATION_DEFAULTS);
|
|
116
82
|
},
|
|
83
|
+
action(name) {
|
|
84
|
+
return new FluentToolBuilder(name, ACTION_DEFAULTS);
|
|
85
|
+
},
|
|
86
|
+
// ── MVA Presenter ────────────────────────────────
|
|
117
87
|
presenter(config) {
|
|
118
88
|
return definePresenter(config);
|
|
119
89
|
},
|
|
90
|
+
// ── Prompts ──────────────────────────────────────
|
|
91
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
120
92
|
prompt(name, config) {
|
|
93
|
+
if (!config) {
|
|
94
|
+
return new FluentPromptBuilder(name);
|
|
95
|
+
}
|
|
121
96
|
return definePrompt(name, config);
|
|
122
97
|
},
|
|
98
|
+
// ── Middleware ───────────────────────────────────
|
|
123
99
|
middleware(derive) {
|
|
124
100
|
return defineMiddleware(derive);
|
|
125
101
|
},
|
|
126
|
-
|
|
127
|
-
return defineTool(name, config);
|
|
128
|
-
},
|
|
102
|
+
// ── Registry ─────────────────────────────────────
|
|
129
103
|
registry() {
|
|
130
104
|
return new ToolRegistry();
|
|
131
105
|
},
|
|
106
|
+
// ── Router ───────────────────────────────────────
|
|
107
|
+
router(prefix) {
|
|
108
|
+
return new FluentRouter(prefix);
|
|
109
|
+
},
|
|
110
|
+
// ── Error Builder ────────────────────────────────
|
|
111
|
+
error(code, message) {
|
|
112
|
+
return new ErrorBuilder(code, message);
|
|
113
|
+
},
|
|
114
|
+
// ── State Sync ───────────────────────────────────
|
|
115
|
+
stateSync() {
|
|
116
|
+
return new StateSyncBuilder();
|
|
117
|
+
},
|
|
118
|
+
// ── Internal / Advanced ──────────────────────────
|
|
119
|
+
defineTool(name, config) {
|
|
120
|
+
return defineTool(name, config);
|
|
121
|
+
},
|
|
132
122
|
};
|
|
133
123
|
}
|
|
134
124
|
//# sourceMappingURL=initFusion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFusion.js","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"initFusion.js","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAkD,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAqB,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAkB,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAwB,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAA6B,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAyC,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACH,iBAAiB,EACjB,cAAc,EAAE,iBAAiB,EAAE,eAAe,GACrD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAkB,MAAM,eAAe,CAAC;AAsM/C,4DAA4D;AAE5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO;QACH,qDAAqD;QAErD,KAAK,CAAC,IAAY;YACd,OAAO,IAAI,iBAAiB,CAAW,IAAI,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAED,QAAQ,CAAC,IAAY;YACjB,OAAO,IAAI,iBAAiB,CAAW,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,CAAC,IAAY;YACf,OAAO,IAAI,iBAAiB,CAAW,IAAI,EAAE,eAAe,CAAC,CAAC;QAClE,CAAC;QAED,oDAAoD;QAEpD,SAAS,CACL,MAAiE;YAEjE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,oDAAoD;QAEpD,8DAA8D;QAC9D,MAAM,CAAC,IAAY,EAAE,MAAY;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,IAAI,mBAAmB,CAAW,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,YAAY,CAAW,IAAI,EAAE,MAAe,CAAC,CAAC;QACzD,CAAC;QAED,oDAAoD;QAEpD,UAAU,CACN,MAAuD;YAEvD,OAAO,gBAAgB,CAAqB,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,oDAAoD;QAEpD,QAAQ;YACJ,OAAO,IAAI,YAAY,EAAY,CAAC;QACxC,CAAC;QAED,oDAAoD;QAEpD,MAAM,CAAC,MAAc;YACjB,OAAO,IAAI,YAAY,CAAW,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,oDAAoD;QAEpD,KAAK,CAAC,IAAe,EAAE,OAAe;YAClC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,oDAAoD;QAEpD,SAAS;YACL,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAClC,CAAC;QAED,oDAAoD;QAEpD,UAAU,CAAC,IAAY,EAAE,MAA4B;YACjD,OAAO,UAAU,CAAW,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -187,7 +187,7 @@ export declare class ToolRegistry<TContext = void> {
|
|
|
187
187
|
* @see {@link DetachFn} for the teardown function type
|
|
188
188
|
* @see {@link AttachOptions} for all options
|
|
189
189
|
*/
|
|
190
|
-
attachToServer(server: unknown, options?: AttachOptions<TContext>): DetachFn
|
|
190
|
+
attachToServer(server: unknown, options?: AttachOptions<TContext>): Promise<DetachFn>;
|
|
191
191
|
/** Check if a tool with the given name is registered. */
|
|
192
192
|
has(name: string): boolean;
|
|
193
193
|
/** Remove all registered tools. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAEH,KAAK,aAAa,EAAE,KAAK,QAAQ,EACpC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAMhF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY,CAAC,QAAQ,GAAG,IAAI;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,OAAO,CAAC,CAAe;IAE/B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAS9C;;;;;;;;;OASG;IACH,WAAW,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI;IAMvD;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,EAAE;IAQxB;;;;;;;OAOG;IACH,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,EAAE;IAIvC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,SAAS,CACX,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,YAAY,CAAC;IAsBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;
|
|
1
|
+
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAEH,KAAK,aAAa,EAAE,KAAK,QAAQ,EACpC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAMhF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY,CAAC,QAAQ,GAAG,IAAI;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,OAAO,CAAC,CAAe;IAE/B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAS9C;;;;;;;;;OASG;IACH,WAAW,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI;IAMvD;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,EAAE;IAQxB;;;;;;;OAOG;IACH,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,EAAE;IAIvC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,SAAS,CACX,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,YAAY,CAAC;IAsBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,cAAc,CAChB,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,aAAa,CAAC,QAAQ,CAAM,GACtC,OAAO,CAAC,QAAQ,CAAC;IAIpB,yDAAyD;IACzD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAE1B,mCAAmC;IACnC,KAAK,IAAI,IAAI;IAEb,kCAAkC;IAClC,IAAI,IAAI,IAAI,MAAM,CAAgC;IAElD;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAa5C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAY5C"}
|
|
@@ -229,7 +229,7 @@ export class ToolRegistry {
|
|
|
229
229
|
* @see {@link DetachFn} for the teardown function type
|
|
230
230
|
* @see {@link AttachOptions} for all options
|
|
231
231
|
*/
|
|
232
|
-
attachToServer(server, options = {}) {
|
|
232
|
+
async attachToServer(server, options = {}) {
|
|
233
233
|
return attachToServerStrategy(server, this, options);
|
|
234
234
|
}
|
|
235
235
|
/** Check if a tool with the given name is registered. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"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"}
|