@cleocode/lafs 2026.4.0 → 2026.4.3

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 (131) hide show
  1. package/README.md +97 -68
  2. package/dist/src/a2a/bindings/grpc.d.ts +117 -11
  3. package/dist/src/a2a/bindings/grpc.d.ts.map +1 -1
  4. package/dist/src/a2a/bindings/grpc.js +79 -8
  5. package/dist/src/a2a/bindings/grpc.js.map +1 -1
  6. package/dist/src/a2a/bindings/http.d.ts +129 -14
  7. package/dist/src/a2a/bindings/http.d.ts.map +1 -1
  8. package/dist/src/a2a/bindings/http.js +93 -12
  9. package/dist/src/a2a/bindings/http.js.map +1 -1
  10. package/dist/src/a2a/bindings/index.d.ts +80 -7
  11. package/dist/src/a2a/bindings/index.d.ts.map +1 -1
  12. package/dist/src/a2a/bindings/index.js +69 -2
  13. package/dist/src/a2a/bindings/index.js.map +1 -1
  14. package/dist/src/a2a/bindings/jsonrpc.d.ts +193 -9
  15. package/dist/src/a2a/bindings/jsonrpc.d.ts.map +1 -1
  16. package/dist/src/a2a/bindings/jsonrpc.js +152 -9
  17. package/dist/src/a2a/bindings/jsonrpc.js.map +1 -1
  18. package/dist/src/a2a/bridge.d.ts +232 -37
  19. package/dist/src/a2a/bridge.d.ts.map +1 -1
  20. package/dist/src/a2a/bridge.js +172 -24
  21. package/dist/src/a2a/bridge.js.map +1 -1
  22. package/dist/src/a2a/extensions.d.ts +221 -12
  23. package/dist/src/a2a/extensions.d.ts.map +1 -1
  24. package/dist/src/a2a/extensions.js +175 -11
  25. package/dist/src/a2a/extensions.js.map +1 -1
  26. package/dist/src/a2a/index.d.ts +2 -0
  27. package/dist/src/a2a/index.d.ts.map +1 -1
  28. package/dist/src/a2a/index.js +2 -0
  29. package/dist/src/a2a/index.js.map +1 -1
  30. package/dist/src/a2a/streaming.d.ts +274 -2
  31. package/dist/src/a2a/streaming.d.ts.map +1 -1
  32. package/dist/src/a2a/streaming.js +245 -2
  33. package/dist/src/a2a/streaming.js.map +1 -1
  34. package/dist/src/a2a/task-lifecycle.d.ts +339 -19
  35. package/dist/src/a2a/task-lifecycle.d.ts.map +1 -1
  36. package/dist/src/a2a/task-lifecycle.js +302 -19
  37. package/dist/src/a2a/task-lifecycle.js.map +1 -1
  38. package/dist/src/budgetEnforcement.d.ts +88 -14
  39. package/dist/src/budgetEnforcement.d.ts.map +1 -1
  40. package/dist/src/budgetEnforcement.js +132 -19
  41. package/dist/src/budgetEnforcement.js.map +1 -1
  42. package/dist/src/circuit-breaker/index.d.ts +254 -9
  43. package/dist/src/circuit-breaker/index.d.ts.map +1 -1
  44. package/dist/src/circuit-breaker/index.js +218 -9
  45. package/dist/src/circuit-breaker/index.js.map +1 -1
  46. package/dist/src/compliance.d.ts +176 -0
  47. package/dist/src/compliance.d.ts.map +1 -1
  48. package/dist/src/compliance.js +100 -0
  49. package/dist/src/compliance.js.map +1 -1
  50. package/dist/src/conformance.d.ts +52 -0
  51. package/dist/src/conformance.d.ts.map +1 -1
  52. package/dist/src/conformance.js +41 -0
  53. package/dist/src/conformance.js.map +1 -1
  54. package/dist/src/conformanceProfiles.d.ts +66 -0
  55. package/dist/src/conformanceProfiles.d.ts.map +1 -1
  56. package/dist/src/conformanceProfiles.js +51 -0
  57. package/dist/src/conformanceProfiles.js.map +1 -1
  58. package/dist/src/deprecationRegistry.d.ts +80 -0
  59. package/dist/src/deprecationRegistry.d.ts.map +1 -1
  60. package/dist/src/deprecationRegistry.js +50 -0
  61. package/dist/src/deprecationRegistry.js.map +1 -1
  62. package/dist/src/discovery.d.ts +344 -63
  63. package/dist/src/discovery.d.ts.map +1 -1
  64. package/dist/src/discovery.js +67 -13
  65. package/dist/src/discovery.js.map +1 -1
  66. package/dist/src/envelope.d.ts +252 -0
  67. package/dist/src/envelope.d.ts.map +1 -1
  68. package/dist/src/envelope.js +165 -0
  69. package/dist/src/envelope.js.map +1 -1
  70. package/dist/src/errorRegistry.d.ts +159 -0
  71. package/dist/src/errorRegistry.d.ts.map +1 -1
  72. package/dist/src/errorRegistry.js +115 -0
  73. package/dist/src/errorRegistry.js.map +1 -1
  74. package/dist/src/fieldExtraction.d.ts +125 -25
  75. package/dist/src/fieldExtraction.d.ts.map +1 -1
  76. package/dist/src/fieldExtraction.js +85 -16
  77. package/dist/src/fieldExtraction.js.map +1 -1
  78. package/dist/src/flagResolver.d.ts +75 -9
  79. package/dist/src/flagResolver.d.ts.map +1 -1
  80. package/dist/src/flagResolver.js +20 -4
  81. package/dist/src/flagResolver.js.map +1 -1
  82. package/dist/src/flagSemantics.d.ts +76 -1
  83. package/dist/src/flagSemantics.d.ts.map +1 -1
  84. package/dist/src/flagSemantics.js +66 -0
  85. package/dist/src/flagSemantics.js.map +1 -1
  86. package/dist/src/health/index.d.ts +87 -6
  87. package/dist/src/health/index.d.ts.map +1 -1
  88. package/dist/src/health/index.js +54 -6
  89. package/dist/src/health/index.js.map +1 -1
  90. package/dist/src/index.d.ts +12 -1
  91. package/dist/src/index.d.ts.map +1 -1
  92. package/dist/src/index.js +12 -1
  93. package/dist/src/index.js.map +1 -1
  94. package/dist/src/mviProjection.d.ts +42 -6
  95. package/dist/src/mviProjection.d.ts.map +1 -1
  96. package/dist/src/mviProjection.js +31 -5
  97. package/dist/src/mviProjection.js.map +1 -1
  98. package/dist/src/native-loader.d.ts +49 -0
  99. package/dist/src/native-loader.d.ts.map +1 -0
  100. package/dist/src/native-loader.js +56 -0
  101. package/dist/src/native-loader.js.map +1 -0
  102. package/dist/src/problemDetails.d.ts +70 -4
  103. package/dist/src/problemDetails.d.ts.map +1 -1
  104. package/dist/src/problemDetails.js +21 -3
  105. package/dist/src/problemDetails.js.map +1 -1
  106. package/dist/src/shutdown/index.d.ts +96 -7
  107. package/dist/src/shutdown/index.d.ts.map +1 -1
  108. package/dist/src/shutdown/index.js +72 -7
  109. package/dist/src/shutdown/index.js.map +1 -1
  110. package/dist/src/tokenEstimator.d.ts +97 -11
  111. package/dist/src/tokenEstimator.d.ts.map +1 -1
  112. package/dist/src/tokenEstimator.js +90 -11
  113. package/dist/src/tokenEstimator.js.map +1 -1
  114. package/dist/src/types.d.ts +467 -2
  115. package/dist/src/types.d.ts.map +1 -1
  116. package/dist/src/types.js +64 -0
  117. package/dist/src/types.js.map +1 -1
  118. package/dist/src/validateEnvelope.d.ts +59 -1
  119. package/dist/src/validateEnvelope.d.ts.map +1 -1
  120. package/dist/src/validateEnvelope.js +75 -9
  121. package/dist/src/validateEnvelope.js.map +1 -1
  122. package/dist/tsconfig.build.tsbuildinfo +1 -1
  123. package/lafs.md +3 -4
  124. package/package.json +6 -3
  125. package/dist/src/mcpAdapter.d.ts +0 -29
  126. package/dist/src/mcpAdapter.d.ts.map +0 -1
  127. package/dist/src/mcpAdapter.js +0 -286
  128. package/dist/src/mcpAdapter.js.map +0 -1
  129. package/schemas/v1/conformance-profiles.d.ts +0 -15
  130. package/schemas/v1/envelope.schema.d.ts +0 -14
  131. package/schemas/v1/error-registry.d.ts +0 -24
@@ -1,92 +1,431 @@
1
+ /**
2
+ * Transport protocol used to deliver a LAFS envelope.
3
+ *
4
+ * @remarks
5
+ * Each transport maps to different serialization and error-code conventions
6
+ * (HTTP status codes, gRPC status codes, CLI exit codes). The `sdk` transport
7
+ * is used for in-process calls where no network boundary is crossed.
8
+ */
1
9
  export type LAFSTransport = 'cli' | 'http' | 'grpc' | 'sdk';
10
+ /**
11
+ * Classification category for a LAFS error.
12
+ *
13
+ * @remarks
14
+ * Categories drive the default `agentAction` recommendation via
15
+ * {@link CATEGORY_ACTION_MAP} in `envelope.ts`. They are also used for
16
+ * telemetry grouping and dashboard filtering.
17
+ */
2
18
  export type LAFSErrorCategory = 'VALIDATION' | 'AUTH' | 'PERMISSION' | 'NOT_FOUND' | 'CONFLICT' | 'RATE_LIMIT' | 'TRANSIENT' | 'INTERNAL' | 'CONTRACT' | 'MIGRATION';
19
+ /**
20
+ * A non-fatal warning attached to a LAFS envelope's `_meta.warnings` array.
21
+ *
22
+ * @remarks
23
+ * Warnings inform the consuming agent about deprecations, upcoming removals,
24
+ * or soft policy violations without failing the request. Agents SHOULD log
25
+ * warnings and surface them during development but MUST NOT treat them as errors.
26
+ */
3
27
  export interface Warning {
28
+ /** Machine-readable warning code (e.g. `"W_DEPRECATED_FIELD"`). */
4
29
  code: string;
30
+ /** Human-readable description of the warning. */
5
31
  message: string;
32
+ /**
33
+ * Name of the deprecated field, parameter, or feature.
34
+ *
35
+ * @defaultValue undefined
36
+ */
6
37
  deprecated?: string;
38
+ /**
39
+ * Recommended replacement for the deprecated item.
40
+ *
41
+ * @defaultValue undefined
42
+ */
7
43
  replacement?: string;
44
+ /**
45
+ * Semver version or ISO date after which the deprecated item will be removed.
46
+ *
47
+ * @defaultValue undefined
48
+ */
8
49
  removeBy?: string;
9
50
  }
51
+ /**
52
+ * Minimum Viable Information level controlling envelope verbosity.
53
+ *
54
+ * @remarks
55
+ * - `minimal` - Only essential fields; smallest token footprint.
56
+ * - `standard` - Default level with all required fields populated.
57
+ * - `full` - Includes all optional metadata (warnings, extensions, ledger).
58
+ * - `custom` - Caller-defined subset; requires explicit field selection.
59
+ */
10
60
  export type MVILevel = 'minimal' | 'standard' | 'full' | 'custom';
61
+ /**
62
+ * Immutable set of all valid {@link MVILevel} values.
63
+ *
64
+ * @remarks
65
+ * Used by {@link isMVILevel} for runtime validation. Being a `ReadonlySet`
66
+ * prevents accidental mutation of the canonical level list.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * if (MVI_LEVELS.has(input)) {
71
+ * // input is a valid MVILevel
72
+ * }
73
+ * ```
74
+ */
11
75
  export declare const MVI_LEVELS: ReadonlySet<MVILevel>;
76
+ /**
77
+ * Type guard that checks whether an unknown value is a valid {@link MVILevel}.
78
+ *
79
+ * @param value - The value to test.
80
+ * @returns `true` if `value` is one of the recognised MVI level strings.
81
+ *
82
+ * @remarks
83
+ * Performs a string type check followed by a set membership lookup against
84
+ * {@link MVI_LEVELS}. Safe to call with any input type.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const level: unknown = 'minimal';
89
+ * if (isMVILevel(level)) {
90
+ * // level is narrowed to MVILevel
91
+ * }
92
+ * ```
93
+ */
12
94
  export declare function isMVILevel(value: unknown): value is MVILevel;
95
+ /**
96
+ * Metadata block (`_meta`) embedded in every LAFS envelope.
97
+ *
98
+ * @remarks
99
+ * The meta block carries protocol versioning, transport info, and tracing
100
+ * identifiers that allow agents to correlate requests across multi-step
101
+ * workflows. Fields like `strict` and `mvi` control envelope validation
102
+ * and verbosity behaviour.
103
+ */
13
104
  export interface LAFSMeta {
105
+ /** Semantic version of the LAFS protocol specification (e.g. `"1.0.0"`). */
14
106
  specVersion: string;
107
+ /** Semantic version of the JSON Schema used for this envelope (e.g. `"1.0.0"`). */
15
108
  schemaVersion: string;
109
+ /** ISO 8601 timestamp of when the envelope was created. */
16
110
  timestamp: string;
111
+ /** Dot-delimited operation identifier (e.g. `"tasks.list"`). */
17
112
  operation: string;
113
+ /** Unique identifier for correlating this request/response pair. */
18
114
  requestId: string;
115
+ /** Transport protocol through which this envelope is delivered. */
19
116
  transport: LAFSTransport;
117
+ /** When `true`, schema validation rejects unknown properties. */
20
118
  strict: boolean;
119
+ /** Minimum Viable Information level controlling field inclusion. */
21
120
  mvi: MVILevel;
121
+ /** Monotonically increasing version of the agent's context ledger. */
22
122
  contextVersion: number;
23
- /** Session identifier for correlating multi-step agent workflows */
123
+ /**
124
+ * Session identifier for correlating multi-step agent workflows.
125
+ *
126
+ * @defaultValue undefined
127
+ */
24
128
  sessionId?: string;
129
+ /**
130
+ * Non-fatal warnings to surface to the consuming agent.
131
+ *
132
+ * @defaultValue undefined
133
+ */
25
134
  warnings?: Warning[];
26
135
  }
136
+ /**
137
+ * Recommended action an LLM agent should take in response to an error.
138
+ *
139
+ * @remarks
140
+ * Agent actions are attached to {@link LAFSError.agentAction} and provide
141
+ * machine-actionable recovery guidance. The default action for a given error
142
+ * is derived from its {@link LAFSErrorCategory} via the category-action map.
143
+ *
144
+ * - `retry` - Repeat the same request (transient failure).
145
+ * - `retry_modified` - Modify input and retry (validation / conflict).
146
+ * - `escalate` - Hand off to a human or higher-privilege agent.
147
+ * - `stop` - Cease the current workflow; recovery is not possible.
148
+ * - `wait` - Back off and retry after a delay (rate limiting).
149
+ * - `refresh_context` - Reload stale context before retrying.
150
+ * - `authenticate` - Acquire or refresh credentials.
151
+ */
27
152
  export type LAFSAgentAction = 'retry' | 'retry_modified' | 'escalate' | 'stop' | 'wait' | 'refresh_context' | 'authenticate';
153
+ /**
154
+ * Immutable set of all valid {@link LAFSAgentAction} values.
155
+ *
156
+ * @remarks
157
+ * Used by {@link isAgentAction} for runtime validation. Being a `ReadonlySet`
158
+ * prevents accidental mutation of the canonical action list.
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * if (AGENT_ACTIONS.has(action)) {
163
+ * // action is a valid LAFSAgentAction
164
+ * }
165
+ * ```
166
+ */
28
167
  export declare const AGENT_ACTIONS: ReadonlySet<LAFSAgentAction>;
168
+ /**
169
+ * Type guard that checks whether an unknown value is a valid {@link LAFSAgentAction}.
170
+ *
171
+ * @param value - The value to test.
172
+ * @returns `true` if `value` is one of the recognised agent action strings.
173
+ *
174
+ * @remarks
175
+ * Performs a string type check followed by a set membership lookup against
176
+ * {@link AGENT_ACTIONS}. Safe to call with any input type.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * const action: unknown = 'retry';
181
+ * if (isAgentAction(action)) {
182
+ * // action is narrowed to LAFSAgentAction
183
+ * }
184
+ * ```
185
+ */
29
186
  export declare function isAgentAction(value: unknown): value is LAFSAgentAction;
187
+ /**
188
+ * Structured error payload returned in a failing LAFS envelope.
189
+ *
190
+ * @remarks
191
+ * Every error carries a stable `code`, a classification `category`, and
192
+ * machine-actionable recovery hints (`agentAction`, `retryable`,
193
+ * `retryAfterMs`). Error codes are stable within a major version and are
194
+ * registered in `schemas/v1/error-registry.json`.
195
+ */
30
196
  export interface LAFSError {
197
+ /** Stable, machine-readable error code (e.g. `"E_NOT_FOUND"`). */
31
198
  code: string;
199
+ /** Human-readable description of the error. */
32
200
  message: string;
201
+ /** High-level classification of the error. */
33
202
  category: LAFSErrorCategory;
203
+ /** Whether the operation can be retried without modification. */
34
204
  retryable: boolean;
205
+ /** Suggested delay in milliseconds before retrying, or `null` if not applicable. */
35
206
  retryAfterMs: number | null;
207
+ /** Arbitrary key-value pairs with additional context about the error. */
36
208
  details: Record<string, unknown>;
209
+ /**
210
+ * Recommended action for the consuming agent to take.
211
+ *
212
+ * @defaultValue undefined
213
+ */
37
214
  agentAction?: LAFSAgentAction;
215
+ /**
216
+ * When `true`, the error requires human intervention or a higher-privilege agent.
217
+ *
218
+ * @defaultValue undefined
219
+ */
38
220
  escalationRequired?: boolean;
221
+ /**
222
+ * Free-text description of a suggested recovery action for the agent.
223
+ *
224
+ * @defaultValue undefined
225
+ */
39
226
  suggestedAction?: string;
227
+ /**
228
+ * URL pointing to documentation about this error code.
229
+ *
230
+ * @defaultValue undefined
231
+ */
40
232
  docUrl?: string;
41
233
  }
234
+ /**
235
+ * Cursor-based pagination metadata.
236
+ *
237
+ * @remarks
238
+ * Cursor pagination is preferred for large or frequently-changing datasets
239
+ * because it avoids the offset-drift problem. The `nextCursor` value is
240
+ * opaque to the consumer and MUST be passed back verbatim on the next request.
241
+ */
42
242
  export interface LAFSPageCursor {
243
+ /** Discriminant identifying cursor-based pagination. */
43
244
  mode: 'cursor';
245
+ /** Opaque cursor for fetching the next page, or `null` when at the end. */
44
246
  nextCursor: string | null;
247
+ /** Whether additional pages exist beyond the current one. */
45
248
  hasMore: boolean;
249
+ /**
250
+ * Maximum number of items per page.
251
+ *
252
+ * @defaultValue undefined
253
+ */
46
254
  limit?: number;
255
+ /**
256
+ * Total number of items across all pages, or `null` if unknown.
257
+ *
258
+ * @defaultValue undefined
259
+ */
47
260
  total?: number | null;
48
261
  }
262
+ /**
263
+ * Offset-based pagination metadata.
264
+ *
265
+ * @remarks
266
+ * Offset pagination provides simple numeric indexing into the result set.
267
+ * It is straightforward but may suffer from drift when items are inserted
268
+ * or deleted between pages.
269
+ */
49
270
  export interface LAFSPageOffset {
271
+ /** Discriminant identifying offset-based pagination. */
50
272
  mode: 'offset';
273
+ /** Maximum number of items per page. */
51
274
  limit: number;
275
+ /** Zero-based index of the first item in this page. */
52
276
  offset: number;
277
+ /** Whether additional pages exist beyond the current one. */
53
278
  hasMore: boolean;
279
+ /**
280
+ * Total number of items across all pages, or `null` if unknown.
281
+ *
282
+ * @defaultValue undefined
283
+ */
54
284
  total?: number | null;
55
285
  }
286
+ /**
287
+ * Sentinel pagination mode indicating no pagination is applied.
288
+ *
289
+ * @remarks
290
+ * Used when the full result set is returned in a single envelope and no
291
+ * further pages exist.
292
+ */
56
293
  export interface LAFSPageNone {
294
+ /** Discriminant indicating no pagination. */
57
295
  mode: 'none';
58
296
  }
297
+ /**
298
+ * Discriminated union of all supported pagination modes.
299
+ *
300
+ * @remarks
301
+ * Consumers should switch on the `mode` discriminant to determine which
302
+ * pagination fields are available.
303
+ */
59
304
  export type LAFSPage = LAFSPageCursor | LAFSPageOffset | LAFSPageNone;
305
+ /**
306
+ * A single entry in the context ledger recording one state mutation.
307
+ *
308
+ * @remarks
309
+ * Each entry captures the delta applied to the agent's shared context by a
310
+ * specific operation, enabling conflict detection and replay.
311
+ */
60
312
  export interface ContextLedgerEntry {
313
+ /** Unique identifier for this ledger entry. */
61
314
  entryId: string;
315
+ /** ISO 8601 timestamp of when the mutation occurred. */
62
316
  timestamp: string;
317
+ /** Operation that produced this context change. */
63
318
  operation: string;
319
+ /** Key-value delta describing the context fields that changed. */
64
320
  contextDelta: Record<string, unknown>;
321
+ /**
322
+ * Request identifier that triggered this entry, for tracing.
323
+ *
324
+ * @defaultValue undefined
325
+ */
65
326
  requestId?: string;
66
327
  }
328
+ /**
329
+ * Append-only ledger tracking context mutations across agent interactions.
330
+ *
331
+ * @remarks
332
+ * The context ledger enables optimistic concurrency control by pairing a
333
+ * monotonically increasing `version` with a `checksum` of the current state.
334
+ * Agents include `contextVersion` in the envelope meta to signal which ledger
335
+ * version they are operating against.
336
+ */
67
337
  export interface ContextLedger {
338
+ /** Unique identifier for this ledger instance. */
68
339
  ledgerId: string;
340
+ /** Monotonically increasing version incremented on each mutation. */
69
341
  version: number;
342
+ /** ISO 8601 timestamp of when the ledger was created. */
70
343
  createdAt: string;
344
+ /** ISO 8601 timestamp of the most recent mutation. */
71
345
  updatedAt: string;
346
+ /** Ordered list of context mutations from oldest to newest. */
72
347
  entries: ContextLedgerEntry[];
348
+ /** Integrity checksum of the current ledger state. */
73
349
  checksum: string;
350
+ /** Maximum number of entries retained before oldest entries are pruned. */
74
351
  maxEntries: number;
75
352
  }
353
+ /**
354
+ * Top-level LAFS response envelope wrapping every operation result.
355
+ *
356
+ * @remarks
357
+ * The envelope is the canonical response shape for all LAFS-compliant
358
+ * operations. Exactly one of `result` or `error` MUST be non-null:
359
+ * `success=true` implies `error` is `null`; `success=false` implies
360
+ * `result` is `null` (unless the operation intentionally provides
361
+ * actionable data alongside the error).
362
+ */
76
363
  export interface LAFSEnvelope {
364
+ /** JSON Schema URL identifying the envelope schema version. */
77
365
  $schema: 'https://lafs.dev/schemas/v1/envelope.schema.json';
366
+ /** Protocol and request metadata. */
78
367
  _meta: LAFSMeta;
368
+ /** Whether the operation completed successfully. */
79
369
  success: boolean;
370
+ /** Operation result payload, or `null` on failure. */
80
371
  result: Record<string, unknown> | Record<string, unknown>[] | null;
372
+ /**
373
+ * Structured error payload, or `null` on success.
374
+ *
375
+ * @defaultValue undefined
376
+ */
81
377
  error?: LAFSError | null;
378
+ /**
379
+ * Pagination metadata when the result is a paginated collection.
380
+ *
381
+ * @defaultValue undefined
382
+ */
82
383
  page?: LAFSPage | null;
384
+ /**
385
+ * Vendor or protocol extension data keyed by extension identifier.
386
+ *
387
+ * @defaultValue undefined
388
+ */
83
389
  _extensions?: Record<string, unknown>;
84
390
  }
391
+ /**
392
+ * Input parameters for resolving the output format via flag semantics.
393
+ *
394
+ * @remarks
395
+ * The resolution precedence is: explicit flag (`--json` / `--human`) >
396
+ * `requestedFormat` > project default > user default > TTY heuristic >
397
+ * protocol default (`json`). See `flagSemantics.ts` for the full algorithm.
398
+ */
85
399
  export interface FlagInput {
400
+ /**
401
+ * Explicitly requested output format string.
402
+ *
403
+ * @defaultValue undefined
404
+ */
86
405
  requestedFormat?: 'json' | 'human';
406
+ /**
407
+ * Whether the `--json` CLI flag was provided.
408
+ *
409
+ * @defaultValue undefined
410
+ */
87
411
  jsonFlag?: boolean;
412
+ /**
413
+ * Whether the `--human` CLI flag was provided.
414
+ *
415
+ * @defaultValue undefined
416
+ */
88
417
  humanFlag?: boolean;
418
+ /**
419
+ * Project-level default output format from configuration.
420
+ *
421
+ * @defaultValue undefined
422
+ */
89
423
  projectDefault?: 'json' | 'human';
424
+ /**
425
+ * User-level default output format from configuration.
426
+ *
427
+ * @defaultValue undefined
428
+ */
90
429
  userDefault?: 'json' | 'human';
91
430
  /**
92
431
  * When true, indicates the output is connected to an interactive terminal.
@@ -95,42 +434,168 @@ export interface FlagInput {
95
434
  * to `"json"` per the LAFS protocol.
96
435
  *
97
436
  * CLI tools should pass `process.stdout.isTTY ?? false` here.
437
+ *
438
+ * @defaultValue undefined
98
439
  */
99
440
  tty?: boolean;
100
- /** Suppress non-essential output for scripting. When true, only essential data is returned. */
441
+ /**
442
+ * Suppress non-essential output for scripting. When true, only essential data is returned.
443
+ *
444
+ * @defaultValue undefined
445
+ */
101
446
  quiet?: boolean;
102
447
  }
448
+ /**
449
+ * Result of a LAFS conformance test run.
450
+ *
451
+ * @remarks
452
+ * Returned by the conformance test runners in `conformance.ts`. The `ok`
453
+ * flag is `true` only when every individual check passed.
454
+ */
103
455
  export interface ConformanceReport {
456
+ /** `true` if all checks passed; `false` if any check failed. */
104
457
  ok: boolean;
458
+ /** Individual conformance check results. */
105
459
  checks: Array<{
460
+ /** Name of the conformance check. */
106
461
  name: string;
462
+ /** Whether this individual check passed. */
107
463
  pass: boolean;
464
+ /**
465
+ * Additional detail about a failure or the check's outcome.
466
+ *
467
+ * @defaultValue undefined
468
+ */
108
469
  detail?: string;
109
470
  }>;
110
471
  }
472
+ /**
473
+ * Options controlling token-budget enforcement behaviour.
474
+ *
475
+ * @remarks
476
+ * When a LAFS envelope's estimated token count exceeds the caller's budget,
477
+ * these options determine whether the result is truncated and whether a
478
+ * callback is invoked.
479
+ */
111
480
  export type BudgetEnforcementOptions = {
481
+ /**
482
+ * When `true`, oversized results are truncated to fit within the budget.
483
+ *
484
+ * @defaultValue undefined
485
+ */
112
486
  truncateOnExceed?: boolean;
487
+ /**
488
+ * Callback invoked when the estimated token count exceeds the budget.
489
+ *
490
+ * @param estimated - Estimated token count of the envelope.
491
+ * @param budget - Maximum allowed token count.
492
+ *
493
+ * @defaultValue undefined
494
+ */
113
495
  onBudgetExceeded?: (estimated: number, budget: number) => void;
114
496
  };
497
+ /**
498
+ * Token-count estimate attached to a budget-aware envelope.
499
+ *
500
+ * @remarks
501
+ * Provides transparency into the estimated cost of an envelope so agents
502
+ * can track and enforce token budgets across multi-step workflows.
503
+ */
115
504
  export interface TokenEstimate {
505
+ /** Estimated token count of the envelope after any truncation. */
116
506
  estimated: number;
507
+ /**
508
+ * Whether the result was truncated to fit within the budget.
509
+ *
510
+ * @defaultValue undefined
511
+ */
117
512
  truncated?: boolean;
513
+ /**
514
+ * Original estimated token count before truncation, if truncation occurred.
515
+ *
516
+ * @defaultValue undefined
517
+ */
118
518
  originalEstimate?: number;
119
519
  }
520
+ /**
521
+ * Extended metadata block that includes an optional token-budget estimate.
522
+ *
523
+ * @remarks
524
+ * Extends {@link LAFSMeta} with a `_tokenEstimate` field used by the budget
525
+ * enforcement middleware to record the estimated cost of the envelope.
526
+ */
120
527
  export interface LAFSMetaWithBudget extends LAFSMeta {
528
+ /**
529
+ * Token-count estimate for budget tracking.
530
+ *
531
+ * @defaultValue undefined
532
+ */
121
533
  _tokenEstimate?: TokenEstimate;
122
534
  }
535
+ /**
536
+ * LAFS envelope variant whose metadata includes token-budget estimates.
537
+ *
538
+ * @remarks
539
+ * Replaces the standard `_meta` with {@link LAFSMetaWithBudget} so that
540
+ * budget enforcement results can be carried alongside the normal envelope
541
+ * payload.
542
+ */
123
543
  export interface LAFSEnvelopeWithBudget extends Omit<LAFSEnvelope, '_meta'> {
544
+ /** Metadata block extended with token-budget estimation. */
124
545
  _meta: LAFSMetaWithBudget;
125
546
  }
547
+ /**
548
+ * Middleware function that transforms a LAFS envelope.
549
+ *
550
+ * @remarks
551
+ * Simple one-in-one-out transform with no `next` callback. Used for
552
+ * post-processing pipelines where ordering is managed externally.
553
+ *
554
+ * @param envelope - The envelope to transform.
555
+ * @returns The transformed envelope, optionally as a `Promise`.
556
+ */
126
557
  export type MiddlewareFunction = (envelope: LAFSEnvelope) => LAFSEnvelope | Promise<LAFSEnvelope>;
558
+ /**
559
+ * Continuation function passed to {@link BudgetMiddleware} to invoke the next
560
+ * middleware in the chain.
561
+ *
562
+ * @remarks
563
+ * Calling `next()` delegates to the downstream middleware (or the terminal
564
+ * handler). The returned envelope may be further transformed by the caller.
565
+ *
566
+ * @returns The envelope produced by the downstream handler.
567
+ */
127
568
  export type NextFunction = () => LAFSEnvelope | Promise<LAFSEnvelope>;
569
+ /**
570
+ * Middleware function for token-budget enforcement with chain delegation.
571
+ *
572
+ * @remarks
573
+ * Unlike {@link MiddlewareFunction}, budget middleware receives a `next`
574
+ * callback allowing it to intercept, modify, or short-circuit the
575
+ * downstream processing pipeline.
576
+ *
577
+ * @param envelope - The envelope entering this middleware stage.
578
+ * @param next - Continuation to invoke the next middleware in the chain.
579
+ * @returns The (possibly transformed) envelope.
580
+ */
128
581
  export type BudgetMiddleware = (envelope: LAFSEnvelope, next: NextFunction) => Promise<LAFSEnvelope> | LAFSEnvelope;
582
+ /**
583
+ * Outcome of running budget enforcement on a LAFS envelope.
584
+ *
585
+ * @remarks
586
+ * Returned by the budget enforcement pipeline so callers can inspect whether
587
+ * the envelope was truncated and how the estimate compares to the budget.
588
+ */
129
589
  export interface BudgetEnforcementResult {
590
+ /** The envelope after budget enforcement (possibly truncated). */
130
591
  envelope: LAFSEnvelope;
592
+ /** `true` if the estimated token count is within the allowed budget. */
131
593
  withinBudget: boolean;
594
+ /** Estimated token count of the final envelope. */
132
595
  estimatedTokens: number;
596
+ /** Maximum allowed token count that was enforced. */
133
597
  budget: number;
598
+ /** Whether the envelope's result was truncated to fit the budget. */
134
599
  truncated: boolean;
135
600
  }
136
601
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}