@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.
Files changed (140) hide show
  1. package/dist/cli/fusion.d.ts +101 -0
  2. package/dist/cli/fusion.d.ts.map +1 -0
  3. package/dist/cli/fusion.js +333 -0
  4. package/dist/cli/fusion.js.map +1 -0
  5. package/dist/client/FusionClient.d.ts +122 -1
  6. package/dist/client/FusionClient.d.ts.map +1 -1
  7. package/dist/client/FusionClient.js +173 -11
  8. package/dist/client/FusionClient.js.map +1 -1
  9. package/dist/client/index.d.ts +2 -2
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/index.js +1 -1
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/core/StandardSchema.d.ts +178 -0
  14. package/dist/core/StandardSchema.d.ts.map +1 -0
  15. package/dist/core/StandardSchema.js +166 -0
  16. package/dist/core/StandardSchema.js.map +1 -0
  17. package/dist/core/createGroup.d.ts +140 -0
  18. package/dist/core/createGroup.d.ts.map +1 -0
  19. package/dist/core/createGroup.js +133 -0
  20. package/dist/core/createGroup.js.map +1 -0
  21. package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -1
  22. package/dist/core/execution/ExecutionPipeline.js +6 -2
  23. package/dist/core/execution/ExecutionPipeline.js.map +1 -1
  24. package/dist/core/index.d.ts +7 -1
  25. package/dist/core/index.d.ts.map +1 -1
  26. package/dist/core/index.js +6 -0
  27. package/dist/core/index.js.map +1 -1
  28. package/dist/core/initFusion.d.ts +201 -0
  29. package/dist/core/initFusion.d.ts.map +1 -0
  30. package/dist/core/initFusion.js +134 -0
  31. package/dist/core/initFusion.js.map +1 -0
  32. package/dist/core/response.d.ts +49 -2
  33. package/dist/core/response.d.ts.map +1 -1
  34. package/dist/core/response.js +27 -5
  35. package/dist/core/response.js.map +1 -1
  36. package/dist/index.d.ts +57 -9
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +30 -4
  39. package/dist/index.js.map +1 -1
  40. package/dist/introspection/BehaviorDigest.d.ts +112 -0
  41. package/dist/introspection/BehaviorDigest.d.ts.map +1 -0
  42. package/dist/introspection/BehaviorDigest.js +146 -0
  43. package/dist/introspection/BehaviorDigest.js.map +1 -0
  44. package/dist/introspection/CapabilityLockfile.d.ts +259 -0
  45. package/dist/introspection/CapabilityLockfile.d.ts.map +1 -0
  46. package/dist/introspection/CapabilityLockfile.js +391 -0
  47. package/dist/introspection/CapabilityLockfile.js.map +1 -0
  48. package/dist/introspection/ContractAwareSelfHealing.d.ts +90 -0
  49. package/dist/introspection/ContractAwareSelfHealing.d.ts.map +1 -0
  50. package/dist/introspection/ContractAwareSelfHealing.js +132 -0
  51. package/dist/introspection/ContractAwareSelfHealing.js.map +1 -0
  52. package/dist/introspection/ContractDiff.d.ts +91 -0
  53. package/dist/introspection/ContractDiff.d.ts.map +1 -0
  54. package/dist/introspection/ContractDiff.js +466 -0
  55. package/dist/introspection/ContractDiff.js.map +1 -0
  56. package/dist/introspection/CryptoAttestation.d.ts +143 -0
  57. package/dist/introspection/CryptoAttestation.d.ts.map +1 -0
  58. package/dist/introspection/CryptoAttestation.js +194 -0
  59. package/dist/introspection/CryptoAttestation.js.map +1 -0
  60. package/dist/introspection/EntitlementScanner.d.ts +124 -0
  61. package/dist/introspection/EntitlementScanner.d.ts.map +1 -0
  62. package/dist/introspection/EntitlementScanner.js +244 -0
  63. package/dist/introspection/EntitlementScanner.js.map +1 -0
  64. package/dist/introspection/GovernanceObserver.d.ts +88 -0
  65. package/dist/introspection/GovernanceObserver.d.ts.map +1 -0
  66. package/dist/introspection/GovernanceObserver.js +132 -0
  67. package/dist/introspection/GovernanceObserver.js.map +1 -0
  68. package/dist/introspection/SemanticProbe.d.ts +207 -0
  69. package/dist/introspection/SemanticProbe.d.ts.map +1 -0
  70. package/dist/introspection/SemanticProbe.js +255 -0
  71. package/dist/introspection/SemanticProbe.js.map +1 -0
  72. package/dist/introspection/TokenEconomics.d.ts +210 -0
  73. package/dist/introspection/TokenEconomics.d.ts.map +1 -0
  74. package/dist/introspection/TokenEconomics.js +286 -0
  75. package/dist/introspection/TokenEconomics.js.map +1 -0
  76. package/dist/introspection/ToolContract.d.ts +159 -0
  77. package/dist/introspection/ToolContract.d.ts.map +1 -0
  78. package/dist/introspection/ToolContract.js +191 -0
  79. package/dist/introspection/ToolContract.js.map +1 -0
  80. package/dist/introspection/canonicalize.d.ts +20 -0
  81. package/dist/introspection/canonicalize.d.ts.map +1 -0
  82. package/dist/introspection/canonicalize.js +51 -0
  83. package/dist/introspection/canonicalize.js.map +1 -0
  84. package/dist/introspection/index.d.ts +20 -0
  85. package/dist/introspection/index.d.ts.map +1 -1
  86. package/dist/introspection/index.js +20 -0
  87. package/dist/introspection/index.js.map +1 -1
  88. package/dist/observability/DebugObserver.d.ts +26 -1
  89. package/dist/observability/DebugObserver.d.ts.map +1 -1
  90. package/dist/observability/DebugObserver.js +8 -1
  91. package/dist/observability/DebugObserver.js.map +1 -1
  92. package/dist/observability/index.d.ts +1 -1
  93. package/dist/observability/index.d.ts.map +1 -1
  94. package/dist/observability/index.js.map +1 -1
  95. package/dist/presenter/ZodDescriptionExtractor.d.ts +54 -0
  96. package/dist/presenter/ZodDescriptionExtractor.d.ts.map +1 -0
  97. package/dist/presenter/ZodDescriptionExtractor.js +131 -0
  98. package/dist/presenter/ZodDescriptionExtractor.js.map +1 -0
  99. package/dist/presenter/definePresenter.d.ts +172 -0
  100. package/dist/presenter/definePresenter.d.ts.map +1 -0
  101. package/dist/presenter/definePresenter.js +96 -0
  102. package/dist/presenter/definePresenter.js.map +1 -0
  103. package/dist/presenter/index.d.ts +3 -0
  104. package/dist/presenter/index.d.ts.map +1 -1
  105. package/dist/presenter/index.js +4 -0
  106. package/dist/presenter/index.js.map +1 -1
  107. package/dist/server/DevServer.d.ts +96 -0
  108. package/dist/server/DevServer.d.ts.map +1 -0
  109. package/dist/server/DevServer.js +187 -0
  110. package/dist/server/DevServer.js.map +1 -0
  111. package/dist/server/ServerAttachment.d.ts +41 -0
  112. package/dist/server/ServerAttachment.d.ts.map +1 -1
  113. package/dist/server/ServerAttachment.js +25 -1
  114. package/dist/server/ServerAttachment.js.map +1 -1
  115. package/dist/server/autoDiscover.d.ts +63 -0
  116. package/dist/server/autoDiscover.d.ts.map +1 -0
  117. package/dist/server/autoDiscover.js +157 -0
  118. package/dist/server/autoDiscover.js.map +1 -0
  119. package/dist/server/index.d.ts +4 -0
  120. package/dist/server/index.d.ts.map +1 -1
  121. package/dist/server/index.js +4 -0
  122. package/dist/server/index.js.map +1 -1
  123. package/dist/state-sync/PolicyValidator.d.ts +36 -0
  124. package/dist/state-sync/PolicyValidator.d.ts.map +1 -1
  125. package/dist/state-sync/PolicyValidator.js +35 -0
  126. package/dist/state-sync/PolicyValidator.js.map +1 -1
  127. package/dist/state-sync/ResponseDecorator.d.ts.map +1 -1
  128. package/dist/state-sync/ResponseDecorator.js +2 -1
  129. package/dist/state-sync/ResponseDecorator.js.map +1 -1
  130. package/dist/state-sync/StateSyncLayer.d.ts +5 -4
  131. package/dist/state-sync/StateSyncLayer.d.ts.map +1 -1
  132. package/dist/state-sync/StateSyncLayer.js +35 -4
  133. package/dist/state-sync/StateSyncLayer.js.map +1 -1
  134. package/dist/state-sync/index.d.ts +3 -1
  135. package/dist/state-sync/index.d.ts.map +1 -1
  136. package/dist/state-sync/index.js +1 -0
  137. package/dist/state-sync/index.js.map +1 -1
  138. package/dist/state-sync/types.d.ts +62 -0
  139. package/dist/state-sync/types.d.ts.map +1 -1
  140. 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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"}
@@ -127,7 +127,7 @@ export declare function success(data: string | object): ToolResponse;
127
127
  * @see {@link required} for missing field errors
128
128
  * @see {@link success} for success responses
129
129
  */
130
- export declare function error(message: string): ToolResponse;
130
+ export declare function error(message: string, code?: ErrorCode): ToolResponse;
131
131
  /**
132
132
  * Create a validation error for a missing required field.
133
133
  *
@@ -176,6 +176,29 @@ export declare function required(field: string): ToolResponse;
176
176
  * @see {@link success} for standard JSON responses
177
177
  */
178
178
  export declare function toonSuccess(data: unknown, options?: EncodeOptions): ToolResponse;
179
+ /**
180
+ * Canonical error codes for deterministic agent self-correction.
181
+ *
182
+ * Provides compile-time autocomplete while allowing custom codes
183
+ * via the `string` fallback. Constants cover the most common
184
+ * failure modes in agentic pipelines.
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * return toolError('VALIDATION_ERROR', { message: '...' });
189
+ * return toolError('RateLimited', { message: '...' }); // custom code — also valid
190
+ * ```
191
+ */
192
+ export type ErrorCode = 'MISSING_DISCRIMINATOR' | 'UNKNOWN_ACTION' | 'VALIDATION_ERROR' | 'MISSING_REQUIRED_FIELD' | 'INTERNAL_ERROR' | 'RATE_LIMITED' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'CONFLICT' | 'TIMEOUT' | 'SERVER_BUSY' | 'DEPRECATED' | 'AUTH_REQUIRED' | (string & {});
193
+ /**
194
+ * Error severity level.
195
+ *
196
+ * - `'warning'` — Non-fatal. The operation succeeded but with caveats
197
+ * (e.g. deprecated tool, partial results, soft quota approaching).
198
+ * - `'error'` — The operation failed. Agent should attempt recovery.
199
+ * - `'critical'` — Unrecoverable. Agent should escalate to the user.
200
+ */
201
+ export type ErrorSeverity = 'warning' | 'error' | 'critical';
179
202
  /**
180
203
  * Options for a self-healing error response.
181
204
  *
@@ -188,6 +211,30 @@ export interface ToolErrorOptions {
188
211
  suggestion?: string;
189
212
  /** Action names the agent should try instead */
190
213
  availableActions?: string[];
214
+ /**
215
+ * Error severity.
216
+ *
217
+ * Defaults to `'error'` when omitted.
218
+ *
219
+ * @example `'warning'` for deprecation notices
220
+ */
221
+ severity?: ErrorSeverity;
222
+ /**
223
+ * Structured metadata about the error (e.g. the invalid value,
224
+ * the entity ID that wasn't found, or constraint violations).
225
+ *
226
+ * Rendered as `<details>` child elements in the XML envelope.
227
+ *
228
+ * @example `{ entity_id: 'inv_123', expected_type: 'string' }`
229
+ */
230
+ details?: Record<string, string>;
231
+ /**
232
+ * Suggested retry delay in seconds for transient errors.
233
+ *
234
+ * Rendered as `<retry_after>{n} seconds</retry_after>` in the
235
+ * XML envelope. Useful for rate-limit and concurrency errors.
236
+ */
237
+ retryAfter?: number;
191
238
  }
192
239
  /**
193
240
  * Create a self-healing error response with recovery instructions.
@@ -229,5 +276,5 @@ export interface ToolErrorOptions {
229
276
  * @see {@link error} for simple error responses
230
277
  * @see {@link required} for missing field errors
231
278
  */
232
- export declare function toolError(code: string, options: ToolErrorOptions): ToolResponse;
279
+ export declare function toolError(code: ErrorCode, options: ToolErrorOptions): ToolResponse;
233
280
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAKnD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAIhF;AAMD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAc/E"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAK3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAMrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAIhF;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACf,uBAAuB,GACvB,gBAAgB,GAChB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAqClF"}
@@ -124,9 +124,10 @@ export function success(data) {
124
124
  * @see {@link required} for missing field errors
125
125
  * @see {@link success} for success responses
126
126
  */
127
- export function error(message) {
127
+ export function error(message, code) {
128
+ const codeAttr = code !== undefined ? ` code="${escapeXmlAttr(code)}"` : '';
128
129
  return {
129
- content: [{ type: "text", text: `<tool_error>\n<message>${escapeXml(message)}</message>\n</tool_error>` }],
130
+ content: [{ type: "text", text: `<tool_error${codeAttr}>\n<message>${escapeXml(message)}</message>\n</tool_error>` }],
130
131
  isError: true,
131
132
  };
132
133
  }
@@ -232,14 +233,35 @@ export function toonSuccess(data, options) {
232
233
  * @see {@link required} for missing field errors
233
234
  */
234
235
  export function toolError(code, options) {
235
- const parts = [`<tool_error code="${escapeXmlAttr(code)}">`, `<message>${escapeXml(options.message)}</message>`];
236
+ const severity = options.severity ?? 'error';
237
+ const parts = [
238
+ `<tool_error code="${escapeXmlAttr(code)}" severity="${escapeXmlAttr(severity)}">`,
239
+ `<message>${escapeXml(options.message)}</message>`,
240
+ ];
236
241
  if (options.suggestion) {
237
242
  parts.push(`<recovery>${escapeXml(options.suggestion)}</recovery>`);
238
243
  }
239
244
  if ((options.availableActions?.length ?? 0) > 0) {
240
- parts.push(`<available_actions>${options.availableActions.map(escapeXml).join(', ')}</available_actions>`);
245
+ parts.push('<available_actions>');
246
+ for (const action of options.availableActions) {
247
+ parts.push(` <action>${escapeXml(action)}</action>`);
248
+ }
249
+ parts.push('</available_actions>');
250
+ }
251
+ if (options.details != null && Object.keys(options.details).length > 0) {
252
+ parts.push('<details>');
253
+ for (const [key, value] of Object.entries(options.details)) {
254
+ parts.push(` <detail key="${escapeXmlAttr(key)}">${escapeXml(value)}</detail>`);
255
+ }
256
+ parts.push('</details>');
257
+ }
258
+ if (options.retryAfter !== undefined) {
259
+ parts.push(`<retry_after>${options.retryAfter} seconds</retry_after>`);
241
260
  }
242
261
  parts.push('</tool_error>');
243
- return { content: [{ type: "text", text: parts.join('\n') }], isError: true };
262
+ // Warnings are non-fatal do not set isError so the response
263
+ // flows through the success path while still carrying guidance.
264
+ const isError = severity !== 'warning';
265
+ return { content: [{ type: "text", text: parts.join('\n') }], isError };
244
266
  }
245
267
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -43,21 +43,21 @@ export { Resource } from './domain/Resource.js';
43
43
  /** @category Converters */
44
44
  export { ConverterBase, type GroupConverter, GroupConverterBase, type ToolConverter, ToolConverterBase, type PromptConverter, PromptConverterBase, type ResourceConverter, ResourceConverterBase, type ToolAnnotationsConverter, ToolAnnotationsConverterBase } from './converters/index.js';
45
45
  /** @category Core */
46
- export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, } from './core/index.js';
46
+ export { success, error, required, toonSuccess, toolError, GroupedToolBuilder, ActionGroupBuilder, createTool, defineTool, ToolRegistry, generateToonDescription, succeed, fail, progress, defineMiddleware, resolveMiddleware, initFusion, createGroup, toStandardValidator, fromZodSchema, isStandardSchema, autoValidator, } from './core/index.js';
47
47
  /** @category Core */
48
- export type { ToolResponse, ToolErrorOptions, ActionConfig, MiddlewareFn, GroupConfigurator, ToolFilter, ToolBuilder, ActionMetadata, Result, Success, Failure, ToolConfig, ActionDef, GroupDef, ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, ProgressEvent, ProgressSink, MiddlewareDefinition, MergeContext, InferContextOut, ConcurrencyConfig, EgressConfig, } from './core/index.js';
48
+ export type { ToolResponse, ToolErrorOptions, ErrorCode, ErrorSeverity, ActionConfig, MiddlewareFn, GroupConfigurator, ToolFilter, ToolBuilder, ActionMetadata, Result, Success, Failure, ToolConfig, ActionDef, GroupDef, ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, ProgressEvent, ProgressSink, MiddlewareDefinition, MergeContext, InferContextOut, ConcurrencyConfig, EgressConfig, FusionInstance, FusionToolConfig, GroupConfig, GroupAction, CompiledGroup, StandardSchemaV1, StandardSchemaIssue, InferStandardOutput, FusionValidator, ValidationResult, } from './core/index.js';
49
49
  /** @category Client */
50
- export { createFusionClient, createTypedRegistry } from './client/index.js';
50
+ export { createFusionClient, createTypedRegistry, FusionClientError } from './client/index.js';
51
51
  /** @category Client */
52
- export type { FusionClient, FusionTransport, RouterMap, InferRouter, TypedToolRegistry } from './client/index.js';
52
+ export type { FusionClient, FusionTransport, RouterMap, InferRouter, TypedToolRegistry, ClientMiddleware, FusionClientOptions } from './client/index.js';
53
53
  /** @category Observability */
54
54
  export { createDebugObserver, SpanStatusCode } from './observability/index.js';
55
55
  /** @category Observability */
56
- 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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -46,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,GACtC,MAAM,iBAAiB,CAAC;AAiBzB,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ/E,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EACH,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAC5C,EAAE,EACF,SAAS,EAAE,eAAe,EAAE,WAAW,EACvC,wBAAwB,GAC3B,MAAM,sBAAsB,CAAC;AAI9B,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpG,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAkB5D,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMhF,4DAA4D;AAC5D,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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"}