@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.
- 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
package/dist/src/types.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,WAAW,GACX,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElE,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,QAAQ,CAK3C,CAAC;AAEH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|