{"version":3,"sources":["../src/schema.ts","../src/define-acp.ts"],"names":[],"mappings":"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","file":"chunk-H35EMMRO.mjs","sourcesContent":["/**\n * AIP-44 ACP.md frontmatter zod schema.\n *\n * Mirrors `resources/aip-44/draft/ACP.schema.json` field-for-field.\n * AIP-44 is an agentproto profile of the upstream Agent Client\n * Protocol (agentclientprotocol.com) — the manifest declares an\n * agent or client's role/transport/conformance level, and AIP-44-\n * specific bindings live under `metadata.aip44.*` so plain ACP\n * runtimes preserve them verbatim.\n *\n * Both authoring paths (`define-acp.ts` for TS-authored manifests\n * and `manifest/index.ts` for ACP.md parsing) validate against this\n * schema, so every field-level constraint runs in both paths from a\n * single source of truth.\n *\n * Cross-field rules (tier=sandboxed ⇒ sandbox required) live in\n * `define-acp.ts`'s `validate(def)` body — they're harder to encode\n * in a flat zod schema and want a single error path.\n */\n\nimport { z } from \"zod\"\n\nconst ID_PATTERN = /^[a-z0-9][a-z0-9-]{1,63}$/\nconst SEMVER_PATTERN = /^\\d+\\.\\d+\\.\\d+(?:[-+][\\w.-]+)?$/\nconst TAG_PATTERN = /^[a-z0-9][a-z0-9-]{0,63}$/\nconst ACP_REV_PATTERN = /^[a-f0-9]{7,40}$/\n\nconst transportSchema = z.enum([\"stdio\", \"websocket\"])\n\nconst capabilitiesSchema = z\n  .object({\n    client: z\n      .object({\n        fs: z\n          .object({\n            readTextFile: z.boolean().optional(),\n            writeTextFile: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        terminal: z.boolean().optional(),\n      })\n      .strict()\n      .optional(),\n    agent: z\n      .object({\n        loadSession: z.boolean().optional(),\n        promptCapabilities: z\n          .object({\n            image: z.boolean().optional(),\n            audio: z.boolean().optional(),\n            embeddedContext: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        mcpCapabilities: z\n          .object({\n            http: z.boolean().optional(),\n            sse: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n      })\n      .strict()\n      .optional(),\n  })\n  .strict()\n  .describe(\n    \"Mirror of upstream ACP `initialize` capabilities. Omitted keys MUST be treated as unsupported.\",\n  )\n\nconst aip44ExtensionsSchema = z\n  .object({\n    acp_rev: z\n      .string()\n      .regex(ACP_REV_PATTERN)\n      .describe(\n        \"Commit SHA of agentclientprotocol/agent-client-protocol this manifest validates against.\",\n      ),\n    tier: z\n      .enum([\"basic\", \"governance-aware\", \"sandboxed\"])\n      .describe(\n        \"Capability tier shorthand. basic = session/{new,prompt,update}; governance-aware = + loadSession + tool-call streaming; sandboxed = + mcpCapabilities + sandbox profile.\",\n      ),\n    capabilities: capabilitiesSchema.optional(),\n    operator: z\n      .string()\n      .min(1)\n      .optional()\n      .describe(\n        \"Workspace-relative ref to AIP-9 OPERATOR.md. REQUIRED when kind=server (cross-field rule in define-acp).\",\n      ),\n    governance: z.string().min(1).optional(),\n    sandbox: z\n      .string()\n      .min(1)\n      .optional()\n      .describe(\"Ref to AIP-36 SANDBOX.md. REQUIRED when tier=sandboxed.\"),\n    audit: z\n      .object({\n        ref: z.string().optional(),\n        kind: z.enum([\"governance\", \"external\", \"off\"]).optional(),\n      })\n      .strict()\n      .optional(),\n    mcp_servers: z\n      .array(\n        z\n          .object({\n            name: z.string().min(1),\n            transport: z.enum([\"stdio\", \"http\", \"sse\"]),\n            ref: z.string().optional(),\n            args: z.array(z.string()).optional(),\n            env: z.record(z.string(), z.string()).optional(),\n          })\n          .strict(),\n      )\n      .optional(),\n  })\n  .loose()\n\nexport const acpFrontmatterSchema = z\n  .object({\n    name: z\n      .string()\n      .min(1)\n      .max(80)\n      .describe(\"Kebab id; MUST equal the parent directory name.\"),\n    id: z.string().regex(ID_PATTERN),\n    description: z.string().min(1).max(2000),\n    version: z.string().regex(SEMVER_PATTERN),\n    kind: z.enum([\"client\", \"server\", \"bridge\"]),\n    transport: z.union([\n      transportSchema,\n      z.array(transportSchema).min(1),\n    ]),\n    metadata: z\n      .object({ aip44: aip44ExtensionsSchema })\n      .loose()\n      .describe(\n        \"Free-form metadata. metadata.aip44.* hosts AIP-44 extensions; upstream ACP runtimes preserve unknown keys verbatim.\",\n      ),\n    tags: z.array(z.string().regex(TAG_PATTERN)).optional(),\n  })\n  .loose()\n  .describe(\n    \"Validates the YAML frontmatter portion of an AIP-44 ACP.md manifest.\",\n  )\n\nexport type AcpFrontmatter = z.infer<typeof acpFrontmatterSchema>\nexport type Aip44Extensions = z.infer<typeof aip44ExtensionsSchema>\nexport type AcpCapabilities = z.infer<typeof capabilitiesSchema>\nexport type AcpRole = AcpFrontmatter[\"kind\"]\nexport type AcpTransport = z.infer<typeof transportSchema>\n","import { createDoctype } from \"@agentproto/define-doctype\"\nimport { acpFrontmatterSchema } from \"./schema.js\"\nimport type { AcpDefinition, AcpHandle } from \"./types.js\"\n\n/**\n * AIP-44 reference implementation of `defineAcp`.\n *\n * Built on `createDoctype` so the cross-AIP invariants (id pattern,\n * description length, top-level freeze, \"defineAcp (AIP-44): …\"\n * error prefix) run uniformly with every other AIP defineX.\n *\n * Field-level validation runs the schema-derived zod from\n * `./schema.ts`. Same source of truth as the .md path uses\n * (`parseAcpManifest`), so a malformed TS-authored definition fails\n * with the same diagnostic as a malformed manifest.\n *\n * Cross-field rules (kind=server requires `metadata.aip44.operator`;\n * tier=sandboxed requires `metadata.aip44.sandbox`) run after the\n * zod check so callers see one consistent error path.\n */\nexport const defineAcp = createDoctype<AcpDefinition, AcpHandle>({\n  aip: 44,\n  name: \"acp\",\n  readIdentity: (def) => def.id,\n  validate(def) {\n    const result = acpFrontmatterSchema.safeParse(def)\n    if (!result.success) {\n      throw new Error(\n        `defineAcp (AIP-44): ${result.error.issues\n          .map((i) => `${i.path.join(\".\")}: ${i.message}`)\n          .join(\"; \")}`,\n      )\n    }\n\n    const aip44 = result.data.metadata.aip44\n\n    if (result.data.kind === \"server\" && !aip44.operator) {\n      throw new Error(\n        \"defineAcp (AIP-44): metadata.aip44.operator is required when kind=server\",\n      )\n    }\n\n    if (aip44.tier === \"sandboxed\" && !aip44.sandbox) {\n      throw new Error(\n        \"defineAcp (AIP-44): metadata.aip44.sandbox is required when metadata.aip44.tier=sandboxed\",\n      )\n    }\n  },\n  build(def) {\n    return { ...def } as AcpHandle\n  },\n})\n"]}