recoder-a2a-sdk 1.0.0 → 1.0.1

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 (73) hide show
  1. package/dist/audit-event-Bhf9-AJV.d.mts +123 -0
  2. package/dist/audit-event-D8PTRp8M.d.ts +123 -0
  3. package/dist/audit-helpers.d.mts +2 -2
  4. package/dist/audit-helpers.d.ts +2 -2
  5. package/dist/audit-helpers.js +3 -82
  6. package/dist/audit-helpers.js.map +1 -1
  7. package/dist/audit-helpers.mjs +2 -2
  8. package/dist/{chunk-MAA7JZ2Q.mjs → chunk-6EHW6C4A.mjs} +2 -2
  9. package/dist/chunk-6EHW6C4A.mjs.map +1 -0
  10. package/dist/{chunk-7GY5FFBI.mjs → chunk-AWHOY6CI.mjs} +2 -2
  11. package/dist/chunk-AWHOY6CI.mjs.map +1 -0
  12. package/dist/{chunk-AGD6G5N6.mjs → chunk-FSPAU2U3.mjs} +2 -2
  13. package/dist/chunk-FSPAU2U3.mjs.map +1 -0
  14. package/dist/{chunk-WLNW7Y2H.mjs → chunk-KTGZQV57.mjs} +4 -88
  15. package/dist/chunk-KTGZQV57.mjs.map +1 -0
  16. package/dist/{chunk-JOZQDX7A.mjs → chunk-MJ45255C.mjs} +2 -2
  17. package/dist/chunk-MJ45255C.mjs.map +1 -0
  18. package/dist/{chunk-BWCRJDUB.mjs → chunk-V4EHWWUR.mjs} +2 -2
  19. package/dist/chunk-V4EHWWUR.mjs.map +1 -0
  20. package/dist/envelope-builders.d.mts +2 -2
  21. package/dist/envelope-builders.d.ts +2 -2
  22. package/dist/envelope-builders.js +3 -74
  23. package/dist/envelope-builders.js.map +1 -1
  24. package/dist/envelope-builders.mjs +2 -2
  25. package/dist/error-mapping.d.mts +3 -1
  26. package/dist/error-mapping.d.ts +3 -1
  27. package/dist/error-mapping.js +3 -74
  28. package/dist/error-mapping.js.map +1 -1
  29. package/dist/error-mapping.mjs +2 -2
  30. package/dist/error-taxonomy-CQgrKp9z.d.mts +102 -0
  31. package/dist/error-taxonomy-CQgrKp9z.d.ts +102 -0
  32. package/dist/index.d.mts +4 -2
  33. package/dist/index.d.ts +4 -2
  34. package/dist/index.js +3 -87
  35. package/dist/index.js.map +1 -1
  36. package/dist/index.mjs +6 -6
  37. package/dist/schemas/index.d.mts +4 -0
  38. package/dist/schemas/index.d.ts +4 -0
  39. package/dist/schemas/index.js +601 -0
  40. package/dist/schemas/index.js.map +1 -0
  41. package/dist/schemas/index.mjs +53 -0
  42. package/dist/schemas/index.mjs.map +1 -0
  43. package/dist/state-mapping.d.mts +2 -1
  44. package/dist/state-mapping.d.ts +2 -1
  45. package/dist/state-mapping.js +3 -74
  46. package/dist/state-mapping.js.map +1 -1
  47. package/dist/state-mapping.mjs +2 -2
  48. package/dist/task-envelope-B3X3seKp.d.ts +130 -0
  49. package/dist/task-envelope-QkecqlWq.d.mts +130 -0
  50. package/dist/types-Bt96SgOS.d.mts +34 -0
  51. package/dist/types-Bt96SgOS.d.ts +34 -0
  52. package/dist/validation.d.mts +4 -1
  53. package/dist/validation.d.ts +4 -1
  54. package/dist/validation.js +3 -74
  55. package/dist/validation.js.map +1 -1
  56. package/dist/validation.mjs +2 -2
  57. package/package.json +74 -16
  58. package/dist/chunk-7GY5FFBI.mjs.map +0 -1
  59. package/dist/chunk-AGD6G5N6.mjs.map +0 -1
  60. package/dist/chunk-BWCRJDUB.mjs.map +0 -1
  61. package/dist/chunk-DPFH2JIC.mjs +0 -141
  62. package/dist/chunk-DPFH2JIC.mjs.map +0 -1
  63. package/dist/chunk-EP2GHC3R.mjs +0 -116
  64. package/dist/chunk-EP2GHC3R.mjs.map +0 -1
  65. package/dist/chunk-JOZQDX7A.mjs.map +0 -1
  66. package/dist/chunk-MAA7JZ2Q.mjs.map +0 -1
  67. package/dist/chunk-QVOOBAUA.mjs +0 -140
  68. package/dist/chunk-QVOOBAUA.mjs.map +0 -1
  69. package/dist/chunk-T5GUBIFZ.mjs +0 -358
  70. package/dist/chunk-T5GUBIFZ.mjs.map +0 -1
  71. package/dist/chunk-WLNW7Y2H.mjs.map +0 -1
  72. package/dist/chunk-XSELW6DU.mjs +0 -356
  73. package/dist/chunk-XSELW6DU.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  emitTaskProgress,
14
14
  emitTaskStarted,
15
15
  emitTaskSubmitted
16
- } from "./chunk-JOZQDX7A.mjs";
16
+ } from "./chunk-MJ45255C.mjs";
17
17
  import {
18
18
  a2aErrorToTaskErrorInfo,
19
19
  buildClaudeEnvelope,
@@ -22,14 +22,14 @@ import {
22
22
  completeEnvelope,
23
23
  failEnvelope,
24
24
  startEnvelope
25
- } from "./chunk-7GY5FFBI.mjs";
25
+ } from "./chunk-AWHOY6CI.mjs";
26
26
  import {
27
27
  mapClaudeError,
28
28
  mapCodexError,
29
29
  mapConnectorError,
30
30
  mapHttpError,
31
31
  wrapUnknownError
32
- } from "./chunk-AGD6G5N6.mjs";
32
+ } from "./chunk-FSPAU2U3.mjs";
33
33
  import {
34
34
  canonicalToClaudeState,
35
35
  canonicalToCodexState,
@@ -42,7 +42,7 @@ import {
42
42
  mapCodexStateStrict,
43
43
  mapConnectorState,
44
44
  mapConnectorStateStrict
45
- } from "./chunk-MAA7JZ2Q.mjs";
45
+ } from "./chunk-6EHW6C4A.mjs";
46
46
  import {
47
47
  assertAuditEvent,
48
48
  assertTaskEnvelope,
@@ -52,7 +52,7 @@ import {
52
52
  validateA2AError,
53
53
  validateAuditEvent,
54
54
  validateTaskEnvelope
55
- } from "./chunk-BWCRJDUB.mjs";
55
+ } from "./chunk-V4EHWWUR.mjs";
56
56
  import {
57
57
  A2AErrorCategoryEnum,
58
58
  A2AErrorCodeEnum,
@@ -78,7 +78,7 @@ import {
78
78
  isTerminalState,
79
79
  isValidTransition,
80
80
  transitionTaskEnvelope
81
- } from "./chunk-WLNW7Y2H.mjs";
81
+ } from "./chunk-KTGZQV57.mjs";
82
82
  export {
83
83
  A2AErrorCategoryEnum,
84
84
  A2AErrorCodeEnum,
@@ -0,0 +1,4 @@
1
+ export { A as A2AProtocolKind, R as RecoderAgentPlatform, a as RecoderArtifactPayload, b as RecoderCommandPayload, c as RecoderJsonPayload, d as RecoderPayload, e as RecoderTextPayload } from '../types-Bt96SgOS.mjs';
2
+ export { A as ALLOWED_STATE_TRANSITIONS, C as CreateTaskEnvelopeInput, T as TASK_ENVELOPE_VERSION, a as TASK_STATES, b as TERMINAL_TASK_STATES, c as TaskAgentRef, d as TaskArtifact, e as TaskConnectorInfo, f as TaskEnvelope, g as TaskErrorInfo, h as TaskPolicySnapshot, i as TaskResult, j as TaskState, k as TaskStateEnum, l as TaskStateTransition, m as createTaskEnvelope, n as isTerminalState, o as isValidTransition, t as transitionTaskEnvelope } from '../task-envelope-QkecqlWq.mjs';
3
+ export { A as AUDIT_EVENT_TYPES, a as AUDIT_EVENT_VERSION, b as AuditActor, c as AuditActorKind, d as AuditActorKindEnum, e as AuditEvent, f as AuditEventType, g as AuditEventTypeEnum, h as AuditPolicyContext, i as AuditSeverity, j as AuditSeverityEnum, k as AuditTarget, l as AuditTargetKind, m as AuditTargetKindEnum, C as CreateAuditEventInput, n as createAuditEvent } from '../audit-event-Bhf9-AJV.mjs';
4
+ export { A as A2AError, a as A2AErrorCategory, b as A2AErrorCategoryEnum, c as A2AErrorCode, d as A2AErrorCodeEnum, e as A2AErrorCodeMeta, f as A2AErrorSeverity, g as A2AErrorSeverityEnum, h as A2AStructuredError, i as A2A_ERROR_CODE_REGISTRY, j as buildA2AError, k as getErrorCodeMeta, l as isA2AErrorCode } from '../error-taxonomy-CQgrKp9z.mjs';
@@ -0,0 +1,4 @@
1
+ export { A as A2AProtocolKind, R as RecoderAgentPlatform, a as RecoderArtifactPayload, b as RecoderCommandPayload, c as RecoderJsonPayload, d as RecoderPayload, e as RecoderTextPayload } from '../types-Bt96SgOS.js';
2
+ export { A as ALLOWED_STATE_TRANSITIONS, C as CreateTaskEnvelopeInput, T as TASK_ENVELOPE_VERSION, a as TASK_STATES, b as TERMINAL_TASK_STATES, c as TaskAgentRef, d as TaskArtifact, e as TaskConnectorInfo, f as TaskEnvelope, g as TaskErrorInfo, h as TaskPolicySnapshot, i as TaskResult, j as TaskState, k as TaskStateEnum, l as TaskStateTransition, m as createTaskEnvelope, n as isTerminalState, o as isValidTransition, t as transitionTaskEnvelope } from '../task-envelope-B3X3seKp.js';
3
+ export { A as AUDIT_EVENT_TYPES, a as AUDIT_EVENT_VERSION, b as AuditActor, c as AuditActorKind, d as AuditActorKindEnum, e as AuditEvent, f as AuditEventType, g as AuditEventTypeEnum, h as AuditPolicyContext, i as AuditSeverity, j as AuditSeverityEnum, k as AuditTarget, l as AuditTargetKind, m as AuditTargetKindEnum, C as CreateAuditEventInput, n as createAuditEvent } from '../audit-event-D8PTRp8M.js';
4
+ export { A as A2AError, a as A2AErrorCategory, b as A2AErrorCategoryEnum, c as A2AErrorCode, d as A2AErrorCodeEnum, e as A2AErrorCodeMeta, f as A2AErrorSeverity, g as A2AErrorSeverityEnum, h as A2AStructuredError, i as A2A_ERROR_CODE_REGISTRY, j as buildA2AError, k as getErrorCodeMeta, l as isA2AErrorCode } from '../error-taxonomy-CQgrKp9z.js';
@@ -0,0 +1,601 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/schemas/index.ts
21
+ var schemas_exports = {};
22
+ __export(schemas_exports, {
23
+ A2AErrorCategoryEnum: () => A2AErrorCategoryEnum,
24
+ A2AErrorCodeEnum: () => A2AErrorCodeEnum,
25
+ A2AErrorSeverityEnum: () => A2AErrorSeverityEnum,
26
+ A2AStructuredError: () => A2AStructuredError,
27
+ A2A_ERROR_CODE_REGISTRY: () => A2A_ERROR_CODE_REGISTRY,
28
+ ALLOWED_STATE_TRANSITIONS: () => ALLOWED_STATE_TRANSITIONS,
29
+ AUDIT_EVENT_TYPES: () => AUDIT_EVENT_TYPES,
30
+ AUDIT_EVENT_VERSION: () => AUDIT_EVENT_VERSION,
31
+ AuditActorKindEnum: () => AuditActorKindEnum,
32
+ AuditEventTypeEnum: () => AuditEventTypeEnum,
33
+ AuditSeverityEnum: () => AuditSeverityEnum,
34
+ AuditTargetKindEnum: () => AuditTargetKindEnum,
35
+ TASK_ENVELOPE_VERSION: () => TASK_ENVELOPE_VERSION,
36
+ TASK_STATES: () => TASK_STATES,
37
+ TERMINAL_TASK_STATES: () => TERMINAL_TASK_STATES,
38
+ TaskStateEnum: () => TaskStateEnum,
39
+ buildA2AError: () => buildA2AError,
40
+ createAuditEvent: () => createAuditEvent,
41
+ createTaskEnvelope: () => createTaskEnvelope,
42
+ getErrorCodeMeta: () => getErrorCodeMeta,
43
+ isA2AErrorCode: () => isA2AErrorCode,
44
+ isTerminalState: () => isTerminalState,
45
+ isValidTransition: () => isValidTransition,
46
+ transitionTaskEnvelope: () => transitionTaskEnvelope
47
+ });
48
+ module.exports = __toCommonJS(schemas_exports);
49
+
50
+ // src/schemas/task-envelope.ts
51
+ var TASK_ENVELOPE_VERSION = "1.0.0";
52
+ var TaskStateEnum = {
53
+ /** Task has been created and is awaiting execution. */
54
+ Submitted: "submitted",
55
+ /** Task is actively being processed by the assignee agent. */
56
+ Working: "working",
57
+ /** The assignee needs additional input before it can continue. */
58
+ InputRequired: "input-required",
59
+ /** Task finished successfully. */
60
+ Completed: "completed",
61
+ /** Task terminated with an error. */
62
+ Failed: "failed",
63
+ /** Task was explicitly cancelled by a requester or operator. */
64
+ Cancelled: "cancelled"
65
+ };
66
+ var TASK_STATES = [
67
+ TaskStateEnum.Submitted,
68
+ TaskStateEnum.Working,
69
+ TaskStateEnum.InputRequired,
70
+ TaskStateEnum.Completed,
71
+ TaskStateEnum.Failed,
72
+ TaskStateEnum.Cancelled
73
+ ];
74
+ var TERMINAL_TASK_STATES = /* @__PURE__ */ new Set([
75
+ TaskStateEnum.Completed,
76
+ TaskStateEnum.Failed,
77
+ TaskStateEnum.Cancelled
78
+ ]);
79
+ function isTerminalState(state) {
80
+ return TERMINAL_TASK_STATES.has(state);
81
+ }
82
+ function createTaskEnvelope(input) {
83
+ const now = input.now ?? (/* @__PURE__ */ new Date()).toISOString();
84
+ return {
85
+ envelope_version: TASK_ENVELOPE_VERSION,
86
+ id: input.id,
87
+ workspace_id: input.workspace_id,
88
+ thread_id: input.thread_id,
89
+ trace_id: input.trace_id,
90
+ parent_id: input.parent_id,
91
+ state: input.initial_state ?? TaskStateEnum.Submitted,
92
+ history: [],
93
+ requester: input.requester,
94
+ assignee: input.assignee,
95
+ connector: input.connector,
96
+ payload: input.payload,
97
+ created_at: now,
98
+ updated_at: now,
99
+ metadata: input.metadata,
100
+ tags: input.tags
101
+ };
102
+ }
103
+ var ALLOWED_STATE_TRANSITIONS = {
104
+ [TaskStateEnum.Submitted]: [TaskStateEnum.Working, TaskStateEnum.Cancelled, TaskStateEnum.Failed],
105
+ [TaskStateEnum.Working]: [
106
+ TaskStateEnum.Completed,
107
+ TaskStateEnum.Failed,
108
+ TaskStateEnum.Cancelled,
109
+ TaskStateEnum.InputRequired
110
+ ],
111
+ [TaskStateEnum.InputRequired]: [TaskStateEnum.Working, TaskStateEnum.Cancelled, TaskStateEnum.Failed],
112
+ [TaskStateEnum.Completed]: [],
113
+ [TaskStateEnum.Failed]: [],
114
+ [TaskStateEnum.Cancelled]: []
115
+ };
116
+ function isValidTransition(from, to) {
117
+ return (ALLOWED_STATE_TRANSITIONS[from] ?? []).includes(to);
118
+ }
119
+ function transitionTaskEnvelope(envelope, to, options) {
120
+ if (!isValidTransition(envelope.state, to)) {
121
+ throw new Error(
122
+ `Invalid task state transition: ${envelope.state} -> ${to} (task ${envelope.id})`
123
+ );
124
+ }
125
+ const now = options?.now ?? (/* @__PURE__ */ new Date()).toISOString();
126
+ const transition = {
127
+ from: envelope.state,
128
+ to,
129
+ transitioned_at: now,
130
+ reason: options?.reason,
131
+ triggered_by: options?.triggered_by
132
+ };
133
+ return {
134
+ ...envelope,
135
+ state: to,
136
+ updated_at: now,
137
+ history: [...envelope.history ?? [], transition]
138
+ };
139
+ }
140
+
141
+ // src/schemas/audit-event.ts
142
+ var AUDIT_EVENT_VERSION = "1.0.0";
143
+ var AuditEventTypeEnum = {
144
+ // -- task lifecycle ---------------------------------------------------------
145
+ TaskSubmitted: "task.submitted",
146
+ TaskStarted: "task.started",
147
+ TaskProgress: "task.progress",
148
+ TaskInputRequired: "task.input_required",
149
+ TaskCompleted: "task.completed",
150
+ TaskFailed: "task.failed",
151
+ TaskCancelled: "task.cancelled",
152
+ // -- policy decisions -------------------------------------------------------
153
+ PolicyChecked: "policy.checked",
154
+ PolicyApproved: "policy.approved",
155
+ PolicyDenied: "policy.denied",
156
+ // -- connector events -------------------------------------------------------
157
+ ConnectorAttached: "connector.attached",
158
+ ConnectorDetached: "connector.detached",
159
+ ConnectorHealth: "connector.health",
160
+ ConnectorError: "connector.error",
161
+ // -- agent registry ---------------------------------------------------------
162
+ AgentRegistered: "agent.registered",
163
+ AgentUnregistered: "agent.unregistered",
164
+ AgentUpdated: "agent.updated",
165
+ // -- collaboration ----------------------------------------------------------
166
+ ChannelCreated: "collaboration.channel_created",
167
+ ThreadCreated: "collaboration.thread_created",
168
+ MessageSent: "collaboration.message_sent",
169
+ // -- system -----------------------------------------------------------------
170
+ SystemConfig: "system.config",
171
+ SystemError: "system.error"
172
+ };
173
+ var AUDIT_EVENT_TYPES = Object.values(AuditEventTypeEnum);
174
+ var AuditActorKindEnum = {
175
+ Agent: "agent",
176
+ User: "user",
177
+ System: "system",
178
+ Connector: "connector"
179
+ };
180
+ var AuditTargetKindEnum = {
181
+ Task: "task",
182
+ Agent: "agent",
183
+ Connector: "connector",
184
+ Channel: "channel",
185
+ Thread: "thread",
186
+ Message: "message",
187
+ Policy: "policy",
188
+ Workspace: "workspace",
189
+ System: "system"
190
+ };
191
+ var AuditSeverityEnum = {
192
+ Info: "info",
193
+ Warning: "warning",
194
+ Error: "error",
195
+ Critical: "critical"
196
+ };
197
+ function createAuditEvent(input) {
198
+ return {
199
+ schema_version: AUDIT_EVENT_VERSION,
200
+ id: input.id,
201
+ event_type: input.event_type,
202
+ severity: input.severity,
203
+ actor: input.actor,
204
+ target: input.target,
205
+ trace_id: input.trace_id,
206
+ parent_event_id: input.parent_event_id,
207
+ workspace_id: input.workspace_id,
208
+ thread_id: input.thread_id,
209
+ task_id: input.task_id,
210
+ timestamp: input.now ?? (/* @__PURE__ */ new Date()).toISOString(),
211
+ duration_ms: input.duration_ms,
212
+ policy: input.policy,
213
+ metadata: input.metadata,
214
+ tags: input.tags
215
+ };
216
+ }
217
+
218
+ // src/schemas/error-taxonomy.ts
219
+ var A2AErrorSeverityEnum = {
220
+ Low: "low",
221
+ Medium: "medium",
222
+ High: "high",
223
+ Critical: "critical"
224
+ };
225
+ var A2AErrorCategoryEnum = {
226
+ Envelope: "envelope",
227
+ Connector: "connector",
228
+ Policy: "policy",
229
+ Task: "task",
230
+ Registry: "registry",
231
+ Collaboration: "collaboration",
232
+ Transport: "transport",
233
+ Auth: "auth",
234
+ RateLimit: "rate_limit",
235
+ Internal: "internal"
236
+ };
237
+ var A2AErrorCodeEnum = {
238
+ // -- envelope ---------------------------------------------------------------
239
+ InvalidEnvelope: "INVALID_ENVELOPE",
240
+ UnsupportedEnvelopeVersion: "UNSUPPORTED_ENVELOPE_VERSION",
241
+ MissingEnvelopeField: "MISSING_ENVELOPE_FIELD",
242
+ InvalidPayload: "INVALID_PAYLOAD",
243
+ InvalidParams: "INVALID_ENVELOPE",
244
+ // -- connector --------------------------------------------------------------
245
+ ConnectorNotFound: "CONNECTOR_NOT_FOUND",
246
+ ConnectorTimeout: "CONNECTOR_TIMEOUT",
247
+ ConnectorError: "CONNECTOR_ERROR",
248
+ ConnectorUnavailable: "CONNECTOR_UNAVAILABLE",
249
+ ProtocolMismatch: "PROTOCOL_MISMATCH",
250
+ // -- policy -----------------------------------------------------------------
251
+ PolicyDenied: "POLICY_DENIED",
252
+ PolicyHandlerMissing: "POLICY_HANDLER_MISSING",
253
+ PolicyTimeout: "POLICY_TIMEOUT",
254
+ // -- task -------------------------------------------------------------------
255
+ TaskNotFound: "TASK_NOT_FOUND",
256
+ InvalidStateTransition: "INVALID_STATE_TRANSITION",
257
+ TaskAlreadyTerminal: "TASK_ALREADY_TERMINAL",
258
+ TaskExecutionFailed: "TASK_EXECUTION_FAILED",
259
+ TaskCancelled: "TASK_CANCELLED",
260
+ // -- registry ---------------------------------------------------------------
261
+ AgentNotFound: "AGENT_NOT_FOUND",
262
+ AgentAlreadyRegistered: "AGENT_ALREADY_REGISTERED",
263
+ CapabilityNotFound: "CAPABILITY_NOT_FOUND",
264
+ // -- collaboration ----------------------------------------------------------
265
+ ChannelNotFound: "CHANNEL_NOT_FOUND",
266
+ ThreadNotFound: "THREAD_NOT_FOUND",
267
+ MessageNotFound: "MESSAGE_NOT_FOUND",
268
+ NotChannelMember: "NOT_CHANNEL_MEMBER",
269
+ // -- transport --------------------------------------------------------------
270
+ NetworkError: "NETWORK_ERROR",
271
+ UnexpectedStatus: "UNEXPECTED_STATUS",
272
+ SerializationError: "SERIALIZATION_ERROR",
273
+ // -- auth -------------------------------------------------------------------
274
+ AuthenticationFailed: "AUTHENTICATION_FAILED",
275
+ AuthorizationDenied: "AUTHORIZATION_DENIED",
276
+ TokenExpired: "TOKEN_EXPIRED",
277
+ // -- rate limit -------------------------------------------------------------
278
+ RateLimitExceeded: "RATE_LIMIT_EXCEEDED",
279
+ QuotaExceeded: "QUOTA_EXCEEDED",
280
+ // -- internal ---------------------------------------------------------------
281
+ InternalError: "INTERNAL_ERROR",
282
+ ConfigurationError: "CONFIGURATION_ERROR"
283
+ };
284
+ var A2A_ERROR_CODE_REGISTRY = {
285
+ // envelope
286
+ [A2AErrorCodeEnum.InvalidEnvelope]: {
287
+ code: A2AErrorCodeEnum.InvalidEnvelope,
288
+ category: A2AErrorCategoryEnum.Envelope,
289
+ severity: A2AErrorSeverityEnum.Medium,
290
+ retryable: false,
291
+ description: "The envelope failed structural validation."
292
+ },
293
+ [A2AErrorCodeEnum.UnsupportedEnvelopeVersion]: {
294
+ code: A2AErrorCodeEnum.UnsupportedEnvelopeVersion,
295
+ category: A2AErrorCategoryEnum.Envelope,
296
+ severity: A2AErrorSeverityEnum.Medium,
297
+ retryable: false,
298
+ description: "The envelope version is not supported by this service."
299
+ },
300
+ [A2AErrorCodeEnum.MissingEnvelopeField]: {
301
+ code: A2AErrorCodeEnum.MissingEnvelopeField,
302
+ category: A2AErrorCategoryEnum.Envelope,
303
+ severity: A2AErrorSeverityEnum.Medium,
304
+ retryable: false,
305
+ description: "A required field is missing from the envelope."
306
+ },
307
+ [A2AErrorCodeEnum.InvalidPayload]: {
308
+ code: A2AErrorCodeEnum.InvalidPayload,
309
+ category: A2AErrorCategoryEnum.Envelope,
310
+ severity: A2AErrorSeverityEnum.Medium,
311
+ retryable: false,
312
+ description: "The payload kind is unknown or malformed."
313
+ },
314
+ // connector
315
+ [A2AErrorCodeEnum.ConnectorNotFound]: {
316
+ code: A2AErrorCodeEnum.ConnectorNotFound,
317
+ category: A2AErrorCategoryEnum.Connector,
318
+ severity: A2AErrorSeverityEnum.High,
319
+ retryable: false,
320
+ description: "No connector is attached for the target agent."
321
+ },
322
+ [A2AErrorCodeEnum.ConnectorTimeout]: {
323
+ code: A2AErrorCodeEnum.ConnectorTimeout,
324
+ category: A2AErrorCategoryEnum.Connector,
325
+ severity: A2AErrorSeverityEnum.High,
326
+ retryable: true,
327
+ description: "The connector timed out during task execution."
328
+ },
329
+ [A2AErrorCodeEnum.ConnectorError]: {
330
+ code: A2AErrorCodeEnum.ConnectorError,
331
+ category: A2AErrorCategoryEnum.Connector,
332
+ severity: A2AErrorSeverityEnum.High,
333
+ retryable: true,
334
+ description: "The connector returned an unexpected error."
335
+ },
336
+ [A2AErrorCodeEnum.ConnectorUnavailable]: {
337
+ code: A2AErrorCodeEnum.ConnectorUnavailable,
338
+ category: A2AErrorCategoryEnum.Connector,
339
+ severity: A2AErrorSeverityEnum.High,
340
+ retryable: true,
341
+ description: "The connector is temporarily unavailable."
342
+ },
343
+ [A2AErrorCodeEnum.ProtocolMismatch]: {
344
+ code: A2AErrorCodeEnum.ProtocolMismatch,
345
+ category: A2AErrorCategoryEnum.Connector,
346
+ severity: A2AErrorSeverityEnum.High,
347
+ retryable: false,
348
+ description: "Protocol mismatch between connector and remote agent."
349
+ },
350
+ // policy
351
+ [A2AErrorCodeEnum.PolicyDenied]: {
352
+ code: A2AErrorCodeEnum.PolicyDenied,
353
+ category: A2AErrorCategoryEnum.Policy,
354
+ severity: A2AErrorSeverityEnum.Medium,
355
+ retryable: false,
356
+ description: "The policy plane denied the requested action."
357
+ },
358
+ [A2AErrorCodeEnum.PolicyHandlerMissing]: {
359
+ code: A2AErrorCodeEnum.PolicyHandlerMissing,
360
+ category: A2AErrorCategoryEnum.Policy,
361
+ severity: A2AErrorSeverityEnum.Medium,
362
+ retryable: false,
363
+ description: "No prompt handler is configured for the policy rule."
364
+ },
365
+ [A2AErrorCodeEnum.PolicyTimeout]: {
366
+ code: A2AErrorCodeEnum.PolicyTimeout,
367
+ category: A2AErrorCategoryEnum.Policy,
368
+ severity: A2AErrorSeverityEnum.High,
369
+ retryable: true,
370
+ description: "The policy evaluation timed out."
371
+ },
372
+ // task
373
+ [A2AErrorCodeEnum.TaskNotFound]: {
374
+ code: A2AErrorCodeEnum.TaskNotFound,
375
+ category: A2AErrorCategoryEnum.Task,
376
+ severity: A2AErrorSeverityEnum.Medium,
377
+ retryable: false,
378
+ description: "The task was not found."
379
+ },
380
+ [A2AErrorCodeEnum.InvalidStateTransition]: {
381
+ code: A2AErrorCodeEnum.InvalidStateTransition,
382
+ category: A2AErrorCategoryEnum.Task,
383
+ severity: A2AErrorSeverityEnum.Medium,
384
+ retryable: false,
385
+ description: "An invalid state transition was attempted."
386
+ },
387
+ [A2AErrorCodeEnum.TaskAlreadyTerminal]: {
388
+ code: A2AErrorCodeEnum.TaskAlreadyTerminal,
389
+ category: A2AErrorCategoryEnum.Task,
390
+ severity: A2AErrorSeverityEnum.Low,
391
+ retryable: false,
392
+ description: "The task has already reached a terminal state."
393
+ },
394
+ [A2AErrorCodeEnum.TaskExecutionFailed]: {
395
+ code: A2AErrorCodeEnum.TaskExecutionFailed,
396
+ category: A2AErrorCategoryEnum.Task,
397
+ severity: A2AErrorSeverityEnum.High,
398
+ retryable: true,
399
+ description: "The task failed during execution."
400
+ },
401
+ [A2AErrorCodeEnum.TaskCancelled]: {
402
+ code: A2AErrorCodeEnum.TaskCancelled,
403
+ category: A2AErrorCategoryEnum.Task,
404
+ severity: A2AErrorSeverityEnum.Low,
405
+ retryable: false,
406
+ description: "The task was cancelled."
407
+ },
408
+ // registry
409
+ [A2AErrorCodeEnum.AgentNotFound]: {
410
+ code: A2AErrorCodeEnum.AgentNotFound,
411
+ category: A2AErrorCategoryEnum.Registry,
412
+ severity: A2AErrorSeverityEnum.Medium,
413
+ retryable: false,
414
+ description: "The agent was not found in the registry."
415
+ },
416
+ [A2AErrorCodeEnum.AgentAlreadyRegistered]: {
417
+ code: A2AErrorCodeEnum.AgentAlreadyRegistered,
418
+ category: A2AErrorCategoryEnum.Registry,
419
+ severity: A2AErrorSeverityEnum.Low,
420
+ retryable: false,
421
+ description: "The agent is already registered."
422
+ },
423
+ [A2AErrorCodeEnum.CapabilityNotFound]: {
424
+ code: A2AErrorCodeEnum.CapabilityNotFound,
425
+ category: A2AErrorCategoryEnum.Registry,
426
+ severity: A2AErrorSeverityEnum.Medium,
427
+ retryable: false,
428
+ description: "The agent does not have the requested capability."
429
+ },
430
+ // collaboration
431
+ [A2AErrorCodeEnum.ChannelNotFound]: {
432
+ code: A2AErrorCodeEnum.ChannelNotFound,
433
+ category: A2AErrorCategoryEnum.Collaboration,
434
+ severity: A2AErrorSeverityEnum.Medium,
435
+ retryable: false,
436
+ description: "The channel was not found."
437
+ },
438
+ [A2AErrorCodeEnum.ThreadNotFound]: {
439
+ code: A2AErrorCodeEnum.ThreadNotFound,
440
+ category: A2AErrorCategoryEnum.Collaboration,
441
+ severity: A2AErrorSeverityEnum.Medium,
442
+ retryable: false,
443
+ description: "The thread was not found."
444
+ },
445
+ [A2AErrorCodeEnum.MessageNotFound]: {
446
+ code: A2AErrorCodeEnum.MessageNotFound,
447
+ category: A2AErrorCategoryEnum.Collaboration,
448
+ severity: A2AErrorSeverityEnum.Medium,
449
+ retryable: false,
450
+ description: "The message was not found."
451
+ },
452
+ [A2AErrorCodeEnum.NotChannelMember]: {
453
+ code: A2AErrorCodeEnum.NotChannelMember,
454
+ category: A2AErrorCategoryEnum.Collaboration,
455
+ severity: A2AErrorSeverityEnum.Medium,
456
+ retryable: false,
457
+ description: "The sender is not a member of the target channel."
458
+ },
459
+ // transport
460
+ [A2AErrorCodeEnum.NetworkError]: {
461
+ code: A2AErrorCodeEnum.NetworkError,
462
+ category: A2AErrorCategoryEnum.Transport,
463
+ severity: A2AErrorSeverityEnum.High,
464
+ retryable: true,
465
+ description: "A network request failed."
466
+ },
467
+ [A2AErrorCodeEnum.UnexpectedStatus]: {
468
+ code: A2AErrorCodeEnum.UnexpectedStatus,
469
+ category: A2AErrorCategoryEnum.Transport,
470
+ severity: A2AErrorSeverityEnum.Medium,
471
+ retryable: true,
472
+ description: "The remote endpoint returned an unexpected status."
473
+ },
474
+ [A2AErrorCodeEnum.SerializationError]: {
475
+ code: A2AErrorCodeEnum.SerializationError,
476
+ category: A2AErrorCategoryEnum.Transport,
477
+ severity: A2AErrorSeverityEnum.Medium,
478
+ retryable: false,
479
+ description: "The request or response body could not be parsed."
480
+ },
481
+ // auth
482
+ [A2AErrorCodeEnum.AuthenticationFailed]: {
483
+ code: A2AErrorCodeEnum.AuthenticationFailed,
484
+ category: A2AErrorCategoryEnum.Auth,
485
+ severity: A2AErrorSeverityEnum.High,
486
+ retryable: false,
487
+ description: "Authentication failed (invalid or missing credentials)."
488
+ },
489
+ [A2AErrorCodeEnum.AuthorizationDenied]: {
490
+ code: A2AErrorCodeEnum.AuthorizationDenied,
491
+ category: A2AErrorCategoryEnum.Auth,
492
+ severity: A2AErrorSeverityEnum.Medium,
493
+ retryable: false,
494
+ description: "The caller is not authorized for the requested operation."
495
+ },
496
+ [A2AErrorCodeEnum.TokenExpired]: {
497
+ code: A2AErrorCodeEnum.TokenExpired,
498
+ category: A2AErrorCategoryEnum.Auth,
499
+ severity: A2AErrorSeverityEnum.Medium,
500
+ retryable: true,
501
+ description: "The access token has expired."
502
+ },
503
+ // rate limit
504
+ [A2AErrorCodeEnum.RateLimitExceeded]: {
505
+ code: A2AErrorCodeEnum.RateLimitExceeded,
506
+ category: A2AErrorCategoryEnum.RateLimit,
507
+ severity: A2AErrorSeverityEnum.Medium,
508
+ retryable: true,
509
+ description: "The caller has exceeded the rate limit."
510
+ },
511
+ [A2AErrorCodeEnum.QuotaExceeded]: {
512
+ code: A2AErrorCodeEnum.QuotaExceeded,
513
+ category: A2AErrorCategoryEnum.RateLimit,
514
+ severity: A2AErrorSeverityEnum.Medium,
515
+ retryable: false,
516
+ description: "The caller has exceeded their usage quota."
517
+ },
518
+ // internal
519
+ [A2AErrorCodeEnum.InternalError]: {
520
+ code: A2AErrorCodeEnum.InternalError,
521
+ category: A2AErrorCategoryEnum.Internal,
522
+ severity: A2AErrorSeverityEnum.Critical,
523
+ retryable: false,
524
+ description: "An unexpected internal error occurred."
525
+ },
526
+ [A2AErrorCodeEnum.ConfigurationError]: {
527
+ code: A2AErrorCodeEnum.ConfigurationError,
528
+ category: A2AErrorCategoryEnum.Internal,
529
+ severity: A2AErrorSeverityEnum.High,
530
+ retryable: false,
531
+ description: "A configuration error was detected."
532
+ }
533
+ };
534
+ function buildA2AError(input) {
535
+ const meta = A2A_ERROR_CODE_REGISTRY[input.code];
536
+ return {
537
+ code: input.code,
538
+ category: meta.category,
539
+ message: input.message,
540
+ severity: input.severity ?? meta.severity,
541
+ retryable: input.retryable ?? meta.retryable,
542
+ details: input.details,
543
+ timestamp: input.now ?? (/* @__PURE__ */ new Date()).toISOString(),
544
+ trace_id: input.trace_id
545
+ };
546
+ }
547
+ function getErrorCodeMeta(code) {
548
+ return A2A_ERROR_CODE_REGISTRY[code];
549
+ }
550
+ function isA2AErrorCode(code) {
551
+ return code in A2A_ERROR_CODE_REGISTRY;
552
+ }
553
+ var A2AStructuredError = class _A2AStructuredError extends Error {
554
+ a2aError;
555
+ constructor(a2aError) {
556
+ super(`[${a2aError.code}] ${a2aError.message}`);
557
+ this.name = "A2AStructuredError";
558
+ this.a2aError = a2aError;
559
+ Object.setPrototypeOf(this, _A2AStructuredError.prototype);
560
+ }
561
+ get code() {
562
+ return this.a2aError.code;
563
+ }
564
+ get category() {
565
+ return this.a2aError.category;
566
+ }
567
+ get severity() {
568
+ return this.a2aError.severity;
569
+ }
570
+ get retryable() {
571
+ return this.a2aError.retryable;
572
+ }
573
+ };
574
+ // Annotate the CommonJS export names for ESM import in node:
575
+ 0 && (module.exports = {
576
+ A2AErrorCategoryEnum,
577
+ A2AErrorCodeEnum,
578
+ A2AErrorSeverityEnum,
579
+ A2AStructuredError,
580
+ A2A_ERROR_CODE_REGISTRY,
581
+ ALLOWED_STATE_TRANSITIONS,
582
+ AUDIT_EVENT_TYPES,
583
+ AUDIT_EVENT_VERSION,
584
+ AuditActorKindEnum,
585
+ AuditEventTypeEnum,
586
+ AuditSeverityEnum,
587
+ AuditTargetKindEnum,
588
+ TASK_ENVELOPE_VERSION,
589
+ TASK_STATES,
590
+ TERMINAL_TASK_STATES,
591
+ TaskStateEnum,
592
+ buildA2AError,
593
+ createAuditEvent,
594
+ createTaskEnvelope,
595
+ getErrorCodeMeta,
596
+ isA2AErrorCode,
597
+ isTerminalState,
598
+ isValidTransition,
599
+ transitionTaskEnvelope
600
+ });
601
+ //# sourceMappingURL=index.js.map