@cleocode/lafs 2026.4.0 → 2026.4.4
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/README.md +97 -68
- package/dist/src/a2a/bindings/grpc.d.ts +117 -11
- package/dist/src/a2a/bindings/grpc.d.ts.map +1 -1
- package/dist/src/a2a/bindings/grpc.js +79 -8
- package/dist/src/a2a/bindings/grpc.js.map +1 -1
- package/dist/src/a2a/bindings/http.d.ts +129 -14
- package/dist/src/a2a/bindings/http.d.ts.map +1 -1
- package/dist/src/a2a/bindings/http.js +93 -12
- package/dist/src/a2a/bindings/http.js.map +1 -1
- package/dist/src/a2a/bindings/index.d.ts +80 -7
- package/dist/src/a2a/bindings/index.d.ts.map +1 -1
- package/dist/src/a2a/bindings/index.js +69 -2
- package/dist/src/a2a/bindings/index.js.map +1 -1
- package/dist/src/a2a/bindings/jsonrpc.d.ts +193 -9
- package/dist/src/a2a/bindings/jsonrpc.d.ts.map +1 -1
- package/dist/src/a2a/bindings/jsonrpc.js +152 -9
- package/dist/src/a2a/bindings/jsonrpc.js.map +1 -1
- package/dist/src/a2a/bridge.d.ts +232 -37
- package/dist/src/a2a/bridge.d.ts.map +1 -1
- package/dist/src/a2a/bridge.js +172 -24
- package/dist/src/a2a/bridge.js.map +1 -1
- package/dist/src/a2a/extensions.d.ts +221 -12
- package/dist/src/a2a/extensions.d.ts.map +1 -1
- package/dist/src/a2a/extensions.js +175 -11
- package/dist/src/a2a/extensions.js.map +1 -1
- package/dist/src/a2a/index.d.ts +2 -0
- package/dist/src/a2a/index.d.ts.map +1 -1
- package/dist/src/a2a/index.js +2 -0
- package/dist/src/a2a/index.js.map +1 -1
- package/dist/src/a2a/streaming.d.ts +274 -2
- package/dist/src/a2a/streaming.d.ts.map +1 -1
- package/dist/src/a2a/streaming.js +245 -2
- package/dist/src/a2a/streaming.js.map +1 -1
- package/dist/src/a2a/task-lifecycle.d.ts +339 -19
- package/dist/src/a2a/task-lifecycle.d.ts.map +1 -1
- package/dist/src/a2a/task-lifecycle.js +302 -19
- package/dist/src/a2a/task-lifecycle.js.map +1 -1
- package/dist/src/budgetEnforcement.d.ts +88 -14
- package/dist/src/budgetEnforcement.d.ts.map +1 -1
- package/dist/src/budgetEnforcement.js +132 -19
- package/dist/src/budgetEnforcement.js.map +1 -1
- package/dist/src/circuit-breaker/index.d.ts +254 -9
- package/dist/src/circuit-breaker/index.d.ts.map +1 -1
- package/dist/src/circuit-breaker/index.js +218 -9
- package/dist/src/circuit-breaker/index.js.map +1 -1
- package/dist/src/compliance.d.ts +176 -0
- package/dist/src/compliance.d.ts.map +1 -1
- package/dist/src/compliance.js +100 -0
- package/dist/src/compliance.js.map +1 -1
- package/dist/src/conformance.d.ts +52 -0
- package/dist/src/conformance.d.ts.map +1 -1
- package/dist/src/conformance.js +41 -0
- package/dist/src/conformance.js.map +1 -1
- package/dist/src/conformanceProfiles.d.ts +66 -0
- package/dist/src/conformanceProfiles.d.ts.map +1 -1
- package/dist/src/conformanceProfiles.js +51 -0
- package/dist/src/conformanceProfiles.js.map +1 -1
- package/dist/src/deprecationRegistry.d.ts +80 -0
- package/dist/src/deprecationRegistry.d.ts.map +1 -1
- package/dist/src/deprecationRegistry.js +50 -0
- package/dist/src/deprecationRegistry.js.map +1 -1
- package/dist/src/discovery.d.ts +344 -63
- package/dist/src/discovery.d.ts.map +1 -1
- package/dist/src/discovery.js +67 -13
- package/dist/src/discovery.js.map +1 -1
- package/dist/src/envelope.d.ts +252 -0
- package/dist/src/envelope.d.ts.map +1 -1
- package/dist/src/envelope.js +165 -0
- package/dist/src/envelope.js.map +1 -1
- package/dist/src/errorRegistry.d.ts +159 -0
- package/dist/src/errorRegistry.d.ts.map +1 -1
- package/dist/src/errorRegistry.js +115 -0
- package/dist/src/errorRegistry.js.map +1 -1
- package/dist/src/fieldExtraction.d.ts +125 -25
- package/dist/src/fieldExtraction.d.ts.map +1 -1
- package/dist/src/fieldExtraction.js +85 -16
- package/dist/src/fieldExtraction.js.map +1 -1
- package/dist/src/flagResolver.d.ts +75 -9
- package/dist/src/flagResolver.d.ts.map +1 -1
- package/dist/src/flagResolver.js +20 -4
- package/dist/src/flagResolver.js.map +1 -1
- package/dist/src/flagSemantics.d.ts +76 -1
- package/dist/src/flagSemantics.d.ts.map +1 -1
- package/dist/src/flagSemantics.js +66 -0
- package/dist/src/flagSemantics.js.map +1 -1
- package/dist/src/health/index.d.ts +87 -6
- package/dist/src/health/index.d.ts.map +1 -1
- package/dist/src/health/index.js +54 -6
- package/dist/src/health/index.js.map +1 -1
- package/dist/src/index.d.ts +12 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mviProjection.d.ts +42 -6
- package/dist/src/mviProjection.d.ts.map +1 -1
- package/dist/src/mviProjection.js +31 -5
- package/dist/src/mviProjection.js.map +1 -1
- package/dist/src/native-loader.d.ts +49 -0
- package/dist/src/native-loader.d.ts.map +1 -0
- package/dist/src/native-loader.js +56 -0
- package/dist/src/native-loader.js.map +1 -0
- package/dist/src/problemDetails.d.ts +70 -4
- package/dist/src/problemDetails.d.ts.map +1 -1
- package/dist/src/problemDetails.js +21 -3
- package/dist/src/problemDetails.js.map +1 -1
- package/dist/src/shutdown/index.d.ts +96 -7
- package/dist/src/shutdown/index.d.ts.map +1 -1
- package/dist/src/shutdown/index.js +72 -7
- package/dist/src/shutdown/index.js.map +1 -1
- package/dist/src/tokenEstimator.d.ts +97 -11
- package/dist/src/tokenEstimator.d.ts.map +1 -1
- package/dist/src/tokenEstimator.js +90 -11
- package/dist/src/tokenEstimator.js.map +1 -1
- package/dist/src/types.d.ts +467 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +64 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/validateEnvelope.d.ts +59 -1
- package/dist/src/validateEnvelope.d.ts.map +1 -1
- package/dist/src/validateEnvelope.js +75 -9
- package/dist/src/validateEnvelope.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/lafs.md +3 -4
- package/package.json +6 -3
- package/dist/src/mcpAdapter.d.ts +0 -29
- package/dist/src/mcpAdapter.d.ts.map +0 -1
- package/dist/src/mcpAdapter.js +0 -286
- package/dist/src/mcpAdapter.js.map +0 -1
- package/schemas/v1/conformance-profiles.d.ts +0 -15
- package/schemas/v1/envelope.schema.d.ts +0 -14
- package/schemas/v1/error-registry.d.ts +0 -24
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
* Extension negotiation, LAFS extension builder, and Express middleware
|
|
5
5
|
* for A2A Protocol v1.0+ compliance.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Implements extension negotiation per A2A spec Section 3.2.6. Extensions
|
|
9
|
+
* are declared in an Agent Card and negotiated at request time via the
|
|
10
|
+
* A2A-Extensions HTTP header. The middleware validates required extensions
|
|
11
|
+
* and attaches negotiation results to `res.locals.a2aExtensions`.
|
|
12
|
+
*
|
|
7
13
|
* Reference: specs/external/extensions.md, A2A spec Section 3.2.6
|
|
8
14
|
*/
|
|
9
15
|
import type { AgentExtension } from '@a2a-js/sdk';
|
|
@@ -14,11 +20,25 @@ export declare const LAFS_EXTENSION_URI = "https://lafs.dev/extensions/envelope/
|
|
|
14
20
|
export declare const A2A_EXTENSIONS_HEADER = "A2A-Extensions";
|
|
15
21
|
/** LAFS extension parameters declared in Agent Card */
|
|
16
22
|
export interface LafsExtensionParams {
|
|
23
|
+
/** Whether the agent supports context ledger tracking */
|
|
17
24
|
supportsContextLedger: boolean;
|
|
25
|
+
/** Whether the agent supports token budget enforcement */
|
|
18
26
|
supportsTokenBudgets: boolean;
|
|
27
|
+
/** URL of the JSON Schema for the LAFS envelope */
|
|
19
28
|
envelopeSchema: string;
|
|
29
|
+
/**
|
|
30
|
+
* Classification of the extension's behavior.
|
|
31
|
+
* @defaultValue undefined
|
|
32
|
+
*/
|
|
20
33
|
kind?: ExtensionKind;
|
|
21
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Classification of an A2A extension's behavior.
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* Used to group activated extensions by their declared kind.
|
|
40
|
+
* Valid values are `data-only`, `profile`, `method`, and `state-machine`.
|
|
41
|
+
*/
|
|
22
42
|
export type ExtensionKind = 'data-only' | 'profile' | 'method' | 'state-machine';
|
|
23
43
|
/** Result of extension negotiation between client and agent */
|
|
24
44
|
export interface ExtensionNegotiationResult {
|
|
@@ -35,66 +55,237 @@ export interface ExtensionNegotiationResult {
|
|
|
35
55
|
}
|
|
36
56
|
/**
|
|
37
57
|
* Parse A2A-Extensions header value into URI array.
|
|
38
|
-
*
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Splits comma-separated URIs, trims whitespace, and removes empty strings.
|
|
61
|
+
* Returns an empty array when the header is absent or empty.
|
|
62
|
+
*
|
|
63
|
+
* @param headerValue - Raw header value string, or undefined if absent
|
|
64
|
+
* @returns Array of trimmed extension URI strings
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const uris = parseExtensionsHeader('https://lafs.dev/ext/v1, https://example.com/ext');
|
|
69
|
+
* // => ['https://lafs.dev/ext/v1', 'https://example.com/ext']
|
|
70
|
+
* ```
|
|
39
71
|
*/
|
|
40
72
|
export declare function parseExtensionsHeader(headerValue: string | undefined): string[];
|
|
41
73
|
/**
|
|
42
74
|
* Negotiate extensions between client-requested and agent-declared sets.
|
|
75
|
+
*
|
|
76
|
+
* @remarks
|
|
43
77
|
* Unsupported extensions are ignored per spec. Required agent extensions
|
|
44
|
-
* not requested by the client are flagged in missingRequired
|
|
78
|
+
* not requested by the client are flagged in `missingRequired`. Activated
|
|
79
|
+
* extensions are optionally grouped by their declared `kind` parameter.
|
|
80
|
+
*
|
|
81
|
+
* @param requestedUris - Extension URIs requested by the client
|
|
82
|
+
* @param agentExtensions - Extensions declared in the agent's Agent Card
|
|
83
|
+
* @returns Negotiation result with activated, unsupported, and missing required sets
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* const result = negotiateExtensions(
|
|
88
|
+
* ['https://lafs.dev/extensions/envelope/v1'],
|
|
89
|
+
* agentCard.capabilities.extensions,
|
|
90
|
+
* );
|
|
91
|
+
* if (result.missingRequired.length > 0) {
|
|
92
|
+
* throw new ExtensionSupportRequiredError(result.missingRequired);
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
45
95
|
*/
|
|
46
96
|
export declare function negotiateExtensions(requestedUris: string[], agentExtensions: AgentExtension[]): ExtensionNegotiationResult;
|
|
47
97
|
/**
|
|
48
98
|
* Format activated extension URIs into header value.
|
|
49
|
-
*
|
|
99
|
+
*
|
|
100
|
+
* @remarks
|
|
101
|
+
* Joins URIs with a comma separator suitable for the A2A-Extensions response header.
|
|
102
|
+
*
|
|
103
|
+
* @param activatedUris - Extension URIs that were successfully negotiated
|
|
104
|
+
* @returns Comma-separated header value string
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* res.setHeader('A2A-Extensions', formatExtensionsHeader(result.activated));
|
|
109
|
+
* ```
|
|
50
110
|
*/
|
|
51
111
|
export declare function formatExtensionsHeader(activatedUris: string[]): string;
|
|
52
112
|
/** Options for building the LAFS extension declaration */
|
|
53
113
|
export interface BuildLafsExtensionOptions {
|
|
114
|
+
/**
|
|
115
|
+
* Whether the LAFS extension is required for all requests.
|
|
116
|
+
* @defaultValue undefined
|
|
117
|
+
*/
|
|
54
118
|
required?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Whether the agent supports context ledger tracking.
|
|
121
|
+
* @defaultValue undefined
|
|
122
|
+
*/
|
|
55
123
|
supportsContextLedger?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Whether the agent supports token budget enforcement.
|
|
126
|
+
* @defaultValue undefined
|
|
127
|
+
*/
|
|
56
128
|
supportsTokenBudgets?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* URL of the JSON Schema for the LAFS envelope.
|
|
131
|
+
* @defaultValue undefined
|
|
132
|
+
*/
|
|
57
133
|
envelopeSchema?: string;
|
|
58
134
|
}
|
|
59
135
|
/**
|
|
60
136
|
* Build an A2A AgentExtension object declaring LAFS support.
|
|
61
|
-
*
|
|
137
|
+
*
|
|
138
|
+
* @remarks
|
|
139
|
+
* Creates a fully-formed extension declaration suitable for inclusion in
|
|
140
|
+
* Agent Card `capabilities.extensions[]`. Defaults to non-required with
|
|
141
|
+
* the canonical LAFS envelope schema URL and `profile` kind.
|
|
142
|
+
*
|
|
143
|
+
* @param options - Configuration options for the LAFS extension declaration
|
|
144
|
+
* @returns A2A AgentExtension object ready for inclusion in an Agent Card
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* const ext = buildLafsExtension({ required: true, supportsTokenBudgets: true });
|
|
149
|
+
* agentCard.capabilities.extensions.push(ext);
|
|
150
|
+
* ```
|
|
62
151
|
*/
|
|
63
152
|
export declare function buildLafsExtension(options?: BuildLafsExtensionOptions): AgentExtension;
|
|
153
|
+
/** Options for building a generic A2A extension declaration */
|
|
64
154
|
export interface BuildExtensionOptions {
|
|
155
|
+
/** Canonical URI identifying the extension */
|
|
65
156
|
uri: string;
|
|
157
|
+
/** Human-readable description of what the extension provides */
|
|
66
158
|
description: string;
|
|
159
|
+
/**
|
|
160
|
+
* Whether the extension is required for all requests.
|
|
161
|
+
* @defaultValue undefined
|
|
162
|
+
*/
|
|
67
163
|
required?: boolean;
|
|
164
|
+
/** Classification of the extension's behavior */
|
|
68
165
|
kind: ExtensionKind;
|
|
166
|
+
/**
|
|
167
|
+
* Additional parameters to include in the extension declaration.
|
|
168
|
+
* @defaultValue undefined
|
|
169
|
+
*/
|
|
69
170
|
params?: Record<string, unknown>;
|
|
70
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Build a generic A2A AgentExtension object.
|
|
174
|
+
*
|
|
175
|
+
* @remarks
|
|
176
|
+
* Creates a fully-formed extension declaration with the specified kind
|
|
177
|
+
* merged into params. Use {@link buildLafsExtension} for LAFS-specific declarations.
|
|
178
|
+
*
|
|
179
|
+
* @param options - Configuration for the extension declaration
|
|
180
|
+
* @returns A2A AgentExtension object
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const ext = buildExtension({
|
|
185
|
+
* uri: 'https://example.com/ext/v1',
|
|
186
|
+
* description: 'Custom extension',
|
|
187
|
+
* kind: 'data-only',
|
|
188
|
+
* });
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
71
191
|
export declare function buildExtension(options: BuildExtensionOptions): AgentExtension;
|
|
192
|
+
/**
|
|
193
|
+
* Check whether a string is a valid extension kind.
|
|
194
|
+
*
|
|
195
|
+
* @remarks
|
|
196
|
+
* Validates against the set of recognized kinds: `data-only`, `profile`,
|
|
197
|
+
* `method`, and `state-machine`.
|
|
198
|
+
*
|
|
199
|
+
* @param kind - String value to validate
|
|
200
|
+
* @returns True if the value is a recognized ExtensionKind
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* if (isValidExtensionKind(userInput)) {
|
|
205
|
+
* // userInput is now typed as ExtensionKind
|
|
206
|
+
* }
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
72
209
|
export declare function isValidExtensionKind(kind: string): kind is ExtensionKind;
|
|
210
|
+
/**
|
|
211
|
+
* Validate an A2A extension declaration for correctness.
|
|
212
|
+
*
|
|
213
|
+
* @remarks
|
|
214
|
+
* Checks that if a `kind` parameter is present, it must be one of the
|
|
215
|
+
* recognized ExtensionKind values. Extensions without a kind are valid.
|
|
216
|
+
*
|
|
217
|
+
* @param extension - The AgentExtension to validate
|
|
218
|
+
* @returns Object with `valid` boolean and optional `error` message
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const { valid, error } = validateExtensionDeclaration(ext);
|
|
223
|
+
* if (!valid) {
|
|
224
|
+
* console.error('Invalid extension:', error);
|
|
225
|
+
* }
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
73
228
|
export declare function validateExtensionDeclaration(extension: AgentExtension): {
|
|
74
229
|
valid: boolean;
|
|
75
230
|
error?: string;
|
|
76
231
|
};
|
|
77
232
|
/**
|
|
78
233
|
* Error thrown when required A2A extensions are not supported by the client.
|
|
79
|
-
*
|
|
234
|
+
*
|
|
235
|
+
* @remarks
|
|
236
|
+
* Uses JSON-RPC error code -32008, which is outside the SDK's range (stops at -32007).
|
|
237
|
+
* Provides conversion methods for JSON-RPC, RFC 9457 Problem Details, and LAFS error formats.
|
|
80
238
|
*/
|
|
81
239
|
export declare class ExtensionSupportRequiredError extends Error {
|
|
240
|
+
/** JSON-RPC error code for extension support required */
|
|
82
241
|
readonly code: -32008;
|
|
242
|
+
/** HTTP status code returned for this error */
|
|
83
243
|
readonly httpStatus: 400;
|
|
244
|
+
/** gRPC status code equivalent */
|
|
84
245
|
readonly grpcStatus: "FAILED_PRECONDITION";
|
|
246
|
+
/** URIs of the required extensions that the client did not provide */
|
|
85
247
|
readonly missingExtensions: string[];
|
|
248
|
+
/**
|
|
249
|
+
* Create an ExtensionSupportRequiredError.
|
|
250
|
+
*
|
|
251
|
+
* @param missingExtensions - URIs of required extensions not provided by the client
|
|
252
|
+
*/
|
|
86
253
|
constructor(missingExtensions: string[]);
|
|
87
|
-
/**
|
|
254
|
+
/**
|
|
255
|
+
* Convert to JSON-RPC error object.
|
|
256
|
+
*
|
|
257
|
+
* @remarks
|
|
258
|
+
* Returns a JSON-RPC 2.0 compatible error with the missing extensions in `data`.
|
|
259
|
+
*
|
|
260
|
+
* @returns JSON-RPC error with code, message, and data containing missing extension URIs
|
|
261
|
+
*/
|
|
88
262
|
toJSONRPCError(): {
|
|
89
263
|
code: number;
|
|
90
264
|
message: string;
|
|
91
265
|
data: Record<string, unknown>;
|
|
92
266
|
};
|
|
93
|
-
/**
|
|
267
|
+
/**
|
|
268
|
+
* Convert to RFC 9457 Problem Details object with agent-actionable fields.
|
|
269
|
+
*
|
|
270
|
+
* @remarks
|
|
271
|
+
* Includes `agentAction: 'retry_modified'` so consuming agents know they
|
|
272
|
+
* should retry the request with the required extensions activated.
|
|
273
|
+
*
|
|
274
|
+
* @returns Problem Details object with `agentAction` field for agent-driven retry
|
|
275
|
+
*/
|
|
94
276
|
toProblemDetails(): Record<string, unknown> & {
|
|
95
277
|
agentAction: string;
|
|
96
278
|
};
|
|
97
|
-
/**
|
|
279
|
+
/**
|
|
280
|
+
* Convert to a LAFSError-compatible object.
|
|
281
|
+
*
|
|
282
|
+
* @remarks
|
|
283
|
+
* Returns an object matching the LAFS error shape with category `CONTRACT`
|
|
284
|
+
* and code `E_CONTRACT_EXTENSION_REQUIRED`. Marked as retryable since
|
|
285
|
+
* the client can retry with the required extensions.
|
|
286
|
+
*
|
|
287
|
+
* @returns LAFS-compatible error object with code, message, category, and details
|
|
288
|
+
*/
|
|
98
289
|
toLafsError(): {
|
|
99
290
|
code: string;
|
|
100
291
|
message: string;
|
|
@@ -108,15 +299,33 @@ export declare class ExtensionSupportRequiredError extends Error {
|
|
|
108
299
|
export interface ExtensionNegotiationMiddlewareOptions {
|
|
109
300
|
/** Agent-declared extensions to negotiate against */
|
|
110
301
|
extensions: AgentExtension[];
|
|
111
|
-
/**
|
|
302
|
+
/**
|
|
303
|
+
* Return 400 if required extensions are missing.
|
|
304
|
+
* @defaultValue undefined
|
|
305
|
+
*/
|
|
112
306
|
enforceRequired?: boolean;
|
|
113
307
|
}
|
|
114
308
|
/**
|
|
115
309
|
* Express middleware for A2A extension negotiation.
|
|
116
310
|
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
311
|
+
* @remarks
|
|
312
|
+
* Parses the A2A-Extensions header (and X-A2A-Extensions for SDK compat),
|
|
313
|
+
* validates against declared extensions, sets the response header with
|
|
314
|
+
* activated extensions, and attaches the negotiation result to
|
|
315
|
+
* `res.locals.a2aExtensions`. When `enforceRequired` is true (default),
|
|
316
|
+
* returns a 400 RFC 9457 Problem Details response if required extensions
|
|
317
|
+
* are missing.
|
|
318
|
+
*
|
|
319
|
+
* @param options - Middleware configuration with extensions and enforcement settings
|
|
320
|
+
* @returns Express RequestHandler that performs extension negotiation
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* ```typescript
|
|
324
|
+
* app.use(extensionNegotiationMiddleware({
|
|
325
|
+
* extensions: agentCard.capabilities.extensions,
|
|
326
|
+
* enforceRequired: true,
|
|
327
|
+
* }));
|
|
328
|
+
* ```
|
|
120
329
|
*/
|
|
121
330
|
export declare function extensionNegotiationMiddleware(options: ExtensionNegotiationMiddlewareOptions): RequestHandler;
|
|
122
331
|
//# sourceMappingURL=extensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/a2a/extensions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/a2a/extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
* Extension negotiation, LAFS extension builder, and Express middleware
|
|
5
5
|
* for A2A Protocol v1.0+ compliance.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Implements extension negotiation per A2A spec Section 3.2.6. Extensions
|
|
9
|
+
* are declared in an Agent Card and negotiated at request time via the
|
|
10
|
+
* A2A-Extensions HTTP header. The middleware validates required extensions
|
|
11
|
+
* and attaches negotiation results to `res.locals.a2aExtensions`.
|
|
12
|
+
*
|
|
7
13
|
* Reference: specs/external/extensions.md, A2A spec Section 3.2.6
|
|
8
14
|
*/
|
|
9
15
|
// ============================================================================
|
|
@@ -24,7 +30,19 @@ const VALID_EXTENSION_KINDS = ['data-only', 'profile', 'method', 'state-machine'
|
|
|
24
30
|
// ============================================================================
|
|
25
31
|
/**
|
|
26
32
|
* Parse A2A-Extensions header value into URI array.
|
|
27
|
-
*
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* Splits comma-separated URIs, trims whitespace, and removes empty strings.
|
|
36
|
+
* Returns an empty array when the header is absent or empty.
|
|
37
|
+
*
|
|
38
|
+
* @param headerValue - Raw header value string, or undefined if absent
|
|
39
|
+
* @returns Array of trimmed extension URI strings
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const uris = parseExtensionsHeader('https://lafs.dev/ext/v1, https://example.com/ext');
|
|
44
|
+
* // => ['https://lafs.dev/ext/v1', 'https://example.com/ext']
|
|
45
|
+
* ```
|
|
28
46
|
*/
|
|
29
47
|
export function parseExtensionsHeader(headerValue) {
|
|
30
48
|
if (!headerValue)
|
|
@@ -36,8 +54,26 @@ export function parseExtensionsHeader(headerValue) {
|
|
|
36
54
|
}
|
|
37
55
|
/**
|
|
38
56
|
* Negotiate extensions between client-requested and agent-declared sets.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
39
59
|
* Unsupported extensions are ignored per spec. Required agent extensions
|
|
40
|
-
* not requested by the client are flagged in missingRequired
|
|
60
|
+
* not requested by the client are flagged in `missingRequired`. Activated
|
|
61
|
+
* extensions are optionally grouped by their declared `kind` parameter.
|
|
62
|
+
*
|
|
63
|
+
* @param requestedUris - Extension URIs requested by the client
|
|
64
|
+
* @param agentExtensions - Extensions declared in the agent's Agent Card
|
|
65
|
+
* @returns Negotiation result with activated, unsupported, and missing required sets
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const result = negotiateExtensions(
|
|
70
|
+
* ['https://lafs.dev/extensions/envelope/v1'],
|
|
71
|
+
* agentCard.capabilities.extensions,
|
|
72
|
+
* );
|
|
73
|
+
* if (result.missingRequired.length > 0) {
|
|
74
|
+
* throw new ExtensionSupportRequiredError(result.missingRequired);
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
41
77
|
*/
|
|
42
78
|
export function negotiateExtensions(requestedUris, agentExtensions) {
|
|
43
79
|
const declared = new Map(agentExtensions.map((ext) => [ext.uri, ext]));
|
|
@@ -76,14 +112,37 @@ export function negotiateExtensions(requestedUris, agentExtensions) {
|
|
|
76
112
|
}
|
|
77
113
|
/**
|
|
78
114
|
* Format activated extension URIs into header value.
|
|
79
|
-
*
|
|
115
|
+
*
|
|
116
|
+
* @remarks
|
|
117
|
+
* Joins URIs with a comma separator suitable for the A2A-Extensions response header.
|
|
118
|
+
*
|
|
119
|
+
* @param activatedUris - Extension URIs that were successfully negotiated
|
|
120
|
+
* @returns Comma-separated header value string
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* res.setHeader('A2A-Extensions', formatExtensionsHeader(result.activated));
|
|
125
|
+
* ```
|
|
80
126
|
*/
|
|
81
127
|
export function formatExtensionsHeader(activatedUris) {
|
|
82
128
|
return activatedUris.join(',');
|
|
83
129
|
}
|
|
84
130
|
/**
|
|
85
131
|
* Build an A2A AgentExtension object declaring LAFS support.
|
|
86
|
-
*
|
|
132
|
+
*
|
|
133
|
+
* @remarks
|
|
134
|
+
* Creates a fully-formed extension declaration suitable for inclusion in
|
|
135
|
+
* Agent Card `capabilities.extensions[]`. Defaults to non-required with
|
|
136
|
+
* the canonical LAFS envelope schema URL and `profile` kind.
|
|
137
|
+
*
|
|
138
|
+
* @param options - Configuration options for the LAFS extension declaration
|
|
139
|
+
* @returns A2A AgentExtension object ready for inclusion in an Agent Card
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* const ext = buildLafsExtension({ required: true, supportsTokenBudgets: true });
|
|
144
|
+
* agentCard.capabilities.extensions.push(ext);
|
|
145
|
+
* ```
|
|
87
146
|
*/
|
|
88
147
|
export function buildLafsExtension(options) {
|
|
89
148
|
return {
|
|
@@ -98,6 +157,25 @@ export function buildLafsExtension(options) {
|
|
|
98
157
|
},
|
|
99
158
|
};
|
|
100
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Build a generic A2A AgentExtension object.
|
|
162
|
+
*
|
|
163
|
+
* @remarks
|
|
164
|
+
* Creates a fully-formed extension declaration with the specified kind
|
|
165
|
+
* merged into params. Use {@link buildLafsExtension} for LAFS-specific declarations.
|
|
166
|
+
*
|
|
167
|
+
* @param options - Configuration for the extension declaration
|
|
168
|
+
* @returns A2A AgentExtension object
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const ext = buildExtension({
|
|
173
|
+
* uri: 'https://example.com/ext/v1',
|
|
174
|
+
* description: 'Custom extension',
|
|
175
|
+
* kind: 'data-only',
|
|
176
|
+
* });
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
101
179
|
export function buildExtension(options) {
|
|
102
180
|
return {
|
|
103
181
|
uri: options.uri,
|
|
@@ -109,9 +187,44 @@ export function buildExtension(options) {
|
|
|
109
187
|
},
|
|
110
188
|
};
|
|
111
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Check whether a string is a valid extension kind.
|
|
192
|
+
*
|
|
193
|
+
* @remarks
|
|
194
|
+
* Validates against the set of recognized kinds: `data-only`, `profile`,
|
|
195
|
+
* `method`, and `state-machine`.
|
|
196
|
+
*
|
|
197
|
+
* @param kind - String value to validate
|
|
198
|
+
* @returns True if the value is a recognized ExtensionKind
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* if (isValidExtensionKind(userInput)) {
|
|
203
|
+
* // userInput is now typed as ExtensionKind
|
|
204
|
+
* }
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
112
207
|
export function isValidExtensionKind(kind) {
|
|
113
208
|
return VALID_EXTENSION_KINDS.includes(kind);
|
|
114
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Validate an A2A extension declaration for correctness.
|
|
212
|
+
*
|
|
213
|
+
* @remarks
|
|
214
|
+
* Checks that if a `kind` parameter is present, it must be one of the
|
|
215
|
+
* recognized ExtensionKind values. Extensions without a kind are valid.
|
|
216
|
+
*
|
|
217
|
+
* @param extension - The AgentExtension to validate
|
|
218
|
+
* @returns Object with `valid` boolean and optional `error` message
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const { valid, error } = validateExtensionDeclaration(ext);
|
|
223
|
+
* if (!valid) {
|
|
224
|
+
* console.error('Invalid extension:', error);
|
|
225
|
+
* }
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
115
228
|
export function validateExtensionDeclaration(extension) {
|
|
116
229
|
const kind = extension.params && typeof extension.params === 'object'
|
|
117
230
|
? extension.params['kind']
|
|
@@ -129,19 +242,38 @@ export function validateExtensionDeclaration(extension) {
|
|
|
129
242
|
// ============================================================================
|
|
130
243
|
/**
|
|
131
244
|
* Error thrown when required A2A extensions are not supported by the client.
|
|
132
|
-
*
|
|
245
|
+
*
|
|
246
|
+
* @remarks
|
|
247
|
+
* Uses JSON-RPC error code -32008, which is outside the SDK's range (stops at -32007).
|
|
248
|
+
* Provides conversion methods for JSON-RPC, RFC 9457 Problem Details, and LAFS error formats.
|
|
133
249
|
*/
|
|
134
250
|
export class ExtensionSupportRequiredError extends Error {
|
|
251
|
+
/** JSON-RPC error code for extension support required */
|
|
135
252
|
code = -32008;
|
|
253
|
+
/** HTTP status code returned for this error */
|
|
136
254
|
httpStatus = 400;
|
|
255
|
+
/** gRPC status code equivalent */
|
|
137
256
|
grpcStatus = 'FAILED_PRECONDITION';
|
|
257
|
+
/** URIs of the required extensions that the client did not provide */
|
|
138
258
|
missingExtensions;
|
|
259
|
+
/**
|
|
260
|
+
* Create an ExtensionSupportRequiredError.
|
|
261
|
+
*
|
|
262
|
+
* @param missingExtensions - URIs of required extensions not provided by the client
|
|
263
|
+
*/
|
|
139
264
|
constructor(missingExtensions) {
|
|
140
265
|
super(`Required extensions not supported: ${missingExtensions.join(', ')}`);
|
|
141
266
|
this.name = 'ExtensionSupportRequiredError';
|
|
142
267
|
this.missingExtensions = missingExtensions;
|
|
143
268
|
}
|
|
144
|
-
/**
|
|
269
|
+
/**
|
|
270
|
+
* Convert to JSON-RPC error object.
|
|
271
|
+
*
|
|
272
|
+
* @remarks
|
|
273
|
+
* Returns a JSON-RPC 2.0 compatible error with the missing extensions in `data`.
|
|
274
|
+
*
|
|
275
|
+
* @returns JSON-RPC error with code, message, and data containing missing extension URIs
|
|
276
|
+
*/
|
|
145
277
|
toJSONRPCError() {
|
|
146
278
|
return {
|
|
147
279
|
code: this.code,
|
|
@@ -149,7 +281,15 @@ export class ExtensionSupportRequiredError extends Error {
|
|
|
149
281
|
data: { missingExtensions: this.missingExtensions },
|
|
150
282
|
};
|
|
151
283
|
}
|
|
152
|
-
/**
|
|
284
|
+
/**
|
|
285
|
+
* Convert to RFC 9457 Problem Details object with agent-actionable fields.
|
|
286
|
+
*
|
|
287
|
+
* @remarks
|
|
288
|
+
* Includes `agentAction: 'retry_modified'` so consuming agents know they
|
|
289
|
+
* should retry the request with the required extensions activated.
|
|
290
|
+
*
|
|
291
|
+
* @returns Problem Details object with `agentAction` field for agent-driven retry
|
|
292
|
+
*/
|
|
153
293
|
toProblemDetails() {
|
|
154
294
|
return {
|
|
155
295
|
type: 'https://a2a-protocol.org/errors/extension-support-required',
|
|
@@ -160,7 +300,16 @@ export class ExtensionSupportRequiredError extends Error {
|
|
|
160
300
|
agentAction: 'retry_modified',
|
|
161
301
|
};
|
|
162
302
|
}
|
|
163
|
-
/**
|
|
303
|
+
/**
|
|
304
|
+
* Convert to a LAFSError-compatible object.
|
|
305
|
+
*
|
|
306
|
+
* @remarks
|
|
307
|
+
* Returns an object matching the LAFS error shape with category `CONTRACT`
|
|
308
|
+
* and code `E_CONTRACT_EXTENSION_REQUIRED`. Marked as retryable since
|
|
309
|
+
* the client can retry with the required extensions.
|
|
310
|
+
*
|
|
311
|
+
* @returns LAFS-compatible error object with code, message, category, and details
|
|
312
|
+
*/
|
|
164
313
|
toLafsError() {
|
|
165
314
|
return {
|
|
166
315
|
code: 'E_CONTRACT_EXTENSION_REQUIRED',
|
|
@@ -178,9 +327,24 @@ export class ExtensionSupportRequiredError extends Error {
|
|
|
178
327
|
/**
|
|
179
328
|
* Express middleware for A2A extension negotiation.
|
|
180
329
|
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
330
|
+
* @remarks
|
|
331
|
+
* Parses the A2A-Extensions header (and X-A2A-Extensions for SDK compat),
|
|
332
|
+
* validates against declared extensions, sets the response header with
|
|
333
|
+
* activated extensions, and attaches the negotiation result to
|
|
334
|
+
* `res.locals.a2aExtensions`. When `enforceRequired` is true (default),
|
|
335
|
+
* returns a 400 RFC 9457 Problem Details response if required extensions
|
|
336
|
+
* are missing.
|
|
337
|
+
*
|
|
338
|
+
* @param options - Middleware configuration with extensions and enforcement settings
|
|
339
|
+
* @returns Express RequestHandler that performs extension negotiation
|
|
340
|
+
*
|
|
341
|
+
* @example
|
|
342
|
+
* ```typescript
|
|
343
|
+
* app.use(extensionNegotiationMiddleware({
|
|
344
|
+
* extensions: agentCard.capabilities.extensions,
|
|
345
|
+
* enforceRequired: true,
|
|
346
|
+
* }));
|
|
347
|
+
* ```
|
|
184
348
|
*/
|
|
185
349
|
export function extensionNegotiationMiddleware(options) {
|
|
186
350
|
const { extensions, enforceRequired = true } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/a2a/extensions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/a2a/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/src/a2a/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a2a/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a2a/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,OAAO,EAEL,eAAe,EACf,kBAAkB,EAElB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EAErB,mBAAmB,EAEnB,aAAa,GACd,MAAM,aAAa,CAAC;AAMrB,YAAY,EACV,yBAAyB,EACzB,qCAAqC,EACrC,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAElB,6BAA6B,EAE7B,8BAA8B,EAC9B,sBAAsB,EAEtB,kBAAkB,EAClB,mBAAmB,EAEnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAElB,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EAEf,iBAAiB,EACjB,qBAAqB,EAErB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,eAAe,EACf,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAM7B,YAAY,EACV,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAM7B,cAAc,qBAAqB,CAAC;AAOpC,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,OAAO,EACP,wBAAwB,EACxB,IAAI,EACJ,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,IAAI,EACJ,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,YAAY,EAEV,aAAa,EACb,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
package/dist/src/a2a/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/a2a/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/a2a/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO;AACL,YAAY;AACZ,eAAe,EACf,kBAAkB;AAClB,mBAAmB;AACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB,iBAAiB;AACjB,aAAa,GACd,MAAM,aAAa,CAAC;AAYrB,OAAO,EACL,qBAAqB,EACrB,kBAAkB;AAClB,cAAc;AACd,6BAA6B;AAC7B,aAAa;AACb,8BAA8B,EAC9B,sBAAsB;AACtB,YAAY;AACZ,kBAAkB,EAClB,mBAAmB;AACnB,YAAY;AACZ,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO;AACL,mBAAmB;AACnB,kBAAkB,EAClB,kBAAkB;AAClB,gBAAgB;AAChB,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe;AACf,kBAAkB;AAClB,iBAAiB,EACjB,qBAAqB;AACrB,eAAe;AACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB;AACnB,kBAAkB;AAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAQxB,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,cAAc,qBAAqB,CAAC"}
|