@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
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool Templates — Example tools for the scaffolded project
|
|
3
|
+
*
|
|
4
|
+
* All tools use the Fluent API — `f.query()`, `f.mutation()` — with
|
|
5
|
+
* semantic verbs, `.withString()` / `.withNumber()` typed parameters,
|
|
6
|
+
* `.returns()` Presenter binding, and `.handle()` terminal step.
|
|
3
7
|
* @module
|
|
4
8
|
*/
|
|
5
9
|
/** Generate `src/tools/system/health.ts` — Health check with Presenter */
|
|
6
10
|
export function healthToolTs() {
|
|
7
11
|
return `/**
|
|
8
|
-
* System Health Tool — Full MVA Pipeline
|
|
12
|
+
* System Health Tool — Full MVA Pipeline (Fluent API)
|
|
9
13
|
*
|
|
10
14
|
* Demonstrates:
|
|
11
|
-
* - f.
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
15
|
+
* - f.query() — read-only semantic verb (auto-sets readOnlyHint)
|
|
16
|
+
* - .describe() — LLM-facing description
|
|
17
|
+
* - .returns() — Presenter (Egress Firewall + system rules + UI)
|
|
18
|
+
* - .handle(input, ctx) — fully typed handler
|
|
14
19
|
* - export default for autoDiscover()
|
|
15
20
|
*/
|
|
16
21
|
import { f } from '../../fusion.js';
|
|
17
22
|
import { SystemPresenter } from '../../presenters/SystemPresenter.js';
|
|
18
23
|
|
|
19
|
-
export default f.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
returns: SystemPresenter,
|
|
24
|
-
handler: async ({ ctx }) => {
|
|
24
|
+
export default f.query('system.health')
|
|
25
|
+
.describe('Real-time server health status')
|
|
26
|
+
.returns(SystemPresenter)
|
|
27
|
+
.handle(async (_input, ctx) => {
|
|
25
28
|
// Return raw data — the Presenter validates, strips
|
|
26
29
|
// undeclared fields, injects rules, and renders UI.
|
|
27
30
|
return {
|
|
@@ -31,36 +34,30 @@ export default f.tool({
|
|
|
31
34
|
timestamp: new Date().toISOString(),
|
|
32
35
|
tenant: ctx.tenantId,
|
|
33
36
|
};
|
|
34
|
-
}
|
|
35
|
-
});
|
|
37
|
+
});
|
|
36
38
|
`;
|
|
37
39
|
}
|
|
38
40
|
/** Generate `src/tools/system/echo.ts` — Simple echo tool */
|
|
39
41
|
export function echoToolTs() {
|
|
40
42
|
return `/**
|
|
41
|
-
* Echo Tool — Connectivity Testing
|
|
43
|
+
* Echo Tool — Connectivity Testing (Fluent API)
|
|
42
44
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
45
|
+
* Demonstrates:
|
|
46
|
+
* - f.query() with .withString() typed parameter
|
|
47
|
+
* - .handle(input, ctx) — input.message is typed as string
|
|
48
|
+
* - Implicit success() wrapping — return raw data, framework wraps it
|
|
46
49
|
*/
|
|
47
50
|
import { f } from '../../fusion.js';
|
|
48
|
-
import { success } from '@vinkius-core/mcp-fusion';
|
|
49
51
|
|
|
50
|
-
export default f.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
message: { type: 'string', description: 'Message to echo back' },
|
|
56
|
-
},
|
|
57
|
-
handler: async ({ input }) => {
|
|
58
|
-
return success({
|
|
52
|
+
export default f.query('system.echo')
|
|
53
|
+
.describe('Echo a message back (connectivity test)')
|
|
54
|
+
.withString('message', 'Message to echo back')
|
|
55
|
+
.handle(async (input) => {
|
|
56
|
+
return {
|
|
59
57
|
echo: input.message,
|
|
60
58
|
receivedAt: new Date().toISOString(),
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
});
|
|
59
|
+
};
|
|
60
|
+
});
|
|
64
61
|
`;
|
|
65
62
|
}
|
|
66
63
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cli/templates/tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cli/templates/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0EAA0E;AAC1E,MAAM,UAAU,YAAY;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BV,CAAC;AACF,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,UAAU;IACtB,OAAO;;;;;;;;;;;;;;;;;;;CAmBV,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sCAAsC;AACtC,wBAAgB,YAAY,IAAI,MAAM,CAgDrC;AAED,uCAAuC;AACvC,wBAAgB,aAAa,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sCAAsC;AACtC,wBAAgB,YAAY,IAAI,MAAM,CAgDrC;AAED,uCAAuC;AACvC,wBAAgB,aAAa,IAAI,MAAM,CAyBtC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export function prismaSchema() {
|
|
7
7
|
return `// Prisma Schema — Database-Driven MCP Server
|
|
8
8
|
//
|
|
9
|
-
// The mcp-fusion-prisma-gen generator reads annotations
|
|
9
|
+
// The @vinkius-core/mcp-fusion-prisma-gen generator reads annotations
|
|
10
10
|
// and auto-generates Presenters + ToolBuilders with:
|
|
11
11
|
// - Field-level security (/// @fusion.hide)
|
|
12
12
|
// - Tenant isolation
|
|
@@ -17,7 +17,7 @@ generator client {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
generator fusion {
|
|
20
|
-
provider = "mcp-fusion-prisma-gen"
|
|
20
|
+
provider = "@vinkius-core/mcp-fusion-prisma-gen"
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
datasource db {
|
|
@@ -55,33 +55,28 @@ model Post {
|
|
|
55
55
|
/** Generate `src/tools/db/users.ts` */
|
|
56
56
|
export function dbUsersToolTs() {
|
|
57
57
|
return `/**
|
|
58
|
-
* Database Users Tool — Prisma-Driven CRUD
|
|
58
|
+
* Database Users Tool — Prisma-Driven CRUD (Fluent API)
|
|
59
59
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
60
|
+
* Demonstrates:
|
|
61
|
+
* - f.query() with .withOptionalNumber() typed parameter
|
|
62
|
+
* - .handle(input, ctx) — input.take is typed as number | undefined
|
|
63
|
+
* - Implicit success() wrapping
|
|
63
64
|
*/
|
|
64
65
|
import { f } from '../../fusion.js';
|
|
65
|
-
import { success } from '@vinkius-core/mcp-fusion';
|
|
66
66
|
|
|
67
|
-
export default f.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
input: {
|
|
72
|
-
take: { type: 'number', min: 1, max: 50, optional: true, description: 'Max results' },
|
|
73
|
-
},
|
|
74
|
-
handler: async ({ input, ctx }) => {
|
|
67
|
+
export default f.query('db.list_users')
|
|
68
|
+
.describe('List users from the database')
|
|
69
|
+
.withOptionalNumber('take', 'Max results (1-50)')
|
|
70
|
+
.handle(async (input, ctx) => {
|
|
75
71
|
// TODO: Replace with your Prisma client
|
|
76
72
|
// const users = await ctx.db.user.findMany({ take: input.take ?? 10 });
|
|
77
73
|
// return users;
|
|
78
74
|
|
|
79
|
-
return
|
|
75
|
+
return {
|
|
80
76
|
hint: 'Connect your Prisma client in src/context.ts to enable database queries.',
|
|
81
77
|
example: 'const users = await ctx.db.user.findMany({ take: 10 })',
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
});
|
|
78
|
+
};
|
|
79
|
+
});
|
|
85
80
|
`;
|
|
86
81
|
}
|
|
87
82
|
//# sourceMappingURL=database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sCAAsC;AACtC,MAAM,UAAU,YAAY;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CV,CAAC;AACF,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa;IACzB,OAAO
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sCAAsC;AACtC,MAAM,UAAU,YAAY;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CV,CAAC;AACF,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa;IACzB,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsC1D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsC1D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,CA6B1C"}
|
|
@@ -51,11 +51,10 @@ export function oauthMiddlewareTs() {
|
|
|
51
51
|
* \`\`\`ts
|
|
52
52
|
* import { withAuth } from '../middleware/auth.js';
|
|
53
53
|
*
|
|
54
|
-
* export default f.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* });
|
|
54
|
+
* export default f.query('projects.list')
|
|
55
|
+
* .describe('List all projects')
|
|
56
|
+
* .use(withAuth)
|
|
57
|
+
* .handle(async (input, ctx) => { /* authenticated */ });
|
|
59
58
|
* \`\`\`
|
|
60
59
|
*/
|
|
61
60
|
import { requireAuth } from '@vinkius-core/mcp-fusion-oauth';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,MAAqB;IAC9C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA4BgB,MAAM,CAAC,IAAI;uBACf,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;;;;;;CAOlE,CAAC;AACF,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB;IAC7B,OAAO
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,MAAqB;IAC9C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA4BgB,MAAM,CAAC,IAAI;uBACf,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;;;;;;CAOlE,CAAC;AACF,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BV,CAAC;AACF,CAAC"}
|
|
@@ -3,7 +3,7 @@ export function openapiYaml(config) {
|
|
|
3
3
|
return `# OpenAPI 3.0 Specification — Sample
|
|
4
4
|
#
|
|
5
5
|
# Replace this with your actual API spec, then run:
|
|
6
|
-
# npx mcp-fusion-openapi-gen ./openapi.yaml --outDir ./src/generated
|
|
6
|
+
# npx @vinkius-core/mcp-fusion-openapi-gen ./openapi.yaml --outDir ./src/generated
|
|
7
7
|
#
|
|
8
8
|
# The generator creates Presenters, Tools, Registry, and server
|
|
9
9
|
# bootstrap — all configurable via YAML annotations.
|
|
@@ -84,7 +84,7 @@ This project is configured for the **Legacy API Proxy** ingestion vector.
|
|
|
84
84
|
|
|
85
85
|
2. Generate the MCP server from the spec:
|
|
86
86
|
\`\`\`bash
|
|
87
|
-
npx mcp-fusion-openapi-gen ./openapi.yaml --outDir ./src/generated
|
|
87
|
+
npx @vinkius-core/mcp-fusion-openapi-gen ./openapi.yaml --outDir ./src/generated
|
|
88
88
|
\`\`\`
|
|
89
89
|
|
|
90
90
|
3. The generator creates:
|
|
@@ -15,7 +15,7 @@ export function n8nConnectorTs() {
|
|
|
15
15
|
' *',
|
|
16
16
|
' * Configure N8N_BASE_URL and N8N_API_KEY in your .env file.',
|
|
17
17
|
' */',
|
|
18
|
-
"import { N8nConnector } from 'mcp-fusion-n8n';",
|
|
18
|
+
"import { N8nConnector } from '@vinkius-core/mcp-fusion-n8n';",
|
|
19
19
|
"import type { ToolRegistry } from '@vinkius-core/mcp-fusion';",
|
|
20
20
|
'',
|
|
21
21
|
'export async function discoverWorkflows<TContext>(',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qDAAqD;AACrD,MAAM,UAAU,cAAc;IAC1B,OAAO;QACH,KAAK;QACL,+CAA+C;QAC/C,IAAI;QACJ,4DAA4D;QAC5D,0DAA0D;QAC1D,qDAAqD;QACrD,kCAAkC;QAClC,IAAI;QACJ,8DAA8D;QAC9D,KAAK;QACL,
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../../src/cli/templates/vectors/workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qDAAqD;AACrD,MAAM,UAAU,cAAc;IAC1B,OAAO;QACH,KAAK;QACL,+CAA+C;QAC/C,IAAI;QACJ,4DAA4D;QAC5D,0DAA0D;QAC1D,qDAAqD;QACrD,kCAAkC;QAClC,IAAI;QACJ,8DAA8D;QAC9D,KAAK;QACL,8DAA8D;QAC9D,+DAA+D;QAC/D,EAAE;QACF,oDAAoD;QACpD,uCAAuC;QACvC,sBAAsB;QACtB,kDAAkD;QAClD,gDAAgD;QAChD,EAAE;QACF,gCAAgC;QAChC,2FAA2F;QAC3F,mBAAmB;QACnB,OAAO;QACP,EAAE;QACF,0CAA0C;QAC1C,kBAAkB;QAClB,iBAAiB;QACjB,SAAS;QACT,EAAE;QACF,+CAA+C;QAC/C,EAAE;QACF,iCAAiC;QACjC,kCAAkC;QAClC,OAAO;QACP,EAAE;QACF,+EAA+E;QAC/E,0BAA0B;QAC1B,GAAG;QACH,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -169,7 +169,61 @@ export interface FusionClient<TRouter extends RouterMap> {
|
|
|
169
169
|
}, options?: {
|
|
170
170
|
sequential?: boolean | undefined;
|
|
171
171
|
} | undefined): Promise<ToolResponse[]>;
|
|
172
|
+
/**
|
|
173
|
+
* Fluent proxy for calling tools with dot-navigation.
|
|
174
|
+
*
|
|
175
|
+
* Builds the action path from chained property accesses,
|
|
176
|
+
* then executes when invoked as a function.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* // Equivalent to: client.execute('projects.create', { name: 'V2' })
|
|
181
|
+
* await client.proxy.projects.create({ name: 'V2' });
|
|
182
|
+
*
|
|
183
|
+
* // Also works for deeper paths:
|
|
184
|
+
* await client.proxy.platform.users.list({ limit: 10 });
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
readonly proxy: FluentProxy<TRouter>;
|
|
172
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Splits a dotted key `'a.b.c'` into head `'a'` and tail `'b.c'`.
|
|
191
|
+
* @internal
|
|
192
|
+
*/
|
|
193
|
+
type SplitKey<K extends string> = K extends `${infer Head}.${infer Tail}` ? [Head, Tail] : [K, never];
|
|
194
|
+
/**
|
|
195
|
+
* Collects all first segments from the router keys.
|
|
196
|
+
* @internal
|
|
197
|
+
*/
|
|
198
|
+
type FirstSegments<TRouter extends RouterMap> = {
|
|
199
|
+
[K in keyof TRouter & string]: SplitKey<K>[0];
|
|
200
|
+
}[keyof TRouter & string];
|
|
201
|
+
/**
|
|
202
|
+
* Given a segment prefix, collects remaining tails and their arg types.
|
|
203
|
+
* @internal
|
|
204
|
+
*/
|
|
205
|
+
type SubRouter<TRouter extends RouterMap, Prefix extends string> = {
|
|
206
|
+
[K in keyof TRouter & string as K extends `${Prefix}.${infer Rest}` ? Rest : never]: TRouter[K];
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Recursive proxy node type.
|
|
210
|
+
*
|
|
211
|
+
* - If the key resolves to a leaf action, it becomes callable.
|
|
212
|
+
* - If it has further segments, it exposes another level of navigation.
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
type ProxyNode<TRouter extends RouterMap> = {
|
|
216
|
+
[Seg in FirstSegments<TRouter>]: (Seg extends keyof TRouter ? ((args: TRouter[Seg]) => Promise<ToolResponse>) : unknown) & (string extends FirstSegments<SubRouter<TRouter, Seg>> ? unknown : FluentProxy<SubRouter<TRouter, Seg>>);
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* Top-level fluent proxy type.
|
|
220
|
+
*
|
|
221
|
+
* Provides dot-navigation for calling tools:
|
|
222
|
+
* ```typescript
|
|
223
|
+
* await client.proxy.projects.create({ name: 'V2' });
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export type FluentProxy<TRouter extends RouterMap> = ProxyNode<TRouter>;
|
|
173
227
|
/**
|
|
174
228
|
* Create a type-safe MCP client.
|
|
175
229
|
*
|
|
@@ -215,4 +269,5 @@ export interface FusionClient<TRouter extends RouterMap> {
|
|
|
215
269
|
* ```
|
|
216
270
|
*/
|
|
217
271
|
export declare function createFusionClient<TRouter extends RouterMap>(transport: FusionTransport, options?: FusionClientOptions): FusionClient<TRouter>;
|
|
272
|
+
export {};
|
|
218
273
|
//# sourceMappingURL=FusionClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FusionClient.d.ts","sourceRoot":"","sources":["../../src/client/FusionClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAChF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAMhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,KAC7E,OAAO,CAAC,YAAY,CAAC,CAAC;AAM3B;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBAGvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,YAAY,EACjB,OAAO,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC;CAUR;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEhC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,SAAS;IACnD;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,SAAS,MAAM,OAAO,GAAG,MAAM,EAC1C,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GACvB,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,QAAQ,SAAS,aAAa,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,EAC/D,KAAK,EAAE;SAAG,CAAC,IAAI,MAAM,QAAQ,GAAG;YAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,CAAA;SAAE;KAAE,EACrG,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,GAC3D,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"FusionClient.d.ts","sourceRoot":"","sources":["../../src/client/FusionClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -233,6 +233,36 @@ export function createFusionClient(transport, options) {
|
|
|
233
233
|
}
|
|
234
234
|
return Promise.all(items.map(call => executeInternal(call.action, call.args)));
|
|
235
235
|
},
|
|
236
|
+
proxy: buildFluentProxy(executeInternal),
|
|
236
237
|
};
|
|
237
238
|
}
|
|
239
|
+
// ============================================================================
|
|
240
|
+
// Fluent Proxy Builder (Internal)
|
|
241
|
+
// ============================================================================
|
|
242
|
+
/**
|
|
243
|
+
* Creates a recursive Proxy that accumulates path segments
|
|
244
|
+
* and executes when invoked as a function.
|
|
245
|
+
*
|
|
246
|
+
* ```
|
|
247
|
+
* proxy.projects.create({ name: 'V2' })
|
|
248
|
+
* // ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^
|
|
249
|
+
* // seg[0] seg[1] args → execute('projects.create', args)
|
|
250
|
+
* ```
|
|
251
|
+
*
|
|
252
|
+
* @internal
|
|
253
|
+
*/
|
|
254
|
+
function buildFluentProxy(execute, segments = []) {
|
|
255
|
+
return new Proxy(function () { }, {
|
|
256
|
+
get(_target, prop) {
|
|
257
|
+
if (typeof prop !== 'string' || prop === 'then')
|
|
258
|
+
return undefined;
|
|
259
|
+
return buildFluentProxy(execute, [...segments, prop]);
|
|
260
|
+
},
|
|
261
|
+
apply(_target, _thisArg, argsList) {
|
|
262
|
+
const action = segments.join('.');
|
|
263
|
+
const args = (argsList[0] ?? {});
|
|
264
|
+
return execute(action, args);
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
}
|
|
238
268
|
//# sourceMappingURL=FusionClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FusionClient.js","sourceRoot":"","sources":["../../src/client/FusionClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAqB,MAAM,qBAAqB,CAAC;AAmExD,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,iEAAiE;IACxD,IAAI,CAAS;IACtB,qDAAqD;IAC5C,QAAQ,CAAsB;IACvC,6DAA6D;IACpD,gBAAgB,CAAoB;IAC7C,oDAAoD;IAC3C,QAAQ,CAAS;IAC1B,8CAA8C;IACrC,GAAG,CAAe;IAE3B,YACI,OAAe,EACf,IAAY,EACZ,GAAiB,EACjB,OAIC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC;IACjD,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"FusionClient.js","sourceRoot":"","sources":["../../src/client/FusionClient.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Client Bounded Context — Barrel Export */
|
|
2
2
|
export { createFusionClient, FusionClientError } from './FusionClient.js';
|
|
3
|
-
export type { FusionClient, FusionTransport, RouterMap, ClientMiddleware, FusionClientOptions, } from './FusionClient.js';
|
|
3
|
+
export type { FusionClient, FusionTransport, RouterMap, FluentProxy, ClientMiddleware, FusionClientOptions, } from './FusionClient.js';
|
|
4
4
|
export { createTypedRegistry } from './createTypedRegistry.js';
|
|
5
5
|
export type { InferRouter, TypedToolRegistry } from './InferRouter.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EACR,YAAY,EACZ,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EACR,YAAY,EACZ,eAAe,EACf,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAS1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -11,23 +11,14 @@
|
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
13
|
* createTool<AppContext>('platform')
|
|
14
|
-
* .group('users', 'User management', g =>
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* name: 'ban',
|
|
23
|
-
* destructive: true,
|
|
24
|
-
* schema: z.object({ user_id: z.string() }),
|
|
25
|
-
* handler: async (ctx, args) => {
|
|
26
|
-
* await ctx.db.users.ban(args.user_id);
|
|
27
|
-
* return success('User banned');
|
|
28
|
-
* },
|
|
29
|
-
* });
|
|
30
|
-
* });
|
|
14
|
+
* .group('users', 'User management', g => g
|
|
15
|
+
* .use(requireAdmin)
|
|
16
|
+
* .query('list', async (ctx) => success(await ctx.db.users.findMany()))
|
|
17
|
+
* .mutation('ban', async (ctx, args) => {
|
|
18
|
+
* await ctx.db.users.ban(args.user_id);
|
|
19
|
+
* return success('User banned');
|
|
20
|
+
* })
|
|
21
|
+
* );
|
|
31
22
|
* ```
|
|
32
23
|
*
|
|
33
24
|
* @see {@link GroupedToolBuilder.group} for creating groups
|
|
@@ -47,9 +38,9 @@ import { type ToolResponse, type InternalAction, type MiddlewareFn, type ActionC
|
|
|
47
38
|
*
|
|
48
39
|
* @example
|
|
49
40
|
* ```typescript
|
|
50
|
-
* const configure: GroupConfigurator<AppContext, { workspace_id: string }> = (g) =>
|
|
51
|
-
*
|
|
52
|
-
*
|
|
41
|
+
* const configure: GroupConfigurator<AppContext, { workspace_id: string }> = (g) => g
|
|
42
|
+
* .query('list', listHandler)
|
|
43
|
+
* .mutation('delete', deleteHandler);
|
|
53
44
|
*
|
|
54
45
|
* builder.group('users', 'User management', configure);
|
|
55
46
|
* ```
|
|
@@ -69,6 +60,11 @@ export type GroupConfigurator<TContext, TCommon extends Record<string, unknown>>
|
|
|
69
60
|
* @internal
|
|
70
61
|
*/
|
|
71
62
|
export declare function mapConfigToActionFields<TContext>(config: ActionConfig<TContext>, omitCommonFields: string[] | undefined): Pick<InternalAction<TContext>, 'actionName' | 'description' | 'schema' | 'destructive' | 'idempotent' | 'readOnly' | 'handler' | 'omitCommonFields' | 'returns'>;
|
|
63
|
+
/**
|
|
64
|
+
* Handler function type for semantic verb shortcuts.
|
|
65
|
+
* @typeParam TContext - Application context type
|
|
66
|
+
*/
|
|
67
|
+
type ActionHandler<TContext> = (ctx: TContext, args: Record<string, unknown>) => Promise<ToolResponse>;
|
|
72
68
|
export declare class ActionGroupBuilder<TContext, TCommon extends Record<string, unknown> = Record<string, never>> {
|
|
73
69
|
/** @internal */
|
|
74
70
|
readonly _actions: InternalAction<TContext>[];
|
|
@@ -88,10 +84,11 @@ export declare class ActionGroupBuilder<TContext, TCommon extends Record<string,
|
|
|
88
84
|
*
|
|
89
85
|
* @example
|
|
90
86
|
* ```typescript
|
|
91
|
-
* builder.group('admin', 'Admin operations', g =>
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
87
|
+
* builder.group('admin', 'Admin operations', (g) => g
|
|
88
|
+
* .use(requireAdmin)
|
|
89
|
+
* .query('list', listHandler)
|
|
90
|
+
* .mutation('reset', resetHandler)
|
|
91
|
+
* );
|
|
95
92
|
* ```
|
|
96
93
|
*
|
|
97
94
|
* @see {@link MiddlewareFn} for the middleware signature
|
|
@@ -110,42 +107,82 @@ export declare class ActionGroupBuilder<TContext, TCommon extends Record<string,
|
|
|
110
107
|
*
|
|
111
108
|
* @example
|
|
112
109
|
* ```typescript
|
|
113
|
-
* builder.group('profile', 'User profile', g =>
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
110
|
+
* builder.group('profile', 'User profile', (g) => g
|
|
111
|
+
* .omitCommon('workspace_id')
|
|
112
|
+
* .query('me', meHandler)
|
|
113
|
+
* );
|
|
117
114
|
* ```
|
|
118
115
|
*/
|
|
119
116
|
omitCommon(...fields: string[]): this;
|
|
117
|
+
/**
|
|
118
|
+
* Register a **read-only** action (readOnly: true).
|
|
119
|
+
*
|
|
120
|
+
* Semantic shortcut — eliminates the need for config objects.
|
|
121
|
+
* The action name is automatically prefixed with the group name
|
|
122
|
+
* (e.g., `"list"` in group `"users"` → `"users.list"`).
|
|
123
|
+
*
|
|
124
|
+
* @param name - Action name (must not contain dots)
|
|
125
|
+
* @param handler - Handler function
|
|
126
|
+
* @returns `this` for chaining
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* builder.group('users', 'User management', (g) => g
|
|
131
|
+
* .query('list', async (ctx) => success(await ctx.db.users.findMany()))
|
|
132
|
+
* .query('get', async (ctx, args) => success(await ctx.db.users.find(args.id)))
|
|
133
|
+
* );
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
query(name: string, handler: ActionHandler<TContext>): this;
|
|
137
|
+
/**
|
|
138
|
+
* Register a **destructive** action (destructive: true).
|
|
139
|
+
*
|
|
140
|
+
* Semantic shortcut — eliminates the need for config objects.
|
|
141
|
+
* Signals to the LLM that this action has irreversible side effects.
|
|
142
|
+
*
|
|
143
|
+
* @param name - Action name (must not contain dots)
|
|
144
|
+
* @param handler - Handler function
|
|
145
|
+
* @returns `this` for chaining
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* builder.group('users', 'User management', (g) => g
|
|
150
|
+
* .mutation('ban', async (ctx, args) => {
|
|
151
|
+
* await ctx.db.users.ban(args.user_id);
|
|
152
|
+
* return success('User banned');
|
|
153
|
+
* })
|
|
154
|
+
* );
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
mutation(name: string, handler: ActionHandler<TContext>): this;
|
|
120
158
|
/**
|
|
121
159
|
* Register an action within this group.
|
|
122
160
|
*
|
|
161
|
+
* **As a 2-arg shortcut** `action(name, handler)`: registers a standard
|
|
162
|
+
* action (neither read-only nor destructive). This completes the
|
|
163
|
+
* semantic verb trio alongside `.query()` and `.mutation()`.
|
|
164
|
+
*
|
|
165
|
+
* **As a config object** `action({ name, schema, ... })`: full control
|
|
166
|
+
* over all action properties (schema, description, omitCommon, etc.).
|
|
167
|
+
*
|
|
123
168
|
* The action key is automatically prefixed with the group name
|
|
124
169
|
* (e.g., action `"create"` in group `"users"` becomes `"users.create"`).
|
|
125
170
|
*
|
|
126
|
-
* @param config - Action configuration
|
|
171
|
+
* @param config - Action configuration OR action name (string)
|
|
172
|
+
* @param handler - Handler function (only when first arg is a string)
|
|
127
173
|
* @returns `this` for chaining
|
|
128
174
|
*
|
|
129
175
|
* @example
|
|
130
176
|
* ```typescript
|
|
131
|
-
* builder.group('
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* schema: z.object({
|
|
137
|
-
* invoice_id: z.string(),
|
|
138
|
-
* amount: z.number().positive(),
|
|
139
|
-
* }),
|
|
140
|
-
* handler: async (ctx, args) => {
|
|
141
|
-
* await ctx.billing.refund(args.invoice_id, args.amount);
|
|
142
|
-
* return success('Refund issued');
|
|
143
|
-
* },
|
|
144
|
-
* });
|
|
145
|
-
* });
|
|
146
|
-
* // Discriminator value: "billing.refund"
|
|
177
|
+
* builder.group('users', 'User management', (g) => g
|
|
178
|
+
* .query('list', listHandler)
|
|
179
|
+
* .action('invite', inviteHandler)
|
|
180
|
+
* .mutation('ban', banHandler)
|
|
181
|
+
* );
|
|
147
182
|
* ```
|
|
148
183
|
*
|
|
184
|
+
* @see {@link ActionGroupBuilder.query} — read-only actions
|
|
185
|
+
* @see {@link ActionGroupBuilder.mutation} — destructive actions
|
|
149
186
|
* @see {@link ActionConfig} for all configuration options
|
|
150
187
|
*/
|
|
151
188
|
action<TSchema extends ZodObject<ZodRawShape>, TOmit extends keyof TCommon = never>(config: {
|
|
@@ -158,7 +195,10 @@ export declare class ActionGroupBuilder<TContext, TCommon extends Record<string,
|
|
|
158
195
|
omitCommon?: TOmit[];
|
|
159
196
|
handler: (ctx: TContext, args: TSchema["_output"] & Omit<TCommon, TOmit>) => Promise<ToolResponse>;
|
|
160
197
|
}): this;
|
|
161
|
-
/** Register
|
|
198
|
+
/** Register a standard action (2-arg shorthand: neither readOnly nor destructive) */
|
|
199
|
+
action(name: string, handler: ActionHandler<TContext>): this;
|
|
200
|
+
/** Register an action within this group (config object) */
|
|
162
201
|
action(config: ActionConfig<TContext>): this;
|
|
163
202
|
}
|
|
203
|
+
export {};
|
|
164
204
|
//# sourceMappingURL=ActionGroupBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionGroupBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/builder/ActionGroupBuilder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ActionGroupBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/builder/ActionGroupBuilder.ts"],"names":[],"mappings":"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"}
|