eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 4.91 kB
JavaScript
import{z}from"#compiled/zod/index.js";import{formatValidationError}from"#runtime/validation.js";import{jsonValueSchema}from"#shared/json-schemas.js";import{SessionInboxWireError}from"#execution/wire/session-inbox-contract.js";import{coalesceDeliverPayloads}from"#execution/deliver-payloads.js";import{sessionInboxWireV3Schema}from"#execution/wire/session-inbox-wire.v3.js";import{tokenUsageWithCostSchema}from"#shared/token-usage.js";const taskMetadataSchema=z.object({agentId:z.string().optional(),kind:z.string(),mode:z.enum([`local`,`remote`]).optional(),name:z.string()}).strict(),taskViewBase={executor:z.object({binding:z.object({data:z.record(z.string(),jsonValueSchema),kind:z.string()}).strict().optional()}).strict().optional(),metadata:taskMetadataSchema,taskId:z.string(),usage:tokenUsageWithCostSchema.optional()},taskViewSchema=z.discriminatedUnion(`status`,[z.object({...taskViewBase,status:z.literal(`working`)}).strict(),z.object({...taskViewBase,inputRequests:z.array(jsonValueSchema),status:z.literal(`input_required`)}).strict(),z.object({...taskViewBase,lastOutput:z.object({data:jsonValueSchema,type:z.literal(`result`)}).strict(),status:z.literal(`completed`)}).strict(),z.object({...taskViewBase,lastOutput:z.object({data:jsonValueSchema,type:z.literal(`error`)}).strict(),status:z.literal(`failed`)}).strict(),z.object({...taskViewBase,status:z.literal(`cancelled`)}).strict()]),eventCoordinateSchema=z.number().int().nonnegative(),taskInputRequestBase={replyTo:z.string(),sequence:eventCoordinateSchema,stepIndex:eventCoordinateSchema,taskId:z.string(),turnId:z.string()},taskInputRequestSchema=z.union([z.object({...taskInputRequestBase,request:jsonValueSchema}).loose(),z.object({...taskInputRequestBase,requests:z.array(jsonValueSchema)}).loose()]),agentInvocationInputSchema=z.object({agentId:z.string().optional(),message:z.string(),outputSchema:z.record(z.string(),jsonValueSchema).optional(),target:z.string()}).strict(),agentTurnResultSchema=z.discriminatedUnion(`kind`,[z.strictObject({kind:z.literal(`succeeded`),output:jsonValueSchema}),z.strictObject({error:jsonValueSchema,kind:z.literal(`failed`)}),z.strictObject({kind:z.literal(`cancelled`)})]),agentTurnOutcomeSchema=z.discriminatedUnion(`kind`,[z.strictObject({kind:z.literal(`parked`),result:agentTurnResultSchema,usageDelta:tokenUsageWithCostSchema}),z.strictObject({kind:z.literal(`terminal`),result:agentTurnResultSchema,usageDelta:tokenUsageWithCostSchema})]),runtimeSubagentChildResultSchema=z.object({backgroundTask:z.strictObject({status:z.literal(`working`),taskId:z.string()}).optional(),callId:z.string(),isError:z.boolean().optional(),kind:z.literal(`subagent-result`),origin:z.literal(`child`),outcome:agentTurnOutcomeSchema,output:jsonValueSchema,subagentName:z.string(),usage:tokenUsageWithCostSchema.optional()}).strict(),taskAgentRequestSchema=z.object({replyTo:z.string(),request:z.discriminatedUnion(`kind`,[z.object({input:agentInvocationInputSchema,invocationId:z.string(),kind:z.literal(`agent-invoke`)}).strict(),z.object({kind:z.literal(`agent-settled`),result:runtimeSubagentChildResultSchema}).strict()]),taskId:z.string()}).strict(),subagentAuthorizationEventHookPayloadSchema=z.object({callId:z.string(),childSessionId:z.string(),event:z.custom(e=>typeof e==`object`&&!!e&&!Array.isArray(e),`Expected an object.`),kind:z.literal(`subagent-authorization-event`),subagentName:z.string()}).strict(),taskAuthorizationEventSchema=z.object({hookPayload:subagentAuthorizationEventHookPayloadSchema,taskId:z.string()}).strict(),taskPayloadV5Schema=z.object({agentRequests:z.array(taskAgentRequestSchema).optional(),authorizationEvents:z.array(taskAuthorizationEventSchema).optional(),inputRequests:z.array(taskInputRequestSchema).optional(),views:z.array(taskViewSchema).optional()}).strict(),v3=sessionInboxWireV3Schema.options,v3Deliver=v3[0],deliverPayloadV5Schema=v3Deliver.shape.payload.extend({task:taskPayloadV5Schema.optional()}),version=z.literal(5),sessionInboxWireV5Schema=z.discriminatedUnion(`kind`,[v3Deliver.extend({payload:deliverPayloadV5Schema,payloads:z.array(deliverPayloadV5Schema),version}),v3[1].extend({version}),v3[2].extend({version}),v3[3].extend({version}),v3[4].extend({version}),v3[5].extend({version})]);function encodeSessionCommandV5(e){let t=e.kind===`send`?{auth:e.auth,caller:e.caller,deliveryMetadata:e.delivery===void 0?void 0:[{...e.delivery,payloadIndex:0}],kind:`deliver`,payload:e.payload,payloads:[e.payload],requestId:e.requestId,taskDeliveryId:e.taskDeliveryId,turnPolicy:e.turnPolicy,version:5}:e.kind===`deliver`?{...e,payload:coalesceDeliverPayloads(e.payloads),version:5}:{...e,version:5},n=sessionInboxWireV5Schema.safeParse(t);if(!n.success)throw new SessionInboxWireError(`Produced a session inbox payload that does not match wire version 5: ${formatValidationError(n.error)}`);return n.data}export{encodeSessionCommandV5,sessionInboxWireV5Schema};