@nifrajs/agent-protocol 4.0.0 → 5.0.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/dist/index.js CHANGED
@@ -7,9 +7,11 @@
7
7
  */
8
8
  export const AGENT_PROTOCOL_VERSION = 1;
9
9
  const MAX_AGENT_EVENT_QUEUE_SIZE = 65_536;
10
+ // The final `assistant.message` / `tool.completed` carries what the deltas streamed.
11
+ const isTransientEvent = (event) => event.type === "assistant.delta" || event.type === "tool.delta";
10
12
  /**
11
- * Small bounded event stream for RPC clients and UIs. The authoritative event history belongs to
12
- * the backend/session store; this live view may drop old transient events if a consumer falls behind.
13
+ * Small bounded event stream for RPC clients and UIs. When a consumer falls behind, the oldest
14
+ * delta goes first; a lifecycle event is dropped only once no delta is left to drop.
13
15
  */
14
16
  export function createAgentEventStream(maxQueueSize = 256) {
15
17
  if (!Number.isSafeInteger(maxQueueSize) ||
@@ -46,8 +48,14 @@ export function createAgentEventStream(maxQueueSize = 256) {
46
48
  return;
47
49
  }
48
50
  if (queue.length >= maxQueueSize) {
49
- queue.shift();
50
51
  dropped += 1;
52
+ const at = queue.findIndex(isTransientEvent);
53
+ if (at >= 0)
54
+ queue.splice(at, 1);
55
+ else if (isTransientEvent(event))
56
+ return;
57
+ else
58
+ queue.shift();
51
59
  }
52
60
  queue.push(event);
53
61
  },
@@ -102,6 +110,8 @@ export * from "./run-lifecycle.js";
102
110
  /** Shared fail-closed byte-limit policy used by independent HTTP adapters. */
103
111
  export * from "./transport-policy.js";
104
112
  const AGENT_TOKEN_RE = /^[A-Za-z0-9._:/-]{1,128}$/;
113
+ const AGENT_EXTENSION_TYPE_RE = /^x-[a-z0-9]+(?:-[a-z0-9]+)*\.[a-z0-9]+(?:[._-][a-z0-9]+)*$/;
114
+ const AGENT_MAX_EXTENSION_TYPE = 64;
105
115
  const AGENT_MAX_TEXT = 256 * 1024;
106
116
  const AGENT_MAX_PAYLOAD_TEXT = 64 * 1024;
107
117
  const AGENT_MAX_ARRAY = 256;
@@ -115,12 +125,158 @@ const AGENT_STATUSES = new Set([
115
125
  "failed",
116
126
  "stopped",
117
127
  ]);
128
+ const AGENT_PLAN_STATUSES = new Set(["pending", "in_progress", "completed"]);
129
+ const AGENT_PLAN_PRIORITIES = new Set(["high", "medium", "low"]);
130
+ const AGENT_MAX_PLAN_ENTRY = 4_096;
118
131
  const AGENT_COMPACTION_REASONS = new Set([
119
132
  "manual",
120
133
  "threshold",
121
134
  "overflow",
122
135
  "workflow",
123
136
  ]);
137
+ /** Longest `text`, `prompt`, or error message an event may carry, in UTF-16 code units. */
138
+ export const AGENT_MAX_EVENT_TEXT = AGENT_MAX_TEXT;
139
+ /** Longest string an event's `input`, `output`, or `details` value may carry. */
140
+ export const AGENT_MAX_PAYLOAD_STRING = AGENT_MAX_PAYLOAD_TEXT;
141
+ const AGENT_TRUNCATED = "…[truncated]";
142
+ const AGENT_REPLACEMENT = String.fromCodePoint(0xfffd);
143
+ // Soft budget for the strings of one bounded value, so a display copy stays near one text field.
144
+ const AGENT_MAX_VALUE_CHARS = AGENT_MAX_TEXT;
145
+ /**
146
+ * Split text into pieces that each fit an event's text field, so a long reply travels as
147
+ * consecutive events instead of failing validation. Joined, the pieces give back the text with
148
+ * each NUL replaced by U+FFFD. A piece ends after a line break when one falls in its last
149
+ * quarter, and never between the halves of a surrogate pair. Empty text gives one empty piece.
150
+ */
151
+ export function splitAgentText(text, maxChars = AGENT_MAX_TEXT) {
152
+ if (!Number.isSafeInteger(maxChars) || maxChars < 2 || maxChars > AGENT_MAX_TEXT)
153
+ throw new RangeError(`splitAgentText: maxChars must be between 2 and ${AGENT_MAX_TEXT}`);
154
+ const clean = text.replaceAll("\0", AGENT_REPLACEMENT);
155
+ if (clean.length <= maxChars)
156
+ return [clean];
157
+ const pieces = [];
158
+ let start = 0;
159
+ while (clean.length - start > maxChars) {
160
+ let end = start + maxChars;
161
+ const searchFrom = start + Math.floor((maxChars * 3) / 4);
162
+ const lineEnd = clean.slice(searchFrom, end).lastIndexOf("\n");
163
+ if (lineEnd !== -1)
164
+ end = searchFrom + lineEnd + 1;
165
+ else if (isHighSurrogate(clean.charCodeAt(end - 1)) && isLowSurrogate(clean.charCodeAt(end)))
166
+ end -= 1;
167
+ pieces.push(clean.slice(start, end));
168
+ start = end;
169
+ }
170
+ pieces.push(clean.slice(start));
171
+ return pieces;
172
+ }
173
+ /**
174
+ * Bound text for one event field: NUL becomes U+FFFD and text past `maxChars` is cut, ending
175
+ * in a truncation marker, never between the halves of a surrogate pair.
176
+ */
177
+ export function boundAgentText(text, maxChars = AGENT_MAX_TEXT) {
178
+ if (!Number.isSafeInteger(maxChars) ||
179
+ maxChars < AGENT_TRUNCATED.length ||
180
+ maxChars > AGENT_MAX_TEXT)
181
+ throw new RangeError(`boundAgentText: maxChars must be between ${AGENT_TRUNCATED.length} and ${AGENT_MAX_TEXT}`);
182
+ const clean = text.replaceAll("\0", AGENT_REPLACEMENT);
183
+ return clean.length <= maxChars ? clean : truncateAgentText(clean, maxChars);
184
+ }
185
+ /**
186
+ * A copy of a JSON-like value that fits an event's `input`, `output`, or `details`, for display
187
+ * only: the tool, model, or store keeps the full value. Strings are cut with a truncation marker
188
+ * (and their NULs replaced); arrays keep their first items and end with a marker string; objects
189
+ * keep their first keys and drop entries whose key the protocol refuses; a container too deep
190
+ * becomes a marker string; numbers past the safe-integer range become strings, non-finite ones
191
+ * null; functions, symbols, bigints, and `undefined` are dropped (null inside an array). Returns
192
+ * `undefined` when the value itself is one of those.
193
+ */
194
+ export function boundAgentValue(value) {
195
+ const copy = copyBoundedAgentValue(value, 0, { nodes: 2_048, chars: AGENT_MAX_VALUE_CHARS });
196
+ return copy === AGENT_OMIT ? undefined : copy;
197
+ }
198
+ const AGENT_OMIT = Symbol("omit");
199
+ function copyBoundedAgentValue(value, depth, budget) {
200
+ if (value === undefined ||
201
+ typeof value === "function" ||
202
+ typeof value === "symbol" ||
203
+ typeof value === "bigint")
204
+ return AGENT_OMIT;
205
+ if (budget.nodes <= 0)
206
+ return AGENT_OMIT;
207
+ budget.nodes -= 1;
208
+ if (value === null || typeof value === "boolean")
209
+ return value;
210
+ if (typeof value === "number") {
211
+ if (!Number.isFinite(value))
212
+ return null;
213
+ return Math.abs(value) <= Number.MAX_SAFE_INTEGER ? value : String(value);
214
+ }
215
+ if (typeof value === "string") {
216
+ const clean = value.replaceAll("\0", AGENT_REPLACEMENT);
217
+ const limit = Math.max(AGENT_TRUNCATED.length, Math.min(AGENT_MAX_PAYLOAD_TEXT, budget.chars));
218
+ const bounded = clean.length <= limit ? clean : truncateAgentText(clean, limit);
219
+ budget.chars = Math.max(0, budget.chars - bounded.length);
220
+ return bounded;
221
+ }
222
+ if (typeof value !== "object")
223
+ return AGENT_OMIT;
224
+ if (Array.isArray(value)) {
225
+ if (depth >= AGENT_MAX_PAYLOAD_DEPTH)
226
+ return value.length === 0 ? [] : AGENT_TRUNCATED;
227
+ const copy = [];
228
+ for (const [index, item] of value.entries()) {
229
+ if (copy.length === AGENT_MAX_ARRAY - 1 && value.length > AGENT_MAX_ARRAY) {
230
+ const marker = copyBoundedAgentValue(`…[${value.length - index} more items]`, depth + 1, budget);
231
+ if (marker !== AGENT_OMIT)
232
+ copy.push(marker);
233
+ break;
234
+ }
235
+ // An item JSON has no form for stands as null, which costs a node like any other.
236
+ const child = copyBoundedAgentValue(item, depth + 1, budget);
237
+ const kept = child === AGENT_OMIT ? copyBoundedAgentValue(null, depth + 1, budget) : child;
238
+ if (kept === AGENT_OMIT)
239
+ break;
240
+ copy.push(kept);
241
+ }
242
+ return copy;
243
+ }
244
+ const entries = Object.entries(value);
245
+ if (depth >= AGENT_MAX_PAYLOAD_DEPTH)
246
+ return entries.length === 0 ? {} : AGENT_TRUNCATED;
247
+ const copy = {};
248
+ let keys = 0;
249
+ for (const [key, item] of entries) {
250
+ if (keys === AGENT_MAX_OBJECT_KEYS || budget.nodes <= 0)
251
+ break;
252
+ if (!agentText(key, 128, false))
253
+ continue;
254
+ const child = copyBoundedAgentValue(item, depth + 1, budget);
255
+ if (child === AGENT_OMIT)
256
+ continue;
257
+ // A "__proto__" key from parsed JSON must stay an own entry, not replace the prototype.
258
+ Object.defineProperty(copy, key, {
259
+ value: child,
260
+ enumerable: true,
261
+ writable: true,
262
+ configurable: true,
263
+ });
264
+ keys += 1;
265
+ }
266
+ return copy;
267
+ }
268
+ function truncateAgentText(text, maxChars) {
269
+ let end = Math.max(0, maxChars - AGENT_TRUNCATED.length);
270
+ if (end > 0 && isHighSurrogate(text.charCodeAt(end - 1)))
271
+ end -= 1;
272
+ return `${text.slice(0, end)}${AGENT_TRUNCATED}`;
273
+ }
274
+ function isHighSurrogate(code) {
275
+ return code >= 0xd800 && code <= 0xdbff;
276
+ }
277
+ function isLowSurrogate(code) {
278
+ return code >= 0xdc00 && code <= 0xdfff;
279
+ }
124
280
  function agentRecord(value) {
125
281
  return value !== null && typeof value === "object" && !Array.isArray(value);
126
282
  }
@@ -152,125 +308,225 @@ function boundedAgentValue(value, depth = 0, state = { remaining: 2_048 }) {
152
308
  return false;
153
309
  return Object.entries(value).every(([key, child]) => agentText(key, 128, false) && boundedAgentValue(child, depth + 1, state));
154
310
  }
155
- function optionalBoundedAgentValue(record, key) {
156
- return !Object.hasOwn(record, key) || boundedAgentValue(record[key]);
311
+ function tokenProblem(value, field) {
312
+ return agentToken(value) ? undefined : `${field} must be 1-128 characters of [A-Za-z0-9._:/-]`;
313
+ }
314
+ function optionalTokenProblem(value, field) {
315
+ return value === undefined ? undefined : tokenProblem(value, field);
316
+ }
317
+ function textProblem(value, field, max = AGENT_MAX_TEXT, allowEmpty = true) {
318
+ if (typeof value !== "string")
319
+ return `${field} must be a string`;
320
+ if (value.length > max)
321
+ return `${field} is longer than ${max} characters`;
322
+ if (!allowEmpty && value.length === 0)
323
+ return `${field} must not be empty`;
324
+ return value.includes("\0") ? `${field} contains NUL` : undefined;
157
325
  }
158
- function validAgentError(value) {
326
+ function optionalTextProblem(value, field) {
327
+ return value === undefined ? undefined : textProblem(value, field);
328
+ }
329
+ function countProblem(value, field) {
330
+ return agentCount(value) ? undefined : `${field} must be a non-negative safe integer`;
331
+ }
332
+ function booleanProblem(value, field) {
333
+ return typeof value === "boolean" ? undefined : `${field} must be a boolean`;
334
+ }
335
+ function tokenListProblem(value, field) {
336
+ if (!Array.isArray(value) || value.length > AGENT_MAX_ARRAY)
337
+ return `${field} must be an array of at most ${AGENT_MAX_ARRAY} tokens`;
338
+ return value.every(agentToken) ? undefined : `${field} must hold only tokens`;
339
+ }
340
+ function valueProblem(record, key, field) {
341
+ return !Object.hasOwn(record, key) || boundedAgentValue(record[key])
342
+ ? undefined
343
+ : `${field} is outside the payload bounds (strings ${AGENT_MAX_PAYLOAD_TEXT} characters, ${AGENT_MAX_ARRAY} items or keys, depth ${AGENT_MAX_PAYLOAD_DEPTH})`;
344
+ }
345
+ function optionalCountProblem(value, field) {
346
+ return value === undefined ? undefined : countProblem(value, field);
347
+ }
348
+ function planEntriesProblem(value, field) {
349
+ if (!Array.isArray(value) || value.length > AGENT_MAX_ARRAY)
350
+ return `${field} must be an array of at most ${AGENT_MAX_ARRAY} entries`;
351
+ for (const [index, entry] of value.entries()) {
352
+ const at = `${field}[${index}]`;
353
+ if (!agentRecord(entry))
354
+ return `${at} must be an object`;
355
+ const problem = textProblem(entry.content, `${at}.content`, AGENT_MAX_PLAN_ENTRY) ??
356
+ (typeof entry.status === "string" && AGENT_PLAN_STATUSES.has(entry.status)
357
+ ? undefined
358
+ : `${at}.status must be one of ${[...AGENT_PLAN_STATUSES].join(", ")}`) ??
359
+ (entry.priority === undefined ||
360
+ (typeof entry.priority === "string" && AGENT_PLAN_PRIORITIES.has(entry.priority))
361
+ ? undefined
362
+ : `${at}.priority must be one of ${[...AGENT_PLAN_PRIORITIES].join(", ")}`);
363
+ if (problem !== undefined)
364
+ return problem;
365
+ }
366
+ return undefined;
367
+ }
368
+ function errorProblem(value, field) {
159
369
  if (!agentRecord(value))
160
- return false;
161
- return (agentToken(value.code) &&
162
- agentText(value.message, AGENT_MAX_TEXT, false) &&
163
- optionalBoundedAgentValue(value, "details"));
370
+ return `${field} must be an object`;
371
+ return (tokenProblem(value.code, `${field}.code`) ??
372
+ textProblem(value.message, `${field}.message`, AGENT_MAX_TEXT, false) ??
373
+ valueProblem(value, "details", `${field}.details`));
164
374
  }
165
- function validAgentSnapshot(value, sessionId) {
375
+ function snapshotProblem(value, sessionId, field) {
166
376
  if (!agentRecord(value))
167
- return false;
168
- if (value.version !== AGENT_PROTOCOL_VERSION ||
169
- !agentToken(value.id) ||
170
- value.id !== sessionId ||
171
- !agentToken(value.backend) ||
172
- !agentText(value.cwd, 4_096, false) ||
173
- typeof value.status !== "string" ||
174
- !AGENT_STATUSES.has(value.status) ||
175
- !agentCount(value.createdAt) ||
176
- !agentCount(value.updatedAt) ||
177
- !agentCount(value.lastSeq) ||
178
- !Array.isArray(value.capabilities) ||
179
- value.capabilities.length > AGENT_MAX_ARRAY ||
180
- !value.capabilities.every(agentToken))
181
- return false;
182
- if (value.activeTurnId !== undefined && !agentToken(value.activeTurnId))
183
- return false;
184
- if (value.extensionRevision !== undefined && !agentToken(value.extensionRevision))
185
- return false;
186
- return true;
377
+ return `${field} must be an object`;
378
+ if (value.version !== AGENT_PROTOCOL_VERSION)
379
+ return `${field}.version must be ${AGENT_PROTOCOL_VERSION}`;
380
+ if (value.id !== sessionId)
381
+ return `${field}.id must be the event's sessionId`;
382
+ return (tokenProblem(value.backend, `${field}.backend`) ??
383
+ textProblem(value.cwd, `${field}.cwd`, 4_096, false) ??
384
+ (typeof value.status === "string" && AGENT_STATUSES.has(value.status)
385
+ ? undefined
386
+ : `${field}.status must be one of ${[...AGENT_STATUSES].join(", ")}`) ??
387
+ countProblem(value.createdAt, `${field}.createdAt`) ??
388
+ countProblem(value.updatedAt, `${field}.updatedAt`) ??
389
+ countProblem(value.lastSeq, `${field}.lastSeq`) ??
390
+ tokenListProblem(value.capabilities, `${field}.capabilities`) ??
391
+ optionalTokenProblem(value.activeTurnId, `${field}.activeTurnId`) ??
392
+ optionalTokenProblem(value.extensionRevision, `${field}.extensionRevision`));
187
393
  }
188
- function validRepairTask(value) {
394
+ function repairTaskProblem(value, field) {
189
395
  if (!agentRecord(value))
190
- return false;
191
- return (agentToken(value.id) &&
396
+ return `${field} must be an object`;
397
+ return (tokenProblem(value.id, `${field}.id`) ??
192
398
  (value.verification === "check" ||
193
399
  value.verification === "assure" ||
194
- value.verification === "test") &&
195
- agentText(value.cwd, 4_096, false) &&
196
- agentText(value.reason, AGENT_MAX_TEXT, false) &&
197
- Array.isArray(value.capabilities) &&
198
- value.capabilities.length <= AGENT_MAX_ARRAY &&
199
- value.capabilities.every(agentToken) &&
200
- (value.output === undefined || agentText(value.output)) &&
201
- optionalBoundedAgentValue(value, "report"));
400
+ value.verification === "test"
401
+ ? undefined
402
+ : `${field}.verification must be check, assure, or test`) ??
403
+ textProblem(value.cwd, `${field}.cwd`, 4_096, false) ??
404
+ textProblem(value.reason, `${field}.reason`, AGENT_MAX_TEXT, false) ??
405
+ tokenListProblem(value.capabilities, `${field}.capabilities`) ??
406
+ optionalTextProblem(value.output, `${field}.output`) ??
407
+ valueProblem(value, "report", `${field}.report`));
408
+ }
409
+ /**
410
+ * Whether `type` names an extension event: `x-<vendor>.<name>` in lowercase letters, digits, and
411
+ * single `-`, `.`, or `_` separators, at most 64 characters.
412
+ */
413
+ export function isAgentExtensionEventType(type) {
414
+ return (typeof type === "string" &&
415
+ type.length <= AGENT_MAX_EXTENSION_TYPE &&
416
+ AGENT_EXTENSION_TYPE_RE.test(type));
202
417
  }
203
418
  /** Validate the complete discriminated event union before a projection or UI consumer sees it. */
204
419
  export function isAgentEvent(value) {
420
+ return agentEventProblem(value) === undefined;
421
+ }
422
+ /**
423
+ * Why `value` is not a valid agent event, naming the field and the limit it broke but never its
424
+ * content, so the text is safe to log or show; `undefined` when it is valid.
425
+ */
426
+ export function agentEventProblem(value) {
205
427
  if (!agentRecord(value))
206
- return false;
207
- if (value.version !== AGENT_PROTOCOL_VERSION ||
208
- !agentToken(value.sessionId) ||
209
- !agentCount(value.seq) ||
210
- !agentCount(value.at) ||
211
- typeof value.type !== "string")
212
- return false;
213
- switch (value.type) {
428
+ return "event must be an object";
429
+ if (value.version !== AGENT_PROTOCOL_VERSION)
430
+ return `version must be ${AGENT_PROTOCOL_VERSION}`;
431
+ const base = tokenProblem(value.sessionId, "sessionId") ??
432
+ countProblem(value.seq, "seq") ??
433
+ countProblem(value.at, "at");
434
+ if (base !== undefined)
435
+ return base;
436
+ if (typeof value.type !== "string")
437
+ return "type must be a string";
438
+ const type = value.type;
439
+ switch (type) {
214
440
  case "session.started":
215
441
  case "session.updated":
216
442
  case "session.completed":
217
- return validAgentSnapshot(value.snapshot, value.sessionId);
443
+ return snapshotProblem(value.snapshot, value.sessionId, `${type}.snapshot`);
218
444
  case "turn.started":
219
- return agentToken(value.turnId) && agentText(value.prompt);
445
+ return (tokenProblem(value.turnId, `${type}.turnId`) ?? textProblem(value.prompt, `${type}.prompt`));
220
446
  case "assistant.delta":
221
447
  case "assistant.message":
222
- return agentToken(value.turnId) && agentText(value.text);
448
+ return tokenProblem(value.turnId, `${type}.turnId`) ?? textProblem(value.text, `${type}.text`);
449
+ case "reasoning.delta":
450
+ return (tokenProblem(value.turnId, `${type}.turnId`) ??
451
+ optionalTokenProblem(value.itemId, `${type}.itemId`) ??
452
+ textProblem(value.text, `${type}.text`));
453
+ case "plan.updated":
454
+ return (tokenProblem(value.turnId, `${type}.turnId`) ??
455
+ optionalTokenProblem(value.callId, `${type}.callId`) ??
456
+ (value.explanation === undefined
457
+ ? undefined
458
+ : textProblem(value.explanation, `${type}.explanation`, AGENT_MAX_PAYLOAD_TEXT)) ??
459
+ planEntriesProblem(value.entries, `${type}.entries`));
460
+ case "context.usage":
461
+ return (optionalTokenProblem(value.turnId, `${type}.turnId`) ??
462
+ countProblem(value.usedTokens, `${type}.usedTokens`) ??
463
+ optionalCountProblem(value.windowTokens, `${type}.windowTokens`) ??
464
+ optionalCountProblem(value.inputTokens, `${type}.inputTokens`) ??
465
+ optionalCountProblem(value.outputTokens, `${type}.outputTokens`) ??
466
+ optionalCountProblem(value.cachedInputTokens, `${type}.cachedInputTokens`) ??
467
+ optionalCountProblem(value.reasoningTokens, `${type}.reasoningTokens`) ??
468
+ (value.estimated === undefined
469
+ ? undefined
470
+ : booleanProblem(value.estimated, `${type}.estimated`)));
223
471
  case "tool.started":
224
- return (agentToken(value.turnId) &&
225
- agentToken(value.callId) &&
226
- agentToken(value.name) &&
227
- optionalBoundedAgentValue(value, "input"));
472
+ return (tokenProblem(value.turnId, `${type}.turnId`) ??
473
+ tokenProblem(value.callId, `${type}.callId`) ??
474
+ tokenProblem(value.name, `${type}.name`) ??
475
+ valueProblem(value, "input", `${type}.input`));
228
476
  case "tool.delta":
229
- return agentToken(value.turnId) && agentToken(value.callId) && agentText(value.text);
477
+ return (tokenProblem(value.turnId, `${type}.turnId`) ??
478
+ tokenProblem(value.callId, `${type}.callId`) ??
479
+ textProblem(value.text, `${type}.text`));
230
480
  case "tool.completed":
231
- return (agentToken(value.turnId) &&
232
- agentToken(value.callId) &&
233
- agentToken(value.name) &&
234
- typeof value.ok === "boolean" &&
235
- optionalBoundedAgentValue(value, "output") &&
236
- (value.error === undefined || validAgentError(value.error)));
481
+ return (tokenProblem(value.turnId, `${type}.turnId`) ??
482
+ tokenProblem(value.callId, `${type}.callId`) ??
483
+ tokenProblem(value.name, `${type}.name`) ??
484
+ booleanProblem(value.ok, `${type}.ok`) ??
485
+ valueProblem(value, "output", `${type}.output`) ??
486
+ (value.error === undefined ? undefined : errorProblem(value.error, `${type}.error`)));
237
487
  case "approval.required":
238
- return (agentToken(value.turnId) &&
239
- agentToken(value.approvalId) &&
240
- agentText(value.action, AGENT_MAX_TEXT, false) &&
241
- agentToken(value.capability) &&
242
- (value.reason === undefined || agentText(value.reason)));
488
+ return (tokenProblem(value.turnId, `${type}.turnId`) ??
489
+ tokenProblem(value.approvalId, `${type}.approvalId`) ??
490
+ textProblem(value.action, `${type}.action`, AGENT_MAX_TEXT, false) ??
491
+ tokenProblem(value.capability, `${type}.capability`) ??
492
+ optionalTextProblem(value.reason, `${type}.reason`));
243
493
  case "approval.resolved":
244
- return ((value.turnId === undefined || agentToken(value.turnId)) &&
245
- agentToken(value.approvalId) &&
246
- typeof value.approved === "boolean" &&
247
- (value.reason === undefined || agentText(value.reason)));
494
+ return (optionalTokenProblem(value.turnId, `${type}.turnId`) ??
495
+ tokenProblem(value.approvalId, `${type}.approvalId`) ??
496
+ booleanProblem(value.approved, `${type}.approved`) ??
497
+ optionalTextProblem(value.reason, `${type}.reason`));
248
498
  case "repair.required":
249
- return (value.turnId === undefined || agentToken(value.turnId)) && validRepairTask(value.task);
499
+ return (optionalTokenProblem(value.turnId, `${type}.turnId`) ??
500
+ repairTaskProblem(value.task, `${type}.task`));
250
501
  case "verification.completed":
251
- return ((value.name === "check" || value.name === "assure" || value.name === "test") &&
252
- typeof value.ok === "boolean" &&
253
- optionalBoundedAgentValue(value, "report"));
502
+ return ((value.name === "check" || value.name === "assure" || value.name === "test"
503
+ ? undefined
504
+ : `${type}.name must be check, assure, or test`) ??
505
+ booleanProblem(value.ok, `${type}.ok`) ??
506
+ valueProblem(value, "report", `${type}.report`));
254
507
  case "memory.compacted":
255
- return (agentCount(value.before) &&
256
- agentCount(value.after) &&
257
- typeof value.reason === "string" &&
258
- AGENT_COMPACTION_REASONS.has(value.reason));
508
+ return (countProblem(value.before, `${type}.before`) ??
509
+ countProblem(value.after, `${type}.after`) ??
510
+ (typeof value.reason === "string" && AGENT_COMPACTION_REASONS.has(value.reason)
511
+ ? undefined
512
+ : `${type}.reason must be one of ${[...AGENT_COMPACTION_REASONS].join(", ")}`));
259
513
  case "extension.reloaded":
260
- return (agentToken(value.revision) &&
261
- Array.isArray(value.loaded) &&
262
- value.loaded.length <= AGENT_MAX_ARRAY &&
263
- value.loaded.every(agentToken) &&
264
- Array.isArray(value.disabled) &&
265
- value.disabled.length <= AGENT_MAX_ARRAY &&
266
- value.disabled.every(agentToken) &&
267
- typeof value.rolledBack === "boolean");
514
+ return (tokenProblem(value.revision, `${type}.revision`) ??
515
+ tokenListProblem(value.loaded, `${type}.loaded`) ??
516
+ tokenListProblem(value.disabled, `${type}.disabled`) ??
517
+ booleanProblem(value.rolledBack, `${type}.rolledBack`));
268
518
  case "session.failed":
269
- return validAgentError(value.error) && typeof value.recoverable === "boolean";
519
+ return (errorProblem(value.error, `${type}.error`) ??
520
+ booleanProblem(value.recoverable, `${type}.recoverable`));
270
521
  case "session.stopped":
271
- return value.reason === undefined || agentText(value.reason);
522
+ return optionalTextProblem(value.reason, `${type}.reason`);
272
523
  default:
273
- return false;
524
+ if (isAgentExtensionEventType(type))
525
+ return (optionalTokenProblem(value.turnId, `${type}.turnId`) ??
526
+ valueProblem(value, "data", `${type}.data`));
527
+ if (type.startsWith("x-"))
528
+ return "extension event type must be x-<vendor>.<name>, lowercase, at most 64 characters";
529
+ return agentToken(type) ? `unknown event type ${type}` : "unknown event type";
274
530
  }
275
531
  }
276
532
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/agent-protocol",
3
- "version": "4.0.0",
3
+ "version": "5.0.0",
4
4
  "description": "Small backend-neutral session and event protocol for Nifra coding agents.",
5
5
  "keywords": [
6
6
  "bun",
@@ -22,6 +22,11 @@
22
22
  "bun": "./src/index.ts",
23
23
  "types": "./dist/index.d.ts",
24
24
  "default": "./dist/index.js"
25
+ },
26
+ "./conformance": {
27
+ "bun": "./src/conformance.ts",
28
+ "types": "./dist/conformance.d.ts",
29
+ "default": "./dist/conformance.js"
25
30
  }
26
31
  },
27
32
  "files": [