@vinkius-core/mcp-fusion 2.6.0 → 2.8.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 +101 -0
- package/dist/cli/fusion.d.ts.map +1 -0
- package/dist/cli/fusion.js +333 -0
- package/dist/cli/fusion.js.map +1 -0
- package/dist/client/FusionClient.d.ts +122 -1
- package/dist/client/FusionClient.d.ts.map +1 -1
- package/dist/client/FusionClient.js +173 -11
- package/dist/client/FusionClient.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/core/StandardSchema.d.ts +178 -0
- package/dist/core/StandardSchema.d.ts.map +1 -0
- package/dist/core/StandardSchema.js +166 -0
- package/dist/core/StandardSchema.js.map +1 -0
- package/dist/core/createGroup.d.ts +140 -0
- package/dist/core/createGroup.d.ts.map +1 -0
- package/dist/core/createGroup.js +133 -0
- package/dist/core/createGroup.js.map +1 -0
- package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -1
- package/dist/core/execution/ExecutionPipeline.js +6 -2
- package/dist/core/execution/ExecutionPipeline.js.map +1 -1
- package/dist/core/index.d.ts +7 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/initFusion.d.ts +201 -0
- package/dist/core/initFusion.d.ts.map +1 -0
- package/dist/core/initFusion.js +134 -0
- package/dist/core/initFusion.js.map +1 -0
- package/dist/core/response.d.ts +49 -2
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +27 -5
- package/dist/core/response.js.map +1 -1
- package/dist/index.d.ts +57 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/introspection/BehaviorDigest.d.ts +112 -0
- package/dist/introspection/BehaviorDigest.d.ts.map +1 -0
- package/dist/introspection/BehaviorDigest.js +146 -0
- package/dist/introspection/BehaviorDigest.js.map +1 -0
- package/dist/introspection/CapabilityLockfile.d.ts +259 -0
- package/dist/introspection/CapabilityLockfile.d.ts.map +1 -0
- package/dist/introspection/CapabilityLockfile.js +391 -0
- package/dist/introspection/CapabilityLockfile.js.map +1 -0
- package/dist/introspection/ContractAwareSelfHealing.d.ts +90 -0
- package/dist/introspection/ContractAwareSelfHealing.d.ts.map +1 -0
- package/dist/introspection/ContractAwareSelfHealing.js +132 -0
- package/dist/introspection/ContractAwareSelfHealing.js.map +1 -0
- package/dist/introspection/ContractDiff.d.ts +91 -0
- package/dist/introspection/ContractDiff.d.ts.map +1 -0
- package/dist/introspection/ContractDiff.js +466 -0
- package/dist/introspection/ContractDiff.js.map +1 -0
- package/dist/introspection/CryptoAttestation.d.ts +143 -0
- package/dist/introspection/CryptoAttestation.d.ts.map +1 -0
- package/dist/introspection/CryptoAttestation.js +194 -0
- package/dist/introspection/CryptoAttestation.js.map +1 -0
- package/dist/introspection/EntitlementScanner.d.ts +124 -0
- package/dist/introspection/EntitlementScanner.d.ts.map +1 -0
- package/dist/introspection/EntitlementScanner.js +244 -0
- package/dist/introspection/EntitlementScanner.js.map +1 -0
- package/dist/introspection/GovernanceObserver.d.ts +88 -0
- package/dist/introspection/GovernanceObserver.d.ts.map +1 -0
- package/dist/introspection/GovernanceObserver.js +132 -0
- package/dist/introspection/GovernanceObserver.js.map +1 -0
- package/dist/introspection/SemanticProbe.d.ts +207 -0
- package/dist/introspection/SemanticProbe.d.ts.map +1 -0
- package/dist/introspection/SemanticProbe.js +255 -0
- package/dist/introspection/SemanticProbe.js.map +1 -0
- package/dist/introspection/TokenEconomics.d.ts +210 -0
- package/dist/introspection/TokenEconomics.d.ts.map +1 -0
- package/dist/introspection/TokenEconomics.js +286 -0
- package/dist/introspection/TokenEconomics.js.map +1 -0
- package/dist/introspection/ToolContract.d.ts +159 -0
- package/dist/introspection/ToolContract.d.ts.map +1 -0
- package/dist/introspection/ToolContract.js +191 -0
- package/dist/introspection/ToolContract.js.map +1 -0
- package/dist/introspection/canonicalize.d.ts +20 -0
- package/dist/introspection/canonicalize.d.ts.map +1 -0
- package/dist/introspection/canonicalize.js +51 -0
- package/dist/introspection/canonicalize.js.map +1 -0
- package/dist/introspection/index.d.ts +20 -0
- package/dist/introspection/index.d.ts.map +1 -1
- package/dist/introspection/index.js +20 -0
- package/dist/introspection/index.js.map +1 -1
- package/dist/observability/DebugObserver.d.ts +26 -1
- package/dist/observability/DebugObserver.d.ts.map +1 -1
- package/dist/observability/DebugObserver.js +8 -1
- package/dist/observability/DebugObserver.js.map +1 -1
- package/dist/observability/index.d.ts +1 -1
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/presenter/ZodDescriptionExtractor.d.ts +54 -0
- package/dist/presenter/ZodDescriptionExtractor.d.ts.map +1 -0
- package/dist/presenter/ZodDescriptionExtractor.js +131 -0
- package/dist/presenter/ZodDescriptionExtractor.js.map +1 -0
- package/dist/presenter/definePresenter.d.ts +172 -0
- package/dist/presenter/definePresenter.d.ts.map +1 -0
- package/dist/presenter/definePresenter.js +96 -0
- package/dist/presenter/definePresenter.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 +4 -0
- package/dist/presenter/index.js.map +1 -1
- package/dist/server/DevServer.d.ts +96 -0
- package/dist/server/DevServer.d.ts.map +1 -0
- package/dist/server/DevServer.js +187 -0
- package/dist/server/DevServer.js.map +1 -0
- package/dist/server/ServerAttachment.d.ts +41 -0
- package/dist/server/ServerAttachment.d.ts.map +1 -1
- package/dist/server/ServerAttachment.js +25 -1
- package/dist/server/ServerAttachment.js.map +1 -1
- package/dist/server/autoDiscover.d.ts +63 -0
- package/dist/server/autoDiscover.d.ts.map +1 -0
- package/dist/server/autoDiscover.js +157 -0
- package/dist/server/autoDiscover.js.map +1 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -0
- package/dist/server/index.js.map +1 -1
- package/dist/state-sync/PolicyValidator.d.ts +36 -0
- package/dist/state-sync/PolicyValidator.d.ts.map +1 -1
- package/dist/state-sync/PolicyValidator.js +35 -0
- package/dist/state-sync/PolicyValidator.js.map +1 -1
- package/dist/state-sync/ResponseDecorator.d.ts.map +1 -1
- package/dist/state-sync/ResponseDecorator.js +2 -1
- package/dist/state-sync/ResponseDecorator.js.map +1 -1
- package/dist/state-sync/StateSyncLayer.d.ts +5 -4
- package/dist/state-sync/StateSyncLayer.d.ts.map +1 -1
- package/dist/state-sync/StateSyncLayer.js +35 -4
- package/dist/state-sync/StateSyncLayer.js.map +1 -1
- package/dist/state-sync/index.d.ts +3 -1
- 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/dist/state-sync/types.d.ts +62 -0
- package/dist/state-sync/types.d.ts.map +1 -1
- package/package.json +45 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* initFusion() — tRPC-Style Context Initialization
|
|
3
|
+
*
|
|
4
|
+
* Eliminates the need to pass `<AppContext>` as a generic parameter
|
|
5
|
+
* everywhere. Define your context type once, and every `f.tool()`,
|
|
6
|
+
* `f.presenter()`, `f.prompt()`, and `f.middleware()` call
|
|
7
|
+
* automatically inherits it.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // src/fusion.ts — defined once in the project
|
|
12
|
+
* import { initFusion } from '@vinkius-core/mcp-fusion';
|
|
13
|
+
*
|
|
14
|
+
* interface AppContext {
|
|
15
|
+
* db: PrismaClient;
|
|
16
|
+
* user: { id: string; role: string };
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* export const f = initFusion<AppContext>();
|
|
20
|
+
*
|
|
21
|
+
* // src/tools/billing.ts — daily usage, super clean
|
|
22
|
+
* import { f } from '../fusion';
|
|
23
|
+
* import { z } from 'zod';
|
|
24
|
+
*
|
|
25
|
+
* export const getInvoice = f.tool({
|
|
26
|
+
* name: 'billing.get_invoice',
|
|
27
|
+
* input: z.object({ id: z.string() }),
|
|
28
|
+
* handler: async ({ input, ctx }) => {
|
|
29
|
+
* // ctx is fully typed as AppContext!
|
|
30
|
+
* return await ctx.db.invoices.findUnique(input.id);
|
|
31
|
+
* },
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @module
|
|
36
|
+
*/
|
|
37
|
+
import {} from 'zod';
|
|
38
|
+
import { GroupedToolBuilder } from './builder/GroupedToolBuilder.js';
|
|
39
|
+
import { success } from './response.js';
|
|
40
|
+
import {} from './types.js';
|
|
41
|
+
import { ToolRegistry } from './registry/ToolRegistry.js';
|
|
42
|
+
import {} from '../presenter/Presenter.js';
|
|
43
|
+
import { definePresenter } from '../presenter/definePresenter.js';
|
|
44
|
+
import { defineMiddleware } from './middleware/index.js';
|
|
45
|
+
import { defineTool } from './builder/defineTool.js';
|
|
46
|
+
import { definePrompt } from '../prompt/definePrompt.js';
|
|
47
|
+
import {} from '../prompt/types.js';
|
|
48
|
+
import { isZodSchema } from './schema/SchemaUtils.js';
|
|
49
|
+
import { convertParamsToZod } from './builder/ParamDescriptors.js';
|
|
50
|
+
// ── Factory ──────────────────────────────────────────────
|
|
51
|
+
/**
|
|
52
|
+
* Initialize a Fusion instance with a fixed context type.
|
|
53
|
+
*
|
|
54
|
+
* Call once per project. All factory methods on the returned instance
|
|
55
|
+
* automatically inherit the context type — zero generic repetition.
|
|
56
|
+
*
|
|
57
|
+
* @typeParam TContext - The application-level context type
|
|
58
|
+
* @returns A {@link FusionInstance} with context-typed factories
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* // Single definition, typically in src/fusion.ts
|
|
63
|
+
* export const f = initFusion<AppContext>();
|
|
64
|
+
*
|
|
65
|
+
* // Usage anywhere in the project
|
|
66
|
+
* const tool = f.tool({ name: 'tasks.list', handler: ... });
|
|
67
|
+
* const presenter = f.presenter({ name: 'Task', schema: taskSchema });
|
|
68
|
+
* const registry = f.registry();
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export function initFusion() {
|
|
72
|
+
return {
|
|
73
|
+
tool(config) {
|
|
74
|
+
// Parse the tool name into group + action
|
|
75
|
+
// Convention: 'domain.action' → tool named 'domain' with single action 'action'
|
|
76
|
+
const dotIndex = config.name.indexOf('.');
|
|
77
|
+
const toolName = dotIndex > 0 ? config.name.slice(0, dotIndex) : config.name;
|
|
78
|
+
const actionName = dotIndex > 0 ? config.name.slice(dotIndex + 1) : 'default';
|
|
79
|
+
// Resolve input schema
|
|
80
|
+
let schema;
|
|
81
|
+
if (config.input) {
|
|
82
|
+
schema = isZodSchema(config.input)
|
|
83
|
+
? config.input
|
|
84
|
+
: convertParamsToZod(config.input);
|
|
85
|
+
}
|
|
86
|
+
// Wrap handler: { input, ctx } → (ctx, args)
|
|
87
|
+
const wrappedHandler = async (ctx, args) => {
|
|
88
|
+
const result = await config.handler({ input: args, ctx });
|
|
89
|
+
// Auto-wrap non-ToolResponse results
|
|
90
|
+
if (typeof result === 'object' &&
|
|
91
|
+
result !== null &&
|
|
92
|
+
'content' in result &&
|
|
93
|
+
Array.isArray(result.content)) {
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
return success(result);
|
|
97
|
+
};
|
|
98
|
+
// Build via defineTool for consistency
|
|
99
|
+
const toolConfig = {
|
|
100
|
+
...(config.description ? { description: config.description } : {}),
|
|
101
|
+
...(config.tags && config.tags.length > 0 ? { tags: config.tags } : {}),
|
|
102
|
+
...(config.annotations ? { annotations: config.annotations } : {}),
|
|
103
|
+
...(config.middleware ? { middleware: config.middleware } : {}),
|
|
104
|
+
actions: {
|
|
105
|
+
[actionName]: {
|
|
106
|
+
handler: wrappedHandler,
|
|
107
|
+
...(schema ? { params: schema } : {}),
|
|
108
|
+
...(config.readOnly !== undefined ? { readOnly: config.readOnly } : {}),
|
|
109
|
+
...(config.destructive !== undefined ? { destructive: config.destructive } : {}),
|
|
110
|
+
...(config.idempotent !== undefined ? { idempotent: config.idempotent } : {}),
|
|
111
|
+
...(config.returns ? { returns: config.returns } : {}),
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
return defineTool(toolName, toolConfig);
|
|
116
|
+
},
|
|
117
|
+
presenter(config) {
|
|
118
|
+
return definePresenter(config);
|
|
119
|
+
},
|
|
120
|
+
prompt(name, config) {
|
|
121
|
+
return definePrompt(name, config);
|
|
122
|
+
},
|
|
123
|
+
middleware(derive) {
|
|
124
|
+
return defineMiddleware(derive);
|
|
125
|
+
},
|
|
126
|
+
defineTool(name, config) {
|
|
127
|
+
return defineTool(name, config);
|
|
128
|
+
},
|
|
129
|
+
registry() {
|
|
130
|
+
return new ToolRegistry();
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=initFusion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initFusion.js","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"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"}
|
package/dist/core/response.d.ts
CHANGED
|
@@ -127,7 +127,7 @@ export declare function success(data: string | object): ToolResponse;
|
|
|
127
127
|
* @see {@link required} for missing field errors
|
|
128
128
|
* @see {@link success} for success responses
|
|
129
129
|
*/
|
|
130
|
-
export declare function error(message: string): ToolResponse;
|
|
130
|
+
export declare function error(message: string, code?: ErrorCode): ToolResponse;
|
|
131
131
|
/**
|
|
132
132
|
* Create a validation error for a missing required field.
|
|
133
133
|
*
|
|
@@ -176,6 +176,29 @@ export declare function required(field: string): ToolResponse;
|
|
|
176
176
|
* @see {@link success} for standard JSON responses
|
|
177
177
|
*/
|
|
178
178
|
export declare function toonSuccess(data: unknown, options?: EncodeOptions): ToolResponse;
|
|
179
|
+
/**
|
|
180
|
+
* Canonical error codes for deterministic agent self-correction.
|
|
181
|
+
*
|
|
182
|
+
* Provides compile-time autocomplete while allowing custom codes
|
|
183
|
+
* via the `string` fallback. Constants cover the most common
|
|
184
|
+
* failure modes in agentic pipelines.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* return toolError('VALIDATION_ERROR', { message: '...' });
|
|
189
|
+
* return toolError('RateLimited', { message: '...' }); // custom code — also valid
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
export type ErrorCode = 'MISSING_DISCRIMINATOR' | 'UNKNOWN_ACTION' | 'VALIDATION_ERROR' | 'MISSING_REQUIRED_FIELD' | 'INTERNAL_ERROR' | 'RATE_LIMITED' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'CONFLICT' | 'TIMEOUT' | 'SERVER_BUSY' | 'DEPRECATED' | 'AUTH_REQUIRED' | (string & {});
|
|
193
|
+
/**
|
|
194
|
+
* Error severity level.
|
|
195
|
+
*
|
|
196
|
+
* - `'warning'` — Non-fatal. The operation succeeded but with caveats
|
|
197
|
+
* (e.g. deprecated tool, partial results, soft quota approaching).
|
|
198
|
+
* - `'error'` — The operation failed. Agent should attempt recovery.
|
|
199
|
+
* - `'critical'` — Unrecoverable. Agent should escalate to the user.
|
|
200
|
+
*/
|
|
201
|
+
export type ErrorSeverity = 'warning' | 'error' | 'critical';
|
|
179
202
|
/**
|
|
180
203
|
* Options for a self-healing error response.
|
|
181
204
|
*
|
|
@@ -188,6 +211,30 @@ export interface ToolErrorOptions {
|
|
|
188
211
|
suggestion?: string;
|
|
189
212
|
/** Action names the agent should try instead */
|
|
190
213
|
availableActions?: string[];
|
|
214
|
+
/**
|
|
215
|
+
* Error severity.
|
|
216
|
+
*
|
|
217
|
+
* Defaults to `'error'` when omitted.
|
|
218
|
+
*
|
|
219
|
+
* @example `'warning'` for deprecation notices
|
|
220
|
+
*/
|
|
221
|
+
severity?: ErrorSeverity;
|
|
222
|
+
/**
|
|
223
|
+
* Structured metadata about the error (e.g. the invalid value,
|
|
224
|
+
* the entity ID that wasn't found, or constraint violations).
|
|
225
|
+
*
|
|
226
|
+
* Rendered as `<details>` child elements in the XML envelope.
|
|
227
|
+
*
|
|
228
|
+
* @example `{ entity_id: 'inv_123', expected_type: 'string' }`
|
|
229
|
+
*/
|
|
230
|
+
details?: Record<string, string>;
|
|
231
|
+
/**
|
|
232
|
+
* Suggested retry delay in seconds for transient errors.
|
|
233
|
+
*
|
|
234
|
+
* Rendered as `<retry_after>{n} seconds</retry_after>` in the
|
|
235
|
+
* XML envelope. Useful for rate-limit and concurrency errors.
|
|
236
|
+
*/
|
|
237
|
+
retryAfter?: number;
|
|
191
238
|
}
|
|
192
239
|
/**
|
|
193
240
|
* Create a self-healing error response with recovery instructions.
|
|
@@ -229,5 +276,5 @@ export interface ToolErrorOptions {
|
|
|
229
276
|
* @see {@link error} for simple error responses
|
|
230
277
|
* @see {@link required} for missing field errors
|
|
231
278
|
*/
|
|
232
|
-
export declare function toolError(code:
|
|
279
|
+
export declare function toolError(code: ErrorCode, options: ToolErrorOptions): ToolResponse;
|
|
233
280
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAMrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAIhF;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACf,uBAAuB,GACvB,gBAAgB,GAChB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAqClF"}
|
package/dist/core/response.js
CHANGED
|
@@ -124,9 +124,10 @@ export function success(data) {
|
|
|
124
124
|
* @see {@link required} for missing field errors
|
|
125
125
|
* @see {@link success} for success responses
|
|
126
126
|
*/
|
|
127
|
-
export function error(message) {
|
|
127
|
+
export function error(message, code) {
|
|
128
|
+
const codeAttr = code !== undefined ? ` code="${escapeXmlAttr(code)}"` : '';
|
|
128
129
|
return {
|
|
129
|
-
content: [{ type: "text", text: `<tool_error>\n<message>${escapeXml(message)}</message>\n</tool_error>` }],
|
|
130
|
+
content: [{ type: "text", text: `<tool_error${codeAttr}>\n<message>${escapeXml(message)}</message>\n</tool_error>` }],
|
|
130
131
|
isError: true,
|
|
131
132
|
};
|
|
132
133
|
}
|
|
@@ -232,14 +233,35 @@ export function toonSuccess(data, options) {
|
|
|
232
233
|
* @see {@link required} for missing field errors
|
|
233
234
|
*/
|
|
234
235
|
export function toolError(code, options) {
|
|
235
|
-
const
|
|
236
|
+
const severity = options.severity ?? 'error';
|
|
237
|
+
const parts = [
|
|
238
|
+
`<tool_error code="${escapeXmlAttr(code)}" severity="${escapeXmlAttr(severity)}">`,
|
|
239
|
+
`<message>${escapeXml(options.message)}</message>`,
|
|
240
|
+
];
|
|
236
241
|
if (options.suggestion) {
|
|
237
242
|
parts.push(`<recovery>${escapeXml(options.suggestion)}</recovery>`);
|
|
238
243
|
}
|
|
239
244
|
if ((options.availableActions?.length ?? 0) > 0) {
|
|
240
|
-
parts.push(
|
|
245
|
+
parts.push('<available_actions>');
|
|
246
|
+
for (const action of options.availableActions) {
|
|
247
|
+
parts.push(` <action>${escapeXml(action)}</action>`);
|
|
248
|
+
}
|
|
249
|
+
parts.push('</available_actions>');
|
|
250
|
+
}
|
|
251
|
+
if (options.details != null && Object.keys(options.details).length > 0) {
|
|
252
|
+
parts.push('<details>');
|
|
253
|
+
for (const [key, value] of Object.entries(options.details)) {
|
|
254
|
+
parts.push(` <detail key="${escapeXmlAttr(key)}">${escapeXml(value)}</detail>`);
|
|
255
|
+
}
|
|
256
|
+
parts.push('</details>');
|
|
257
|
+
}
|
|
258
|
+
if (options.retryAfter !== undefined) {
|
|
259
|
+
parts.push(`<retry_after>${options.retryAfter} seconds</retry_after>`);
|
|
241
260
|
}
|
|
242
261
|
parts.push('</tool_error>');
|
|
243
|
-
|
|
262
|
+
// Warnings are non-fatal — do not set isError so the response
|
|
263
|
+
// flows through the success path while still carrying guidance.
|
|
264
|
+
const isError = severity !== 'warning';
|
|
265
|
+
return { content: [{ type: "text", text: parts.join('\n') }], isError };
|
|
244
266
|
}
|
|
245
267
|
//# sourceMappingURL=response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,MAAM,EAAsB,MAAM,mBAAmB,CAAC;AAE/D,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,OAAO,GAAG;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACrC,OAAO,GAAG;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AA6BD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,OAAO,CAAC,IAAqB;IACzC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ;QACjC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -43,21 +43,21 @@ export { Resource } from './domain/Resource.js';
|
|
|
43
43
|
/** @category Converters */
|
|
44
44
|
export { ConverterBase, type GroupConverter, GroupConverterBase, type ToolConverter, ToolConverterBase, type PromptConverter, PromptConverterBase, type ResourceConverter, ResourceConverterBase, type ToolAnnotationsConverter, ToolAnnotationsConverterBase } from './converters/index.js';
|
|
45
45
|
/** @category Core */
|
|
46
|
-
export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, } from './core/index.js';
|
|
46
|
+
export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, initFusion, createGroup, toStandardValidator, fromZodSchema, isStandardSchema, autoValidator, } from './core/index.js';
|
|
47
47
|
/** @category Core */
|
|
48
|
-
export type { ToolResponse, ToolErrorOptions, ActionConfig, MiddlewareFn, GroupConfigurator, ToolFilter, ToolBuilder, ActionMetadata, Result, Success, Failure, ToolConfig, ActionDef, GroupDef, ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, ProgressEvent, ProgressSink, MiddlewareDefinition, MergeContext, InferContextOut, ConcurrencyConfig, EgressConfig, } from './core/index.js';
|
|
48
|
+
export type { ToolResponse, ToolErrorOptions, ErrorCode, ErrorSeverity, ActionConfig, MiddlewareFn, GroupConfigurator, ToolFilter, ToolBuilder, ActionMetadata, Result, Success, Failure, ToolConfig, ActionDef, GroupDef, ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, ProgressEvent, ProgressSink, MiddlewareDefinition, MergeContext, InferContextOut, ConcurrencyConfig, EgressConfig, FusionInstance, FusionToolConfig, GroupConfig, GroupAction, CompiledGroup, StandardSchemaV1, StandardSchemaIssue, InferStandardOutput, FusionValidator, ValidationResult, } from './core/index.js';
|
|
49
49
|
/** @category Client */
|
|
50
|
-
export { createFusionClient, createTypedRegistry } from './client/index.js';
|
|
50
|
+
export { createFusionClient, createTypedRegistry, FusionClientError } from './client/index.js';
|
|
51
51
|
/** @category Client */
|
|
52
|
-
export type { FusionClient, FusionTransport, RouterMap, InferRouter, TypedToolRegistry } from './client/index.js';
|
|
52
|
+
export type { FusionClient, FusionTransport, RouterMap, InferRouter, TypedToolRegistry, ClientMiddleware, FusionClientOptions } from './client/index.js';
|
|
53
53
|
/** @category Observability */
|
|
54
54
|
export { createDebugObserver, SpanStatusCode } from './observability/index.js';
|
|
55
55
|
/** @category Observability */
|
|
56
|
-
export type { DebugEvent, DebugObserverFn, RouteEvent, ValidateEvent, MiddlewareEvent, ExecuteEvent, ErrorEvent, FusionSpan, FusionTracer, FusionAttributeValue, } from './observability/index.js';
|
|
56
|
+
export type { DebugEvent, DebugObserverFn, RouteEvent, ValidateEvent, MiddlewareEvent, ExecuteEvent, ErrorEvent, GovernanceEvent, GovernanceOperation, FusionSpan, FusionTracer, FusionAttributeValue, } from './observability/index.js';
|
|
57
57
|
/** @category Presenter */
|
|
58
|
-
export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, } from './presenter/index.js';
|
|
58
|
+
export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, } from './presenter/index.js';
|
|
59
59
|
/** @category Presenter */
|
|
60
|
-
export type { UiBlock, ActionSuggestion } from './presenter/index.js';
|
|
60
|
+
export type { UiBlock, ActionSuggestion, PresenterConfig, AgentLimitDef, EmbedDef } from './presenter/index.js';
|
|
61
61
|
/** @category Prompt */
|
|
62
62
|
export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
|
|
63
63
|
/** @category Prompt */
|
|
@@ -68,14 +68,62 @@ export type { PromptMessagePayload, PromptResult, PromptParamDef, PromptParamsMa
|
|
|
68
68
|
export type { McpPromptDef, PromptFilter } from './prompt/PromptRegistry.js';
|
|
69
69
|
/** @category Server */
|
|
70
70
|
export type { AttachOptions, DetachFn } from './server/index.js';
|
|
71
|
+
/** @category Server */
|
|
72
|
+
export { autoDiscover } from './server/index.js';
|
|
73
|
+
/** @category Server */
|
|
74
|
+
export type { AutoDiscoverOptions } from './server/index.js';
|
|
75
|
+
/** @category Server */
|
|
76
|
+
export { createDevServer } from './server/index.js';
|
|
77
|
+
/** @category Server */
|
|
78
|
+
export type { DevServerConfig, DevServer } from './server/index.js';
|
|
71
79
|
/** @category Exposition */
|
|
72
80
|
export type { ToolExposition, ExpositionConfig } from './exposition/index.js';
|
|
73
81
|
/** @category StateSync */
|
|
74
|
-
export { StateSyncLayer, PolicyEngine, matchGlob } from './state-sync/index.js';
|
|
82
|
+
export { StateSyncLayer, PolicyEngine, matchGlob, detectOverlaps } from './state-sync/index.js';
|
|
75
83
|
/** @category StateSync */
|
|
76
|
-
export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, } from './state-sync/index.js';
|
|
84
|
+
export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, InvalidationEvent, ResourceNotification, OverlapWarning, } from './state-sync/index.js';
|
|
77
85
|
/** @category Testing */
|
|
78
86
|
export { MVA_META_SYMBOL } from './testing/MvaMetaSymbol.js';
|
|
79
87
|
/** @category Testing */
|
|
80
88
|
export type { MvaMeta } from './testing/MvaMetaSymbol.js';
|
|
89
|
+
/** @category Governance */
|
|
90
|
+
export { materializeContract, compileContracts, sha256, canonicalize, } from './introspection/ToolContract.js';
|
|
91
|
+
/** @category Governance */
|
|
92
|
+
export type { ToolContract, ToolSurface, ActionContract, ToolBehavior, CognitiveGuardrailsContract, TokenEconomicsProfile, HandlerEntitlements, } from './introspection/ToolContract.js';
|
|
93
|
+
/** @category Governance */
|
|
94
|
+
export { diffContracts, formatDiffReport, formatDeltasAsXml, } from './introspection/ContractDiff.js';
|
|
95
|
+
/** @category Governance */
|
|
96
|
+
export type { ContractDelta, ContractDiffResult, DeltaSeverity, DeltaCategory, } from './introspection/ContractDiff.js';
|
|
97
|
+
/** @category Governance */
|
|
98
|
+
export { computeDigest, computeServerDigest, compareServerDigests, } from './introspection/BehaviorDigest.js';
|
|
99
|
+
/** @category Governance */
|
|
100
|
+
export type { BehaviorDigestResult, DigestComponents, ServerDigest, DigestComparison, } from './introspection/BehaviorDigest.js';
|
|
101
|
+
/** @category Governance */
|
|
102
|
+
export { generateLockfile, serializeLockfile, checkLockfile, parseLockfile, writeLockfile, readLockfile, LOCKFILE_NAME, } from './introspection/CapabilityLockfile.js';
|
|
103
|
+
/** @category Governance */
|
|
104
|
+
export type { CapabilityLockfile, LockfileCapabilities, LockfileTool, LockfileToolSurface, LockfileToolBehavior, LockfileTokenEconomics, LockfileEntitlements, LockfileCheckResult, LockfilePrompt, LockfilePromptArgument, PromptBuilderLike, GenerateLockfileOptions, } from './introspection/CapabilityLockfile.js';
|
|
105
|
+
/** @category Governance */
|
|
106
|
+
export { createHmacSigner, attestServerDigest, verifyAttestation, verifyCapabilityPin, buildTrustCapability, AttestationError, } from './introspection/CryptoAttestation.js';
|
|
107
|
+
/** @category Governance */
|
|
108
|
+
export type { ZeroTrustConfig, AttestationSigner, AttestationResult, FusionTrustCapability, } from './introspection/CryptoAttestation.js';
|
|
109
|
+
/** @category Governance */
|
|
110
|
+
export { estimateTokens, profileBlock, profileResponse, computeStaticProfile, aggregateProfiles, } from './introspection/TokenEconomics.js';
|
|
111
|
+
/** @category Governance */
|
|
112
|
+
export type { TokenAnalysis, BlockTokenProfile, TokenRisk, TokenThresholds, TokenEconomicsConfig, StaticTokenProfile, FieldTokenEstimate, ServerTokenSummary, } from './introspection/TokenEconomics.js';
|
|
113
|
+
/** @category Governance */
|
|
114
|
+
export { scanSource, buildEntitlements, validateClaims, scanAndValidate, } from './introspection/EntitlementScanner.js';
|
|
115
|
+
/** @category Governance */
|
|
116
|
+
export type { EntitlementReport, EntitlementMatch, EntitlementViolation, EntitlementCategory, EntitlementClaims, } from './introspection/EntitlementScanner.js';
|
|
117
|
+
/** @category Governance */
|
|
118
|
+
export { createProbe, buildJudgePrompt, parseJudgeResponse, evaluateProbe, evaluateProbes, aggregateResults, } from './introspection/SemanticProbe.js';
|
|
119
|
+
/** @category Governance */
|
|
120
|
+
export type { SemanticProbeConfig, SemanticProbeAdapter, SemanticProbe, SemanticProbeResult, DriftLevel, SemanticProbeReport, } from './introspection/SemanticProbe.js';
|
|
121
|
+
/** @category Governance */
|
|
122
|
+
export { enrichValidationError, createToolEnhancer, } from './introspection/ContractAwareSelfHealing.js';
|
|
123
|
+
/** @category Governance */
|
|
124
|
+
export type { SelfHealingConfig, SelfHealingResult, } from './introspection/ContractAwareSelfHealing.js';
|
|
125
|
+
/** @category Governance */
|
|
126
|
+
export { createGovernanceObserver, createNoopObserver, } from './introspection/GovernanceObserver.js';
|
|
127
|
+
/** @category Governance */
|
|
128
|
+
export type { GovernanceObserverConfig, GovernanceObserver, } from './introspection/GovernanceObserver.js';
|
|
81
129
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,8BAA8B;AAC9B,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACb,KAAK,cAAc,EAAE,kBAAkB,EACvC,KAAK,aAAa,EAAE,iBAAiB,EACrC,KAAK,eAAe,EAAE,mBAAmB,EACzC,KAAK,iBAAiB,EAAE,qBAAqB,EAC7C,KAAK,wBAAwB,EAAE,4BAA4B,EAC9D,MAAM,uBAAuB,CAAC;AAG/B,qBAAqB;AACrB,OAAO,EACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAChD,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAC9D,YAAY,EACZ,uBAAuB,EACvB,OAAO,EAAE,IAAI,EACb,QAAQ,EACR,gBAAgB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -46,25 +46,51 @@ export { Resource } from './domain/Resource.js';
|
|
|
46
46
|
export { ConverterBase, GroupConverterBase, ToolConverterBase, PromptConverterBase, ResourceConverterBase, ToolAnnotationsConverterBase } from './converters/index.js';
|
|
47
47
|
// ── Core (Builder, Registry, Execution, Middleware) ──────
|
|
48
48
|
/** @category Core */
|
|
49
|
-
export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, } from './core/index.js';
|
|
49
|
+
export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, initFusion, createGroup, toStandardValidator, fromZodSchema, isStandardSchema, autoValidator, } from './core/index.js';
|
|
50
50
|
// ── Client (tRPC-style type-safe) ────────────────────────
|
|
51
51
|
/** @category Client */
|
|
52
|
-
export { createFusionClient, createTypedRegistry } from './client/index.js';
|
|
52
|
+
export { createFusionClient, createTypedRegistry, FusionClientError } from './client/index.js';
|
|
53
53
|
// ── Observability (Debug + Tracing) ──────────────────────
|
|
54
54
|
/** @category Observability */
|
|
55
55
|
export { createDebugObserver, SpanStatusCode } from './observability/index.js';
|
|
56
56
|
// ── Presenter (MVA View Layer) ───────────────────────────
|
|
57
57
|
/** @category Presenter */
|
|
58
|
-
export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, } from './presenter/index.js';
|
|
58
|
+
export { ResponseBuilder, response, isResponseBuilder, ui, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, } from './presenter/index.js';
|
|
59
59
|
// ── Prompt Engine ────────────────────────────────────────
|
|
60
60
|
/** @category Prompt */
|
|
61
61
|
export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
|
|
62
62
|
/** @category Prompt */
|
|
63
63
|
export { PromptRegistry } from './prompt/PromptRegistry.js';
|
|
64
|
+
/** @category Server */
|
|
65
|
+
export { autoDiscover } from './server/index.js';
|
|
66
|
+
/** @category Server */
|
|
67
|
+
export { createDevServer } from './server/index.js';
|
|
64
68
|
// ── State Sync (Epistemic Cache-Control) ─────────────────
|
|
65
69
|
/** @category StateSync */
|
|
66
|
-
export { StateSyncLayer, PolicyEngine, matchGlob } from './state-sync/index.js';
|
|
70
|
+
export { StateSyncLayer, PolicyEngine, matchGlob, detectOverlaps } from './state-sync/index.js';
|
|
67
71
|
// ── Testing (In-Memory MVA Backdoor) ─────────────────────
|
|
68
72
|
/** @category Testing */
|
|
69
73
|
export { MVA_META_SYMBOL } from './testing/MvaMetaSymbol.js';
|
|
74
|
+
// ── Governance (Contract + Attestation + Probing) ────────
|
|
75
|
+
/** @category Governance */
|
|
76
|
+
export { materializeContract, compileContracts, sha256, canonicalize, } from './introspection/ToolContract.js';
|
|
77
|
+
/** @category Governance */
|
|
78
|
+
export { diffContracts, formatDiffReport, formatDeltasAsXml, } from './introspection/ContractDiff.js';
|
|
79
|
+
/** @category Governance */
|
|
80
|
+
export { computeDigest, computeServerDigest, compareServerDigests, } from './introspection/BehaviorDigest.js';
|
|
81
|
+
// ── Capability Lockfile ──────────────────────────────────
|
|
82
|
+
/** @category Governance */
|
|
83
|
+
export { generateLockfile, serializeLockfile, checkLockfile, parseLockfile, writeLockfile, readLockfile, LOCKFILE_NAME, } from './introspection/CapabilityLockfile.js';
|
|
84
|
+
/** @category Governance */
|
|
85
|
+
export { createHmacSigner, attestServerDigest, verifyAttestation, verifyCapabilityPin, buildTrustCapability, AttestationError, } from './introspection/CryptoAttestation.js';
|
|
86
|
+
/** @category Governance */
|
|
87
|
+
export { estimateTokens, profileBlock, profileResponse, computeStaticProfile, aggregateProfiles, } from './introspection/TokenEconomics.js';
|
|
88
|
+
/** @category Governance */
|
|
89
|
+
export { scanSource, buildEntitlements, validateClaims, scanAndValidate, } from './introspection/EntitlementScanner.js';
|
|
90
|
+
/** @category Governance */
|
|
91
|
+
export { createProbe, buildJudgePrompt, parseJudgeResponse, evaluateProbe, evaluateProbes, aggregateResults, } from './introspection/SemanticProbe.js';
|
|
92
|
+
/** @category Governance */
|
|
93
|
+
export { enrichValidationError, createToolEnhancer, } from './introspection/ContractAwareSelfHealing.js';
|
|
94
|
+
/** @category Governance */
|
|
95
|
+
export { createGovernanceObserver, createNoopObserver, } from './introspection/GovernanceObserver.js';
|
|
70
96
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAoB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,8BAA8B;AAC9B,OAAO,EAAwB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACQ,kBAAkB,EACnB,iBAAiB,EACf,mBAAmB,EACjB,qBAAqB,EACd,4BAA4B,EAC9D,MAAM,uBAAuB,CAAC;AAE/B,4DAA4D;AAC5D,qBAAqB;AACrB,OAAO,EACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAChD,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAC9D,YAAY,EACZ,uBAAuB,EACvB,OAAO,EAAE,IAAI,EACb,QAAQ,EACR,gBAAgB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAoB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,8BAA8B;AAC9B,OAAO,EAAwB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACQ,kBAAkB,EACnB,iBAAiB,EACf,mBAAmB,EACjB,qBAAqB,EACd,4BAA4B,EAC9D,MAAM,uBAAuB,CAAC;AAE/B,4DAA4D;AAC5D,qBAAqB;AACrB,OAAO,EACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAChD,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAC9D,YAAY,EACZ,uBAAuB,EACvB,OAAO,EAAE,IAAI,EACb,QAAQ,EACR,gBAAgB,EAAE,iBAAiB,EACnC,UAAU,EACV,WAAW,EACX,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,GACtE,MAAM,iBAAiB,CAAC;AAqBzB,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI/F,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS/E,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EACH,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAC5C,EAAE,EACF,SAAS,EAAE,eAAe,EAAE,WAAW,EACvC,wBAAwB,EACxB,eAAe,EACf,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAI9B,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpG,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAa5D,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQpD,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOhG,4DAA4D;AAC5D,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,YAAY,GACf,MAAM,iCAAiC,CAAC;AAWzC,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,iCAAiC,CAAC;AAQzC,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACvB,MAAM,mCAAmC,CAAC;AAQ3C,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,GAChB,MAAM,uCAAuC,CAAC;AAgB/C,2BAA2B;AAC3B,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACnB,MAAM,sCAAsC,CAAC;AAQ9C,2BAA2B;AAC3B,OAAO,EACH,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GACpB,MAAM,mCAAmC,CAAC;AAY3C,2BAA2B;AAC3B,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,GAClB,MAAM,uCAAuC,CAAC;AAS/C,2BAA2B;AAC3B,OAAO,EACH,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,GACnB,MAAM,kCAAkC,CAAC;AAU1C,2BAA2B;AAC3B,OAAO,EACH,qBAAqB,EACrB,kBAAkB,GACrB,MAAM,6CAA6C,CAAC;AAMrD,2BAA2B;AAC3B,OAAO,EACH,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BehaviorDigest — Content-Addressed Behavioral Fingerprinting
|
|
3
|
+
*
|
|
4
|
+
* Produces a single SHA-256 digest that captures the complete
|
|
5
|
+
* behavioral identity of a `ToolContract`. When this digest changes,
|
|
6
|
+
* the tool's behavior has changed — even if the input schema,
|
|
7
|
+
* tool name, and description remain identical.
|
|
8
|
+
*
|
|
9
|
+
* This is the foundation for the Capability Lockfile:
|
|
10
|
+
* `mcp-fusion.lock` stores per-tool digests, and any change in
|
|
11
|
+
* any digest triggers a lockfile update.
|
|
12
|
+
*
|
|
13
|
+
* **Content-addressed**: Two tools with identical behavior will
|
|
14
|
+
* produce identical digests, regardless of creation order or runtime.
|
|
15
|
+
*
|
|
16
|
+
* Pure-function module: no state, no side effects.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
import type { ToolContract } from './ToolContract.js';
|
|
21
|
+
/**
|
|
22
|
+
* Content-addressed digest of a tool's behavioral contract.
|
|
23
|
+
*
|
|
24
|
+
* The `digest` field is a SHA-256 over the canonical form of
|
|
25
|
+
* all behavioral fields. The `components` field provides
|
|
26
|
+
* per-section digests for granular change detection.
|
|
27
|
+
*/
|
|
28
|
+
export interface BehaviorDigestResult {
|
|
29
|
+
/** Overall SHA-256 over all behavioral components */
|
|
30
|
+
readonly digest: string;
|
|
31
|
+
/** Per-section component digests */
|
|
32
|
+
readonly components: DigestComponents;
|
|
33
|
+
/** ISO-8601 timestamp of when the digest was computed */
|
|
34
|
+
readonly computedAt: string;
|
|
35
|
+
/** Tool name for correlation */
|
|
36
|
+
readonly toolName: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Per-section component digests for granular tracking.
|
|
40
|
+
*
|
|
41
|
+
* Each component is a SHA-256 of the canonical form of that
|
|
42
|
+
* section. When the overall digest changes, comparing components
|
|
43
|
+
* reveals exactly which section changed.
|
|
44
|
+
*/
|
|
45
|
+
export interface DigestComponents {
|
|
46
|
+
/** SHA-256 of input surface (schema, actions) */
|
|
47
|
+
readonly surface: string;
|
|
48
|
+
/** SHA-256 of behavioral contract (egress, rules, guardrails) */
|
|
49
|
+
readonly behavior: string;
|
|
50
|
+
/** SHA-256 of token economics profile */
|
|
51
|
+
readonly tokenEconomics: string;
|
|
52
|
+
/** SHA-256 of handler entitlements */
|
|
53
|
+
readonly entitlements: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Server-level digest that covers all tools.
|
|
57
|
+
*
|
|
58
|
+
* Used as the content address for Capability Lockfile entries.
|
|
59
|
+
*/
|
|
60
|
+
export interface ServerDigest {
|
|
61
|
+
/** SHA-256 over all per-tool digests (sorted by tool name) */
|
|
62
|
+
readonly digest: string;
|
|
63
|
+
/** Per-tool digests, keyed by tool name */
|
|
64
|
+
readonly tools: Record<string, BehaviorDigestResult>;
|
|
65
|
+
/** ISO-8601 timestamp */
|
|
66
|
+
readonly computedAt: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Compute the behavioral digest for a single tool contract.
|
|
70
|
+
*
|
|
71
|
+
* The digest is deterministic: same contract → same digest.
|
|
72
|
+
* It uses canonical JSON serialization (sorted keys) to ensure
|
|
73
|
+
* platform-independent consistency.
|
|
74
|
+
*
|
|
75
|
+
* @param contract - The materialized tool contract
|
|
76
|
+
* @returns Content-addressed digest with per-section components
|
|
77
|
+
*/
|
|
78
|
+
export declare function computeDigest(contract: ToolContract): BehaviorDigestResult;
|
|
79
|
+
/**
|
|
80
|
+
* Compute a server-level digest covering all tools.
|
|
81
|
+
*
|
|
82
|
+
* The server digest is the SHA-256 over all per-tool digests,
|
|
83
|
+
* sorted by tool name for determinism.
|
|
84
|
+
*
|
|
85
|
+
* @param contracts - Record of tool name → contract
|
|
86
|
+
* @returns Server-level content-addressed digest
|
|
87
|
+
*/
|
|
88
|
+
export declare function computeServerDigest(contracts: Record<string, ToolContract>): ServerDigest;
|
|
89
|
+
/**
|
|
90
|
+
* Compare two server digests and return which tools changed.
|
|
91
|
+
*
|
|
92
|
+
* @param before - Previous server digest
|
|
93
|
+
* @param after - Current server digest
|
|
94
|
+
* @returns Object with added, removed, and changed tool names
|
|
95
|
+
*/
|
|
96
|
+
export declare function compareServerDigests(before: ServerDigest, after: ServerDigest): DigestComparison;
|
|
97
|
+
/**
|
|
98
|
+
* Result of comparing two server digests.
|
|
99
|
+
*/
|
|
100
|
+
export interface DigestComparison {
|
|
101
|
+
/** Whether the overall server digest changed */
|
|
102
|
+
readonly serverDigestChanged: boolean;
|
|
103
|
+
/** Tools that were added */
|
|
104
|
+
readonly added: readonly string[];
|
|
105
|
+
/** Tools that were removed */
|
|
106
|
+
readonly removed: readonly string[];
|
|
107
|
+
/** Tools whose behavioral digest changed */
|
|
108
|
+
readonly changed: readonly string[];
|
|
109
|
+
/** Tools whose behavioral digest is identical */
|
|
110
|
+
readonly unchanged: readonly string[];
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=BehaviorDigest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BehaviorDigest.d.ts","sourceRoot":"","sources":["../../src/introspection/BehaviorDigest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACjC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACrD,yBAAyB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB,CAkD1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACxC,YAAY,CAkBd;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,GACpB,gBAAgB,CAgClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC"}
|