@cleocode/lafs 2026.3.74 → 2026.4.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/LICENSE +0 -0
- package/README.md +0 -0
- package/dist/schemas/v1/agent-card.schema.json +230 -0
- package/dist/schemas/v1/conformance-profiles.json +0 -0
- package/dist/schemas/v1/context-ledger.schema.json +70 -0
- package/dist/schemas/v1/discovery.schema.json +132 -0
- package/dist/schemas/v1/envelope.schema.json +0 -0
- package/dist/schemas/v1/error-registry.json +0 -0
- package/dist/src/a2a/bindings/grpc.d.ts +1 -0
- package/dist/src/a2a/bindings/grpc.d.ts.map +1 -0
- package/dist/src/a2a/bindings/grpc.js +1 -0
- package/dist/src/a2a/bindings/grpc.js.map +1 -0
- package/dist/src/a2a/bindings/http.d.ts +2 -1
- package/dist/src/a2a/bindings/http.d.ts.map +1 -0
- package/dist/src/a2a/bindings/http.js +8 -2
- package/dist/src/a2a/bindings/http.js.map +1 -0
- package/dist/src/a2a/bindings/index.d.ts +3 -2
- package/dist/src/a2a/bindings/index.d.ts.map +1 -0
- package/dist/src/a2a/bindings/index.js +5 -4
- package/dist/src/a2a/bindings/index.js.map +1 -0
- package/dist/src/a2a/bindings/jsonrpc.d.ts +1 -0
- package/dist/src/a2a/bindings/jsonrpc.d.ts.map +1 -0
- package/dist/src/a2a/bindings/jsonrpc.js +3 -1
- package/dist/src/a2a/bindings/jsonrpc.js.map +1 -0
- package/dist/src/a2a/bridge.d.ts +5 -7
- package/dist/src/a2a/bridge.d.ts.map +1 -0
- package/dist/src/a2a/bridge.js +15 -24
- package/dist/src/a2a/bridge.js.map +1 -0
- package/dist/src/a2a/extensions.d.ts +1 -0
- package/dist/src/a2a/extensions.d.ts.map +1 -0
- package/dist/src/a2a/extensions.js +3 -2
- package/dist/src/a2a/extensions.js.map +1 -0
- package/dist/src/a2a/index.d.ts +8 -7
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +22 -27
- package/dist/src/a2a/index.js.map +1 -0
- package/dist/src/a2a/streaming.d.ts +2 -1
- package/dist/src/a2a/streaming.d.ts.map +1 -0
- package/dist/src/a2a/streaming.js +10 -9
- package/dist/src/a2a/streaming.js.map +1 -0
- package/dist/src/a2a/task-lifecycle.d.ts +2 -1
- package/dist/src/a2a/task-lifecycle.d.ts.map +1 -0
- package/dist/src/a2a/task-lifecycle.js +25 -7
- package/dist/src/a2a/task-lifecycle.js.map +1 -0
- package/dist/src/budgetEnforcement.d.ts +5 -6
- package/dist/src/budgetEnforcement.d.ts.map +1 -0
- package/dist/src/budgetEnforcement.js +14 -12
- package/dist/src/budgetEnforcement.js.map +1 -0
- package/dist/src/circuit-breaker/index.d.ts +6 -1
- package/dist/src/circuit-breaker/index.d.ts.map +1 -0
- package/dist/src/circuit-breaker/index.js +8 -5
- package/dist/src/circuit-breaker/index.js.map +1 -0
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +12 -11
- package/dist/src/cli.js.map +1 -0
- package/dist/src/compliance.d.ts +4 -3
- package/dist/src/compliance.d.ts.map +1 -0
- package/dist/src/compliance.js +14 -13
- package/dist/src/compliance.js.map +1 -0
- package/dist/src/conformance.d.ts +3 -2
- package/dist/src/conformance.d.ts.map +1 -0
- package/dist/src/conformance.js +83 -76
- package/dist/src/conformance.js.map +1 -0
- package/dist/src/conformanceProfiles.d.ts +2 -1
- package/dist/src/conformanceProfiles.d.ts.map +1 -0
- package/dist/src/conformanceProfiles.js +2 -1
- package/dist/src/conformanceProfiles.js.map +1 -0
- package/dist/src/deprecationRegistry.d.ts +2 -1
- package/dist/src/deprecationRegistry.d.ts.map +1 -0
- package/dist/src/deprecationRegistry.js +8 -7
- package/dist/src/deprecationRegistry.js.map +1 -0
- package/dist/src/discovery.d.ts +3 -2
- package/dist/src/discovery.d.ts.map +1 -0
- package/dist/src/discovery.js +63 -59
- package/dist/src/discovery.js.map +1 -0
- package/dist/src/envelope.d.ts +10 -9
- package/dist/src/envelope.d.ts.map +1 -0
- package/dist/src/envelope.js +14 -15
- package/dist/src/envelope.js.map +1 -0
- package/dist/src/errorRegistry.d.ts +4 -3
- package/dist/src/errorRegistry.d.ts.map +1 -0
- package/dist/src/errorRegistry.js +4 -3
- package/dist/src/errorRegistry.js.map +1 -0
- package/dist/src/fieldExtraction.d.ts +3 -2
- package/dist/src/fieldExtraction.d.ts.map +1 -0
- package/dist/src/fieldExtraction.js +15 -11
- package/dist/src/fieldExtraction.js.map +1 -0
- package/dist/src/flagResolver.d.ts +2 -1
- package/dist/src/flagResolver.d.ts.map +1 -0
- package/dist/src/flagResolver.js +2 -1
- package/dist/src/flagResolver.js.map +1 -0
- package/dist/src/flagSemantics.d.ts +4 -3
- package/dist/src/flagSemantics.d.ts.map +1 -0
- package/dist/src/flagSemantics.js +12 -11
- package/dist/src/flagSemantics.js.map +1 -0
- package/dist/src/health/index.d.ts +16 -3
- package/dist/src/health/index.d.ts.map +1 -0
- package/dist/src/health/index.js +21 -20
- package/dist/src/health/index.js.map +1 -0
- package/dist/src/index.d.ts +23 -23
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +29 -28
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcpAdapter.d.ts +4 -3
- package/dist/src/mcpAdapter.d.ts.map +1 -0
- package/dist/src/mcpAdapter.js +62 -57
- package/dist/src/mcpAdapter.js.map +1 -0
- package/dist/src/mviProjection.d.ts +1 -0
- package/dist/src/mviProjection.d.ts.map +1 -0
- package/dist/src/mviProjection.js +1 -0
- package/dist/src/mviProjection.js.map +1 -0
- package/dist/src/problemDetails.d.ts +1 -0
- package/dist/src/problemDetails.d.ts.map +1 -0
- package/dist/src/problemDetails.js +6 -0
- package/dist/src/problemDetails.js.map +1 -0
- package/dist/src/shutdown/index.d.ts +7 -2
- package/dist/src/shutdown/index.d.ts.map +1 -0
- package/dist/src/shutdown/index.js +6 -5
- package/dist/src/shutdown/index.js.map +1 -0
- package/dist/src/tokenEstimator.d.ts +1 -0
- package/dist/src/tokenEstimator.d.ts.map +1 -0
- package/dist/src/tokenEstimator.js +1 -2
- package/dist/src/tokenEstimator.js.map +1 -0
- package/dist/src/types.d.ts +10 -9
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +12 -2
- package/dist/src/types.js.map +1 -0
- package/dist/src/validateEnvelope.d.ts +2 -1
- package/dist/src/validateEnvelope.d.ts.map +1 -0
- package/dist/src/validateEnvelope.js +11 -10
- package/dist/src/validateEnvelope.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/lafs.md +0 -0
- package/package.json +9 -10
- package/schemas/v1/agent-card.schema.json +0 -0
- package/schemas/v1/conformance-profiles.d.ts +15 -0
- package/schemas/v1/conformance-profiles.json +0 -0
- package/schemas/v1/context-ledger.schema.json +0 -0
- package/schemas/v1/discovery.schema.json +0 -0
- package/schemas/v1/envelope.schema.d.ts +14 -0
- package/schemas/v1/envelope.schema.json +0 -0
- package/schemas/v1/error-registry.d.ts +24 -0
- package/schemas/v1/error-registry.json +0 -0
package/dist/src/discovery.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* A2A v1.0+ Compliant Implementation
|
|
7
7
|
* Reference: specs/external/agent-discovery.md
|
|
8
8
|
*/
|
|
9
|
-
import { createRequire } from
|
|
10
|
-
import { createHash } from
|
|
9
|
+
import { createRequire } from 'node:module';
|
|
10
|
+
import { createHash } from 'crypto';
|
|
11
11
|
import { buildLafsExtension } from './a2a/extensions.js';
|
|
12
12
|
const require = createRequire(import.meta.url);
|
|
13
13
|
// Resolve package.json from project root (works from both src/ and dist/src/)
|
|
@@ -25,58 +25,58 @@ catch {
|
|
|
25
25
|
* Build absolute URL from base and path
|
|
26
26
|
*/
|
|
27
27
|
function buildUrl(base, path, req) {
|
|
28
|
-
if (path.startsWith(
|
|
28
|
+
if (path.startsWith('http://') || path.startsWith('https://')) {
|
|
29
29
|
return path;
|
|
30
30
|
}
|
|
31
31
|
if (base) {
|
|
32
|
-
const separator = base.endsWith(
|
|
32
|
+
const separator = base.endsWith('/') || path.startsWith('/') ? '' : '/';
|
|
33
33
|
return `${base}${separator}${path}`;
|
|
34
34
|
}
|
|
35
35
|
if (req) {
|
|
36
|
-
const protocol = req.headers[
|
|
37
|
-
const host = req.headers.host ||
|
|
38
|
-
const separator = path.startsWith(
|
|
36
|
+
const protocol = req.headers['x-forwarded-proto'] || req.protocol || 'http';
|
|
37
|
+
const host = req.headers.host || 'localhost';
|
|
38
|
+
const separator = path.startsWith('/') ? '' : '/';
|
|
39
39
|
return `${protocol}://${host}${separator}${path}`;
|
|
40
40
|
}
|
|
41
|
-
return path.startsWith(
|
|
41
|
+
return path.startsWith('/') ? path : `/${path}`;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
44
|
* Generate ETag from content
|
|
45
45
|
*/
|
|
46
46
|
function generateETag(content) {
|
|
47
|
-
return `"${createHash(
|
|
47
|
+
return `"${createHash('sha256').update(content).digest('hex').slice(0, 32)}"`;
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Build A2A Agent Card from configuration
|
|
51
51
|
*/
|
|
52
52
|
function buildAgentCard(config, req) {
|
|
53
|
-
const schemaUrl = config.schemaUrl ||
|
|
53
|
+
const schemaUrl = config.schemaUrl || 'https://lafs.dev/schemas/v1/agent-card.schema.json';
|
|
54
54
|
// Handle legacy config migration
|
|
55
55
|
if (config.service && !config.agent) {
|
|
56
56
|
console.warn("[DEPRECATION] Using legacy 'service' config. Migrate to 'agent' format for A2A v1.0+ compliance.");
|
|
57
57
|
return {
|
|
58
58
|
$schema: schemaUrl,
|
|
59
59
|
name: config.service.name,
|
|
60
|
-
description: config.service.description ||
|
|
61
|
-
version: config.lafsVersion || config.service.version ||
|
|
60
|
+
description: config.service.description || 'LAFS-compliant agent',
|
|
61
|
+
version: config.lafsVersion || config.service.version || '1.0.0',
|
|
62
62
|
url: config.endpoints?.envelope
|
|
63
63
|
? buildUrl(config.baseUrl, config.endpoints.envelope, req)
|
|
64
|
-
: buildUrl(config.baseUrl,
|
|
64
|
+
: buildUrl(config.baseUrl, '/', req),
|
|
65
65
|
capabilities: {
|
|
66
66
|
streaming: false,
|
|
67
67
|
pushNotifications: false,
|
|
68
68
|
extendedAgentCard: false,
|
|
69
|
-
extensions: []
|
|
69
|
+
extensions: [],
|
|
70
70
|
},
|
|
71
|
-
defaultInputModes: [
|
|
72
|
-
defaultOutputModes: [
|
|
73
|
-
skills: (config.capabilities || []).map(cap => ({
|
|
74
|
-
id: cap.name.toLowerCase().replace(/\s+/g,
|
|
71
|
+
defaultInputModes: ['application/json'],
|
|
72
|
+
defaultOutputModes: ['application/json'],
|
|
73
|
+
skills: (config.capabilities || []).map((cap) => ({
|
|
74
|
+
id: cap.name.toLowerCase().replace(/\s+/g, '-'),
|
|
75
75
|
name: cap.name,
|
|
76
76
|
description: cap.description || `${cap.name} capability`,
|
|
77
77
|
tags: cap.operations || [],
|
|
78
|
-
examples: []
|
|
79
|
-
}))
|
|
78
|
+
examples: [],
|
|
79
|
+
})),
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
// Standard A2A v1.0 Agent Card (agent is guaranteed present; legacy path returned above)
|
|
@@ -84,7 +84,7 @@ function buildAgentCard(config, req) {
|
|
|
84
84
|
const card = {
|
|
85
85
|
$schema: schemaUrl,
|
|
86
86
|
...agent,
|
|
87
|
-
url: agent.url || buildUrl(config.baseUrl,
|
|
87
|
+
url: agent.url || buildUrl(config.baseUrl, '/', req),
|
|
88
88
|
};
|
|
89
89
|
// Auto-include LAFS extension if configured
|
|
90
90
|
if (config.autoIncludeLafsExtension) {
|
|
@@ -109,7 +109,7 @@ function buildAgentCard(config, req) {
|
|
|
109
109
|
* @deprecated Will be removed in v2.0.0
|
|
110
110
|
*/
|
|
111
111
|
function buildLegacyDiscoveryDocument(config, req) {
|
|
112
|
-
const schemaUrl = config.schemaUrl ||
|
|
112
|
+
const schemaUrl = config.schemaUrl || 'https://lafs.dev/schemas/v1/discovery.schema.json';
|
|
113
113
|
const lafsVersion = config.lafsVersion || pkg.version;
|
|
114
114
|
return {
|
|
115
115
|
$schema: schemaUrl,
|
|
@@ -117,20 +117,23 @@ function buildLegacyDiscoveryDocument(config, req) {
|
|
|
117
117
|
service: config.service || {
|
|
118
118
|
name: config.agent.name,
|
|
119
119
|
version: config.agent.version,
|
|
120
|
-
description: config.agent.description
|
|
120
|
+
description: config.agent.description,
|
|
121
121
|
},
|
|
122
|
-
capabilities: config.capabilities ||
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
capabilities: config.capabilities ||
|
|
123
|
+
config.agent.skills.map((skill) => ({
|
|
124
|
+
name: skill.name,
|
|
125
|
+
version: config.agent.version,
|
|
126
|
+
description: skill.description,
|
|
127
|
+
operations: skill.tags,
|
|
128
|
+
optional: false,
|
|
129
|
+
})),
|
|
129
130
|
endpoints: {
|
|
130
131
|
envelope: buildUrl(config.baseUrl, config.endpoints?.envelope || config.agent.url, req),
|
|
131
|
-
context: config.endpoints?.context
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
context: config.endpoints?.context
|
|
133
|
+
? buildUrl(config.baseUrl, config.endpoints.context, req)
|
|
134
|
+
: undefined,
|
|
135
|
+
discovery: config.endpoints?.discovery || buildUrl(config.baseUrl, '/.well-known/lafs.json', req),
|
|
136
|
+
},
|
|
134
137
|
};
|
|
135
138
|
}
|
|
136
139
|
// ============================================================================
|
|
@@ -180,8 +183,8 @@ function buildLegacyDiscoveryDocument(config, req) {
|
|
|
180
183
|
* ```
|
|
181
184
|
*/
|
|
182
185
|
export function discoveryMiddleware(config, options = {}) {
|
|
183
|
-
const path = options.path ||
|
|
184
|
-
const legacyPath = options.legacyPath ||
|
|
186
|
+
const path = options.path || '/.well-known/agent-card.json';
|
|
187
|
+
const legacyPath = options.legacyPath || '/.well-known/lafs.json';
|
|
185
188
|
// Disable legacy path by default when a custom path is set, unless explicitly enabled
|
|
186
189
|
const enableLegacyPath = options.enableLegacyPath ?? !options.path;
|
|
187
190
|
const enableHead = options.enableHead !== false;
|
|
@@ -238,31 +241,31 @@ export function discoveryMiddleware(config, options = {}) {
|
|
|
238
241
|
`Migrate to ${path} for A2A v1.0+ compliance. Legacy support will be removed in v2.0.0.`);
|
|
239
242
|
}
|
|
240
243
|
// Handle HEAD requests
|
|
241
|
-
if (req.method ===
|
|
244
|
+
if (req.method === 'HEAD') {
|
|
242
245
|
if (!enableHead) {
|
|
243
246
|
res.status(405).json({
|
|
244
|
-
error:
|
|
245
|
-
message:
|
|
247
|
+
error: 'Method Not Allowed',
|
|
248
|
+
message: 'HEAD requests are disabled for this endpoint',
|
|
246
249
|
});
|
|
247
250
|
return;
|
|
248
251
|
}
|
|
249
252
|
const json = getSerializedDoc(isLegacyPath, req);
|
|
250
253
|
const etag = enableEtag ? generateETag(json) : undefined;
|
|
251
254
|
res.set({
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
...(etag && {
|
|
255
|
-
...(isLegacyPath && {
|
|
256
|
-
|
|
255
|
+
'Content-Type': 'application/json',
|
|
256
|
+
'Cache-Control': `public, max-age=${cacheMaxAge}`,
|
|
257
|
+
...(etag && { ETag: etag }),
|
|
258
|
+
...(isLegacyPath && { Deprecation: 'true', Sunset: 'Sat, 31 Dec 2025 23:59:59 GMT' }),
|
|
259
|
+
'Content-Length': Buffer.byteLength(json),
|
|
257
260
|
});
|
|
258
261
|
res.status(200).end();
|
|
259
262
|
return;
|
|
260
263
|
}
|
|
261
264
|
// Only handle GET requests
|
|
262
|
-
if (req.method !==
|
|
265
|
+
if (req.method !== 'GET') {
|
|
263
266
|
res.status(405).json({
|
|
264
|
-
error:
|
|
265
|
-
message: `Method ${req.method} not allowed. Use GET or HEAD
|
|
267
|
+
error: 'Method Not Allowed',
|
|
268
|
+
message: `Method ${req.method} not allowed. Use GET or HEAD.`,
|
|
266
269
|
});
|
|
267
270
|
return;
|
|
268
271
|
}
|
|
@@ -270,24 +273,24 @@ export function discoveryMiddleware(config, options = {}) {
|
|
|
270
273
|
const json = getSerializedDoc(isLegacyPath, req);
|
|
271
274
|
const etag = enableEtag ? generateETag(json) : undefined;
|
|
272
275
|
// Check If-None-Match for conditional request
|
|
273
|
-
if (enableEtag && req.headers[
|
|
276
|
+
if (enableEtag && req.headers['if-none-match'] === etag) {
|
|
274
277
|
res.status(304).end();
|
|
275
278
|
return;
|
|
276
279
|
}
|
|
277
280
|
// Set response headers
|
|
278
281
|
const headers = {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
...config.headers
|
|
282
|
+
'Content-Type': 'application/json',
|
|
283
|
+
'Cache-Control': `public, max-age=${cacheMaxAge}`,
|
|
284
|
+
...config.headers,
|
|
282
285
|
};
|
|
283
286
|
if (etag) {
|
|
284
|
-
headers[
|
|
287
|
+
headers['ETag'] = etag;
|
|
285
288
|
}
|
|
286
289
|
// Add deprecation headers for legacy path
|
|
287
290
|
if (isLegacyPath) {
|
|
288
|
-
headers[
|
|
289
|
-
headers[
|
|
290
|
-
headers[
|
|
291
|
+
headers['Deprecation'] = 'true';
|
|
292
|
+
headers['Sunset'] = 'Sat, 31 Dec 2025 23:59:59 GMT';
|
|
293
|
+
headers['Link'] = `<${buildUrl(config.baseUrl, path, req)}>; rel="successor-version"`;
|
|
291
294
|
}
|
|
292
295
|
res.set(headers);
|
|
293
296
|
res.status(200).send(json);
|
|
@@ -304,16 +307,16 @@ export function discoveryMiddleware(config, options = {}) {
|
|
|
304
307
|
* @param options - Plugin options
|
|
305
308
|
*/
|
|
306
309
|
export async function discoveryFastifyPlugin(fastify, options) {
|
|
307
|
-
const
|
|
310
|
+
const _path = options.path || '/.well-known/agent-card.json';
|
|
308
311
|
const config = options.config;
|
|
309
312
|
const cacheMaxAge = config.cacheMaxAge || 3600;
|
|
310
|
-
const
|
|
313
|
+
const _handler = async (request, reply) => {
|
|
311
314
|
const doc = buildAgentCard(config, request.raw);
|
|
312
315
|
const json = JSON.stringify(doc);
|
|
313
316
|
const etag = generateETag(json);
|
|
314
|
-
reply.header(
|
|
315
|
-
reply.header(
|
|
316
|
-
reply.header(
|
|
317
|
+
reply.header('Content-Type', 'application/json');
|
|
318
|
+
reply.header('Cache-Control', `public, max-age=${cacheMaxAge}`);
|
|
319
|
+
reply.header('ETag', etag);
|
|
317
320
|
return doc;
|
|
318
321
|
};
|
|
319
322
|
// Note: Actual route registration depends on Fastify's API
|
|
@@ -348,3 +351,4 @@ export async function discoveryFastifyPlugin(fastify, options) {
|
|
|
348
351
|
* - Automatic config migration will be removed
|
|
349
352
|
*/
|
|
350
353
|
export default discoveryMiddleware;
|
|
354
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/src/envelope.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LAFSEnvelope, LAFSError, LAFSErrorCategory,
|
|
1
|
+
import type { LAFSAgentAction, LAFSEnvelope, LAFSError, LAFSErrorCategory, LAFSMeta, LAFSTransport, MVILevel } from './types.js';
|
|
2
2
|
export declare const LAFS_SCHEMA_URL: "https://lafs.dev/schemas/v1/envelope.schema.json";
|
|
3
3
|
export interface CreateEnvelopeMetaInput {
|
|
4
4
|
operation: string;
|
|
@@ -11,19 +11,19 @@ export interface CreateEnvelopeMetaInput {
|
|
|
11
11
|
mvi?: MVILevel | boolean;
|
|
12
12
|
contextVersion?: number;
|
|
13
13
|
sessionId?: string;
|
|
14
|
-
warnings?: LAFSMeta[
|
|
14
|
+
warnings?: LAFSMeta['warnings'];
|
|
15
15
|
}
|
|
16
16
|
export interface CreateEnvelopeSuccessInput {
|
|
17
17
|
success: true;
|
|
18
|
-
result: LAFSEnvelope[
|
|
19
|
-
page?: LAFSEnvelope[
|
|
18
|
+
result: LAFSEnvelope['result'];
|
|
19
|
+
page?: LAFSEnvelope['page'];
|
|
20
20
|
error?: null;
|
|
21
|
-
_extensions?: LAFSEnvelope[
|
|
21
|
+
_extensions?: LAFSEnvelope['_extensions'];
|
|
22
22
|
meta: CreateEnvelopeMetaInput;
|
|
23
23
|
}
|
|
24
24
|
export interface CreateEnvelopeErrorInput {
|
|
25
25
|
success: false;
|
|
26
|
-
error: Partial<LAFSError> & Pick<LAFSError,
|
|
26
|
+
error: Partial<LAFSError> & Pick<LAFSError, 'code' | 'message'>;
|
|
27
27
|
/**
|
|
28
28
|
* Optional result payload to include alongside the error.
|
|
29
29
|
* For validation tools (linters, type checkers), the actionable data
|
|
@@ -33,9 +33,9 @@ export interface CreateEnvelopeErrorInput {
|
|
|
33
33
|
*
|
|
34
34
|
* When omitted or null, the envelope emits `result: null` (default behavior).
|
|
35
35
|
*/
|
|
36
|
-
result?: LAFSEnvelope[
|
|
37
|
-
page?: LAFSEnvelope[
|
|
38
|
-
_extensions?: LAFSEnvelope[
|
|
36
|
+
result?: LAFSEnvelope['result'] | null;
|
|
37
|
+
page?: LAFSEnvelope['page'];
|
|
38
|
+
_extensions?: LAFSEnvelope['_extensions'];
|
|
39
39
|
meta: CreateEnvelopeMetaInput;
|
|
40
40
|
}
|
|
41
41
|
export type CreateEnvelopeInput = CreateEnvelopeSuccessInput | CreateEnvelopeErrorInput;
|
|
@@ -58,3 +58,4 @@ export interface ParseLafsResponseOptions {
|
|
|
58
58
|
requireRegisteredErrorCode?: boolean;
|
|
59
59
|
}
|
|
60
60
|
export declare function parseLafsResponse<T = unknown>(input: unknown, options?: ParseLafsResponseOptions): T;
|
|
61
|
+
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/envelope.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,QAAQ,EACT,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,eAAe,EAAG,kDAA2D,CAAC;AAE3F,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,EAAE,uBAAuB,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAChE;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,EAAE,uBAAuB,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,GAAG,wBAAwB,CAAC;AAyBxF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAW1E,CAAC;AAuCF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CA0BvE;AAED,qBAAa,SAAU,SAAQ,KAAM,YAAW,SAAS;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,KAAK,EAAE,SAAS;CAc7B;AAED,MAAM,WAAW,wBAAwB;IACvC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAC3C,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACrC,CAAC,CAgBH"}
|
package/dist/src/envelope.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { assertEnvelope } from
|
|
3
|
-
export const LAFS_SCHEMA_URL =
|
|
1
|
+
import { getAgentAction, getDocUrl, getRegistryCode, isRegisteredErrorCode, } from './errorRegistry.js';
|
|
2
|
+
import { assertEnvelope } from './validateEnvelope.js';
|
|
3
|
+
export const LAFS_SCHEMA_URL = 'https://lafs.dev/schemas/v1/envelope.schema.json';
|
|
4
4
|
function resolveMviLevel(input) {
|
|
5
|
-
if (typeof input ===
|
|
6
|
-
return input ?
|
|
5
|
+
if (typeof input === 'boolean') {
|
|
6
|
+
return input ? 'minimal' : 'standard';
|
|
7
7
|
}
|
|
8
|
-
return input ??
|
|
8
|
+
return input ?? 'standard';
|
|
9
9
|
}
|
|
10
10
|
function createMeta(input) {
|
|
11
11
|
return {
|
|
12
|
-
specVersion: input.specVersion ??
|
|
13
|
-
schemaVersion: input.schemaVersion ??
|
|
12
|
+
specVersion: input.specVersion ?? '1.0.0',
|
|
13
|
+
schemaVersion: input.schemaVersion ?? '1.0.0',
|
|
14
14
|
timestamp: input.timestamp ?? new Date().toISOString(),
|
|
15
15
|
operation: input.operation,
|
|
16
16
|
requestId: input.requestId,
|
|
17
|
-
transport: input.transport ??
|
|
17
|
+
transport: input.transport ?? 'sdk',
|
|
18
18
|
strict: input.strict ?? true,
|
|
19
19
|
mvi: resolveMviLevel(input.mvi),
|
|
20
20
|
contextVersion: input.contextVersion ?? 0,
|
|
@@ -36,12 +36,10 @@ export const CATEGORY_ACTION_MAP = {
|
|
|
36
36
|
};
|
|
37
37
|
function normalizeError(error) {
|
|
38
38
|
const registryEntry = getRegistryCode(error.code);
|
|
39
|
-
const category = (error.category ?? registryEntry?.category ??
|
|
39
|
+
const category = (error.category ?? registryEntry?.category ?? 'INTERNAL');
|
|
40
40
|
const retryable = error.retryable ?? registryEntry?.retryable ?? false;
|
|
41
41
|
// Derive agentAction: explicit > registry > category fallback
|
|
42
|
-
const agentAction = error.agentAction ??
|
|
43
|
-
getAgentAction(error.code) ??
|
|
44
|
-
CATEGORY_ACTION_MAP[category];
|
|
42
|
+
const agentAction = error.agentAction ?? getAgentAction(error.code) ?? CATEGORY_ACTION_MAP[category];
|
|
45
43
|
const docUrl = error.docUrl ?? getDocUrl(error.code);
|
|
46
44
|
const result = {
|
|
47
45
|
code: error.code,
|
|
@@ -103,7 +101,7 @@ export class LafsError extends Error {
|
|
|
103
101
|
docUrl;
|
|
104
102
|
constructor(error) {
|
|
105
103
|
super(error.message);
|
|
106
|
-
this.name =
|
|
104
|
+
this.name = 'LafsError';
|
|
107
105
|
this.code = error.code;
|
|
108
106
|
this.category = error.category;
|
|
109
107
|
this.retryable = error.retryable;
|
|
@@ -127,10 +125,11 @@ export function parseLafsResponse(input, options = {}) {
|
|
|
127
125
|
}
|
|
128
126
|
const error = envelope.error;
|
|
129
127
|
if (!error) {
|
|
130
|
-
throw new Error(
|
|
128
|
+
throw new Error('Invalid LAFS envelope: success=false requires error object');
|
|
131
129
|
}
|
|
132
130
|
if (options.requireRegisteredErrorCode && !isRegisteredErrorCode(error.code)) {
|
|
133
131
|
throw new Error(`Unregistered LAFS error code: ${error.code}`);
|
|
134
132
|
}
|
|
135
133
|
throw new LafsError(error);
|
|
136
134
|
}
|
|
135
|
+
//# sourceMappingURL=envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LAFSAgentAction } from
|
|
1
|
+
import type { LAFSAgentAction } from './types.js';
|
|
2
2
|
export interface RegistryCode {
|
|
3
3
|
code: string;
|
|
4
4
|
category: string;
|
|
@@ -16,7 +16,7 @@ export interface ErrorRegistry {
|
|
|
16
16
|
codes: RegistryCode[];
|
|
17
17
|
}
|
|
18
18
|
export type TransportMapping = {
|
|
19
|
-
transport:
|
|
19
|
+
transport: 'http' | 'grpc' | 'cli';
|
|
20
20
|
value: number | string;
|
|
21
21
|
};
|
|
22
22
|
export declare function getErrorRegistry(): ErrorRegistry;
|
|
@@ -25,4 +25,5 @@ export declare function getRegistryCode(code: string): RegistryCode | undefined;
|
|
|
25
25
|
export declare function getAgentAction(code: string): LAFSAgentAction | undefined;
|
|
26
26
|
export declare function getTypeUri(code: string): string | undefined;
|
|
27
27
|
export declare function getDocUrl(code: string): string | undefined;
|
|
28
|
-
export declare function getTransportMapping(code: string, transport:
|
|
28
|
+
export declare function getTransportMapping(code: string, transport: 'http' | 'grpc' | 'cli'): TransportMapping | null;
|
|
29
|
+
//# sourceMappingURL=errorRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorRegistry.d.ts","sourceRoot":"","sources":["../../src/errorRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEtE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGxE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GACjC,gBAAgB,GAAG,IAAI,CAazB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import errorRegistry from
|
|
1
|
+
import errorRegistry from '../schemas/v1/error-registry.json' with { type: 'json' };
|
|
2
2
|
export function getErrorRegistry() {
|
|
3
3
|
return errorRegistry;
|
|
4
4
|
}
|
|
@@ -26,11 +26,12 @@ export function getTransportMapping(code, transport) {
|
|
|
26
26
|
if (!registryCode) {
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
|
-
if (transport ===
|
|
29
|
+
if (transport === 'http') {
|
|
30
30
|
return { transport, value: registryCode.httpStatus };
|
|
31
31
|
}
|
|
32
|
-
if (transport ===
|
|
32
|
+
if (transport === 'grpc') {
|
|
33
33
|
return { transport, value: registryCode.grpcStatus };
|
|
34
34
|
}
|
|
35
35
|
return { transport, value: registryCode.cliExit };
|
|
36
36
|
}
|
|
37
|
+
//# sourceMappingURL=errorRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorRegistry.js","sourceRoot":"","sources":["../../src/errorRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AA0BpF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAA8B,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,gBAAgB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,KAAK,EAAE,WAA0C,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,KAAK,EAAE,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,KAAK,EAAE,MAAM,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,SAAkC;IAElC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC;IACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LAFSEnvelope, MVILevel } from
|
|
1
|
+
import type { LAFSEnvelope, MVILevel } from './types.js';
|
|
2
2
|
export interface FieldExtractionInput {
|
|
3
3
|
/** --field <name>: extract single field as plain text, no envelope */
|
|
4
4
|
fieldFlag?: string;
|
|
@@ -15,7 +15,7 @@ export interface FieldExtractionResolution {
|
|
|
15
15
|
/** Resolved MVI level. Defaults to 'standard'. */
|
|
16
16
|
mvi: MVILevel;
|
|
17
17
|
/** Which input determined the mvi value: 'flag' when mviFlag was valid, 'default' otherwise. */
|
|
18
|
-
mviSource:
|
|
18
|
+
mviSource: 'flag' | 'default';
|
|
19
19
|
/**
|
|
20
20
|
* True when _fields are requested, indicating the server SHOULD set
|
|
21
21
|
* _meta.mvi = 'custom' in the response per §9.1.
|
|
@@ -65,3 +65,4 @@ export declare function extractFieldFromEnvelope(envelope: LAFSEnvelope, field:
|
|
|
65
65
|
* entity or array keys only, not to the wrapper's own primitive keys.
|
|
66
66
|
*/
|
|
67
67
|
export declare function applyFieldFilter(envelope: LAFSEnvelope, fields: string[]): LAFSEnvelope;
|
|
68
|
+
//# sourceMappingURL=fieldExtraction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldExtraction.d.ts","sourceRoot":"","sources":["../../src/fieldExtraction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,yEAAyE;IACzE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kDAAkD;IAClD,GAAG,EAAE,QAAQ,CAAC;IACd,gGAAgG;IAChG,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,yBAAyB,CAmC7F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CA4B7F;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAuCvF"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import { LAFSFlagError } from
|
|
2
|
-
import { isMVILevel } from
|
|
1
|
+
import { LAFSFlagError } from './flagSemantics.js';
|
|
2
|
+
import { isMVILevel } from './types.js';
|
|
3
3
|
export function resolveFieldExtraction(input) {
|
|
4
4
|
if (input.fieldFlag && input.fieldsFlag) {
|
|
5
|
-
throw new LAFSFlagError('E_FIELD_CONFLICT', 'Cannot combine --field and --fields: --field extracts a single value '
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
throw new LAFSFlagError('E_FIELD_CONFLICT', 'Cannot combine --field and --fields: --field extracts a single value ' +
|
|
6
|
+
'as plain text (no envelope); --fields filters the JSON envelope. ' +
|
|
7
|
+
'Use one or the other.', { conflictingModes: ['single-field-extraction', 'multi-field-filter'] });
|
|
8
8
|
}
|
|
9
9
|
const fields = typeof input.fieldsFlag === 'string'
|
|
10
|
-
? input.fieldsFlag
|
|
10
|
+
? input.fieldsFlag
|
|
11
|
+
.split(',')
|
|
12
|
+
.map((f) => f.trim())
|
|
13
|
+
.filter(Boolean)
|
|
11
14
|
: Array.isArray(input.fieldsFlag)
|
|
12
|
-
? input.fieldsFlag.map(f => f.trim()).filter(Boolean)
|
|
15
|
+
? input.fieldsFlag.map((f) => f.trim()).filter(Boolean)
|
|
13
16
|
: undefined;
|
|
14
17
|
// 'custom' is server-set (§9.1) — not a client-requestable level
|
|
15
18
|
const validMvi = isMVILevel(input.mviFlag) && input.mviFlag !== 'custom';
|
|
16
|
-
const mvi = validMvi ? input.mviFlag : '
|
|
19
|
+
const mvi = validMvi ? input.mviFlag : 'minimal';
|
|
17
20
|
const mviSource = validMvi ? 'flag' : 'default';
|
|
18
21
|
const hasFields = (fields?.length ?? 0) > 0;
|
|
19
22
|
return {
|
|
@@ -99,7 +102,7 @@ export function extractFieldFromEnvelope(envelope, field) {
|
|
|
99
102
|
export function applyFieldFilter(envelope, fields) {
|
|
100
103
|
if (fields.length === 0 || envelope.result === null)
|
|
101
104
|
return envelope;
|
|
102
|
-
const pick = (obj) => Object.fromEntries(fields.filter(f => f in obj).map(f => [f, obj[f]]));
|
|
105
|
+
const pick = (obj) => Object.fromEntries(fields.filter((f) => f in obj).map((f) => [f, obj[f]]));
|
|
103
106
|
let filtered;
|
|
104
107
|
if (Array.isArray(envelope.result)) {
|
|
105
108
|
// Shape 1: direct array
|
|
@@ -107,7 +110,7 @@ export function applyFieldFilter(envelope, fields) {
|
|
|
107
110
|
}
|
|
108
111
|
else {
|
|
109
112
|
const record = envelope.result;
|
|
110
|
-
const topLevelMatch = fields.some(f => f in record);
|
|
113
|
+
const topLevelMatch = fields.some((f) => f in record);
|
|
111
114
|
if (topLevelMatch) {
|
|
112
115
|
// Shape 2: flat result
|
|
113
116
|
filtered = pick(record);
|
|
@@ -116,7 +119,7 @@ export function applyFieldFilter(envelope, fields) {
|
|
|
116
119
|
// Shapes 3 & 4: wrapper — apply pick one level down, preserve wrapper keys
|
|
117
120
|
filtered = Object.fromEntries(Object.entries(record).map(([k, v]) => {
|
|
118
121
|
if (Array.isArray(v)) {
|
|
119
|
-
return [k, v.map(item => pick(item))];
|
|
122
|
+
return [k, v.map((item) => pick(item))];
|
|
120
123
|
}
|
|
121
124
|
if (v && typeof v === 'object') {
|
|
122
125
|
return [k, pick(v)];
|
|
@@ -131,3 +134,4 @@ export function applyFieldFilter(envelope, fields) {
|
|
|
131
134
|
result: filtered,
|
|
132
135
|
};
|
|
133
136
|
}
|
|
137
|
+
//# sourceMappingURL=fieldExtraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldExtraction.js","sourceRoot":"","sources":["../../src/fieldExtraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @since 1.6.0
|
|
8
8
|
*/
|
|
9
|
-
import { type FlagResolution } from './flagSemantics.js';
|
|
10
9
|
import { type FieldExtractionResolution } from './fieldExtraction.js';
|
|
10
|
+
import { type FlagResolution } from './flagSemantics.js';
|
|
11
11
|
/** Combined input for both format and field extraction layers. */
|
|
12
12
|
export interface UnifiedFlagInput {
|
|
13
13
|
human?: boolean;
|
|
@@ -44,3 +44,4 @@ export interface UnifiedFlagResolution {
|
|
|
44
44
|
* existing single-layer resolvers.
|
|
45
45
|
*/
|
|
46
46
|
export declare function resolveFlags(input: UnifiedFlagInput): UnifiedFlagResolution;
|
|
47
|
+
//# sourceMappingURL=flagResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flagResolver.d.ts","sourceRoot":"","sources":["../../src/flagResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,KAAK,yBAAyB,EAA0B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAG9E,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAE/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,yBAAyB,CAAC;IAClC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,qBAAqB,CAqC3E"}
|
package/dist/src/flagResolver.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @since 1.6.0
|
|
8
8
|
*/
|
|
9
|
-
import { resolveOutputFormat } from './flagSemantics.js';
|
|
10
9
|
import { resolveFieldExtraction } from './fieldExtraction.js';
|
|
10
|
+
import { resolveOutputFormat } from './flagSemantics.js';
|
|
11
11
|
/**
|
|
12
12
|
* Resolve all flags across both layers and validate cross-layer semantics.
|
|
13
13
|
*
|
|
@@ -45,3 +45,4 @@ export function resolveFlags(input) {
|
|
|
45
45
|
}
|
|
46
46
|
return { format, fields, warnings };
|
|
47
47
|
}
|
|
48
|
+
//# sourceMappingURL=flagResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flagResolver.js","sourceRoot":"","sources":["../../src/flagResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkC,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAuB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAkC9E;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,MAAM,WAAW,GAAc;QAC7B,SAAS,EAAE,KAAK,CAAC,KAAK;QACtB,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;IACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAyB;QACvC,SAAS,EAAE,KAAK,CAAC,KAAK;QACtB,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,OAAO,EAAE,KAAK,CAAC,GAAG;KACnB,CAAC;IACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAElD,gCAAgC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CACX,mCAAmC,MAAM,CAAC,KAAK,KAAK;YAClD,gEAAgE,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CACX,oCAAoC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAC/D,+DAA+D,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FlagInput, LAFSError, LAFSErrorCategory } from
|
|
1
|
+
import type { FlagInput, LAFSError, LAFSErrorCategory } from './types.js';
|
|
2
2
|
export interface FlagResolution {
|
|
3
|
-
format:
|
|
4
|
-
source:
|
|
3
|
+
format: 'json' | 'human';
|
|
4
|
+
source: 'flag' | 'project' | 'user' | 'default';
|
|
5
5
|
/** When true, suppress non-essential output for scripting */
|
|
6
6
|
quiet: boolean;
|
|
7
7
|
}
|
|
@@ -14,3 +14,4 @@ export declare class LAFSFlagError extends Error implements LAFSError {
|
|
|
14
14
|
constructor(code: string, message: string, details?: Record<string, unknown>);
|
|
15
15
|
}
|
|
16
16
|
export declare function resolveOutputFormat(input: FlagInput): FlagResolution;
|
|
17
|
+
//# sourceMappingURL=flagSemantics.d.ts.map
|