acp-sdk
Version:
Agent Communication Protocol SDK
1 lines • 20.3 kB
Source Map (JSON)
{"version":3,"sources":["../../src/models/models.ts"],"names":["z","PlatformUIAnnotation","nullishObject","createSchemaTypePredicate","ErrorModel","ACPError"],"mappings":"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","file":"models.cjs","sourcesContent":["import * as z from \"zod\";\nimport { Simplify } from \"type-fest\";\nimport { ErrorModel } from \"./errors.js\";\nimport { createSchemaTypePredicate, nullishObject } from \"./utils.js\";\nimport { ACPError } from \"../client/errors.js\";\nimport { PlatformUIAnnotation } from \"./platform.js\";\n\nexport const AnyModel = z.record(z.any());\n\nexport type AnyModel = z.infer<typeof AnyModel>;\n\nexport const Author = z.object({\n name: z.string(),\n email: z.string().nullish(),\n url: z.string().url().nullish(),\n});\n\nexport type Author = z.infer<typeof Author>;\n\nexport const Contributor = z.object({\n name: z.string(),\n email: z.string().nullish(),\n url: z.string().url().nullish(),\n});\n\nexport type Contributor = z.infer<typeof Contributor>;\n\nexport const LinkType = z.enum([\n \"source-code\",\n \"container-image\",\n \"homepage\",\n \"documentation\",\n]);\n\nexport type LinkType = z.infer<typeof LinkType>;\n\nexport const Link = z.object({\n type: LinkType,\n url: z.string().url(),\n});\n\nexport type Link = z.infer<typeof Link>;\n\nexport const DependencyType = z.enum([\"agent\", \"tool\", \"model\"]);\n\nexport type DependencyType = z.infer<typeof DependencyType>;\n\nexport const Dependency = z.object({\n type: DependencyType,\n name: z.string(),\n});\n\nexport type Dependency = z.infer<typeof Dependency>;\n\nexport const Capability = z.object({\n name: z.string(),\n description: z.string(),\n});\n\nexport type Capability = z.infer<typeof Capability>;\n\nexport const Annotations = z.object({\n beeai_ui: PlatformUIAnnotation.nullish(),\n});\n\nexport type Annotations = z.infer<typeof Annotations>;\n\nexport const Metadata = nullishObject(\n z.object({\n annotations: Annotations,\n documentation: z.string(),\n license: z.string(),\n programming_language: z.string(),\n natural_languages: z.array(z.string()),\n framework: z.string(),\n capabilities: z.array(Capability),\n domains: z.array(z.string()),\n tags: z.array(z.string()),\n created_at: z.string().datetime(),\n updated_at: z.string().datetime(),\n author: Author,\n contributors: z.array(Contributor),\n links: z.array(Link),\n dependencies: z.array(Dependency),\n recommended_models: z.array(z.string()),\n })\n).passthrough();\n\nexport type Metadata = z.infer<typeof Metadata>;\n\nexport const CitationMetadata = z.object({\n kind: z.literal(\"citation\").default(\"citation\"),\n start_index: z.number().int().nullish(),\n end_index: z.number().int().nullish(),\n url: z.string().nullish(),\n title: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type CitationMetadata = z.infer<typeof CitationMetadata>;\n\nexport const TrajectoryMetadata = z.object({\n kind: z.literal(\"trajectory\").default(\"trajectory\"),\n message: z.string().nullish(),\n tool_name: z.string().nullish(),\n tool_input: AnyModel.nullish(),\n tool_output: AnyModel.nullish(),\n});\n\nexport type TrajectoryMetadata = z.infer<typeof TrajectoryMetadata>;\n\nconst BaseMessagePart = z\n .object({\n name: z.string().nullish(),\n content_type: z.string().nullish().default(\"text/plain\"),\n content: z.string().nullish(),\n content_encoding: z.enum([\"plain\", \"base64\"]).nullish().default(\"plain\"),\n content_url: z.string().url().nullish(),\n metadata: z.union([CitationMetadata, TrajectoryMetadata]).nullish(),\n })\n .passthrough();\n\nconst refineMessagePart = (\n val: z.infer<typeof BaseMessagePart>,\n ctx: z.RefinementCtx\n): never => {\n if (val.content != null && val.content_url != null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Only one of content or content_url can be provided\",\n });\n }\n return z.NEVER;\n};\n\nexport const MessagePart = BaseMessagePart.superRefine(refineMessagePart);\n\nexport type MessagePart = Simplify<z.infer<typeof MessagePart>>;\n\nexport const isMessagePart = createSchemaTypePredicate(MessagePart);\n\nexport const Artifact = BaseMessagePart.required({ name: true }).superRefine(\n refineMessagePart\n);\n\nexport type Artifact = Exclude<MessagePart, 'name'> & { name: string };\n\nexport const Message = z.object({\n role: z\n .string()\n .regex(/^(user|agent(\\/[a-zA-Z0-9_\\-]+)?)$/)\n .default(\"user\"),\n parts: z.array(MessagePart),\n created_at: z\n .string()\n .datetime()\n .nullable()\n .default(() => new Date().toISOString()),\n completed_at: z\n .string()\n .datetime()\n .nullable()\n .default(() => new Date().toISOString()),\n});\n\nexport type Message = z.infer<typeof Message>;\n\nexport const isMessage = createSchemaTypePredicate(Message);\n\nexport function concatMessages(lhs: Message, rhs: Message): Message {\n if (lhs.role != rhs.role) {\n throw new Error(\"Message roles must match for concatenation\");\n }\n\n return {\n role: lhs.role,\n parts: [...lhs.parts, ...rhs.parts],\n created_at:\n lhs.created_at != null && rhs.created_at != null\n ? lhs.created_at < rhs.created_at\n ? lhs.created_at\n : rhs.created_at\n : null,\n completed_at:\n lhs.completed_at != null && rhs.completed_at != null\n ? lhs.completed_at > rhs.completed_at\n ? lhs.completed_at\n : rhs.completed_at\n : null,\n };\n}\n\nexport function compressMessage(message: Message): Message {\n const canBeJoined = (a: MessagePart, b: MessagePart) => {\n return (\n a.name == null &&\n b.name == null &&\n a.content_type === \"text/plain\" &&\n b.content_type === \"text/plain\" &&\n a.content_encoding === \"plain\" &&\n b.content_encoding === \"plain\" &&\n a.content_url == null &&\n b.content_url == null\n );\n };\n\n const join = (a: MessagePart, b: MessagePart): MessagePart => ({\n name: null,\n content_type: \"text/plain\",\n content: (a.content ?? \"\") + (b.content ?? \"\"),\n content_encoding: \"plain\",\n content_url: null,\n });\n\n const compressedParts: MessagePart[] = [];\n\n for (const part of message.parts) {\n if (\n compressedParts.length > 0 &&\n canBeJoined(compressedParts[compressedParts.length - 1], part)\n ) {\n const last = compressedParts.pop()!;\n compressedParts.push(join(last, part));\n } else {\n compressedParts.push(part);\n }\n }\n\n return { ...message, parts: compressedParts };\n}\n\nconst UUID = z.string().uuid();\n\nexport const AgentName = z.string();\n\nexport type AgentName = z.infer<typeof AgentName>;\n\nexport const RunId = UUID;\n\nexport type RunId = z.infer<typeof RunId>;\n\nexport const SessionId = UUID;\n\nexport type SessionId = z.infer<typeof SessionId>;\n\nexport const RunMode = z.enum([\"sync\", \"async\", \"stream\"]);\n\nexport type RunMode = z.infer<typeof RunMode>;\n\nexport const RunStatus = z.enum([\n \"created\",\n \"in-progress\",\n \"awaiting\",\n \"cancelling\",\n \"cancelled\",\n \"completed\",\n \"failed\",\n]);\n\nexport type RunStatus = z.infer<typeof RunStatus>;\n\nexport function isTerminalRunStatus(status: RunStatus) {\n return (\n status === \"completed\" || status === \"cancelled\" || status === \"failed\"\n );\n}\n\nexport const MessageAwaitRequest = z.object({\n type: z.literal(\"message\"),\n message: Message,\n});\n\nexport const MessageAwaitResume = z.object({\n type: z.literal(\"message\"),\n message: Message,\n});\n\n// intended to be converted to unions after more *AwaitRequest types are added\nexport const AwaitRequest = MessageAwaitRequest;\n\nexport type AwaitRequest = z.infer<typeof AwaitRequest>;\n\nexport const AwaitResume = MessageAwaitResume;\n\nexport type AwaitResume = z.infer<typeof AwaitResume>;\n\nexport const Run = z.object({\n run_id: RunId,\n agent_name: AgentName,\n session_id: SessionId.nullish(),\n status: RunStatus.default(\"created\"),\n await_request: AwaitRequest.nullish(),\n output: z.array(Message).default([]),\n error: ErrorModel.nullish(),\n created_at: z\n .string()\n .datetime()\n .default(() => new Date().toISOString()),\n finished_at: z.string().datetime().nullish(),\n});\n\nexport type Run = z.infer<typeof Run>;\n\nexport function throwForRunStatus(run: Run) {\n if (run.status === \"cancelled\") {\n // throw DOMException with AbortError name like AbortController does\n throw new DOMException(\"Run has been cancelled\", \"AbortError\");\n }\n if (run.status === \"failed\") {\n throw new ACPError(run.error!);\n }\n return run;\n}\n\nexport const AgentManifest = z.object({\n name: AgentName,\n description: z.string().nullish(),\n input_content_types: z.array(z.string()).min(1),\n output_content_types: z.array(z.string()).min(1),\n metadata: Metadata.default({}),\n});\n\nexport type AgentManifest = z.infer<typeof AgentManifest>;\n\nexport const MessageCreatedEvent = z.object({\n type: z.literal(\"message.created\"),\n message: Message,\n});\n\nexport type MessageCreatedEvent = z.infer<typeof MessageCreatedEvent>;\n\nexport const MessagePartEvent = z.object({\n type: z.literal(\"message.part\"),\n part: MessagePart,\n});\n\nexport type MessagePartEvent = z.infer<typeof MessagePartEvent>;\n\nexport const MessageCompletedEvent = z.object({\n type: z.literal(\"message.completed\"),\n message: Message,\n});\n\nexport type MessageCompletedEvent = z.infer<typeof MessageCompletedEvent>;\n\nexport const RunAwaitingEvent = z.object({\n type: z.literal(\"run.awaiting\"),\n run: Run,\n});\n\nexport type RunAwaitingEvent = z.infer<typeof RunAwaitingEvent>;\n\nexport const GenericEvent = z.object({\n type: z.literal(\"generic\"),\n generic: AnyModel,\n});\n\nexport type GenericEvent = z.infer<typeof GenericEvent>;\n\nexport const RunCreatedEvent = z.object({\n type: z.literal(\"run.created\"),\n run: Run,\n});\n\nexport type RunCreatedEvent = z.infer<typeof RunCreatedEvent>;\n\nexport const RunInProgressEvent = z.object({\n type: z.literal(\"run.in-progress\"),\n run: Run,\n});\n\nexport type RunInProgressEvent = z.infer<typeof RunInProgressEvent>;\n\nexport const RunFailedEvent = z.object({\n type: z.literal(\"run.failed\"),\n run: Run,\n});\n\nexport type RunFailedEvent = z.infer<typeof RunFailedEvent>;\n\nexport const RunCancelledEvent = z.object({\n type: z.literal(\"run.cancelled\"),\n run: Run,\n});\n\nexport type RunCancelledEvent = z.infer<typeof RunCancelledEvent>;\n\nexport const RunCompletedEvent = z.object({\n type: z.literal(\"run.completed\"),\n run: Run,\n});\n\nexport type RunCompletedEvent = z.infer<typeof RunCompletedEvent>;\n\nexport const ErrorEvent = z.object({\n type: z.literal(\"error\"),\n error: ErrorModel,\n});\n\nexport type ErrorEvent = z.infer<typeof ErrorEvent>;\n\nexport const Event = z.discriminatedUnion(\"type\", [\n MessageCreatedEvent,\n MessagePartEvent,\n MessageCompletedEvent,\n RunAwaitingEvent,\n GenericEvent,\n RunCreatedEvent,\n RunInProgressEvent,\n RunFailedEvent,\n RunCancelledEvent,\n RunCompletedEvent,\n ErrorEvent,\n]);\n\nexport type Event = z.infer<typeof Event>;\n"]}