kavachos 0.0.4 → 0.0.6
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/a2a/index.d.ts +2340 -0
- package/dist/a2a/index.js +821 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/agent/index.d.ts +3 -4
- package/dist/agent/index.js +4 -3
- package/dist/audit/index.d.ts +2 -3
- package/dist/audit/index.js +3 -3
- package/dist/auth/index.d.ts +490 -93
- package/dist/auth/index.js +4 -3
- package/dist/{chunk-KL6XW4S4.js → chunk-FKVAXCNJ.js} +2375 -633
- package/dist/chunk-FKVAXCNJ.js.map +1 -0
- package/dist/{chunk-5DT4DN4Y.js → chunk-IKTOSJ4O.js} +13 -13
- package/dist/chunk-IKTOSJ4O.js.map +1 -0
- package/dist/{chunk-V66UUIA7.js → chunk-KDL6A76K.js} +93 -4
- package/dist/chunk-KDL6A76K.js.map +1 -0
- package/dist/chunk-NSBPE2FW.js +15 -0
- package/dist/{chunk-PZ5AY32C.js.map → chunk-NSBPE2FW.js.map} +1 -1
- package/dist/chunk-NSTER7KE.js +538 -0
- package/dist/chunk-NSTER7KE.js.map +1 -0
- package/dist/chunk-QCRHJMDX.js +186 -0
- package/dist/chunk-QCRHJMDX.js.map +1 -0
- package/dist/{chunk-OVGNZ5OX.js → chunk-VHKZARMM.js} +6 -6
- package/dist/chunk-VHKZARMM.js.map +1 -0
- package/dist/{chunk-SJGSPIAD.js → chunk-Y3OWAJHK.js} +3 -3
- package/dist/{chunk-SJGSPIAD.js.map → chunk-Y3OWAJHK.js.map} +1 -1
- package/dist/index.d.ts +138 -6
- package/dist/index.js +580 -35
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +2 -2
- package/dist/mcp/index.js +12 -16
- package/dist/mcp/index.js.map +1 -1
- package/dist/permission/index.d.ts +3 -4
- package/dist/permission/index.js +4 -3
- package/dist/{types-Xk83hv4O.d.ts → types-W8X0PXE7.d.ts} +1764 -99
- package/dist/vc/index.d.ts +800 -0
- package/dist/vc/index.js +5 -0
- package/dist/vc/index.js.map +1 -0
- package/package.json +17 -1
- package/dist/chunk-5DT4DN4Y.js.map +0 -1
- package/dist/chunk-KL6XW4S4.js.map +0 -1
- package/dist/chunk-OVGNZ5OX.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -9
- package/dist/chunk-V66UUIA7.js.map +0 -1
- package/dist/{types-mwupB57A.d.ts → types-BuHrZcjE.d.ts} +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/a2a/types.ts","../../src/a2a/agent-card.ts","../../src/a2a/client.ts","../../src/a2a/server.ts"],"names":["canceled"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * A2A (Agent-to-Agent) protocol types for KavachOS.\n *\n * Implements the Google Agent2Agent protocol specification for\n * agent interoperability. Covers Agent Cards, JSON-RPC methods,\n * task lifecycle, message/artifact types, and authentication schemes.\n *\n * @see https://a2a-protocol.org/latest/specification/\n */\n\nimport { z } from \"zod\";\nimport type { KavachError, Result } from \"../mcp/types.js\";\n\nexport type { KavachError, Result };\n\n// ─── Protocol Constants ─────────────────────────────────────────────────────\n\nexport const A2A_PROTOCOL_VERSION = \"0.3\";\nexport const A2A_JSONRPC_VERSION = \"2.0\";\nexport const A2A_WELL_KNOWN_PATH = \"/.well-known/agent.json\";\n\n// ─── Roles & States ─────────────────────────────────────────────────────────\n\nexport type A2ARole = \"user\" | \"agent\";\n\nexport type A2ATaskState =\n\t| \"submitted\"\n\t| \"working\"\n\t| \"input-required\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"canceled\"\n\t| \"auth-required\"\n\t| \"rejected\";\n\n// ─── Parts (content atoms inside messages/artifacts) ─────────────────────────\n\nexport interface A2ATextPart {\n\ttype: \"text\";\n\ttext: string;\n}\n\nexport interface A2AFilePart {\n\ttype: \"file\";\n\tfileUri: string;\n\tmimeType: string;\n\tname?: string;\n}\n\nexport interface A2ADataPart {\n\ttype: \"data\";\n\tmimeType: string;\n\tdata: string; // base64-encoded\n}\n\nexport type A2APart = A2ATextPart | A2AFilePart | A2ADataPart;\n\n// ─── Message ─────────────────────────────────────────────────────────────────\n\nexport interface A2AMessage {\n\tid: string;\n\trole: A2ARole;\n\tparts: A2APart[];\n\tcreatedAt: string;\n\tmetadata?: Record<string, unknown>;\n\treferenceTaskIds?: string[];\n}\n\n// ─── Artifact ────────────────────────────────────────────────────────────────\n\nexport interface A2AArtifact {\n\tid: string;\n\tname?: string;\n\tmimeType?: string;\n\tparts: A2APart[];\n\tmetadata?: Record<string, unknown>;\n\tcreatedAt: string;\n}\n\n// ─── Task Status ─────────────────────────────────────────────────────────────\n\nexport interface A2ATaskStatus {\n\tcode: A2ATaskState;\n\tmessage?: string;\n\tprogress?: number; // 0–100\n}\n\n// ─── Task ────────────────────────────────────────────────────────────────────\n\nexport interface A2ATask {\n\tid: string;\n\tcontextId: string;\n\tstatus: A2ATaskStatus;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\thistory?: A2AMessage[];\n\tartifacts?: A2AArtifact[];\n\tmetadata?: Record<string, unknown>;\n}\n\n// ─── Streaming Events ────────────────────────────────────────────────────────\n\nexport interface A2ATaskStatusUpdateEvent {\n\ttaskId: string;\n\tcontextId: string;\n\tnewState: A2ATaskState;\n\tnewStatus: A2ATaskStatus;\n\ttimestamp: string;\n\tmetadata?: Record<string, unknown>;\n}\n\nexport interface A2ATaskArtifactUpdateEvent {\n\ttaskId: string;\n\tcontextId: string;\n\tartifactId: string;\n\tartifact: A2AArtifact;\n\ttimestamp: string;\n}\n\nexport type A2AStreamEvent =\n\t| { type: \"task\"; task: A2ATask }\n\t| { type: \"message\"; message: A2AMessage }\n\t| { type: \"statusUpdate\"; event: A2ATaskStatusUpdateEvent }\n\t| { type: \"artifactUpdate\"; event: A2ATaskArtifactUpdateEvent };\n\n// ─── Security Schemes (OpenAPI-style, per A2A spec) ──────────────────────────\n\nexport interface A2AApiKeySecurityScheme {\n\ttype: \"apiKey\";\n\tname: string;\n\tin: \"query\" | \"header\" | \"cookie\";\n\tdescription?: string;\n}\n\nexport interface A2AHttpSecurityScheme {\n\ttype: \"http\";\n\tscheme: string;\n\tbearerFormat?: string;\n\tdescription?: string;\n}\n\nexport interface A2AOAuth2Flow {\n\tauthorizationUrl?: string;\n\ttokenUrl?: string;\n\trefreshUrl?: string;\n\tscopes: Record<string, string>;\n}\n\nexport interface A2AOAuth2SecurityScheme {\n\ttype: \"oauth2\";\n\tflows: {\n\t\timplicit?: A2AOAuth2Flow;\n\t\tpassword?: A2AOAuth2Flow;\n\t\tclientCredentials?: A2AOAuth2Flow;\n\t\tauthorizationCode?: A2AOAuth2Flow;\n\t\tdeviceCode?: A2AOAuth2Flow;\n\t};\n\tdescription?: string;\n}\n\nexport interface A2AOidcSecurityScheme {\n\ttype: \"openIdConnect\";\n\topenIdConnectUrl: string;\n\tdescription?: string;\n}\n\nexport interface A2AMutualTlsSecurityScheme {\n\ttype: \"mutualTls\";\n\tdescription?: string;\n}\n\nexport type A2ASecurityScheme =\n\t| A2AApiKeySecurityScheme\n\t| A2AHttpSecurityScheme\n\t| A2AOAuth2SecurityScheme\n\t| A2AOidcSecurityScheme\n\t| A2AMutualTlsSecurityScheme;\n\n// ─── Agent Card ──────────────────────────────────────────────────────────────\n\nexport interface A2AAgentProvider {\n\tname: string;\n\temail?: string;\n\turl?: string;\n}\n\nexport interface A2AAgentSkill {\n\tid: string;\n\tname: string;\n\tdescription: string;\n\tinputSchema?: Record<string, unknown>;\n\toutputSchema?: Record<string, unknown>;\n\tsupportedMediaTypes?: string[];\n\ttags?: string[];\n}\n\nexport interface A2AAgentCapabilities {\n\tstreaming?: boolean;\n\tpushNotifications?: boolean;\n\textendedAgentCard?: boolean;\n}\n\nexport interface A2AAgentCardSignature {\n\talgorithm: string;\n\tsignature: string;\n\tkeyId: string;\n}\n\nexport interface A2AAgentCard {\n\tid: string;\n\tname: string;\n\tdescription: string;\n\tversion: string;\n\tprotocolVersion: string;\n\turl: string;\n\tprovider?: A2AAgentProvider;\n\tcapabilities?: A2AAgentCapabilities;\n\tskills: A2AAgentSkill[];\n\tsecuritySchemes?: Record<string, A2ASecurityScheme>;\n\tsecurity?: Array<Record<string, string[]>>;\n\tdefaultInputModes?: string[];\n\tdefaultOutputModes?: string[];\n\tdocumentationUrl?: string;\n\tsignature?: A2AAgentCardSignature;\n\tmetadata?: Record<string, unknown>;\n}\n\n// ─── JSON-RPC Envelope ───────────────────────────────────────────────────────\n\nexport interface A2AJsonRpcRequest<P = unknown> {\n\tjsonrpc: \"2.0\";\n\tid: string | number;\n\tmethod: string;\n\tparams: P;\n}\n\nexport interface A2AJsonRpcResponse<R = unknown> {\n\tjsonrpc: \"2.0\";\n\tid: string | number;\n\tresult?: R;\n\terror?: A2AJsonRpcError;\n}\n\nexport interface A2AJsonRpcError {\n\tcode: number;\n\tmessage: string;\n\tdata?: unknown;\n}\n\n// ─── JSON-RPC Standard Error Codes ───────────────────────────────────────────\n\nexport const A2A_ERROR_CODES = {\n\tPARSE_ERROR: -32700,\n\tINVALID_REQUEST: -32600,\n\tMETHOD_NOT_FOUND: -32601,\n\tINVALID_PARAMS: -32602,\n\tINTERNAL_ERROR: -32603,\n\t// A2A-specific codes (application-defined range)\n\tTASK_NOT_FOUND: -32001,\n\tAGENT_NOT_FOUND: -32002,\n\tAUTHENTICATION_REQUIRED: -32003,\n\tPERMISSION_DENIED: -32004,\n\tRATE_LIMITED: -32005,\n\tTASK_ALREADY_COMPLETED: -32006,\n} as const;\n\n// ─── JSON-RPC Method Params ──────────────────────────────────────────────────\n\nexport interface A2ASendMessageParams {\n\tmessage: A2AMessage;\n\tconfiguration?: A2ASendMessageConfiguration;\n\tmetadata?: Record<string, unknown>;\n}\n\nexport interface A2ASendMessageConfiguration {\n\tacceptedOutputModes?: string[];\n\thistoryLength?: number;\n\treturnImmediately?: boolean;\n}\n\nexport interface A2AGetTaskParams {\n\tid: string;\n\thistoryLength?: number;\n}\n\nexport interface A2ACancelTaskParams {\n\tid: string;\n\tmetadata?: Record<string, unknown>;\n}\n\nexport interface A2ASubscribeToTaskParams {\n\tid: string;\n}\n\n// ─── JSON-RPC Method Names ───────────────────────────────────────────────────\n\nexport const A2A_METHODS = {\n\tSEND_MESSAGE: \"message/send\",\n\tSEND_STREAMING_MESSAGE: \"message/stream\",\n\tGET_TASK: \"tasks/get\",\n\tCANCEL_TASK: \"tasks/cancel\",\n} as const;\n\n// ─── A2A Server Config ───────────────────────────────────────────────────────\n\nexport interface A2ATaskHandler {\n\t/** Handle an incoming message and produce a task result */\n\tonMessage: (message: A2AMessage, config?: A2ASendMessageConfiguration) => Promise<A2ATask>;\n\t/** Handle task cancellation */\n\tonCancel?: (taskId: string) => Promise<A2ATask>;\n\t/** Handle streaming message — yields events instead of returning a task */\n\tonMessageStream?: (\n\t\tmessage: A2AMessage,\n\t\tconfig?: A2ASendMessageConfiguration,\n\t) => AsyncIterable<A2AStreamEvent>;\n}\n\nexport interface A2AServerConfig {\n\t/** Agent card for this server */\n\tagentCard: A2AAgentCard;\n\t/** Handler for incoming tasks */\n\thandler: A2ATaskHandler;\n\t/** Validate an incoming auth token. Return the agent ID or null if invalid. */\n\tauthenticate?: (request: Request) => Promise<string | null>;\n\t/** Called after each A2A interaction for audit logging */\n\tonAudit?: (event: A2AAuditEvent) => Promise<void>;\n\t/** In-memory or external task store. Defaults to in-memory Map. */\n\ttaskStore?: A2ATaskStore;\n}\n\nexport interface A2ATaskStore {\n\tget: (taskId: string) => Promise<A2ATask | undefined>;\n\tset: (taskId: string, task: A2ATask) => Promise<void>;\n\tdelete: (taskId: string) => Promise<boolean>;\n}\n\nexport interface A2AAuditEvent {\n\tmethod: string;\n\tagentId: string | null;\n\ttaskId?: string;\n\ttimestamp: string;\n\tsuccess: boolean;\n\terror?: string;\n}\n\n// ─── A2A Client Config ───────────────────────────────────────────────────────\n\nexport interface A2AClientConfig {\n\t/** Base URL of the remote A2A agent, or a discovered Agent Card */\n\tagent: string | A2AAgentCard;\n\t/** Auth token or function that returns a token */\n\tgetAuthToken?: () => Promise<string> | string;\n\t/** Custom fetch implementation (for testing or proxying) */\n\tfetch?: typeof globalThis.fetch;\n\t/** Request timeout in milliseconds. Default: 30_000. */\n\ttimeout?: number;\n}\n\nexport interface A2AClient {\n\t/** Discover the remote agent's card from /.well-known/agent.json */\n\tdiscover: () => Promise<Result<A2AAgentCard>>;\n\t/** Send a message and get a task back */\n\tsendMessage: (params: A2ASendMessageParams) => Promise<Result<A2ATask>>;\n\t/** Get an existing task by ID */\n\tgetTask: (params: A2AGetTaskParams) => Promise<Result<A2ATask>>;\n\t/** Cancel a running task */\n\tcancelTask: (params: A2ACancelTaskParams) => Promise<Result<A2ATask>>;\n\t/** Send a streaming message and receive SSE events */\n\tsendStreamingMessage: (params: A2ASendMessageParams) => AsyncIterable<A2AStreamEvent>;\n}\n\n// ─── Zod Schemas ─────────────────────────────────────────────────────────────\n\nexport const A2ATextPartSchema = z.object({\n\ttype: z.literal(\"text\"),\n\ttext: z.string(),\n});\n\nexport const A2AFilePartSchema = z.object({\n\ttype: z.literal(\"file\"),\n\tfileUri: z.string(),\n\tmimeType: z.string(),\n\tname: z.string().optional(),\n});\n\nexport const A2ADataPartSchema = z.object({\n\ttype: z.literal(\"data\"),\n\tmimeType: z.string(),\n\tdata: z.string(),\n});\n\nexport const A2APartSchema = z.discriminatedUnion(\"type\", [\n\tA2ATextPartSchema,\n\tA2AFilePartSchema,\n\tA2ADataPartSchema,\n]);\n\nexport const A2AMessageSchema = z.object({\n\tid: z.string().min(1),\n\trole: z.enum([\"user\", \"agent\"]),\n\tparts: z.array(A2APartSchema).min(1),\n\tcreatedAt: z.string(),\n\tmetadata: z.record(z.unknown()).optional(),\n\treferenceTaskIds: z.array(z.string()).optional(),\n});\n\nexport const A2ATaskStateSchema = z.enum([\n\t\"submitted\",\n\t\"working\",\n\t\"input-required\",\n\t\"completed\",\n\t\"failed\",\n\t\"canceled\",\n\t\"auth-required\",\n\t\"rejected\",\n]);\n\nexport const A2ATaskStatusSchema = z.object({\n\tcode: A2ATaskStateSchema,\n\tmessage: z.string().optional(),\n\tprogress: z.number().min(0).max(100).optional(),\n});\n\nexport const A2AArtifactSchema = z.object({\n\tid: z.string().min(1),\n\tname: z.string().optional(),\n\tmimeType: z.string().optional(),\n\tparts: z.array(A2APartSchema).min(1),\n\tmetadata: z.record(z.unknown()).optional(),\n\tcreatedAt: z.string(),\n});\n\nexport const A2ATaskSchema = z.object({\n\tid: z.string().min(1),\n\tcontextId: z.string().min(1),\n\tstatus: A2ATaskStatusSchema,\n\tcreatedAt: z.string(),\n\tupdatedAt: z.string(),\n\thistory: z.array(A2AMessageSchema).optional(),\n\tartifacts: z.array(A2AArtifactSchema).optional(),\n\tmetadata: z.record(z.unknown()).optional(),\n});\n\nexport const A2AAgentSkillSchema = z.object({\n\tid: z.string().min(1),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tinputSchema: z.record(z.unknown()).optional(),\n\toutputSchema: z.record(z.unknown()).optional(),\n\tsupportedMediaTypes: z.array(z.string()).optional(),\n\ttags: z.array(z.string()).optional(),\n});\n\nexport const A2AAgentProviderSchema = z.object({\n\tname: z.string().min(1),\n\temail: z.string().optional(),\n\turl: z.string().optional(),\n});\n\nexport const A2AAgentCapabilitiesSchema = z.object({\n\tstreaming: z.boolean().optional(),\n\tpushNotifications: z.boolean().optional(),\n\textendedAgentCard: z.boolean().optional(),\n});\n\nconst A2ASecuritySchemeBaseSchema = z.object({\n\tdescription: z.string().optional(),\n});\n\nexport const A2AApiKeySecuritySchemeSchema = A2ASecuritySchemeBaseSchema.extend({\n\ttype: z.literal(\"apiKey\"),\n\tname: z.string().min(1),\n\tin: z.enum([\"query\", \"header\", \"cookie\"]),\n});\n\nexport const A2AHttpSecuritySchemeSchema = A2ASecuritySchemeBaseSchema.extend({\n\ttype: z.literal(\"http\"),\n\tscheme: z.string().min(1),\n\tbearerFormat: z.string().optional(),\n});\n\nexport const A2AOAuth2FlowSchema = z.object({\n\tauthorizationUrl: z.string().optional(),\n\ttokenUrl: z.string().optional(),\n\trefreshUrl: z.string().optional(),\n\tscopes: z.record(z.string()),\n});\n\nexport const A2AOAuth2SecuritySchemeSchema = A2ASecuritySchemeBaseSchema.extend({\n\ttype: z.literal(\"oauth2\"),\n\tflows: z.object({\n\t\timplicit: A2AOAuth2FlowSchema.optional(),\n\t\tpassword: A2AOAuth2FlowSchema.optional(),\n\t\tclientCredentials: A2AOAuth2FlowSchema.optional(),\n\t\tauthorizationCode: A2AOAuth2FlowSchema.optional(),\n\t\tdeviceCode: A2AOAuth2FlowSchema.optional(),\n\t}),\n});\n\nexport const A2AOidcSecuritySchemeSchema = A2ASecuritySchemeBaseSchema.extend({\n\ttype: z.literal(\"openIdConnect\"),\n\topenIdConnectUrl: z.string().min(1),\n});\n\nexport const A2AMutualTlsSecuritySchemeSchema = A2ASecuritySchemeBaseSchema.extend({\n\ttype: z.literal(\"mutualTls\"),\n});\n\nexport const A2ASecuritySchemeSchema = z.discriminatedUnion(\"type\", [\n\tA2AApiKeySecuritySchemeSchema,\n\tA2AHttpSecuritySchemeSchema,\n\tA2AOAuth2SecuritySchemeSchema,\n\tA2AOidcSecuritySchemeSchema,\n\tA2AMutualTlsSecuritySchemeSchema,\n]);\n\nexport const A2AAgentCardSignatureSchema = z.object({\n\talgorithm: z.string().min(1),\n\tsignature: z.string().min(1),\n\tkeyId: z.string().min(1),\n});\n\nexport const A2AAgentCardSchema = z.object({\n\tid: z.string().min(1),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tversion: z.string().min(1),\n\tprotocolVersion: z.string().min(1),\n\turl: z.string().url(),\n\tprovider: A2AAgentProviderSchema.optional(),\n\tcapabilities: A2AAgentCapabilitiesSchema.optional(),\n\tskills: z.array(A2AAgentSkillSchema).min(1),\n\tsecuritySchemes: z.record(A2ASecuritySchemeSchema).optional(),\n\tsecurity: z.array(z.record(z.array(z.string()))).optional(),\n\tdefaultInputModes: z.array(z.string()).optional(),\n\tdefaultOutputModes: z.array(z.string()).optional(),\n\tdocumentationUrl: z.string().url().optional(),\n\tsignature: A2AAgentCardSignatureSchema.optional(),\n\tmetadata: z.record(z.unknown()).optional(),\n});\n\nexport const A2ASendMessageConfigurationSchema = z.object({\n\tacceptedOutputModes: z.array(z.string()).optional(),\n\thistoryLength: z.number().int().min(0).optional(),\n\treturnImmediately: z.boolean().optional(),\n});\n\nexport const A2ASendMessageParamsSchema = z.object({\n\tmessage: A2AMessageSchema,\n\tconfiguration: A2ASendMessageConfigurationSchema.optional(),\n\tmetadata: z.record(z.unknown()).optional(),\n});\n\nexport const A2AGetTaskParamsSchema = z.object({\n\tid: z.string().min(1),\n\thistoryLength: z.number().int().min(0).optional(),\n});\n\nexport const A2ACancelTaskParamsSchema = z.object({\n\tid: z.string().min(1),\n\tmetadata: z.record(z.unknown()).optional(),\n});\n\nexport const A2AJsonRpcRequestSchema = z.object({\n\tjsonrpc: z.literal(\"2.0\"),\n\tid: z.union([z.string(), z.number()]),\n\tmethod: z.string().min(1),\n\tparams: z.unknown(),\n});\n","/**\n * A2A Agent Card management.\n *\n * Creates, validates, signs, and verifies Agent Cards that describe\n * an agent's identity, capabilities, skills, and auth requirements\n * using the A2A protocol format.\n */\n\nimport * as jose from \"jose\";\nimport { generateId } from \"../crypto/web-crypto.js\";\nimport type { AgentIdentity } from \"../types.js\";\nimport type {\n\tA2AAgentCapabilities,\n\tA2AAgentCard,\n\tA2AAgentProvider,\n\tA2AAgentSkill,\n\tA2ASecurityScheme,\n\tResult,\n} from \"./types.js\";\nimport { A2A_PROTOCOL_VERSION, A2AAgentCardSchema } from \"./types.js\";\n\n// ─── Create Agent Card ───────────────────────────────────────────────────────\n\nexport interface CreateAgentCardInput {\n\t/** The KavachOS agent identity to build the card from */\n\tagent: Pick<AgentIdentity, \"id\" | \"name\" | \"type\">;\n\t/** The URL where this agent's A2A endpoint is hosted */\n\turl: string;\n\t/** Human-readable description of what the agent does */\n\tdescription: string;\n\t/** Semantic version of this agent */\n\tversion: string;\n\t/** Skills this agent can perform */\n\tskills: A2AAgentSkill[];\n\t/** Optional provider information */\n\tprovider?: A2AAgentProvider;\n\t/** Optional capabilities declaration */\n\tcapabilities?: A2AAgentCapabilities;\n\t/** Security schemes required to call this agent */\n\tsecuritySchemes?: Record<string, A2ASecurityScheme>;\n\t/** Security requirements (references to securitySchemes keys) */\n\tsecurity?: Array<Record<string, string[]>>;\n\t/** Default accepted input MIME types */\n\tdefaultInputModes?: string[];\n\t/** Default output MIME types */\n\tdefaultOutputModes?: string[];\n\t/** Link to agent documentation */\n\tdocumentationUrl?: string;\n\t/** Arbitrary metadata */\n\tmetadata?: Record<string, unknown>;\n}\n\n/**\n * Create an A2A-compliant Agent Card from a KavachOS agent identity.\n *\n * Maps KavachOS agent fields to the A2A Agent Card format and sets\n * the protocol version automatically.\n */\nexport function createAgentCard(input: CreateAgentCardInput): A2AAgentCard {\n\tconst card: A2AAgentCard = {\n\t\tid: input.agent.id,\n\t\tname: input.agent.name,\n\t\tdescription: input.description,\n\t\tversion: input.version,\n\t\tprotocolVersion: A2A_PROTOCOL_VERSION,\n\t\turl: input.url,\n\t\tskills: input.skills,\n\t};\n\n\tif (input.provider) card.provider = input.provider;\n\tif (input.capabilities) card.capabilities = input.capabilities;\n\tif (input.securitySchemes) card.securitySchemes = input.securitySchemes;\n\tif (input.security) card.security = input.security;\n\tif (input.defaultInputModes) card.defaultInputModes = input.defaultInputModes;\n\tif (input.defaultOutputModes) card.defaultOutputModes = input.defaultOutputModes;\n\tif (input.documentationUrl) card.documentationUrl = input.documentationUrl;\n\tif (input.metadata) card.metadata = input.metadata;\n\n\treturn card;\n}\n\n// ─── Validate Agent Card ─────────────────────────────────────────────────────\n\n/**\n * Validate an incoming Agent Card against the A2A schema.\n *\n * Returns the parsed card on success or a structured error on failure.\n */\nexport function validateAgentCard(card: unknown): Result<A2AAgentCard> {\n\tconst parsed = A2AAgentCardSchema.safeParse(card);\n\tif (!parsed.success) {\n\t\tconst issues = parsed.error.issues.map((i) => `${i.path.join(\".\")}: ${i.message}`);\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\tcode: \"A2A_INVALID_AGENT_CARD\",\n\t\t\t\tmessage: `Invalid Agent Card: ${issues.join(\"; \")}`,\n\t\t\t\tdetails: { issues },\n\t\t\t},\n\t\t};\n\t}\n\treturn { success: true, data: parsed.data as A2AAgentCard };\n}\n\n// ─── Sign Agent Card ─────────────────────────────────────────────────────────\n\nexport interface SignAgentCardOptions {\n\t/** The Agent Card to sign */\n\tcard: A2AAgentCard;\n\t/** JWK private key used to create the signature */\n\tprivateKey: CryptoKey | jose.JWK;\n\t/** Signing algorithm. Default: \"ES256\". */\n\talgorithm?: string;\n\t/** Key ID to include in the signature. Auto-generated if not provided. */\n\tkeyId?: string;\n}\n\n/**\n * Sign an Agent Card with a private key.\n *\n * Creates a JWS compact signature over the card's canonical JSON\n * (excluding the signature field itself). The signature, algorithm,\n * and key ID are attached to the card's `signature` field.\n */\nexport async function signAgentCard(options: SignAgentCardOptions): Promise<Result<A2AAgentCard>> {\n\tconst { card, privateKey, algorithm = \"ES256\", keyId } = options;\n\n\ttry {\n\t\t// Strip existing signature before signing\n\t\tconst { signature: _ignored, ...cardWithoutSignature } = card;\n\n\t\tconst payload = new TextEncoder().encode(JSON.stringify(cardWithoutSignature));\n\n\t\tconst key =\n\t\t\t\"kty\" in (privateKey as jose.JWK)\n\t\t\t\t? await jose.importJWK(privateKey as jose.JWK, algorithm)\n\t\t\t\t: privateKey;\n\n\t\tconst kid = keyId ?? generateId();\n\n\t\tconst jws = await new jose.CompactSign(payload)\n\t\t\t.setProtectedHeader({ alg: algorithm, kid })\n\t\t\t.sign(key as CryptoKey);\n\n\t\tconst signedCard: A2AAgentCard = {\n\t\t\t...card,\n\t\t\tsignature: {\n\t\t\t\talgorithm,\n\t\t\t\tsignature: jws,\n\t\t\t\tkeyId: kid,\n\t\t\t},\n\t\t};\n\n\t\treturn { success: true, data: signedCard };\n\t} catch (err) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\tcode: \"A2A_SIGN_FAILED\",\n\t\t\t\tmessage: err instanceof Error ? err.message : \"Failed to sign agent card\",\n\t\t\t},\n\t\t};\n\t}\n}\n\n// ─── Verify Agent Card ───────────────────────────────────────────────────────\n\nexport interface VerifyAgentCardOptions {\n\t/** The signed Agent Card to verify */\n\tcard: A2AAgentCard;\n\t/** JWK public key used to verify the signature */\n\tpublicKey: CryptoKey | jose.JWK;\n}\n\n/**\n * Verify a signed Agent Card's signature.\n *\n * Checks that the JWS signature in `card.signature` is valid\n * against the provided public key and that the payload matches\n * the card content (minus the signature field).\n */\nexport async function verifyAgentCard(\n\toptions: VerifyAgentCardOptions,\n): Promise<Result<{ valid: boolean; card: A2AAgentCard }>> {\n\tconst { card, publicKey } = options;\n\n\tif (!card.signature) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\tcode: \"A2A_NO_SIGNATURE\",\n\t\t\t\tmessage: \"Agent Card has no signature to verify\",\n\t\t\t},\n\t\t};\n\t}\n\n\ttry {\n\t\tconst { signature, ...cardWithoutSignature } = card;\n\t\tconst algorithm = signature.algorithm;\n\n\t\tconst key =\n\t\t\t\"kty\" in (publicKey as jose.JWK)\n\t\t\t\t? await jose.importJWK(publicKey as jose.JWK, algorithm)\n\t\t\t\t: publicKey;\n\n\t\tconst { payload } = await jose.compactVerify(signature.signature, key as CryptoKey);\n\n\t\tconst decoded = new TextDecoder().decode(payload);\n\t\tconst signedContent = JSON.parse(decoded) as Record<string, unknown>;\n\t\tconst currentContent = JSON.stringify(cardWithoutSignature);\n\t\tconst parsedCurrentContent = JSON.parse(currentContent) as Record<string, unknown>;\n\n\t\t// Compare the signed payload against the current card content\n\t\tconst matches = JSON.stringify(signedContent) === JSON.stringify(parsedCurrentContent);\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: { valid: matches, card },\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\tcode: \"A2A_VERIFY_FAILED\",\n\t\t\t\tmessage: err instanceof Error ? err.message : \"Failed to verify agent card signature\",\n\t\t\t},\n\t\t};\n\t}\n}\n","/**\n * A2A client for KavachOS.\n *\n * Discovers remote agents via /.well-known/agent.json and communicates\n * with them through JSON-RPC over HTTP. Supports message send, task\n * retrieval, cancellation, and SSE streaming.\n */\n\nimport { generateId } from \"../crypto/web-crypto.js\";\nimport type {\n\tA2AAgentCard,\n\tA2ACancelTaskParams,\n\tA2AClient,\n\tA2AClientConfig,\n\tA2AGetTaskParams,\n\tA2AJsonRpcResponse,\n\tA2ASendMessageParams,\n\tA2AStreamEvent,\n\tA2ATask,\n\tResult,\n} from \"./types.js\";\nimport {\n\tA2A_JSONRPC_VERSION,\n\tA2A_METHODS,\n\tA2A_WELL_KNOWN_PATH,\n\tA2AAgentCardSchema,\n} from \"./types.js\";\n\n// ─── Create A2A Client ──────────────────────────────────────────────────────\n\n/**\n * Create an A2A client that can discover and call remote A2A agents.\n *\n * @example\n * ```typescript\n * const client = createA2AClient({\n * agent: 'https://remote-agent.example.com',\n * getAuthToken: () => kavach.issueToken({ agentId: myAgent.id }),\n * });\n *\n * const card = await client.discover();\n * const result = await client.sendMessage({\n * message: { id: '1', role: 'user', parts: [{ type: 'text', text: 'Hello' }], createdAt: new Date().toISOString() },\n * });\n * ```\n */\nexport function createA2AClient(config: A2AClientConfig): A2AClient {\n\tconst fetchFn = config.fetch ?? globalThis.fetch;\n\tconst timeout = config.timeout ?? 30_000;\n\n\tlet cachedCard: A2AAgentCard | undefined;\n\n\t// Resolve the base URL from the config\n\tfunction getBaseUrl(): string {\n\t\tif (typeof config.agent === \"string\") {\n\t\t\treturn config.agent.replace(/\\/$/, \"\");\n\t\t}\n\t\treturn config.agent.url.replace(/\\/$/, \"\");\n\t}\n\n\t// If the agent was passed as a card, use it directly\n\tif (typeof config.agent !== \"string\") {\n\t\tcachedCard = config.agent;\n\t}\n\n\tasync function getAuthHeaders(): Promise<Record<string, string>> {\n\t\tif (!config.getAuthToken) return {};\n\t\tconst token = await config.getAuthToken();\n\t\treturn { Authorization: `Bearer ${token}` };\n\t}\n\n\tasync function jsonRpcCall<R>(method: string, params: unknown): Promise<Result<R>> {\n\t\tconst baseUrl = cachedCard?.url ?? getBaseUrl();\n\t\tconst authHeaders = await getAuthHeaders();\n\n\t\tconst controller = new AbortController();\n\t\tconst timer = setTimeout(() => controller.abort(), timeout);\n\n\t\ttry {\n\t\t\tconst response = await fetchFn(baseUrl, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\t...authHeaders,\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tjsonrpc: A2A_JSONRPC_VERSION,\n\t\t\t\t\tid: generateId(),\n\t\t\t\t\tmethod,\n\t\t\t\t\tparams,\n\t\t\t\t}),\n\t\t\t\tsignal: controller.signal,\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: \"A2A_HTTP_ERROR\",\n\t\t\t\t\t\tmessage: `HTTP ${response.status}: ${response.statusText}`,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst body = (await response.json()) as A2AJsonRpcResponse<R>;\n\n\t\t\tif (body.error) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: `A2A_RPC_${body.error.code}`,\n\t\t\t\t\t\tmessage: body.error.message,\n\t\t\t\t\t\tdetails: body.error.data ? { data: body.error.data } : undefined,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn { success: true, data: body.result as R };\n\t\t} catch (err) {\n\t\t\tif (err instanceof DOMException && err.name === \"AbortError\") {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: \"A2A_TIMEOUT\",\n\t\t\t\t\t\tmessage: `Request timed out after ${timeout}ms`,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: {\n\t\t\t\t\tcode: \"A2A_REQUEST_FAILED\",\n\t\t\t\t\tmessage: err instanceof Error ? err.message : \"Request failed\",\n\t\t\t\t},\n\t\t\t};\n\t\t} finally {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t}\n\n\tasync function discover(): Promise<Result<A2AAgentCard>> {\n\t\tif (cachedCard) {\n\t\t\treturn { success: true, data: cachedCard };\n\t\t}\n\n\t\tconst baseUrl = getBaseUrl();\n\t\tconst url = `${baseUrl}${A2A_WELL_KNOWN_PATH}`;\n\t\tconst authHeaders = await getAuthHeaders();\n\n\t\tconst controller = new AbortController();\n\t\tconst timer = setTimeout(() => controller.abort(), timeout);\n\n\t\ttry {\n\t\t\tconst response = await fetchFn(url, {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: authHeaders,\n\t\t\t\tsignal: controller.signal,\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: \"A2A_DISCOVERY_FAILED\",\n\t\t\t\t\t\tmessage: `Discovery failed: HTTP ${response.status}`,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst body: unknown = await response.json();\n\t\t\tconst parsed = A2AAgentCardSchema.safeParse(body);\n\n\t\t\tif (!parsed.success) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: \"A2A_INVALID_AGENT_CARD\",\n\t\t\t\t\t\tmessage: `Invalid agent card: ${parsed.error.issues.map((i) => i.message).join(\"; \")}`,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcachedCard = parsed.data as A2AAgentCard;\n\t\t\treturn { success: true, data: cachedCard };\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: {\n\t\t\t\t\tcode: \"A2A_DISCOVERY_FAILED\",\n\t\t\t\t\tmessage: err instanceof Error ? err.message : \"Discovery request failed\",\n\t\t\t\t},\n\t\t\t};\n\t\t} finally {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t}\n\n\tasync function sendMessage(params: A2ASendMessageParams): Promise<Result<A2ATask>> {\n\t\treturn jsonRpcCall<A2ATask>(A2A_METHODS.SEND_MESSAGE, params);\n\t}\n\n\tasync function getTask(params: A2AGetTaskParams): Promise<Result<A2ATask>> {\n\t\treturn jsonRpcCall<A2ATask>(A2A_METHODS.GET_TASK, params);\n\t}\n\n\tasync function cancelTask(params: A2ACancelTaskParams): Promise<Result<A2ATask>> {\n\t\treturn jsonRpcCall<A2ATask>(A2A_METHODS.CANCEL_TASK, params);\n\t}\n\n\tasync function* sendStreamingMessage(\n\t\tparams: A2ASendMessageParams,\n\t): AsyncIterable<A2AStreamEvent> {\n\t\tconst baseUrl = cachedCard?.url ?? getBaseUrl();\n\t\tconst authHeaders = await getAuthHeaders();\n\n\t\tconst response = await fetchFn(baseUrl, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAccept: \"text/event-stream\",\n\t\t\t\t...authHeaders,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tjsonrpc: A2A_JSONRPC_VERSION,\n\t\t\t\tid: generateId(),\n\t\t\t\tmethod: A2A_METHODS.SEND_STREAMING_MESSAGE,\n\t\t\t\tparams,\n\t\t\t}),\n\t\t});\n\n\t\tif (!response.ok || !response.body) {\n\t\t\tthrow new Error(`Streaming request failed: HTTP ${response.status}`);\n\t\t}\n\n\t\tconst reader = response.body.getReader();\n\t\tconst decoder = new TextDecoder();\n\t\tlet buffer = \"\";\n\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\n\t\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\t\tconst lines = buffer.split(\"\\n\");\n\t\t\t\tbuffer = lines.pop() ?? \"\";\n\n\t\t\t\tfor (const line of lines) {\n\t\t\t\t\tif (line.startsWith(\"data: \")) {\n\t\t\t\t\t\tconst data = line.slice(6).trim();\n\t\t\t\t\t\tif (data === \"[DONE]\") return;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tyield JSON.parse(data) as A2AStreamEvent;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Skip malformed SSE lines\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\treader.releaseLock();\n\t\t}\n\t}\n\n\treturn {\n\t\tdiscover,\n\t\tsendMessage,\n\t\tgetTask,\n\t\tcancelTask,\n\t\tsendStreamingMessage,\n\t};\n}\n","/**\n * A2A JSON-RPC server for KavachOS.\n *\n * Creates a Web API Request/Response handler that implements the A2A\n * protocol's JSON-RPC endpoint. Handles message/send, tasks/get,\n * tasks/cancel, and message/stream (SSE). Authenticates callers through\n * KavachOS and logs every interaction to the audit trail.\n */\n\nimport type {\n\tA2AAuditEvent,\n\tA2AJsonRpcError,\n\tA2AJsonRpcResponse,\n\tA2AServerConfig,\n\tA2ATask,\n\tA2ATaskStore,\n} from \"./types.js\";\nimport {\n\tA2A_ERROR_CODES,\n\tA2A_JSONRPC_VERSION,\n\tA2A_METHODS,\n\tA2A_WELL_KNOWN_PATH,\n\tA2ACancelTaskParamsSchema,\n\tA2AGetTaskParamsSchema,\n\tA2AJsonRpcRequestSchema,\n\tA2ASendMessageParamsSchema,\n} from \"./types.js\";\n\n// ─── In-memory task store (default) ──────────────────────────────────────────\n\nfunction createInMemoryTaskStore(): A2ATaskStore {\n\tconst tasks = new Map<string, A2ATask>();\n\treturn {\n\t\tasync get(taskId: string) {\n\t\t\treturn tasks.get(taskId);\n\t\t},\n\t\tasync set(taskId: string, task: A2ATask) {\n\t\t\ttasks.set(taskId, task);\n\t\t},\n\t\tasync delete(taskId: string) {\n\t\t\treturn tasks.delete(taskId);\n\t\t},\n\t};\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction jsonRpcError(id: string | number | null, error: A2AJsonRpcError): Response {\n\tconst body: A2AJsonRpcResponse = {\n\t\tjsonrpc: A2A_JSONRPC_VERSION,\n\t\tid: id ?? 0,\n\t\terror,\n\t};\n\treturn new Response(JSON.stringify(body), {\n\t\tstatus: 200, // JSON-RPC always returns 200\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t});\n}\n\nfunction jsonRpcSuccess(id: string | number, result: unknown): Response {\n\tconst body: A2AJsonRpcResponse = {\n\t\tjsonrpc: A2A_JSONRPC_VERSION,\n\t\tid,\n\t\tresult,\n\t};\n\treturn new Response(JSON.stringify(body), {\n\t\tstatus: 200,\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t});\n}\n\n// ─── Create A2A Server ───────────────────────────────────────────────────────\n\nexport interface A2AServer {\n\t/** Handle an incoming HTTP request (JSON-RPC or agent card discovery) */\n\thandleRequest: (request: Request) => Promise<Response>;\n\t/** Access the task store directly (for testing or admin) */\n\ttaskStore: A2ATaskStore;\n}\n\n/**\n * Create an A2A-compliant JSON-RPC server.\n *\n * The returned `handleRequest` function accepts standard Web API Request\n * objects and returns Response objects. Mount it at whatever path you\n * prefer; it also handles `/.well-known/agent.json` for agent card\n * discovery.\n *\n * @example\n * ```typescript\n * const server = createA2AServer({\n * agentCard: myCard,\n * handler: {\n * onMessage: async (msg) => ({ id: '...', contextId: '...', status: { code: 'completed' }, ... }),\n * },\n * authenticate: async (req) => verifyToken(req),\n * });\n *\n * // In your HTTP framework:\n * app.all('/a2a', (req) => server.handleRequest(req));\n * ```\n */\nexport function createA2AServer(config: A2AServerConfig): A2AServer {\n\tconst taskStore = config.taskStore ?? createInMemoryTaskStore();\n\n\tasync function audit(event: Omit<A2AAuditEvent, \"timestamp\">): Promise<void> {\n\t\tif (config.onAudit) {\n\t\t\tawait config.onAudit({\n\t\t\t\t...event,\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t});\n\t\t}\n\t}\n\n\tasync function authenticate(\n\t\trequest: Request,\n\t): Promise<{ agentId: string | null; error: Response | null }> {\n\t\tif (!config.authenticate) {\n\t\t\treturn { agentId: null, error: null };\n\t\t}\n\n\t\tconst agentId = await config.authenticate(request);\n\t\tif (agentId === null) {\n\t\t\treturn {\n\t\t\t\tagentId: null,\n\t\t\t\terror: jsonRpcError(0, {\n\t\t\t\t\tcode: A2A_ERROR_CODES.AUTHENTICATION_REQUIRED,\n\t\t\t\t\tmessage: \"Authentication required\",\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\treturn { agentId, error: null };\n\t}\n\n\tasync function handleSendMessage(\n\t\tid: string | number,\n\t\tparams: unknown,\n\t\tagentId: string | null,\n\t): Promise<Response> {\n\t\tconst parsed = A2ASendMessageParamsSchema.safeParse(params);\n\t\tif (!parsed.success) {\n\t\t\tawait audit({\n\t\t\t\tmethod: A2A_METHODS.SEND_MESSAGE,\n\t\t\t\tagentId,\n\t\t\t\tsuccess: false,\n\t\t\t\terror: \"Invalid params\",\n\t\t\t});\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.INVALID_PARAMS,\n\t\t\t\tmessage: `Invalid params: ${parsed.error.issues.map((i) => i.message).join(\"; \")}`,\n\t\t\t});\n\t\t}\n\n\t\ttry {\n\t\t\tconst task = await config.handler.onMessage(parsed.data.message, parsed.data.configuration);\n\n\t\t\tawait taskStore.set(task.id, task);\n\t\t\tawait audit({\n\t\t\t\tmethod: A2A_METHODS.SEND_MESSAGE,\n\t\t\t\tagentId,\n\t\t\t\ttaskId: task.id,\n\t\t\t\tsuccess: true,\n\t\t\t});\n\n\t\t\treturn jsonRpcSuccess(id, task);\n\t\t} catch (err) {\n\t\t\tconst message = err instanceof Error ? err.message : \"Internal error\";\n\t\t\tawait audit({\n\t\t\t\tmethod: A2A_METHODS.SEND_MESSAGE,\n\t\t\t\tagentId,\n\t\t\t\tsuccess: false,\n\t\t\t\terror: message,\n\t\t\t});\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.INTERNAL_ERROR,\n\t\t\t\tmessage,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync function handleGetTask(\n\t\tid: string | number,\n\t\tparams: unknown,\n\t\tagentId: string | null,\n\t): Promise<Response> {\n\t\tconst parsed = A2AGetTaskParamsSchema.safeParse(params);\n\t\tif (!parsed.success) {\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.INVALID_PARAMS,\n\t\t\t\tmessage: \"Invalid params: id is required\",\n\t\t\t});\n\t\t}\n\n\t\tconst task = await taskStore.get(parsed.data.id);\n\t\tif (!task) {\n\t\t\tawait audit({\n\t\t\t\tmethod: A2A_METHODS.GET_TASK,\n\t\t\t\tagentId,\n\t\t\t\ttaskId: parsed.data.id,\n\t\t\t\tsuccess: false,\n\t\t\t\terror: \"Task not found\",\n\t\t\t});\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.TASK_NOT_FOUND,\n\t\t\t\tmessage: `Task ${parsed.data.id} not found`,\n\t\t\t});\n\t\t}\n\n\t\t// Trim history if historyLength specified\n\t\tlet result = task;\n\t\tif (parsed.data.historyLength !== undefined && task.history) {\n\t\t\tconst len = parsed.data.historyLength;\n\t\t\tresult = {\n\t\t\t\t...task,\n\t\t\t\thistory: len === 0 ? [] : task.history.slice(-len),\n\t\t\t};\n\t\t}\n\n\t\tawait audit({\n\t\t\tmethod: A2A_METHODS.GET_TASK,\n\t\t\tagentId,\n\t\t\ttaskId: task.id,\n\t\t\tsuccess: true,\n\t\t});\n\n\t\treturn jsonRpcSuccess(id, result);\n\t}\n\n\tasync function handleCancelTask(\n\t\tid: string | number,\n\t\tparams: unknown,\n\t\tagentId: string | null,\n\t): Promise<Response> {\n\t\tconst parsed = A2ACancelTaskParamsSchema.safeParse(params);\n\t\tif (!parsed.success) {\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.INVALID_PARAMS,\n\t\t\t\tmessage: \"Invalid params: id is required\",\n\t\t\t});\n\t\t}\n\n\t\tconst existing = await taskStore.get(parsed.data.id);\n\t\tif (!existing) {\n\t\t\tawait audit({\n\t\t\t\tmethod: A2A_METHODS.CANCEL_TASK,\n\t\t\t\tagentId,\n\t\t\t\ttaskId: parsed.data.id,\n\t\t\t\tsuccess: false,\n\t\t\t\terror: \"Task not found\",\n\t\t\t});\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.TASK_NOT_FOUND,\n\t\t\t\tmessage: `Task ${parsed.data.id} not found`,\n\t\t\t});\n\t\t}\n\n\t\t// Already in a terminal state\n\t\tif (\n\t\t\texisting.status.code === \"completed\" ||\n\t\t\texisting.status.code === \"failed\" ||\n\t\t\texisting.status.code === \"canceled\"\n\t\t) {\n\t\t\tawait audit({\n\t\t\t\tmethod: A2A_METHODS.CANCEL_TASK,\n\t\t\t\tagentId,\n\t\t\t\ttaskId: existing.id,\n\t\t\t\tsuccess: false,\n\t\t\t\terror: \"Task already in terminal state\",\n\t\t\t});\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.TASK_ALREADY_COMPLETED,\n\t\t\t\tmessage: `Task ${parsed.data.id} is already ${existing.status.code}`,\n\t\t\t});\n\t\t}\n\n\t\tif (config.handler.onCancel) {\n\t\t\ttry {\n\t\t\t\tconst canceled = await config.handler.onCancel(parsed.data.id);\n\t\t\t\tawait taskStore.set(canceled.id, canceled);\n\t\t\t\tawait audit({\n\t\t\t\t\tmethod: A2A_METHODS.CANCEL_TASK,\n\t\t\t\t\tagentId,\n\t\t\t\t\ttaskId: canceled.id,\n\t\t\t\t\tsuccess: true,\n\t\t\t\t});\n\t\t\t\treturn jsonRpcSuccess(id, canceled);\n\t\t\t} catch (err) {\n\t\t\t\tconst message = err instanceof Error ? err.message : \"Cancel failed\";\n\t\t\t\tawait audit({\n\t\t\t\t\tmethod: A2A_METHODS.CANCEL_TASK,\n\t\t\t\t\tagentId,\n\t\t\t\t\ttaskId: parsed.data.id,\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: message,\n\t\t\t\t});\n\t\t\t\treturn jsonRpcError(id, {\n\t\t\t\t\tcode: A2A_ERROR_CODES.INTERNAL_ERROR,\n\t\t\t\t\tmessage,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Default cancellation\n\t\tconst canceled: A2ATask = {\n\t\t\t...existing,\n\t\t\tstatus: { code: \"canceled\", message: \"Canceled by client\" },\n\t\t\tupdatedAt: new Date().toISOString(),\n\t\t};\n\t\tawait taskStore.set(canceled.id, canceled);\n\t\tawait audit({\n\t\t\tmethod: A2A_METHODS.CANCEL_TASK,\n\t\t\tagentId,\n\t\t\ttaskId: canceled.id,\n\t\t\tsuccess: true,\n\t\t});\n\t\treturn jsonRpcSuccess(id, canceled);\n\t}\n\n\tfunction handleStreamingMessage(\n\t\tid: string | number,\n\t\tparams: unknown,\n\t\tagentId: string | null,\n\t): Response {\n\t\tif (!config.handler.onMessageStream) {\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.METHOD_NOT_FOUND,\n\t\t\t\tmessage: \"Streaming not supported by this agent\",\n\t\t\t});\n\t\t}\n\n\t\tconst parsed = A2ASendMessageParamsSchema.safeParse(params);\n\t\tif (!parsed.success) {\n\t\t\treturn jsonRpcError(id, {\n\t\t\t\tcode: A2A_ERROR_CODES.INVALID_PARAMS,\n\t\t\t\tmessage: \"Invalid params\",\n\t\t\t});\n\t\t}\n\n\t\tconst stream = config.handler.onMessageStream(parsed.data.message, parsed.data.configuration);\n\n\t\tconst encoder = new TextEncoder();\n\t\tconst readable = new ReadableStream({\n\t\t\tasync start(controller) {\n\t\t\t\ttry {\n\t\t\t\t\tfor await (const event of stream) {\n\t\t\t\t\t\tconst data = JSON.stringify(event);\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(`data: ${data}\\n\\n`));\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.enqueue(encoder.encode(\"data: [DONE]\\n\\n\"));\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst errorData = JSON.stringify({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tcode: A2A_ERROR_CODES.INTERNAL_ERROR,\n\t\t\t\t\t\t\tmessage: err instanceof Error ? err.message : \"Stream error\",\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tcontroller.enqueue(encoder.encode(`data: ${errorData}\\n\\n`));\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t\t// Fire-and-forget audit\n\t\t\t\tvoid audit({\n\t\t\t\t\tmethod: A2A_METHODS.SEND_STREAMING_MESSAGE,\n\t\t\t\t\tagentId,\n\t\t\t\t\tsuccess: true,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\n\t\treturn new Response(readable, {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"text/event-stream\",\n\t\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\t\tConnection: \"keep-alive\",\n\t\t\t},\n\t\t});\n\t}\n\n\tasync function handleRequest(request: Request): Promise<Response> {\n\t\tconst url = new URL(request.url);\n\n\t\t// Agent Card discovery\n\t\tif (request.method === \"GET\" && url.pathname.endsWith(A2A_WELL_KNOWN_PATH)) {\n\t\t\treturn new Response(JSON.stringify(config.agentCard), {\n\t\t\t\tstatus: 200,\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\t// Only POST for JSON-RPC\n\t\tif (request.method !== \"POST\") {\n\t\t\treturn new Response(\"Method Not Allowed\", { status: 405 });\n\t\t}\n\n\t\t// Authenticate\n\t\tconst auth = await authenticate(request);\n\t\tif (auth.error) return auth.error;\n\t\tconst agentId = auth.agentId;\n\n\t\t// Parse JSON-RPC envelope\n\t\tlet body: unknown;\n\t\ttry {\n\t\t\tbody = await request.json();\n\t\t} catch {\n\t\t\treturn jsonRpcError(null, {\n\t\t\t\tcode: A2A_ERROR_CODES.PARSE_ERROR,\n\t\t\t\tmessage: \"Invalid JSON\",\n\t\t\t});\n\t\t}\n\n\t\tconst envelope = A2AJsonRpcRequestSchema.safeParse(body);\n\t\tif (!envelope.success) {\n\t\t\treturn jsonRpcError(null, {\n\t\t\t\tcode: A2A_ERROR_CODES.INVALID_REQUEST,\n\t\t\t\tmessage: \"Invalid JSON-RPC request\",\n\t\t\t});\n\t\t}\n\n\t\tconst { id: reqId, method, params } = envelope.data;\n\n\t\tswitch (method) {\n\t\t\tcase A2A_METHODS.SEND_MESSAGE:\n\t\t\t\treturn handleSendMessage(reqId, params, agentId);\n\n\t\t\tcase A2A_METHODS.GET_TASK:\n\t\t\t\treturn handleGetTask(reqId, params, agentId);\n\n\t\t\tcase A2A_METHODS.CANCEL_TASK:\n\t\t\t\treturn handleCancelTask(reqId, params, agentId);\n\n\t\t\tcase A2A_METHODS.SEND_STREAMING_MESSAGE:\n\t\t\t\treturn handleStreamingMessage(reqId, params, agentId);\n\n\t\t\tdefault:\n\t\t\t\tawait audit({\n\t\t\t\t\tmethod,\n\t\t\t\t\tagentId,\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: \"Method not found\",\n\t\t\t\t});\n\t\t\t\treturn jsonRpcError(reqId, {\n\t\t\t\t\tcode: A2A_ERROR_CODES.METHOD_NOT_FOUND,\n\t\t\t\t\tmessage: `Unknown method: ${method}`,\n\t\t\t\t});\n\t\t}\n\t}\n\n\treturn { handleRequest, taskStore };\n}\n"]}
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { D as Database, C as CreateAgentInput,
|
|
2
|
-
export {
|
|
3
|
-
import 'drizzle-orm/better-sqlite3';
|
|
1
|
+
import { D as Database, C as CreateAgentInput, A as AgentIdentity, h as AgentFilter, U as UpdateAgentInput } from '../types-W8X0PXE7.js';
|
|
2
|
+
export { Z as AgentConfig } from '../types-W8X0PXE7.js';
|
|
4
3
|
import 'drizzle-orm/sqlite-core';
|
|
5
|
-
import '../types-
|
|
4
|
+
import '../types-BuHrZcjE.js';
|
|
6
5
|
import 'zod';
|
|
7
6
|
|
|
8
7
|
interface AgentModuleConfig {
|
package/dist/agent/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { createAgentModule } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { createAgentModule } from '../chunk-IKTOSJ4O.js';
|
|
2
|
+
import '../chunk-KDL6A76K.js';
|
|
3
|
+
import '../chunk-QCRHJMDX.js';
|
|
4
|
+
import '../chunk-NSBPE2FW.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/audit/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { D as Database, k as AuditFilter, l as AuditEntry, m as AuditExportOptions } from '../types-
|
|
2
|
-
import 'drizzle-orm/better-sqlite3';
|
|
1
|
+
import { D as Database, k as AuditFilter, l as AuditEntry, m as AuditExportOptions } from '../types-W8X0PXE7.js';
|
|
3
2
|
import 'drizzle-orm/sqlite-core';
|
|
4
|
-
import '../types-
|
|
3
|
+
import '../types-BuHrZcjE.js';
|
|
5
4
|
import 'zod';
|
|
6
5
|
|
|
7
6
|
interface AuditModuleConfig {
|
package/dist/audit/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createAuditModule } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { createAuditModule } from '../chunk-Y3OWAJHK.js';
|
|
2
|
+
import '../chunk-KDL6A76K.js';
|
|
3
|
+
import '../chunk-NSBPE2FW.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|