minutes-mcp 0.7.3 → 0.8.0

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/index.d.ts CHANGED
@@ -18,6 +18,8 @@
18
18
  * - research_topic: Cross-meeting topic research
19
19
  * - qmd_collection_status: Check QMD collection registration
20
20
  * - register_qmd_collection: Register Minutes output as QMD collection
21
+ * - list_voices: List enrolled voice profiles for speaker identification
22
+ * - confirm_speaker: Confirm/correct speaker attribution in a meeting
21
23
  *
22
24
  * All tools use execFile (not exec) to shell out to the `minutes` CLI binary.
23
25
  * No shell interpolation — safe from injection.
package/dist/index.js CHANGED
@@ -18,13 +18,15 @@
18
18
  * - research_topic: Cross-meeting topic research
19
19
  * - qmd_collection_status: Check QMD collection registration
20
20
  * - register_qmd_collection: Register Minutes output as QMD collection
21
+ * - list_voices: List enrolled voice profiles for speaker identification
22
+ * - confirm_speaker: Confirm/correct speaker attribution in a meeting
21
23
  *
22
24
  * All tools use execFile (not exec) to shell out to the `minutes` CLI binary.
23
25
  * No shell interpolation — safe from injection.
24
26
  */
25
27
  import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
26
28
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
27
- import { registerAppTool, registerAppResource, RESOURCE_MIME_TYPE, } from "@modelcontextprotocol/ext-apps/server";
29
+ import { registerAppTool, registerAppResource, RESOURCE_MIME_TYPE, EXTENSION_ID, } from "@modelcontextprotocol/ext-apps/server";
28
30
  import { z } from "zod";
29
31
  import { execFile, spawn } from "child_process";
30
32
  import { promisify } from "util";
@@ -239,7 +241,13 @@ function validatePathInDirectories(path, roots, allowedExts) {
239
241
  // ── MCP Server ──────────────────────────────────────────────
240
242
  const server = new McpServer({
241
243
  name: "minutes",
242
- version: "0.7.3",
244
+ version: "0.8.0",
245
+ });
246
+ // Declare MCP Apps extension support so hosts classify this server as interactive.
247
+ // The `extensions` field is part of the draft MCP spec (SEP-1724) — not yet in the
248
+ // stable SDK types, so we cast through `any`.
249
+ server.server.registerCapabilities({
250
+ extensions: { [EXTENSION_ID]: {} },
243
251
  });
244
252
  // Configurable directories — override via env vars in Claude Desktop extension settings
245
253
  const MEETINGS_DIR = process.env.MEETINGS_DIR || join(homedir(), "meetings");
@@ -933,28 +941,16 @@ registerAppTool(server, "track_commitments", {
933
941
  annotations: { title: "Track Commitments", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
934
942
  _meta: { ui: { resourceUri: UI_RESOURCE_URI } },
935
943
  }, async ({ person }) => {
936
- // Use CLI: minutes people --json (rebuild if needed, read from SQLite)
937
- const args = ["people", "--json"];
938
944
  if (!(await isCliAvailable())) {
939
945
  return { content: [{ type: "text", text: "Minutes CLI not available. Install with: cargo install minutes-cli" }] };
940
946
  }
941
- // Get full people data and extract commitments
947
+ // Use dedicated commitments command for full text detail
948
+ const args = ["commitments", "--json"];
949
+ if (person)
950
+ args.push("--person", person);
942
951
  const { stdout } = await runMinutes(args);
943
- const people = parseJsonOutput(stdout);
944
- if (!Array.isArray(people)) {
945
- return { content: [{ type: "text", text: "No relationship data found. Run: minutes people --rebuild" }] };
946
- }
947
- // Filter to the requested person if specified
948
- let relevantPeople = people;
949
- if (person) {
950
- const personLower = person.toLowerCase();
951
- relevantPeople = people.filter((p) => p.name?.toLowerCase().includes(personLower) ||
952
- p.slug?.toLowerCase().includes(personLower));
953
- }
954
- // Build commitment summary from open_commitments counts
955
- const sections = [];
956
- const withCommitments = relevantPeople.filter((p) => p.open_commitments > 0);
957
- if (withCommitments.length === 0) {
952
+ const commitments = parseJsonOutput(stdout);
953
+ if (!Array.isArray(commitments) || commitments.length === 0) {
958
954
  const scope = person ? ` for ${person}` : "";
959
955
  return {
960
956
  content: [{ type: "text", text: `No open commitments found${scope}.` }],
@@ -962,13 +958,30 @@ registerAppTool(server, "track_commitments", {
962
958
  _meta: { ui: { resourceUri: UI_RESOURCE_URI }, view: "commitments" },
963
959
  };
964
960
  }
965
- for (const p of withCommitments) {
966
- sections.push(`${p.name}: ${p.open_commitments} open commitment${p.open_commitments !== 1 ? "s" : ""} (last seen: ${p.last_seen?.split("T")[0] || "unknown"})`);
961
+ // Group by status
962
+ const stale = commitments.filter((c) => c.status === "stale");
963
+ const open = commitments.filter((c) => c.status === "open");
964
+ const lines = [];
965
+ if (stale.length > 0) {
966
+ lines.push(`STALE (${stale.length} overdue):`);
967
+ for (const c of stale) {
968
+ const who = c.person_name || "unassigned";
969
+ lines.push(` ⚠ ${c.text} (${who}; due: ${c.due_date || "no date"}; from: ${c.meeting_title})`);
970
+ }
967
971
  }
968
- const text = `Open commitments${person ? ` for ${person}` : ""}:\n\n${sections.join("\n")}`;
972
+ if (open.length > 0) {
973
+ if (stale.length > 0)
974
+ lines.push("");
975
+ lines.push(`OPEN (${open.length}):`);
976
+ for (const c of open) {
977
+ const who = c.person_name || "unassigned";
978
+ lines.push(` · ${c.text} (${who}; from: ${c.meeting_title})`);
979
+ }
980
+ }
981
+ const text = `Commitments${person ? ` for ${person}` : ""}:\n\n${lines.join("\n")}`;
969
982
  return {
970
983
  content: [{ type: "text", text }],
971
- structuredContent: { people: withCommitments, person: person || null, view: "commitments" },
984
+ structuredContent: { commitments, person: person || null, stale_count: stale.length, open_count: open.length, view: "commitments" },
972
985
  _meta: { ui: { resourceUri: UI_RESOURCE_URI }, view: "commitments" },
973
986
  };
974
987
  });
@@ -1177,6 +1190,53 @@ server.tool("stop_dictation", "Stop the current dictation session.", {}, { title
1177
1190
  ],
1178
1191
  };
1179
1192
  });
1193
+ // ── Tool: list_voices ────────────────────────────────────────
1194
+ server.tool("list_voices", "List enrolled voice profiles for speaker identification. Shows who has been enrolled, sample count, and model version.", {}, { title: "Voice Profiles", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }, async () => {
1195
+ if (!(await isCliAvailable())) {
1196
+ return { content: [{ type: "text", text: "Minutes CLI not available." }] };
1197
+ }
1198
+ const { stdout, stderr } = await runMinutes(["voices", "--json"]);
1199
+ const profiles = parseJsonOutput(stdout);
1200
+ if (!Array.isArray(profiles) || profiles.length === 0) {
1201
+ return {
1202
+ content: [{ type: "text", text: "No voice profiles enrolled. The user can enroll with: minutes enroll" }],
1203
+ };
1204
+ }
1205
+ const lines = profiles.map((p) => `${p.name} — ${p.sample_count} samples, ${p.source} (${p.model_version})`);
1206
+ return {
1207
+ content: [{ type: "text", text: `Voice profiles (${profiles.length}):\n\n${lines.join("\n")}` }],
1208
+ structuredContent: { profiles, view: "voices" },
1209
+ };
1210
+ });
1211
+ // ── Tool: confirm_speaker ────────────────────────────────────
1212
+ server.tool("confirm_speaker", "Confirm or correct a speaker attribution in a meeting. Promotes the attribution to High confidence and rewrites the transcript label. Optionally saves the speaker's voice profile for future meetings.", {
1213
+ meeting: z.string().describe("Path to the meeting markdown file"),
1214
+ speaker_label: z.string().describe("Speaker label to confirm (e.g., SPEAKER_1)"),
1215
+ name: z.string().describe("Real name to assign to this speaker"),
1216
+ save_voice: z.boolean().optional().default(false).describe("Save this speaker's voice profile for future automatic identification"),
1217
+ }, { title: "Confirm Speaker", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false }, async ({ meeting, speaker_label, name, save_voice }) => {
1218
+ if (!(await isCliAvailable())) {
1219
+ return { content: [{ type: "text", text: "Minutes CLI not available." }] };
1220
+ }
1221
+ const args = ["confirm", "--meeting", meeting, "--speaker", speaker_label, "--name", name];
1222
+ if (save_voice)
1223
+ args.push("--save-voice");
1224
+ try {
1225
+ const { stdout, stderr } = await runMinutes(args);
1226
+ const output = (stderr || stdout || "").trim();
1227
+ return {
1228
+ content: [{ type: "text", text: output || `Confirmed: ${speaker_label} = ${name}` }],
1229
+ structuredContent: { meeting, speaker_label, name, save_voice, confirmed: true },
1230
+ };
1231
+ }
1232
+ catch (error) {
1233
+ const msg = error?.stderr || error?.message || String(error);
1234
+ return {
1235
+ content: [{ type: "text", text: `Failed to confirm speaker: ${msg}` }],
1236
+ isError: true,
1237
+ };
1238
+ }
1239
+ });
1180
1240
  // ── Start server ────────────────────────────────────────────
1181
1241
  async function main() {
1182
1242
  const transport = new StdioServerTransport();
@@ -4,51 +4,51 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Minutes Dashboard</title>
7
- <script type="module" crossorigin>(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&o(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function h(e,t,n){function o(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const l=s.prototype,m=Object.keys(l);for(let f=0;f<m.length;f++){const g=m[f];g in a||(a[g]=l[g].bind(a))}}const r=n?.Parent??Object;class i extends r{}Object.defineProperty(i,"name",{value:e});function s(a){var c;const l=n?.Parent?new i:this;o(l,a),(c=l._zod).deferred??(c.deferred=[]);for(const m of l._zod.deferred)m();return l}return Object.defineProperty(s,"init",{value:o}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}class me extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class pn extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const hn={};function oe(e){return hn}function mn(e){const t=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,r])=>t.indexOf(+o)===-1).map(([o,r])=>r)}function nt(e,t){return typeof t=="bigint"?t.toString():t}function He(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function ut(e){return e==null}function lt(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function yo(e,t){const n=(e.toString().split(".")[1]||"").length,o=t.toString();let r=(o.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(o)){const c=o.match(/\d?e-(\d?)/);c?.[1]&&(r=Number.parseInt(c[1]))}const i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),a=Number.parseInt(t.toFixed(i).replace(".",""));return s%a/10**i}const jt=Symbol("evaluating");function z(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==jt)return o===void 0&&(o=jt,o=n()),o},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function ue(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function se(...e){const t={};for(const n of e){const o=Object.getOwnPropertyDescriptors(n);Object.assign(t,o)}return Object.defineProperties({},t)}function Dt(e){return JSON.stringify(e)}function wo(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const fn="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const ko=He(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function ge(e){if(ke(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ke(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function gn(e){return ge(e)?{...e}:Array.isArray(e)?[...e]:e}const So=new Set(["string","number","symbol"]);function _e(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ie(e,t,n){const o=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(o._zod.parent=e),o}function v(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function $o(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const zo={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function To(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const i=se(e._zod.def,{get shape(){const s={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(s[a]=n.shape[a])}return ue(this,"shape",s),s},checks:[]});return ie(e,i)}function Ro(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const i=se(e._zod.def,{get shape(){const s={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete s[a]}return ue(this,"shape",s),s},checks:[]});return ie(e,i)}function Io(e,t){if(!ge(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const i=e._zod.def.shape;for(const s in t)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const r=se(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return ue(this,"shape",i),i}});return ie(e,r)}function Po(e,t){if(!ge(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=se(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t};return ue(this,"shape",o),o}});return ie(e,n)}function xo(e,t){const n=se(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t._zod.def.shape};return ue(this,"shape",o),o},get catchall(){return t._zod.def.catchall},checks:[]});return ie(e,n)}function Eo(e,t,n){const r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const s=se(t._zod.def,{get shape(){const a=t._zod.def.shape,c={...a};if(n)for(const l in n){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);n[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(const l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return ue(this,"shape",c),c},checks:[]});return ie(t,s)}function Co(e,t,n){const o=se(t._zod.def,{get shape(){const r=t._zod.def.shape,i={...r};if(n)for(const s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(const s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return ue(this,"shape",i),i}});return ie(t,o)}function de(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function pe(e,t){return t.map(n=>{var o;return(o=n).path??(o.path=[]),n.path.unshift(e),n})}function Oe(e){return typeof e=="string"?e:e?.message}function re(e,t,n){const o={...e,path:e.path??[]};if(!e.message){const r=Oe(e.inst?._zod.def?.error?.(e))??Oe(t?.error?.(e))??Oe(n.customError?.(e))??Oe(n.localeError?.(e))??"Invalid input";o.message=r}return delete o.inst,delete o.continue,t?.reportInput||delete o.input,o}function dt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Se(...e){const[t,n,o]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:o}:{...t}}const _n=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,nt,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},vn=h("$ZodError",_n),bn=h("$ZodError",_n,{Parent:Error});function Zo(e,t=n=>n.message){const n={},o=[];for(const r of e.issues)r.path.length>0?(n[r.path[0]]=n[r.path[0]]||[],n[r.path[0]].push(t(r))):o.push(t(r));return{formErrors:o,fieldErrors:n}}function Oo(e,t=n=>n.message){const n={_errors:[]},o=r=>{for(const i of r.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(s=>o({issues:s}));else if(i.code==="invalid_key")o({issues:i.issues});else if(i.code==="invalid_element")o({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let s=n,a=0;for(;a<i.path.length;){const c=i.path[a];a===i.path.length-1?(s[c]=s[c]||{_errors:[]},s[c]._errors.push(t(i))):s[c]=s[c]||{_errors:[]},s=s[c],a++}}};return o(e),n}const pt=e=>(t,n,o,r)=>{const i=o?Object.assign(o,{async:!1}):{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new me;if(s.issues.length){const a=new(r?.Err??e)(s.issues.map(c=>re(c,i,oe())));throw fn(a,r?.callee),a}return s.value},ht=e=>async(t,n,o,r)=>{const i=o?Object.assign(o,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){const a=new(r?.Err??e)(s.issues.map(c=>re(c,i,oe())));throw fn(a,r?.callee),a}return s.value},Je=e=>(t,n,o)=>{const r=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},r);if(i instanceof Promise)throw new me;return i.issues.length?{success:!1,error:new(e??vn)(i.issues.map(s=>re(s,r,oe())))}:{success:!0,data:i.value}},yn=Je(bn),Ve=e=>async(t,n,o)=>{const r=o?Object.assign(o,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>re(s,r,oe())))}:{success:!0,data:i.value}},No=Ve(bn),Ao=e=>(t,n,o)=>{const r=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return pt(e)(t,n,r)},qo=e=>(t,n,o)=>pt(e)(t,n,o),Mo=e=>async(t,n,o)=>{const r=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return ht(e)(t,n,r)},jo=e=>async(t,n,o)=>ht(e)(t,n,o),Do=e=>(t,n,o)=>{const r=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return Je(e)(t,n,r)},Lo=e=>(t,n,o)=>Je(e)(t,n,o),Uo=e=>async(t,n,o)=>{const r=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return Ve(e)(t,n,r)},Fo=e=>async(t,n,o)=>Ve(e)(t,n,o),Ho=/^[cC][^\s-]{8,}$/,Jo=/^[0-9a-z]+$/,Vo=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Bo=/^[0-9a-vA-V]{20}$/,Wo=/^[A-Za-z0-9]{27}$/,Ko=/^[a-zA-Z0-9_-]{21}$/,Go=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Qo=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Lt=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Yo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Xo="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function er(){return new RegExp(Xo,"u")}const tr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nr=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,or=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,rr=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,sr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,wn=/^[A-Za-z0-9_-]*$/,ir=/^\+[1-9]\d{6,14}$/,kn="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",ar=new RegExp(`^${kn}$`);function Sn(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function cr(e){return new RegExp(`^${Sn(e)}$`)}function ur(e){const t=Sn({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${kn}T(?:${o})$`)}const lr=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},dr=/^-?\d+$/,$n=/^-?\d+(?:\.\d+)?$/,pr=/^(?:true|false)$/i,hr=/^null$/i,mr=/^undefined$/i,fr=/^[^A-Z]*$/,gr=/^[^a-z]*$/,V=h("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),zn={number:"number",bigint:"bigint",object:"date"},Tn=h("$ZodCheckLessThan",(e,t)=>{V.init(e,t);const n=zn[typeof t.value];e._zod.onattach.push(o=>{const r=o._zod.bag,i=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Rn=h("$ZodCheckGreaterThan",(e,t)=>{V.init(e,t);const n=zn[typeof t.value];e._zod.onattach.push(o=>{const r=o._zod.bag,i=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),_r=h("$ZodCheckMultipleOf",(e,t)=>{V.init(e,t),e._zod.onattach.push(n=>{var o;(o=n._zod.bag).multipleOf??(o.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):yo(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),vr=h("$ZodCheckNumberFormat",(e,t)=>{V.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[r,i]=zo[t.format];e._zod.onattach.push(s=>{const a=s._zod.bag;a.format=t.format,a.minimum=r,a.maximum=i,n&&(a.pattern=dr)}),e._zod.check=s=>{const a=s.value;if(n){if(!Number.isInteger(a)){s.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort});return}}a<r&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),br=h("$ZodCheckMaxLength",(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=o=>{const r=o.value;return!ut(r)&&r.length!==void 0}),e._zod.onattach.push(o=>{const r=o._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(o._zod.bag.maximum=t.maximum)}),e._zod.check=o=>{const r=o.value;if(r.length<=t.maximum)return;const s=dt(r);o.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),yr=h("$ZodCheckMinLength",(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=o=>{const r=o.value;return!ut(r)&&r.length!==void 0}),e._zod.onattach.push(o=>{const r=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(o._zod.bag.minimum=t.minimum)}),e._zod.check=o=>{const r=o.value;if(r.length>=t.minimum)return;const s=dt(r);o.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),wr=h("$ZodCheckLengthEquals",(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=o=>{const r=o.value;return!ut(r)&&r.length!==void 0}),e._zod.onattach.push(o=>{const r=o._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=o=>{const r=o.value,i=r.length;if(i===t.length)return;const s=dt(r),a=i>t.length;o.issues.push({origin:s,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:o.value,inst:e,continue:!t.abort})}}),Be=h("$ZodCheckStringFormat",(e,t)=>{var n,o;V.init(e,t),e._zod.onattach.push(r=>{const i=r._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),kr=h("$ZodCheckRegex",(e,t)=>{Be.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Sr=h("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=fr),Be.init(e,t)}),$r=h("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=gr),Be.init(e,t)}),zr=h("$ZodCheckIncludes",(e,t)=>{V.init(e,t);const n=_e(t.includes),o=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(o)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),Tr=h("$ZodCheckStartsWith",(e,t)=>{V.init(e,t);const n=new RegExp(`^${_e(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(o=>{const r=o._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(n)}),e._zod.check=o=>{o.value.startsWith(t.prefix)||o.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:o.value,inst:e,continue:!t.abort})}}),Rr=h("$ZodCheckEndsWith",(e,t)=>{V.init(e,t);const n=new RegExp(`.*${_e(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(o=>{const r=o._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(n)}),e._zod.check=o=>{o.value.endsWith(t.suffix)||o.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:o.value,inst:e,continue:!t.abort})}}),Ir=h("$ZodCheckOverwrite",(e,t)=>{V.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Pr{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const o=t.split(`
8
- `).filter(s=>s),r=Math.min(...o.map(s=>s.length-s.trimStart().length)),i=o.map(s=>s.slice(r)).map(s=>" ".repeat(this.indent*2)+s);for(const s of i)this.content.push(s)}compile(){const t=Function,n=this?.args,r=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...n,r.join(`
9
- `))}}const xr={major:4,minor:3,patch:6},E=h("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=xr;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const r of o)for(const i of r._zod.onattach)i(e);if(o.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const r=(s,a,c)=>{let l=de(s),m;for(const f of a){if(f._zod.def.when){if(!f._zod.def.when(s))continue}else if(l)continue;const g=s.issues.length,_=f._zod.check(s);if(_ instanceof Promise&&c?.async===!1)throw new me;if(m||_ instanceof Promise)m=(m??Promise.resolve()).then(async()=>{await _,s.issues.length!==g&&(l||(l=de(s,g)))});else{if(s.issues.length===g)continue;l||(l=de(s,g))}}return m?m.then(()=>s):s},i=(s,a,c)=>{if(de(s))return s.aborted=!0,s;const l=r(a,o,c);if(l instanceof Promise){if(c.async===!1)throw new me;return l.then(m=>e._zod.parse(m,c))}return e._zod.parse(l,c)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){const l=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(m=>i(m,s,a)):i(l,s,a)}const c=e._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new me;return c.then(l=>r(l,o,a))}return r(c,o,a)}}z(e,"~standard",()=>({validate:r=>{try{const i=yn(e,r);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return No(e,r).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),mt=h("$ZodString",(e,t)=>{E.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??lr(e._zod.bag),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Z=h("$ZodStringFormat",(e,t)=>{Be.init(e,t),mt.init(e,t)}),Er=h("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Qo),Z.init(e,t)}),Cr=h("$ZodUUID",(e,t)=>{if(t.version){const o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(o===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Lt(o))}else t.pattern??(t.pattern=Lt());Z.init(e,t)}),Zr=h("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Yo),Z.init(e,t)}),Or=h("$ZodURL",(e,t)=>{Z.init(e,t),e._zod.check=n=>{try{const o=n.value.trim(),r=new URL(o);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(r.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(r.protocol.endsWith(":")?r.protocol.slice(0,-1):r.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=r.href:n.value=o;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Nr=h("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=er()),Z.init(e,t)}),Ar=h("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ko),Z.init(e,t)}),qr=h("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Ho),Z.init(e,t)}),Mr=h("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Jo),Z.init(e,t)}),jr=h("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Vo),Z.init(e,t)}),Dr=h("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Bo),Z.init(e,t)}),Lr=h("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Wo),Z.init(e,t)}),Ur=h("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=ur(t)),Z.init(e,t)}),Fr=h("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=ar),Z.init(e,t)}),Hr=h("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=cr(t)),Z.init(e,t)}),Jr=h("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Go),Z.init(e,t)}),Vr=h("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=tr),Z.init(e,t),e._zod.bag.format="ipv4"}),Br=h("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=nr),Z.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),Wr=h("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=or),Z.init(e,t)}),Kr=h("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=rr),Z.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(o.length!==2)throw new Error;const[r,i]=o;if(!i)throw new Error;const s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function In(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Gr=h("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=sr),Z.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{In(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function Qr(e){if(!wn.test(e))return!1;const t=e.replace(/[-_]/g,o=>o==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return In(n)}const Yr=h("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=wn),Z.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{Qr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Xr=h("$ZodE164",(e,t)=>{t.pattern??(t.pattern=ir),Z.init(e,t)});function es(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[o]=n;if(!o)return!1;const r=JSON.parse(atob(o));return!("typ"in r&&r?.typ!=="JWT"||!r.alg||t&&(!("alg"in r)||r.alg!==t))}catch{return!1}}const ts=h("$ZodJWT",(e,t)=>{Z.init(e,t),e._zod.check=n=>{es(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Pn=h("$ZodNumber",(e,t)=>{E.init(e,t),e._zod.pattern=e._zod.bag.pattern??$n,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const r=n.value;if(typeof r=="number"&&!Number.isNaN(r)&&Number.isFinite(r))return n;const i=typeof r=="number"?Number.isNaN(r)?"NaN":Number.isFinite(r)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:r,inst:e,...i?{received:i}:{}}),n}}),ns=h("$ZodNumberFormat",(e,t)=>{vr.init(e,t),Pn.init(e,t)}),os=h("$ZodBoolean",(e,t)=>{E.init(e,t),e._zod.pattern=pr,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=!!n.value}catch{}const r=n.value;return typeof r=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:r,inst:e}),n}}),rs=h("$ZodUndefined",(e,t)=>{E.init(e,t),e._zod.pattern=mr,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,o)=>{const r=n.value;return typeof r>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:r,inst:e}),n}}),ss=h("$ZodNull",(e,t)=>{E.init(e,t),e._zod.pattern=hr,e._zod.values=new Set([null]),e._zod.parse=(n,o)=>{const r=n.value;return r===null||n.issues.push({expected:"null",code:"invalid_type",input:r,inst:e}),n}}),is=h("$ZodUnknown",(e,t)=>{E.init(e,t),e._zod.parse=n=>n}),as=h("$ZodNever",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function Ut(e,t,n){e.issues.length&&t.issues.push(...pe(n,e.issues)),t.value[n]=e.value}const cs=h("$ZodArray",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{const r=n.value;if(!Array.isArray(r))return n.issues.push({expected:"array",code:"invalid_type",input:r,inst:e}),n;n.value=Array(r.length);const i=[];for(let s=0;s<r.length;s++){const a=r[s],c=t.element._zod.run({value:a,issues:[]},o);c instanceof Promise?i.push(c.then(l=>Ut(l,n,s))):Ut(c,n,s)}return i.length?Promise.all(i).then(()=>n):n}});function Me(e,t,n,o,r){if(e.issues.length){if(r&&!(n in o))return;t.issues.push(...pe(n,e.issues))}e.value===void 0?n in o&&(t.value[n]=void 0):t.value[n]=e.value}function xn(e){const t=Object.keys(e.shape);for(const o of t)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);const n=$o(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function En(e,t,n,o,r,i){const s=[],a=r.keySet,c=r.catchall._zod,l=c.def.type,m=c.optout==="optional";for(const f in t){if(a.has(f))continue;if(l==="never"){s.push(f);continue}const g=c.run({value:t[f],issues:[]},o);g instanceof Promise?e.push(g.then(_=>Me(_,n,f,t,m))):Me(g,n,f,t,m)}return s.length&&n.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}const us=h("$ZodObject",(e,t)=>{if(E.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}const o=He(()=>xn(t));z(e._zod,"propValues",()=>{const a=t.shape,c={};for(const l in a){const m=a[l]._zod;if(m.values){c[l]??(c[l]=new Set);for(const f of m.values)c[l].add(f)}}return c});const r=ke,i=t.catchall;let s;e._zod.parse=(a,c)=>{s??(s=o.value);const l=a.value;if(!r(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};const m=[],f=s.shape;for(const g of s.keys){const _=f[g],x=_._zod.optout==="optional",q=_._zod.run({value:l[g],issues:[]},c);q instanceof Promise?m.push(q.then(le=>Me(le,a,g,l,x))):Me(q,a,g,l,x)}return i?En(m,l,a,c,o.value,e):m.length?Promise.all(m).then(()=>a):a}}),ls=h("$ZodObjectJIT",(e,t)=>{us.init(e,t);const n=e._zod.parse,o=He(()=>xn(t)),r=g=>{const _=new Pr(["shape","payload","ctx"]),x=o.value,q=N=>{const j=Dt(N);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};_.write("const input = payload.value;");const le=Object.create(null);let Ze=0;for(const N of x.keys)le[N]=`key_${Ze++}`;_.write("const newResult = {};");for(const N of x.keys){const j=le[N],ee=Dt(N),bo=g[N]?._zod?.optout==="optional";_.write(`const ${j} = ${q(N)};`),bo?_.write(`
7
+ <script type="module" crossorigin>(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const r of i.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&o(r)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();function h(e,t,n){function o(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:r,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const l=r.prototype,m=Object.keys(l);for(let f=0;f<m.length;f++){const g=m[f];g in a||(a[g]=l[g].bind(a))}}const s=n?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:e});function r(a){var c;const l=n?.Parent?new i:this;o(l,a),(c=l._zod).deferred??(c.deferred=[]);for(const m of l._zod.deferred)m();return l}return Object.defineProperty(r,"init",{value:o}),Object.defineProperty(r,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(r,"name",{value:e}),r}class me extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class hn extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const mn={};function oe(e){return mn}function fn(e){const t=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,s])=>t.indexOf(+o)===-1).map(([o,s])=>s)}function st(e,t){return typeof t=="bigint"?t.toString():t}function Be(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function lt(e){return e==null}function dt(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function yo(e,t){const n=(e.toString().split(".")[1]||"").length,o=t.toString();let s=(o.split(".")[1]||"").length;if(s===0&&/\d?e-\d?/.test(o)){const c=o.match(/\d?e-(\d?)/);c?.[1]&&(s=Number.parseInt(c[1]))}const i=n>s?n:s,r=Number.parseInt(e.toFixed(i).replace(".","")),a=Number.parseInt(t.toFixed(i).replace(".",""));return r%a/10**i}const Dt=Symbol("evaluating");function z(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==Dt)return o===void 0&&(o=Dt,o=n()),o},set(s){Object.defineProperty(e,t,{value:s})},configurable:!0})}function ue(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function re(...e){const t={};for(const n of e){const o=Object.getOwnPropertyDescriptors(n);Object.assign(t,o)}return Object.defineProperties({},t)}function Lt(e){return JSON.stringify(e)}function wo(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const gn="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function $e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const ko=Be(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function ge(e){if($e(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!($e(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function _n(e){return ge(e)?{...e}:Array.isArray(e)?[...e]:e}const So=new Set(["string","number","symbol"]);function _e(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ie(e,t,n){const o=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(o._zod.parent=e),o}function v(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function $o(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const zo={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function To(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const i=re(e._zod.def,{get shape(){const r={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(r[a]=n.shape[a])}return ue(this,"shape",r),r},checks:[]});return ie(e,i)}function Ro(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const i=re(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete r[a]}return ue(this,"shape",r),r},checks:[]});return ie(e,i)}function Io(e,t){if(!ge(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const i=e._zod.def.shape;for(const r in t)if(Object.getOwnPropertyDescriptor(i,r)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const s=re(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return ue(this,"shape",i),i}});return ie(e,s)}function Po(e,t){if(!ge(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=re(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t};return ue(this,"shape",o),o}});return ie(e,n)}function xo(e,t){const n=re(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t._zod.def.shape};return ue(this,"shape",o),o},get catchall(){return t._zod.def.catchall},checks:[]});return ie(e,n)}function Eo(e,t,n){const s=t._zod.def.checks;if(s&&s.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const r=re(t._zod.def,{get shape(){const a=t._zod.def.shape,c={...a};if(n)for(const l in n){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);n[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(const l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return ue(this,"shape",c),c},checks:[]});return ie(t,r)}function Co(e,t,n){const o=re(t._zod.def,{get shape(){const s=t._zod.def.shape,i={...s};if(n)for(const r in n){if(!(r in i))throw new Error(`Unrecognized key: "${r}"`);n[r]&&(i[r]=new e({type:"nonoptional",innerType:s[r]}))}else for(const r in s)i[r]=new e({type:"nonoptional",innerType:s[r]});return ue(this,"shape",i),i}});return ie(t,o)}function de(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function pe(e,t){return t.map(n=>{var o;return(o=n).path??(o.path=[]),n.path.unshift(e),n})}function qe(e){return typeof e=="string"?e:e?.message}function se(e,t,n){const o={...e,path:e.path??[]};if(!e.message){const s=qe(e.inst?._zod.def?.error?.(e))??qe(t?.error?.(e))??qe(n.customError?.(e))??qe(n.localeError?.(e))??"Invalid input";o.message=s}return delete o.inst,delete o.continue,t?.reportInput||delete o.input,o}function pt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function ze(...e){const[t,n,o]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:o}:{...t}}const vn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,st,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},bn=h("$ZodError",vn),yn=h("$ZodError",vn,{Parent:Error});function Zo(e,t=n=>n.message){const n={},o=[];for(const s of e.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):o.push(t(s));return{formErrors:o,fieldErrors:n}}function Oo(e,t=n=>n.message){const n={_errors:[]},o=s=>{for(const i of s.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(r=>o({issues:r}));else if(i.code==="invalid_key")o({issues:i.issues});else if(i.code==="invalid_element")o({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let r=n,a=0;for(;a<i.path.length;){const c=i.path[a];a===i.path.length-1?(r[c]=r[c]||{_errors:[]},r[c]._errors.push(t(i))):r[c]=r[c]||{_errors:[]},r=r[c],a++}}};return o(e),n}const ht=e=>(t,n,o,s)=>{const i=o?Object.assign(o,{async:!1}):{async:!1},r=t._zod.run({value:n,issues:[]},i);if(r instanceof Promise)throw new me;if(r.issues.length){const a=new(s?.Err??e)(r.issues.map(c=>se(c,i,oe())));throw gn(a,s?.callee),a}return r.value},mt=e=>async(t,n,o,s)=>{const i=o?Object.assign(o,{async:!0}):{async:!0};let r=t._zod.run({value:n,issues:[]},i);if(r instanceof Promise&&(r=await r),r.issues.length){const a=new(s?.Err??e)(r.issues.map(c=>se(c,i,oe())));throw gn(a,s?.callee),a}return r.value},We=e=>(t,n,o)=>{const s=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise)throw new me;return i.issues.length?{success:!1,error:new(e??bn)(i.issues.map(r=>se(r,s,oe())))}:{success:!0,data:i.value}},wn=We(yn),Ke=e=>async(t,n,o)=>{const s=o?Object.assign(o,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(r=>se(r,s,oe())))}:{success:!0,data:i.value}},No=Ke(yn),Ao=e=>(t,n,o)=>{const s=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return ht(e)(t,n,s)},qo=e=>(t,n,o)=>ht(e)(t,n,o),Mo=e=>async(t,n,o)=>{const s=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return mt(e)(t,n,s)},jo=e=>async(t,n,o)=>mt(e)(t,n,o),Do=e=>(t,n,o)=>{const s=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return We(e)(t,n,s)},Lo=e=>(t,n,o)=>We(e)(t,n,o),Uo=e=>async(t,n,o)=>{const s=o?Object.assign(o,{direction:"backward"}):{direction:"backward"};return Ke(e)(t,n,s)},Fo=e=>async(t,n,o)=>Ke(e)(t,n,o),Ho=/^[cC][^\s-]{8,}$/,Jo=/^[0-9a-z]+$/,Vo=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Bo=/^[0-9a-vA-V]{20}$/,Wo=/^[A-Za-z0-9]{27}$/,Ko=/^[a-zA-Z0-9_-]{21}$/,Go=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Qo=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ut=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Yo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Xo="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function es(){return new RegExp(Xo,"u")}const ts=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ns=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,os=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,ss=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rs=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,kn=/^[A-Za-z0-9_-]*$/,is=/^\+[1-9]\d{6,14}$/,Sn="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",as=new RegExp(`^${Sn}$`);function $n(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function cs(e){return new RegExp(`^${$n(e)}$`)}function us(e){const t=$n({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${Sn}T(?:${o})$`)}const ls=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},ds=/^-?\d+$/,zn=/^-?\d+(?:\.\d+)?$/,ps=/^(?:true|false)$/i,hs=/^null$/i,ms=/^undefined$/i,fs=/^[^A-Z]*$/,gs=/^[^a-z]*$/,W=h("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Tn={number:"number",bigint:"bigint",object:"date"},Rn=h("$ZodCheckLessThan",(e,t)=>{W.init(e,t);const n=Tn[typeof t.value];e._zod.onattach.push(o=>{const s=o._zod.bag,i=(t.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?s.maximum=t.value:s.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),In=h("$ZodCheckGreaterThan",(e,t)=>{W.init(e,t);const n=Tn[typeof t.value];e._zod.onattach.push(o=>{const s=o._zod.bag,i=(t.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?s.minimum=t.value:s.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),_s=h("$ZodCheckMultipleOf",(e,t)=>{W.init(e,t),e._zod.onattach.push(n=>{var o;(o=n._zod.bag).multipleOf??(o.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):yo(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),vs=h("$ZodCheckNumberFormat",(e,t)=>{W.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[s,i]=zo[t.format];e._zod.onattach.push(r=>{const a=r._zod.bag;a.format=t.format,a.minimum=s,a.maximum=i,n&&(a.pattern=ds)}),e._zod.check=r=>{const a=r.value;if(n){if(!Number.isInteger(a)){r.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?r.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}):r.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort});return}}a<s&&r.issues.push({origin:"number",input:a,code:"too_small",minimum:s,inclusive:!0,inst:e,continue:!t.abort}),a>i&&r.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),bs=h("$ZodCheckMaxLength",(e,t)=>{var n;W.init(e,t),(n=e._zod.def).when??(n.when=o=>{const s=o.value;return!lt(s)&&s.length!==void 0}),e._zod.onattach.push(o=>{const s=o._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<s&&(o._zod.bag.maximum=t.maximum)}),e._zod.check=o=>{const s=o.value;if(s.length<=t.maximum)return;const r=pt(s);o.issues.push({origin:r,code:"too_big",maximum:t.maximum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),ys=h("$ZodCheckMinLength",(e,t)=>{var n;W.init(e,t),(n=e._zod.def).when??(n.when=o=>{const s=o.value;return!lt(s)&&s.length!==void 0}),e._zod.onattach.push(o=>{const s=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>s&&(o._zod.bag.minimum=t.minimum)}),e._zod.check=o=>{const s=o.value;if(s.length>=t.minimum)return;const r=pt(s);o.issues.push({origin:r,code:"too_small",minimum:t.minimum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),ws=h("$ZodCheckLengthEquals",(e,t)=>{var n;W.init(e,t),(n=e._zod.def).when??(n.when=o=>{const s=o.value;return!lt(s)&&s.length!==void 0}),e._zod.onattach.push(o=>{const s=o._zod.bag;s.minimum=t.length,s.maximum=t.length,s.length=t.length}),e._zod.check=o=>{const s=o.value,i=s.length;if(i===t.length)return;const r=pt(s),a=i>t.length;o.issues.push({origin:r,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:o.value,inst:e,continue:!t.abort})}}),Ge=h("$ZodCheckStringFormat",(e,t)=>{var n,o;W.init(e,t),e._zod.onattach.push(s=>{const i=s._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=s=>{t.pattern.lastIndex=0,!t.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:t.format,input:s.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),ks=h("$ZodCheckRegex",(e,t)=>{Ge.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Ss=h("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=fs),Ge.init(e,t)}),$s=h("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=gs),Ge.init(e,t)}),zs=h("$ZodCheckIncludes",(e,t)=>{W.init(e,t);const n=_e(t.includes),o=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(s=>{const i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(o)}),e._zod.check=s=>{s.value.includes(t.includes,t.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:s.value,inst:e,continue:!t.abort})}}),Ts=h("$ZodCheckStartsWith",(e,t)=>{W.init(e,t);const n=new RegExp(`^${_e(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.startsWith(t.prefix)||o.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:o.value,inst:e,continue:!t.abort})}}),Rs=h("$ZodCheckEndsWith",(e,t)=>{W.init(e,t);const n=new RegExp(`.*${_e(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.endsWith(t.suffix)||o.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:o.value,inst:e,continue:!t.abort})}}),Is=h("$ZodCheckOverwrite",(e,t)=>{W.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Ps{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const o=t.split(`
8
+ `).filter(r=>r),s=Math.min(...o.map(r=>r.length-r.trimStart().length)),i=o.map(r=>r.slice(s)).map(r=>" ".repeat(this.indent*2)+r);for(const r of i)this.content.push(r)}compile(){const t=Function,n=this?.args,s=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...n,s.join(`
9
+ `))}}const xs={major:4,minor:3,patch:6},E=h("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=xs;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const s of o)for(const i of s._zod.onattach)i(e);if(o.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const s=(r,a,c)=>{let l=de(r),m;for(const f of a){if(f._zod.def.when){if(!f._zod.def.when(r))continue}else if(l)continue;const g=r.issues.length,_=f._zod.check(r);if(_ instanceof Promise&&c?.async===!1)throw new me;if(m||_ instanceof Promise)m=(m??Promise.resolve()).then(async()=>{await _,r.issues.length!==g&&(l||(l=de(r,g)))});else{if(r.issues.length===g)continue;l||(l=de(r,g))}}return m?m.then(()=>r):r},i=(r,a,c)=>{if(de(r))return r.aborted=!0,r;const l=s(a,o,c);if(l instanceof Promise){if(c.async===!1)throw new me;return l.then(m=>e._zod.parse(m,c))}return e._zod.parse(l,c)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction==="backward"){const l=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(m=>i(m,r,a)):i(l,r,a)}const c=e._zod.parse(r,a);if(c instanceof Promise){if(a.async===!1)throw new me;return c.then(l=>s(l,o,a))}return s(c,o,a)}}z(e,"~standard",()=>({validate:s=>{try{const i=wn(e,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return No(e,s).then(r=>r.success?{value:r.data}:{issues:r.error?.issues})}},vendor:"zod",version:1}))}),ft=h("$ZodString",(e,t)=>{E.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ls(e._zod.bag),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Z=h("$ZodStringFormat",(e,t)=>{Ge.init(e,t),ft.init(e,t)}),Es=h("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Qo),Z.init(e,t)}),Cs=h("$ZodUUID",(e,t)=>{if(t.version){const o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(o===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Ut(o))}else t.pattern??(t.pattern=Ut());Z.init(e,t)}),Zs=h("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Yo),Z.init(e,t)}),Os=h("$ZodURL",(e,t)=>{Z.init(e,t),e._zod.check=n=>{try{const o=n.value.trim(),s=new URL(o);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(s.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=s.href:n.value=o;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Ns=h("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=es()),Z.init(e,t)}),As=h("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ko),Z.init(e,t)}),qs=h("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Ho),Z.init(e,t)}),Ms=h("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Jo),Z.init(e,t)}),js=h("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Vo),Z.init(e,t)}),Ds=h("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Bo),Z.init(e,t)}),Ls=h("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Wo),Z.init(e,t)}),Us=h("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=us(t)),Z.init(e,t)}),Fs=h("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=as),Z.init(e,t)}),Hs=h("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=cs(t)),Z.init(e,t)}),Js=h("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Go),Z.init(e,t)}),Vs=h("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ts),Z.init(e,t),e._zod.bag.format="ipv4"}),Bs=h("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=ns),Z.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),Ws=h("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=os),Z.init(e,t)}),Ks=h("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=ss),Z.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(o.length!==2)throw new Error;const[s,i]=o;if(!i)throw new Error;const r=Number(i);if(`${r}`!==i)throw new Error;if(r<0||r>128)throw new Error;new URL(`http://[${s}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Pn(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Gs=h("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=rs),Z.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Pn(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function Qs(e){if(!kn.test(e))return!1;const t=e.replace(/[-_]/g,o=>o==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return Pn(n)}const Ys=h("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=kn),Z.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{Qs(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Xs=h("$ZodE164",(e,t)=>{t.pattern??(t.pattern=is),Z.init(e,t)});function er(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[o]=n;if(!o)return!1;const s=JSON.parse(atob(o));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||t&&(!("alg"in s)||s.alg!==t))}catch{return!1}}const tr=h("$ZodJWT",(e,t)=>{Z.init(e,t),e._zod.check=n=>{er(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),xn=h("$ZodNumber",(e,t)=>{E.init(e,t),e._zod.pattern=e._zod.bag.pattern??zn,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const s=n.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return n;const i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:s,inst:e,...i?{received:i}:{}}),n}}),nr=h("$ZodNumberFormat",(e,t)=>{vs.init(e,t),xn.init(e,t)}),or=h("$ZodBoolean",(e,t)=>{E.init(e,t),e._zod.pattern=ps,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=!!n.value}catch{}const s=n.value;return typeof s=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:e}),n}}),sr=h("$ZodUndefined",(e,t)=>{E.init(e,t),e._zod.pattern=ms,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,o)=>{const s=n.value;return typeof s>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:s,inst:e}),n}}),rr=h("$ZodNull",(e,t)=>{E.init(e,t),e._zod.pattern=hs,e._zod.values=new Set([null]),e._zod.parse=(n,o)=>{const s=n.value;return s===null||n.issues.push({expected:"null",code:"invalid_type",input:s,inst:e}),n}}),ir=h("$ZodUnknown",(e,t)=>{E.init(e,t),e._zod.parse=n=>n}),ar=h("$ZodNever",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function Ft(e,t,n){e.issues.length&&t.issues.push(...pe(n,e.issues)),t.value[n]=e.value}const cr=h("$ZodArray",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{const s=n.value;if(!Array.isArray(s))return n.issues.push({expected:"array",code:"invalid_type",input:s,inst:e}),n;n.value=Array(s.length);const i=[];for(let r=0;r<s.length;r++){const a=s[r],c=t.element._zod.run({value:a,issues:[]},o);c instanceof Promise?i.push(c.then(l=>Ft(l,n,r))):Ft(c,n,r)}return i.length?Promise.all(i).then(()=>n):n}});function Le(e,t,n,o,s){if(e.issues.length){if(s&&!(n in o))return;t.issues.push(...pe(n,e.issues))}e.value===void 0?n in o&&(t.value[n]=void 0):t.value[n]=e.value}function En(e){const t=Object.keys(e.shape);for(const o of t)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);const n=$o(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Cn(e,t,n,o,s,i){const r=[],a=s.keySet,c=s.catchall._zod,l=c.def.type,m=c.optout==="optional";for(const f in t){if(a.has(f))continue;if(l==="never"){r.push(f);continue}const g=c.run({value:t[f],issues:[]},o);g instanceof Promise?e.push(g.then(_=>Le(_,n,f,t,m))):Le(g,n,f,t,m)}return r.length&&n.issues.push({code:"unrecognized_keys",keys:r,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}const ur=h("$ZodObject",(e,t)=>{if(E.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}const o=Be(()=>En(t));z(e._zod,"propValues",()=>{const a=t.shape,c={};for(const l in a){const m=a[l]._zod;if(m.values){c[l]??(c[l]=new Set);for(const f of m.values)c[l].add(f)}}return c});const s=$e,i=t.catchall;let r;e._zod.parse=(a,c)=>{r??(r=o.value);const l=a.value;if(!s(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};const m=[],f=r.shape;for(const g of r.keys){const _=f[g],x=_._zod.optout==="optional",q=_._zod.run({value:l[g],issues:[]},c);q instanceof Promise?m.push(q.then(le=>Le(le,a,g,l,x))):Le(q,a,g,l,x)}return i?Cn(m,l,a,c,o.value,e):m.length?Promise.all(m).then(()=>a):a}}),lr=h("$ZodObjectJIT",(e,t)=>{ur.init(e,t);const n=e._zod.parse,o=Be(()=>En(t)),s=g=>{const _=new Ps(["shape","payload","ctx"]),x=o.value,q=N=>{const j=Lt(N);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};_.write("const input = payload.value;");const le=Object.create(null);let Ae=0;for(const N of x.keys)le[N]=`key_${Ae++}`;_.write("const newResult = {};");for(const N of x.keys){const j=le[N],te=Lt(N),bo=g[N]?._zod?.optout==="optional";_.write(`const ${j} = ${q(N)};`),bo?_.write(`
10
10
  if (${j}.issues.length) {
11
- if (${ee} in input) {
11
+ if (${te} in input) {
12
12
  payload.issues = payload.issues.concat(${j}.issues.map(iss => ({
13
13
  ...iss,
14
- path: iss.path ? [${ee}, ...iss.path] : [${ee}]
14
+ path: iss.path ? [${te}, ...iss.path] : [${te}]
15
15
  })));
16
16
  }
17
17
  }
18
18
 
19
19
  if (${j}.value === undefined) {
20
- if (${ee} in input) {
21
- newResult[${ee}] = undefined;
20
+ if (${te} in input) {
21
+ newResult[${te}] = undefined;
22
22
  }
23
23
  } else {
24
- newResult[${ee}] = ${j}.value;
24
+ newResult[${te}] = ${j}.value;
25
25
  }
26
26
 
27
27
  `):_.write(`
28
28
  if (${j}.issues.length) {
29
29
  payload.issues = payload.issues.concat(${j}.issues.map(iss => ({
30
30
  ...iss,
31
- path: iss.path ? [${ee}, ...iss.path] : [${ee}]
31
+ path: iss.path ? [${te}, ...iss.path] : [${te}]
32
32
  })));
33
33
  }
34
34
 
35
35
  if (${j}.value === undefined) {
36
- if (${ee} in input) {
37
- newResult[${ee}] = undefined;
36
+ if (${te} in input) {
37
+ newResult[${te}] = undefined;
38
38
  }
39
39
  } else {
40
- newResult[${ee}] = ${j}.value;
40
+ newResult[${te}] = ${j}.value;
41
41
  }
42
42
 
43
- `)}_.write("payload.value = newResult;"),_.write("return payload;");const D=_.compile();return(N,j)=>D(g,N,j)};let i;const s=ke,a=!hn.jitless,l=a&&ko.value,m=t.catchall;let f;e._zod.parse=(g,_)=>{f??(f=o.value);const x=g.value;return s(x)?a&&l&&_?.async===!1&&_.jitless!==!0?(i||(i=r(t.shape)),g=i(g,_),m?En([],x,g,_,f,e):g):n(g,_):(g.issues.push({expected:"object",code:"invalid_type",input:x,inst:e}),g)}});function Ft(e,t,n,o){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const r=e.filter(i=>!de(i));return r.length===1?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>re(s,o,oe())))}),t)}const Cn=h("$ZodUnion",(e,t)=>{E.init(e,t),z(e._zod,"optin",()=>t.options.some(r=>r._zod.optin==="optional")?"optional":void 0),z(e._zod,"optout",()=>t.options.some(r=>r._zod.optout==="optional")?"optional":void 0),z(e._zod,"values",()=>{if(t.options.every(r=>r._zod.values))return new Set(t.options.flatMap(r=>Array.from(r._zod.values)))}),z(e._zod,"pattern",()=>{if(t.options.every(r=>r._zod.pattern)){const r=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${r.map(i=>lt(i.source)).join("|")})$`)}});const n=t.options.length===1,o=t.options[0]._zod.run;e._zod.parse=(r,i)=>{if(n)return o(r,i);let s=!1;const a=[];for(const c of t.options){const l=c._zod.run({value:r.value,issues:[]},i);if(l instanceof Promise)a.push(l),s=!0;else{if(l.issues.length===0)return l;a.push(l)}}return s?Promise.all(a).then(c=>Ft(c,r,e,i)):Ft(a,r,e,i)}}),ds=h("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Cn.init(e,t);const n=e._zod.parse;z(e._zod,"propValues",()=>{const r={};for(const i of t.options){const s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(const[a,c]of Object.entries(s)){r[a]||(r[a]=new Set);for(const l of c)r[a].add(l)}}return r});const o=He(()=>{const r=t.options,i=new Map;for(const s of r){const a=s._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of a){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,s)}}return i});e._zod.parse=(r,i)=>{const s=r.value;if(!ke(s))return r.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),r;const a=o.value.get(s?.[t.discriminator]);return a?a._zod.run(r,i):t.unionFallback?n(r,i):(r.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:s,path:[t.discriminator],inst:e}),r)}}),ps=h("$ZodIntersection",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{const r=n.value,i=t.left._zod.run({value:r,issues:[]},o),s=t.right._zod.run({value:r,issues:[]},o);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([c,l])=>Ht(n,c,l)):Ht(n,i,s)}});function ot(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ge(e)&&ge(t)){const n=Object.keys(t),o=Object.keys(e).filter(i=>n.indexOf(i)!==-1),r={...e,...t};for(const i of o){const s=ot(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};r[i]=s.data}return{valid:!0,data:r}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const r=e[o],i=t[o],s=ot(r,i);if(!s.valid)return{valid:!1,mergeErrorPath:[o,...s.mergeErrorPath]};n.push(s.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ht(e,t,n){const o=new Map;let r;for(const a of t.issues)if(a.code==="unrecognized_keys"){r??(r=a);for(const c of a.keys)o.has(c)||o.set(c,{}),o.get(c).l=!0}else e.issues.push(a);for(const a of n.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)o.has(c)||o.set(c,{}),o.get(c).r=!0;else e.issues.push(a);const i=[...o].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&r&&e.issues.push({...r,keys:i}),de(e))return e;const s=ot(t.value,n.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}const hs=h("$ZodRecord",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{const r=n.value;if(!ge(r))return n.issues.push({expected:"record",code:"invalid_type",input:r,inst:e}),n;const i=[],s=t.keyType._zod.values;if(s){n.value={};const a=new Set;for(const l of s)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);const m=t.valueType._zod.run({value:r[l],issues:[]},o);m instanceof Promise?i.push(m.then(f=>{f.issues.length&&n.issues.push(...pe(l,f.issues)),n.value[l]=f.value})):(m.issues.length&&n.issues.push(...pe(l,m.issues)),n.value[l]=m.value)}let c;for(const l in r)a.has(l)||(c=c??[],c.push(l));c&&c.length>0&&n.issues.push({code:"unrecognized_keys",input:r,inst:e,keys:c})}else{n.value={};for(const a of Reflect.ownKeys(r)){if(a==="__proto__")continue;let c=t.keyType._zod.run({value:a,issues:[]},o);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&$n.test(a)&&c.issues.length){const f=t.keyType._zod.run({value:Number(a),issues:[]},o);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(c=f)}if(c.issues.length){t.mode==="loose"?n.value[a]=r[a]:n.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(f=>re(f,o,oe())),input:a,path:[a],inst:e});continue}const m=t.valueType._zod.run({value:r[a],issues:[]},o);m instanceof Promise?i.push(m.then(f=>{f.issues.length&&n.issues.push(...pe(a,f.issues)),n.value[c.value]=f.value})):(m.issues.length&&n.issues.push(...pe(a,m.issues)),n.value[c.value]=m.value)}}return i.length?Promise.all(i).then(()=>n):n}}),ms=h("$ZodEnum",(e,t)=>{E.init(e,t);const n=mn(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(r=>So.has(typeof r)).map(r=>typeof r=="string"?_e(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{const s=r.value;return o.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),fs=h("$ZodLiteral",(e,t)=>{if(E.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(o=>typeof o=="string"?_e(o):o?_e(o.toString()):String(o)).join("|")})$`),e._zod.parse=(o,r)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),o}}),gs=h("$ZodTransform",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{if(o.direction==="backward")throw new pn(e.constructor.name);const r=t.transform(n.value,n);if(o.async)return(r instanceof Promise?r:Promise.resolve(r)).then(s=>(n.value=s,n));if(r instanceof Promise)throw new me;return n.value=r,n}});function Jt(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Zn=h("$ZodOptional",(e,t)=>{E.init(e,t),e._zod.optin="optional",e._zod.optout="optional",z(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),z(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${lt(n.source)})?$`):void 0}),e._zod.parse=(n,o)=>{if(t.innerType._zod.optin==="optional"){const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(i=>Jt(i,n.value)):Jt(r,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,o)}}),_s=h("$ZodExactOptional",(e,t)=>{Zn.init(e,t),z(e._zod,"values",()=>t.innerType._zod.values),z(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,o)=>t.innerType._zod.run(n,o)}),vs=h("$ZodNullable",(e,t)=>{E.init(e,t),z(e._zod,"optin",()=>t.innerType._zod.optin),z(e._zod,"optout",()=>t.innerType._zod.optout),z(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${lt(n.source)}|null)$`):void 0}),z(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,o)=>n.value===null?n:t.innerType._zod.run(n,o)}),bs=h("$ZodDefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,o)=>{if(o.direction==="backward")return t.innerType._zod.run(n,o);if(n.value===void 0)return n.value=t.defaultValue,n;const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(i=>Vt(i,t)):Vt(r,t)}});function Vt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const ys=h("$ZodPrefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,o)=>(o.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,o))}),ws=h("$ZodNonOptional",(e,t)=>{E.init(e,t),z(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(o=>o!==void 0)):void 0}),e._zod.parse=(n,o)=>{const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(i=>Bt(i,e)):Bt(r,e)}});function Bt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const ks=h("$ZodCatch",(e,t)=>{E.init(e,t),z(e._zod,"optin",()=>t.innerType._zod.optin),z(e._zod,"optout",()=>t.innerType._zod.optout),z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,o)=>{if(o.direction==="backward")return t.innerType._zod.run(n,o);const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(i=>(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>re(s,o,oe()))},input:n.value}),n.issues=[]),n)):(n.value=r.value,r.issues.length&&(n.value=t.catchValue({...n,error:{issues:r.issues.map(i=>re(i,o,oe()))},input:n.value}),n.issues=[]),n)}}),Ss=h("$ZodPipe",(e,t)=>{E.init(e,t),z(e._zod,"values",()=>t.in._zod.values),z(e._zod,"optin",()=>t.in._zod.optin),z(e._zod,"optout",()=>t.out._zod.optout),z(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,o)=>{if(o.direction==="backward"){const i=t.out._zod.run(n,o);return i instanceof Promise?i.then(s=>Ne(s,t.in,o)):Ne(i,t.in,o)}const r=t.in._zod.run(n,o);return r instanceof Promise?r.then(i=>Ne(i,t.out,o)):Ne(r,t.out,o)}});function Ne(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const $s=h("$ZodReadonly",(e,t)=>{E.init(e,t),z(e._zod,"propValues",()=>t.innerType._zod.propValues),z(e._zod,"values",()=>t.innerType._zod.values),z(e._zod,"optin",()=>t.innerType?._zod?.optin),z(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,o)=>{if(o.direction==="backward")return t.innerType._zod.run(n,o);const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(Wt):Wt(r)}});function Wt(e){return e.value=Object.freeze(e.value),e}const zs=h("$ZodCustom",(e,t)=>{V.init(e,t),E.init(e,t),e._zod.parse=(n,o)=>n,e._zod.check=n=>{const o=n.value,r=t.fn(o);if(r instanceof Promise)return r.then(i=>Kt(i,n,o,e));Kt(r,n,o,e)}});function Kt(e,t,n,o){if(!e){const r={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(r.params=o._zod.def.params),t.issues.push(Se(r))}}var Gt;class Ts{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const o=n[0];return this._map.set(t,o),o&&typeof o=="object"&&"id"in o&&this._idmap.set(o.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const o={...this.get(n)??{}};delete o.id;const r={...o,...this._map.get(t)};return Object.keys(r).length?r:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function Rs(){return new Ts}(Gt=globalThis).__zod_globalRegistry??(Gt.__zod_globalRegistry=Rs());const we=globalThis.__zod_globalRegistry;function Is(e,t){return new e({type:"string",...v(t)})}function Ps(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...v(t)})}function Qt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...v(t)})}function xs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...v(t)})}function Es(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...v(t)})}function Cs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...v(t)})}function Zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...v(t)})}function Os(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...v(t)})}function Ns(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...v(t)})}function As(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...v(t)})}function qs(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...v(t)})}function Ms(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...v(t)})}function js(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...v(t)})}function Ds(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...v(t)})}function Ls(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...v(t)})}function Us(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...v(t)})}function Fs(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...v(t)})}function Hs(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...v(t)})}function Js(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...v(t)})}function Vs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...v(t)})}function Bs(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...v(t)})}function Ws(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...v(t)})}function Ks(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...v(t)})}function Gs(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...v(t)})}function Qs(e,t){return new e({type:"string",format:"date",check:"string_format",...v(t)})}function Ys(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...v(t)})}function Xs(e,t){return new e({type:"string",format:"duration",check:"string_format",...v(t)})}function ei(e,t){return new e({type:"number",checks:[],...v(t)})}function ti(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...v(t)})}function ni(e,t){return new e({type:"boolean",...v(t)})}function oi(e,t){return new e({type:"undefined",...v(t)})}function ri(e,t){return new e({type:"null",...v(t)})}function si(e){return new e({type:"unknown"})}function ii(e,t){return new e({type:"never",...v(t)})}function Yt(e,t){return new Tn({check:"less_than",...v(t),value:e,inclusive:!1})}function et(e,t){return new Tn({check:"less_than",...v(t),value:e,inclusive:!0})}function Xt(e,t){return new Rn({check:"greater_than",...v(t),value:e,inclusive:!1})}function tt(e,t){return new Rn({check:"greater_than",...v(t),value:e,inclusive:!0})}function en(e,t){return new _r({check:"multiple_of",...v(t),value:e})}function On(e,t){return new br({check:"max_length",...v(t),maximum:e})}function je(e,t){return new yr({check:"min_length",...v(t),minimum:e})}function Nn(e,t){return new wr({check:"length_equals",...v(t),length:e})}function ai(e,t){return new kr({check:"string_format",format:"regex",...v(t),pattern:e})}function ci(e){return new Sr({check:"string_format",format:"lowercase",...v(e)})}function ui(e){return new $r({check:"string_format",format:"uppercase",...v(e)})}function li(e,t){return new zr({check:"string_format",format:"includes",...v(t),includes:e})}function di(e,t){return new Tr({check:"string_format",format:"starts_with",...v(t),prefix:e})}function pi(e,t){return new Rr({check:"string_format",format:"ends_with",...v(t),suffix:e})}function be(e){return new Ir({check:"overwrite",tx:e})}function hi(e){return be(t=>t.normalize(e))}function mi(){return be(e=>e.trim())}function fi(){return be(e=>e.toLowerCase())}function gi(){return be(e=>e.toUpperCase())}function _i(){return be(e=>wo(e))}function vi(e,t,n){return new e({type:"array",element:t,...v(n)})}function bi(e,t,n){const o=v(n);return o.abort??(o.abort=!0),new e({type:"custom",check:"custom",fn:t,...o})}function yi(e,t,n){return new e({type:"custom",check:"custom",fn:t,...v(n)})}function wi(e){const t=ki(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(Se(o,n.value,t._zod.def));else{const r=o;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=n.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),n.issues.push(Se(r))}},e(n.value,n)));return t}function ki(e,t){const n=new V({check:"custom",...v(t)});return n._zod.check=e,n}function An(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??we,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function M(e,t,n={path:[],schemaPath:[]}){var o;const r=e._zod.def,i=t.seen.get(e);if(i)return i.count++,n.schemaPath.includes(e)&&(i.cycle=n.path),i.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,s);const a=e._zod.toJSONSchema?.();if(a)s.schema=a;else{const m={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,m);else{const g=s.schema,_=t.processors[r.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${r.type}`);_(e,t,g,m)}const f=e._zod.parent;f&&(s.ref||(s.ref=f),M(f,t,m),t.seen.get(f).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(s.schema,c),t.io==="input"&&H(e)&&(delete s.schema.examples,delete s.schema.default),t.io==="input"&&s.schema._prefault&&((o=s.schema).default??(o.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function qn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const s of e.seen.entries()){const a=e.metadataRegistry.get(s[0])?.id;if(a){const c=o.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(a,s[0])}}const r=s=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const f=e.external.registry.get(s[0])?.id,g=e.external.uri??(x=>x);if(f)return{ref:g(f)};const _=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=_,{defId:_,ref:`${g("__shared")}#/${a}/${_}`}}if(s[1]===n)return{ref:"#"};const l=`#/${a}/`,m=s[1].schema.id??`__schema${e.counter++}`;return{defId:m,ref:l+m}},i=s=>{if(s[1].schema.$ref)return;const a=s[1],{ref:c,defId:l}=r(s);a.def={...a.schema},l&&(a.defId=l);const m=a.schema;for(const f in m)delete m[f];m.$ref=c};if(e.cycles==="throw")for(const s of e.seen.entries()){const a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
43
+ `)}_.write("payload.value = newResult;"),_.write("return payload;");const D=_.compile();return(N,j)=>D(g,N,j)};let i;const r=$e,a=!mn.jitless,l=a&&ko.value,m=t.catchall;let f;e._zod.parse=(g,_)=>{f??(f=o.value);const x=g.value;return r(x)?a&&l&&_?.async===!1&&_.jitless!==!0?(i||(i=s(t.shape)),g=i(g,_),m?Cn([],x,g,_,f,e):g):n(g,_):(g.issues.push({expected:"object",code:"invalid_type",input:x,inst:e}),g)}});function Ht(e,t,n,o){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const s=e.filter(i=>!de(i));return s.length===1?(t.value=s[0].value,s[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(r=>se(r,o,oe())))}),t)}const Zn=h("$ZodUnion",(e,t)=>{E.init(e,t),z(e._zod,"optin",()=>t.options.some(s=>s._zod.optin==="optional")?"optional":void 0),z(e._zod,"optout",()=>t.options.some(s=>s._zod.optout==="optional")?"optional":void 0),z(e._zod,"values",()=>{if(t.options.every(s=>s._zod.values))return new Set(t.options.flatMap(s=>Array.from(s._zod.values)))}),z(e._zod,"pattern",()=>{if(t.options.every(s=>s._zod.pattern)){const s=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${s.map(i=>dt(i.source)).join("|")})$`)}});const n=t.options.length===1,o=t.options[0]._zod.run;e._zod.parse=(s,i)=>{if(n)return o(s,i);let r=!1;const a=[];for(const c of t.options){const l=c._zod.run({value:s.value,issues:[]},i);if(l instanceof Promise)a.push(l),r=!0;else{if(l.issues.length===0)return l;a.push(l)}}return r?Promise.all(a).then(c=>Ht(c,s,e,i)):Ht(a,s,e,i)}}),dr=h("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Zn.init(e,t);const n=e._zod.parse;z(e._zod,"propValues",()=>{const s={};for(const i of t.options){const r=i._zod.propValues;if(!r||Object.keys(r).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(const[a,c]of Object.entries(r)){s[a]||(s[a]=new Set);for(const l of c)s[a].add(l)}}return s});const o=Be(()=>{const s=t.options,i=new Map;for(const r of s){const a=r._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(const c of a){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,r)}}return i});e._zod.parse=(s,i)=>{const r=s.value;if(!$e(r))return s.issues.push({code:"invalid_type",expected:"object",input:r,inst:e}),s;const a=o.value.get(r?.[t.discriminator]);return a?a._zod.run(s,i):t.unionFallback?n(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:r,path:[t.discriminator],inst:e}),s)}}),pr=h("$ZodIntersection",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{const s=n.value,i=t.left._zod.run({value:s,issues:[]},o),r=t.right._zod.run({value:s,issues:[]},o);return i instanceof Promise||r instanceof Promise?Promise.all([i,r]).then(([c,l])=>Jt(n,c,l)):Jt(n,i,r)}});function rt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ge(e)&&ge(t)){const n=Object.keys(t),o=Object.keys(e).filter(i=>n.indexOf(i)!==-1),s={...e,...t};for(const i of o){const r=rt(e[i],t[i]);if(!r.valid)return{valid:!1,mergeErrorPath:[i,...r.mergeErrorPath]};s[i]=r.data}return{valid:!0,data:s}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const s=e[o],i=t[o],r=rt(s,i);if(!r.valid)return{valid:!1,mergeErrorPath:[o,...r.mergeErrorPath]};n.push(r.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Jt(e,t,n){const o=new Map;let s;for(const a of t.issues)if(a.code==="unrecognized_keys"){s??(s=a);for(const c of a.keys)o.has(c)||o.set(c,{}),o.get(c).l=!0}else e.issues.push(a);for(const a of n.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)o.has(c)||o.set(c,{}),o.get(c).r=!0;else e.issues.push(a);const i=[...o].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&s&&e.issues.push({...s,keys:i}),de(e))return e;const r=rt(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const hr=h("$ZodRecord",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{const s=n.value;if(!ge(s))return n.issues.push({expected:"record",code:"invalid_type",input:s,inst:e}),n;const i=[],r=t.keyType._zod.values;if(r){n.value={};const a=new Set;for(const l of r)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);const m=t.valueType._zod.run({value:s[l],issues:[]},o);m instanceof Promise?i.push(m.then(f=>{f.issues.length&&n.issues.push(...pe(l,f.issues)),n.value[l]=f.value})):(m.issues.length&&n.issues.push(...pe(l,m.issues)),n.value[l]=m.value)}let c;for(const l in s)a.has(l)||(c=c??[],c.push(l));c&&c.length>0&&n.issues.push({code:"unrecognized_keys",input:s,inst:e,keys:c})}else{n.value={};for(const a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let c=t.keyType._zod.run({value:a,issues:[]},o);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&zn.test(a)&&c.issues.length){const f=t.keyType._zod.run({value:Number(a),issues:[]},o);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(c=f)}if(c.issues.length){t.mode==="loose"?n.value[a]=s[a]:n.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(f=>se(f,o,oe())),input:a,path:[a],inst:e});continue}const m=t.valueType._zod.run({value:s[a],issues:[]},o);m instanceof Promise?i.push(m.then(f=>{f.issues.length&&n.issues.push(...pe(a,f.issues)),n.value[c.value]=f.value})):(m.issues.length&&n.issues.push(...pe(a,m.issues)),n.value[c.value]=m.value)}}return i.length?Promise.all(i).then(()=>n):n}}),mr=h("$ZodEnum",(e,t)=>{E.init(e,t);const n=fn(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(s=>So.has(typeof s)).map(s=>typeof s=="string"?_e(s):s.toString()).join("|")})$`),e._zod.parse=(s,i)=>{const r=s.value;return o.has(r)||s.issues.push({code:"invalid_value",values:n,input:r,inst:e}),s}}),fr=h("$ZodLiteral",(e,t)=>{if(E.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(o=>typeof o=="string"?_e(o):o?_e(o.toString()):String(o)).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),o}}),gr=h("$ZodTransform",(e,t)=>{E.init(e,t),e._zod.parse=(n,o)=>{if(o.direction==="backward")throw new hn(e.constructor.name);const s=t.transform(n.value,n);if(o.async)return(s instanceof Promise?s:Promise.resolve(s)).then(r=>(n.value=r,n));if(s instanceof Promise)throw new me;return n.value=s,n}});function Vt(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const On=h("$ZodOptional",(e,t)=>{E.init(e,t),e._zod.optin="optional",e._zod.optout="optional",z(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),z(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${dt(n.source)})?$`):void 0}),e._zod.parse=(n,o)=>{if(t.innerType._zod.optin==="optional"){const s=t.innerType._zod.run(n,o);return s instanceof Promise?s.then(i=>Vt(i,n.value)):Vt(s,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,o)}}),_r=h("$ZodExactOptional",(e,t)=>{On.init(e,t),z(e._zod,"values",()=>t.innerType._zod.values),z(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,o)=>t.innerType._zod.run(n,o)}),vr=h("$ZodNullable",(e,t)=>{E.init(e,t),z(e._zod,"optin",()=>t.innerType._zod.optin),z(e._zod,"optout",()=>t.innerType._zod.optout),z(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${dt(n.source)}|null)$`):void 0}),z(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,o)=>n.value===null?n:t.innerType._zod.run(n,o)}),br=h("$ZodDefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,o)=>{if(o.direction==="backward")return t.innerType._zod.run(n,o);if(n.value===void 0)return n.value=t.defaultValue,n;const s=t.innerType._zod.run(n,o);return s instanceof Promise?s.then(i=>Bt(i,t)):Bt(s,t)}});function Bt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const yr=h("$ZodPrefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,o)=>(o.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,o))}),wr=h("$ZodNonOptional",(e,t)=>{E.init(e,t),z(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(o=>o!==void 0)):void 0}),e._zod.parse=(n,o)=>{const s=t.innerType._zod.run(n,o);return s instanceof Promise?s.then(i=>Wt(i,e)):Wt(s,e)}});function Wt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const kr=h("$ZodCatch",(e,t)=>{E.init(e,t),z(e._zod,"optin",()=>t.innerType._zod.optin),z(e._zod,"optout",()=>t.innerType._zod.optout),z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,o)=>{if(o.direction==="backward")return t.innerType._zod.run(n,o);const s=t.innerType._zod.run(n,o);return s instanceof Promise?s.then(i=>(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(r=>se(r,o,oe()))},input:n.value}),n.issues=[]),n)):(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(i=>se(i,o,oe()))},input:n.value}),n.issues=[]),n)}}),Sr=h("$ZodPipe",(e,t)=>{E.init(e,t),z(e._zod,"values",()=>t.in._zod.values),z(e._zod,"optin",()=>t.in._zod.optin),z(e._zod,"optout",()=>t.out._zod.optout),z(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,o)=>{if(o.direction==="backward"){const i=t.out._zod.run(n,o);return i instanceof Promise?i.then(r=>Me(r,t.in,o)):Me(i,t.in,o)}const s=t.in._zod.run(n,o);return s instanceof Promise?s.then(i=>Me(i,t.out,o)):Me(s,t.out,o)}});function Me(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const $r=h("$ZodReadonly",(e,t)=>{E.init(e,t),z(e._zod,"propValues",()=>t.innerType._zod.propValues),z(e._zod,"values",()=>t.innerType._zod.values),z(e._zod,"optin",()=>t.innerType?._zod?.optin),z(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,o)=>{if(o.direction==="backward")return t.innerType._zod.run(n,o);const s=t.innerType._zod.run(n,o);return s instanceof Promise?s.then(Kt):Kt(s)}});function Kt(e){return e.value=Object.freeze(e.value),e}const zr=h("$ZodCustom",(e,t)=>{W.init(e,t),E.init(e,t),e._zod.parse=(n,o)=>n,e._zod.check=n=>{const o=n.value,s=t.fn(o);if(s instanceof Promise)return s.then(i=>Gt(i,n,o,e));Gt(s,n,o,e)}});function Gt(e,t,n,o){if(!e){const s={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(s.params=o._zod.def.params),t.issues.push(ze(s))}}var Qt;class Tr{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const o=n[0];return this._map.set(t,o),o&&typeof o=="object"&&"id"in o&&this._idmap.set(o.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const o={...this.get(n)??{}};delete o.id;const s={...o,...this._map.get(t)};return Object.keys(s).length?s:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function Rr(){return new Tr}(Qt=globalThis).__zod_globalRegistry??(Qt.__zod_globalRegistry=Rr());const Se=globalThis.__zod_globalRegistry;function Ir(e,t){return new e({type:"string",...v(t)})}function Pr(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...v(t)})}function Yt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...v(t)})}function xr(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...v(t)})}function Er(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...v(t)})}function Cr(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...v(t)})}function Zr(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...v(t)})}function Or(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...v(t)})}function Nr(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...v(t)})}function Ar(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...v(t)})}function qr(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...v(t)})}function Mr(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...v(t)})}function jr(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...v(t)})}function Dr(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...v(t)})}function Lr(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...v(t)})}function Ur(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...v(t)})}function Fr(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...v(t)})}function Hr(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...v(t)})}function Jr(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...v(t)})}function Vr(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...v(t)})}function Br(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...v(t)})}function Wr(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...v(t)})}function Kr(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...v(t)})}function Gr(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...v(t)})}function Qr(e,t){return new e({type:"string",format:"date",check:"string_format",...v(t)})}function Yr(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...v(t)})}function Xr(e,t){return new e({type:"string",format:"duration",check:"string_format",...v(t)})}function ei(e,t){return new e({type:"number",checks:[],...v(t)})}function ti(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...v(t)})}function ni(e,t){return new e({type:"boolean",...v(t)})}function oi(e,t){return new e({type:"undefined",...v(t)})}function si(e,t){return new e({type:"null",...v(t)})}function ri(e){return new e({type:"unknown"})}function ii(e,t){return new e({type:"never",...v(t)})}function Xt(e,t){return new Rn({check:"less_than",...v(t),value:e,inclusive:!1})}function nt(e,t){return new Rn({check:"less_than",...v(t),value:e,inclusive:!0})}function en(e,t){return new In({check:"greater_than",...v(t),value:e,inclusive:!1})}function ot(e,t){return new In({check:"greater_than",...v(t),value:e,inclusive:!0})}function tn(e,t){return new _s({check:"multiple_of",...v(t),value:e})}function Nn(e,t){return new bs({check:"max_length",...v(t),maximum:e})}function Ue(e,t){return new ys({check:"min_length",...v(t),minimum:e})}function An(e,t){return new ws({check:"length_equals",...v(t),length:e})}function ai(e,t){return new ks({check:"string_format",format:"regex",...v(t),pattern:e})}function ci(e){return new Ss({check:"string_format",format:"lowercase",...v(e)})}function ui(e){return new $s({check:"string_format",format:"uppercase",...v(e)})}function li(e,t){return new zs({check:"string_format",format:"includes",...v(t),includes:e})}function di(e,t){return new Ts({check:"string_format",format:"starts_with",...v(t),prefix:e})}function pi(e,t){return new Rs({check:"string_format",format:"ends_with",...v(t),suffix:e})}function be(e){return new Is({check:"overwrite",tx:e})}function hi(e){return be(t=>t.normalize(e))}function mi(){return be(e=>e.trim())}function fi(){return be(e=>e.toLowerCase())}function gi(){return be(e=>e.toUpperCase())}function _i(){return be(e=>wo(e))}function vi(e,t,n){return new e({type:"array",element:t,...v(n)})}function bi(e,t,n){const o=v(n);return o.abort??(o.abort=!0),new e({type:"custom",check:"custom",fn:t,...o})}function yi(e,t,n){return new e({type:"custom",check:"custom",fn:t,...v(n)})}function wi(e){const t=ki(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(ze(o,n.value,t._zod.def));else{const s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=t),s.continue??(s.continue=!t._zod.def.abort),n.issues.push(ze(s))}},e(n.value,n)));return t}function ki(e,t){const n=new W({check:"custom",...v(t)});return n._zod.check=e,n}function qn(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Se,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function M(e,t,n={path:[],schemaPath:[]}){var o;const s=e._zod.def,i=t.seen.get(e);if(i)return i.count++,n.schemaPath.includes(e)&&(i.cycle=n.path),i.schema;const r={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,r);const a=e._zod.toJSONSchema?.();if(a)r.schema=a;else{const m={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,r.schema,m);else{const g=r.schema,_=t.processors[s.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${s.type}`);_(e,t,g,m)}const f=e._zod.parent;f&&(r.ref||(r.ref=f),M(f,t,m),t.seen.get(f).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(r.schema,c),t.io==="input"&&H(e)&&(delete r.schema.examples,delete r.schema.default),t.io==="input"&&r.schema._prefault&&((o=r.schema).default??(o.default=r.schema._prefault)),delete r.schema._prefault,t.seen.get(e).schema}function Mn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const r of e.seen.entries()){const a=e.metadataRegistry.get(r[0])?.id;if(a){const c=o.get(a);if(c&&c!==r[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(a,r[0])}}const s=r=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const f=e.external.registry.get(r[0])?.id,g=e.external.uri??(x=>x);if(f)return{ref:g(f)};const _=r[1].defId??r[1].schema.id??`schema${e.counter++}`;return r[1].defId=_,{defId:_,ref:`${g("__shared")}#/${a}/${_}`}}if(r[1]===n)return{ref:"#"};const l=`#/${a}/`,m=r[1].schema.id??`__schema${e.counter++}`;return{defId:m,ref:l+m}},i=r=>{if(r[1].schema.$ref)return;const a=r[1],{ref:c,defId:l}=s(r);a.def={...a.schema},l&&(a.defId=l);const m=a.schema;for(const f in m)delete m[f];m.$ref=c};if(e.cycles==="throw")for(const r of e.seen.entries()){const a=r[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
44
44
 
45
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const s of e.seen.entries()){const a=s[1];if(t===s[0]){i(s);continue}if(e.external){const l=e.external.registry.get(s[0])?.id;if(t!==s[0]&&l){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&e.reused==="ref"){i(s);continue}}}function Mn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=s=>{const a=e.seen.get(s);if(a.ref===null)return;const c=a.def??a.schema,l={...c},m=a.ref;if(a.ref=null,m){o(m);const g=e.seen.get(m),_=g.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(_)):Object.assign(c,_),Object.assign(c,l),s._zod.parent===m)for(const q in c)q==="$ref"||q==="allOf"||q in l||delete c[q];if(_.$ref&&g.def)for(const q in c)q==="$ref"||q==="allOf"||q in g.def&&JSON.stringify(c[q])===JSON.stringify(g.def[q])&&delete c[q]}const f=s._zod.parent;if(f&&f!==m){o(f);const g=e.seen.get(f);if(g?.schema.$ref&&(c.$ref=g.schema.$ref,g.def))for(const _ in c)_==="$ref"||_==="allOf"||_ in g.def&&JSON.stringify(c[_])===JSON.stringify(g.def[_])&&delete c[_]}e.override({zodSchema:s,jsonSchema:c,path:a.path??[]})};for(const s of[...e.seen.entries()].reverse())o(s[0]);const r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(s)}Object.assign(r,n.def??n.schema);const i=e.external?.defs??{};for(const s of e.seen.entries()){const a=s[1];a.def&&a.defId&&(i[a.defId]=a.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?r.$defs=i:r.definitions=i);try{const s=JSON.parse(JSON.stringify(r));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:De(t,"input",e.processors),output:De(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function H(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return H(o.element,n);if(o.type==="set")return H(o.valueType,n);if(o.type==="lazy")return H(o.getter(),n);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return H(o.innerType,n);if(o.type==="intersection")return H(o.left,n)||H(o.right,n);if(o.type==="record"||o.type==="map")return H(o.keyType,n)||H(o.valueType,n);if(o.type==="pipe")return H(o.in,n)||H(o.out,n);if(o.type==="object"){for(const r in o.shape)if(H(o.shape[r],n))return!0;return!1}if(o.type==="union"){for(const r of o.options)if(H(r,n))return!0;return!1}if(o.type==="tuple"){for(const r of o.items)if(H(r,n))return!0;return!!(o.rest&&H(o.rest,n))}return!1}const Si=(e,t={})=>n=>{const o=An({...n,processors:t});return M(e,o),qn(o,e),Mn(o,e)},De=(e,t,n={})=>o=>{const{libraryOptions:r,target:i}=o??{},s=An({...r??{},target:i,io:t,processors:n});return M(e,s),qn(s,e),Mn(s,e)},$i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},zi=(e,t,n,o)=>{const r=n;r.type="string";const{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof i=="number"&&(r.minLength=i),typeof s=="number"&&(r.maxLength=s),a&&(r.format=$i[a]??a,r.format===""&&delete r.format,a==="time"&&delete r.format),l&&(r.contentEncoding=l),c&&c.size>0){const m=[...c];m.length===1?r.pattern=m[0].source:m.length>1&&(r.allOf=[...m.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Ti=(e,t,n,o)=>{const r=n,{minimum:i,maximum:s,format:a,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:m}=e._zod.bag;typeof a=="string"&&a.includes("int")?r.type="integer":r.type="number",typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.minimum=m,r.exclusiveMinimum=!0):r.exclusiveMinimum=m),typeof i=="number"&&(r.minimum=i,typeof m=="number"&&t.target!=="draft-04"&&(m>=i?delete r.minimum:delete r.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.maximum=l,r.exclusiveMaximum=!0):r.exclusiveMaximum=l),typeof s=="number"&&(r.maximum=s,typeof l=="number"&&t.target!=="draft-04"&&(l<=s?delete r.maximum:delete r.exclusiveMaximum)),typeof c=="number"&&(r.multipleOf=c)},Ri=(e,t,n,o)=>{n.type="boolean"},Ii=(e,t,n,o)=>{t.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},Pi=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},xi=(e,t,n,o)=>{n.not={}},Ei=(e,t,n,o)=>{},Ci=(e,t,n,o)=>{const r=e._zod.def,i=mn(r.entries);i.every(s=>typeof s=="number")&&(n.type="number"),i.every(s=>typeof s=="string")&&(n.type="string"),n.enum=i},Zi=(e,t,n,o)=>{const r=e._zod.def,i=[];for(const s of r.values)if(s===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s))}else i.push(s);if(i.length!==0)if(i.length===1){const s=i[0];n.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[s]:n.const=s}else i.every(s=>typeof s=="number")&&(n.type="number"),i.every(s=>typeof s=="string")&&(n.type="string"),i.every(s=>typeof s=="boolean")&&(n.type="boolean"),i.every(s=>s===null)&&(n.type="null"),n.enum=i},Oi=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Ni=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ai=(e,t,n,o)=>{const r=n,i=e._zod.def,{minimum:s,maximum:a}=e._zod.bag;typeof s=="number"&&(r.minItems=s),typeof a=="number"&&(r.maxItems=a),r.type="array",r.items=M(i.element,t,{...o,path:[...o.path,"items"]})},qi=(e,t,n,o)=>{const r=n,i=e._zod.def;r.type="object",r.properties={};const s=i.shape;for(const l in s)r.properties[l]=M(s[l],t,{...o,path:[...o.path,"properties",l]});const a=new Set(Object.keys(s)),c=new Set([...a].filter(l=>{const m=i.shape[l]._zod;return t.io==="input"?m.optin===void 0:m.optout===void 0}));c.size>0&&(r.required=Array.from(c)),i.catchall?._zod.def.type==="never"?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=M(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},Mi=(e,t,n,o)=>{const r=e._zod.def,i=r.inclusive===!1,s=r.options.map((a,c)=>M(a,t,{...o,path:[...o.path,i?"oneOf":"anyOf",c]}));i?n.oneOf=s:n.anyOf=s},ji=(e,t,n,o)=>{const r=e._zod.def,i=M(r.left,t,{...o,path:[...o.path,"allOf",0]}),s=M(r.right,t,{...o,path:[...o.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];n.allOf=c},Di=(e,t,n,o)=>{const r=n,i=e._zod.def;r.type="object";const s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){const m=M(i.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});r.patternProperties={};for(const f of c)r.patternProperties[f.source]=m}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(r.propertyNames=M(i.keyType,t,{...o,path:[...o.path,"propertyNames"]})),r.additionalProperties=M(i.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const l=s._zod.values;if(l){const m=[...l].filter(f=>typeof f=="string"||typeof f=="number");m.length>0&&(r.required=m)}},Li=(e,t,n,o)=>{const r=e._zod.def,i=M(r.innerType,t,o),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=r.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]},Ui=(e,t,n,o)=>{const r=e._zod.def;M(r.innerType,t,o);const i=t.seen.get(e);i.ref=r.innerType},Fi=(e,t,n,o)=>{const r=e._zod.def;M(r.innerType,t,o);const i=t.seen.get(e);i.ref=r.innerType,n.default=JSON.parse(JSON.stringify(r.defaultValue))},Hi=(e,t,n,o)=>{const r=e._zod.def;M(r.innerType,t,o);const i=t.seen.get(e);i.ref=r.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},Ji=(e,t,n,o)=>{const r=e._zod.def;M(r.innerType,t,o);const i=t.seen.get(e);i.ref=r.innerType;let s;try{s=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=s},Vi=(e,t,n,o)=>{const r=e._zod.def,i=t.io==="input"?r.in._zod.def.type==="transform"?r.out:r.in:r.out;M(i,t,o);const s=t.seen.get(e);s.ref=i},Bi=(e,t,n,o)=>{const r=e._zod.def;M(r.innerType,t,o);const i=t.seen.get(e);i.ref=r.innerType,n.readOnly=!0},jn=(e,t,n,o)=>{const r=e._zod.def;M(r.innerType,t,o);const i=t.seen.get(e);i.ref=r.innerType};function ft(e){return!!e._zod}function Dn(e,t){return ft(e)?yn(e,t):e.safeParse(t)}function Wi(e){if(!e)return;let t;if(ft(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Ki(e){if(ft(e)){const i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}const n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}const o=e.value;if(o!==void 0)return o}const Gi=h("ZodISODateTime",(e,t)=>{Ur.init(e,t),O.init(e,t)});function Ln(e){return Gs(Gi,e)}const Qi=h("ZodISODate",(e,t)=>{Fr.init(e,t),O.init(e,t)});function Yi(e){return Qs(Qi,e)}const Xi=h("ZodISOTime",(e,t)=>{Hr.init(e,t),O.init(e,t)});function ea(e){return Ys(Xi,e)}const ta=h("ZodISODuration",(e,t)=>{Jr.init(e,t),O.init(e,t)});function na(e){return Xs(ta,e)}const oa=(e,t)=>{vn.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Oo(e,n)},flatten:{value:n=>Zo(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,nt,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,nt,2)}},isEmpty:{get(){return e.issues.length===0}}})},Q=h("ZodError",oa,{Parent:Error}),ra=pt(Q),sa=ht(Q),ia=Je(Q),aa=Ve(Q),ca=Ao(Q),ua=qo(Q),la=Mo(Q),da=jo(Q),pa=Do(Q),ha=Lo(Q),ma=Uo(Q),fa=Fo(Q),C=h("ZodType",(e,t)=>(E.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:De(e,"input"),output:De(e,"output")}}),e.toJSONSchema=Si(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(se(t,{checks:[...t.checks??[],...n.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0}),e.with=e.check,e.clone=(n,o)=>ie(e,n,o),e.brand=()=>e,e.register=((n,o)=>(n.add(e,o),e)),e.parse=(n,o)=>ra(e,n,o,{callee:e.parse}),e.safeParse=(n,o)=>ia(e,n,o),e.parseAsync=async(n,o)=>sa(e,n,o,{callee:e.parseAsync}),e.safeParseAsync=async(n,o)=>aa(e,n,o),e.spa=e.safeParseAsync,e.encode=(n,o)=>ca(e,n,o),e.decode=(n,o)=>ua(e,n,o),e.encodeAsync=async(n,o)=>la(e,n,o),e.decodeAsync=async(n,o)=>da(e,n,o),e.safeEncode=(n,o)=>pa(e,n,o),e.safeDecode=(n,o)=>ha(e,n,o),e.safeEncodeAsync=async(n,o)=>ma(e,n,o),e.safeDecodeAsync=async(n,o)=>fa(e,n,o),e.refine=(n,o)=>e.check(ac(n,o)),e.superRefine=n=>e.check(cc(n)),e.overwrite=n=>e.check(be(n)),e.optional=()=>A(e),e.exactOptional=()=>Wa(e),e.nullable=()=>on(e),e.nullish=()=>A(on(e)),e.nonoptional=n=>ec(e,n),e.array=()=>b(e),e.or=n=>k([e,n]),e.and=n=>gt(e,n),e.transform=n=>it(e,Wn(n)),e.default=n=>Qa(e,n),e.prefault=n=>Xa(e,n),e.catch=n=>nc(e,n),e.pipe=n=>it(e,n),e.readonly=()=>sc(e),e.describe=n=>{const o=e.clone();return we.add(o,{description:n}),o},Object.defineProperty(e,"description",{get(){return we.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return we.get(e);const o=e.clone();return we.add(o,n[0]),o},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),Un=h("_ZodString",(e,t)=>{mt.init(e,t),C.init(e,t),e._zod.processJSONSchema=(o,r,i)=>zi(e,o,r);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...o)=>e.check(ai(...o)),e.includes=(...o)=>e.check(li(...o)),e.startsWith=(...o)=>e.check(di(...o)),e.endsWith=(...o)=>e.check(pi(...o)),e.min=(...o)=>e.check(je(...o)),e.max=(...o)=>e.check(On(...o)),e.length=(...o)=>e.check(Nn(...o)),e.nonempty=(...o)=>e.check(je(1,...o)),e.lowercase=o=>e.check(ci(o)),e.uppercase=o=>e.check(ui(o)),e.trim=()=>e.check(mi()),e.normalize=(...o)=>e.check(hi(...o)),e.toLowerCase=()=>e.check(fi()),e.toUpperCase=()=>e.check(gi()),e.slugify=()=>e.check(_i())}),ga=h("ZodString",(e,t)=>{mt.init(e,t),Un.init(e,t),e.email=n=>e.check(Ps(_a,n)),e.url=n=>e.check(Os(va,n)),e.jwt=n=>e.check(Ks(Za,n)),e.emoji=n=>e.check(Ns(ba,n)),e.guid=n=>e.check(Qt(tn,n)),e.uuid=n=>e.check(xs(Ae,n)),e.uuidv4=n=>e.check(Es(Ae,n)),e.uuidv6=n=>e.check(Cs(Ae,n)),e.uuidv7=n=>e.check(Zs(Ae,n)),e.nanoid=n=>e.check(As(ya,n)),e.guid=n=>e.check(Qt(tn,n)),e.cuid=n=>e.check(qs(wa,n)),e.cuid2=n=>e.check(Ms(ka,n)),e.ulid=n=>e.check(js(Sa,n)),e.base64=n=>e.check(Vs(xa,n)),e.base64url=n=>e.check(Bs(Ea,n)),e.xid=n=>e.check(Ds($a,n)),e.ksuid=n=>e.check(Ls(za,n)),e.ipv4=n=>e.check(Us(Ta,n)),e.ipv6=n=>e.check(Fs(Ra,n)),e.cidrv4=n=>e.check(Hs(Ia,n)),e.cidrv6=n=>e.check(Js(Pa,n)),e.e164=n=>e.check(Ws(Ca,n)),e.datetime=n=>e.check(Ln(n)),e.date=n=>e.check(Yi(n)),e.time=n=>e.check(ea(n)),e.duration=n=>e.check(na(n))});function d(e){return Is(ga,e)}const O=h("ZodStringFormat",(e,t)=>{Z.init(e,t),Un.init(e,t)}),_a=h("ZodEmail",(e,t)=>{Zr.init(e,t),O.init(e,t)}),tn=h("ZodGUID",(e,t)=>{Er.init(e,t),O.init(e,t)}),Ae=h("ZodUUID",(e,t)=>{Cr.init(e,t),O.init(e,t)}),va=h("ZodURL",(e,t)=>{Or.init(e,t),O.init(e,t)}),ba=h("ZodEmoji",(e,t)=>{Nr.init(e,t),O.init(e,t)}),ya=h("ZodNanoID",(e,t)=>{Ar.init(e,t),O.init(e,t)}),wa=h("ZodCUID",(e,t)=>{qr.init(e,t),O.init(e,t)}),ka=h("ZodCUID2",(e,t)=>{Mr.init(e,t),O.init(e,t)}),Sa=h("ZodULID",(e,t)=>{jr.init(e,t),O.init(e,t)}),$a=h("ZodXID",(e,t)=>{Dr.init(e,t),O.init(e,t)}),za=h("ZodKSUID",(e,t)=>{Lr.init(e,t),O.init(e,t)}),Ta=h("ZodIPv4",(e,t)=>{Vr.init(e,t),O.init(e,t)}),Ra=h("ZodIPv6",(e,t)=>{Br.init(e,t),O.init(e,t)}),Ia=h("ZodCIDRv4",(e,t)=>{Wr.init(e,t),O.init(e,t)}),Pa=h("ZodCIDRv6",(e,t)=>{Kr.init(e,t),O.init(e,t)}),xa=h("ZodBase64",(e,t)=>{Gr.init(e,t),O.init(e,t)}),Ea=h("ZodBase64URL",(e,t)=>{Yr.init(e,t),O.init(e,t)}),Ca=h("ZodE164",(e,t)=>{Xr.init(e,t),O.init(e,t)}),Za=h("ZodJWT",(e,t)=>{ts.init(e,t),O.init(e,t)}),Fn=h("ZodNumber",(e,t)=>{Pn.init(e,t),C.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Ti(e,o,r),e.gt=(o,r)=>e.check(Xt(o,r)),e.gte=(o,r)=>e.check(tt(o,r)),e.min=(o,r)=>e.check(tt(o,r)),e.lt=(o,r)=>e.check(Yt(o,r)),e.lte=(o,r)=>e.check(et(o,r)),e.max=(o,r)=>e.check(et(o,r)),e.int=o=>e.check(nn(o)),e.safe=o=>e.check(nn(o)),e.positive=o=>e.check(Xt(0,o)),e.nonnegative=o=>e.check(tt(0,o)),e.negative=o=>e.check(Yt(0,o)),e.nonpositive=o=>e.check(et(0,o)),e.multipleOf=(o,r)=>e.check(en(o,r)),e.step=(o,r)=>e.check(en(o,r)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function y(e){return ei(Fn,e)}const Oa=h("ZodNumberFormat",(e,t)=>{ns.init(e,t),Fn.init(e,t)});function nn(e){return ti(Oa,e)}const Na=h("ZodBoolean",(e,t)=>{os.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ri(e,n,o)});function P(e){return ni(Na,e)}const Aa=h("ZodUndefined",(e,t)=>{rs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Pi(e,n)});function rt(e){return oi(Aa,e)}const qa=h("ZodNull",(e,t)=>{ss.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ii(e,n,o)});function Hn(e){return ri(qa,e)}const Ma=h("ZodUnknown",(e,t)=>{is.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ei()});function I(){return si(Ma)}const ja=h("ZodNever",(e,t)=>{as.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>xi(e,n,o)});function Da(e){return ii(ja,e)}const La=h("ZodArray",(e,t)=>{cs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ai(e,n,o,r),e.element=t.element,e.min=(n,o)=>e.check(je(n,o)),e.nonempty=n=>e.check(je(1,n)),e.max=(n,o)=>e.check(On(n,o)),e.length=(n,o)=>e.check(Nn(n,o)),e.unwrap=()=>e.element});function b(e,t){return vi(La,e,t)}const Jn=h("ZodObject",(e,t)=>{ls.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>qi(e,n,o,r),z(e,"shape",()=>t.shape),e.keyof=()=>B(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:I()}),e.loose=()=>e.clone({...e._zod.def,catchall:I()}),e.strict=()=>e.clone({...e._zod.def,catchall:Da()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Io(e,n),e.safeExtend=n=>Po(e,n),e.merge=n=>xo(e,n),e.pick=n=>To(e,n),e.omit=n=>Ro(e,n),e.partial=(...n)=>Eo(Kn,e,n[0]),e.required=(...n)=>Co(Gn,e,n[0])});function p(e,t){const n={type:"object",shape:e??{},...v(t)};return new Jn(n)}function J(e,t){return new Jn({type:"object",shape:e,catchall:I(),...v(t)})}const Vn=h("ZodUnion",(e,t)=>{Cn.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Mi(e,n,o,r),e.options=t.options});function k(e,t){return new Vn({type:"union",options:e,...v(t)})}const Ua=h("ZodDiscriminatedUnion",(e,t)=>{Vn.init(e,t),ds.init(e,t)});function Bn(e,t,n){return new Ua({type:"union",options:t,discriminator:e,...v(n)})}const Fa=h("ZodIntersection",(e,t)=>{ps.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>ji(e,n,o,r)});function gt(e,t){return new Fa({type:"intersection",left:e,right:t})}const Ha=h("ZodRecord",(e,t)=>{hs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Di(e,n,o,r),e.keyType=t.keyType,e.valueType=t.valueType});function R(e,t,n){return new Ha({type:"record",keyType:e,valueType:t,...v(n)})}const st=h("ZodEnum",(e,t)=>{ms.init(e,t),C.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Ci(e,o,r),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(o,r)=>{const i={};for(const s of o)if(n.has(s))i[s]=t.entries[s];else throw new Error(`Key ${s} not found in enum`);return new st({...t,checks:[],...v(r),entries:i})},e.exclude=(o,r)=>{const i={...t.entries};for(const s of o)if(n.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new st({...t,checks:[],...v(r),entries:i})}});function B(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new st({type:"enum",entries:n,...v(t)})}const Ja=h("ZodLiteral",(e,t)=>{fs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Zi(e,n,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function u(e,t){return new Ja({type:"literal",values:Array.isArray(e)?e:[e],...v(t)})}const Va=h("ZodTransform",(e,t)=>{gs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ni(e,n),e._zod.parse=(n,o)=>{if(o.direction==="backward")throw new pn(e.constructor.name);n.addIssue=i=>{if(typeof i=="string")n.issues.push(Se(i,n.value,t));else{const s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=e),n.issues.push(Se(s))}};const r=t.transform(n.value,n);return r instanceof Promise?r.then(i=>(n.value=i,n)):(n.value=r,n)}});function Wn(e){return new Va({type:"transform",transform:e})}const Kn=h("ZodOptional",(e,t)=>{Zn.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>jn(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function A(e){return new Kn({type:"optional",innerType:e})}const Ba=h("ZodExactOptional",(e,t)=>{_s.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>jn(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Wa(e){return new Ba({type:"optional",innerType:e})}const Ka=h("ZodNullable",(e,t)=>{vs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Li(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function on(e){return new Ka({type:"nullable",innerType:e})}const Ga=h("ZodDefault",(e,t)=>{bs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Fi(e,n,o,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Qa(e,t){return new Ga({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():gn(t)}})}const Ya=h("ZodPrefault",(e,t)=>{ys.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Hi(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Xa(e,t){return new Ya({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():gn(t)}})}const Gn=h("ZodNonOptional",(e,t)=>{ws.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ui(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function ec(e,t){return new Gn({type:"nonoptional",innerType:e,...v(t)})}const tc=h("ZodCatch",(e,t)=>{ks.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ji(e,n,o,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function nc(e,t){return new tc({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const oc=h("ZodPipe",(e,t)=>{Ss.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Vi(e,n,o,r),e.in=t.in,e.out=t.out});function it(e,t){return new oc({type:"pipe",in:e,out:t})}const rc=h("ZodReadonly",(e,t)=>{$s.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Bi(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function sc(e){return new rc({type:"readonly",innerType:e})}const Qn=h("ZodCustom",(e,t)=>{zs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Oi(e,n)});function ic(e,t){return bi(Qn,e??(()=>!0),t)}function ac(e,t={}){return yi(Qn,e,t)}function cc(e){return wi(e)}function Yn(e,t){return it(Wn(e),t)}const ce="io.modelcontextprotocol/related-task",We="2.0",L=ic(e=>e!==null&&(typeof e=="object"||typeof e=="function")),Xn=k([d(),y().int()]),eo=d();J({ttl:k([y(),Hn()]).optional(),pollInterval:y().optional()});const uc=p({ttl:y().optional()}),lc=p({taskId:d()}),_t=J({progressToken:Xn.optional(),[ce]:lc.optional()}),W=p({_meta:_t.optional()}),ze=W.extend({task:uc.optional()}),dc=e=>ze.safeParse(e).success,U=p({method:d(),params:W.loose().optional()}),Y=p({_meta:_t.optional()}),X=p({method:d(),params:Y.loose().optional()}),F=J({_meta:_t.optional()}),Te=k([d(),y().int()]),to=p({jsonrpc:u(We),id:Te,...U.shape}).strict(),rn=e=>to.safeParse(e).success,no=p({jsonrpc:u(We),...X.shape}).strict(),pc=e=>no.safeParse(e).success,vt=p({jsonrpc:u(We),id:Te,result:F}).strict(),qe=e=>vt.safeParse(e).success;var T;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(T||(T={}));const bt=p({jsonrpc:u(We),id:Te.optional(),error:p({code:y().int(),message:d(),data:I().optional()})}).strict(),hc=e=>bt.safeParse(e).success,mc=k([to,no,vt,bt]);k([vt,bt]);const yt=F.strict(),fc=Y.extend({requestId:Te.optional(),reason:d().optional()}),wt=X.extend({method:u("notifications/cancelled"),params:fc}),gc=p({src:d(),mimeType:d().optional(),sizes:b(d()).optional(),theme:B(["light","dark"]).optional()}),Re=p({icons:b(gc).optional()}),ve=p({name:d(),title:d().optional()}),Ke=ve.extend({...ve.shape,...Re.shape,version:d(),websiteUrl:d().optional(),description:d().optional()}),_c=gt(p({applyDefaults:P().optional()}),R(d(),I())),vc=Yn(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,gt(p({form:_c.optional(),url:L.optional()}),R(d(),I()).optional())),bc=J({list:L.optional(),cancel:L.optional(),requests:J({sampling:J({createMessage:L.optional()}).optional(),elicitation:J({create:L.optional()}).optional()}).optional()}),yc=J({list:L.optional(),cancel:L.optional(),requests:J({tools:J({call:L.optional()}).optional()}).optional()}),wc=p({experimental:R(d(),L).optional(),sampling:p({context:L.optional(),tools:L.optional()}).optional(),elicitation:vc.optional(),roots:p({listChanged:P().optional()}).optional(),tasks:bc.optional()}),kc=W.extend({protocolVersion:d(),capabilities:wc,clientInfo:Ke}),Sc=U.extend({method:u("initialize"),params:kc}),$c=p({experimental:R(d(),L).optional(),logging:L.optional(),completions:L.optional(),prompts:p({listChanged:P().optional()}).optional(),resources:p({subscribe:P().optional(),listChanged:P().optional()}).optional(),tools:p({listChanged:P().optional()}).optional(),tasks:yc.optional()}),zc=F.extend({protocolVersion:d(),capabilities:$c,serverInfo:Ke,instructions:d().optional()}),Tc=X.extend({method:u("notifications/initialized"),params:Y.optional()}),Ge=U.extend({method:u("ping"),params:W.optional()}),Rc=p({progress:y(),total:A(y()),message:A(d())}),Ic=p({...Y.shape,...Rc.shape,progressToken:Xn}),kt=X.extend({method:u("notifications/progress"),params:Ic}),Pc=W.extend({cursor:eo.optional()}),Ie=U.extend({params:Pc.optional()}),Pe=F.extend({nextCursor:eo.optional()}),xc=B(["working","input_required","completed","failed","cancelled"]),xe=p({taskId:d(),status:xc,ttl:k([y(),Hn()]),createdAt:d(),lastUpdatedAt:d(),pollInterval:A(y()),statusMessage:A(d())}),St=F.extend({task:xe}),Ec=Y.merge(xe),Le=X.extend({method:u("notifications/tasks/status"),params:Ec}),$t=U.extend({method:u("tasks/get"),params:W.extend({taskId:d()})}),zt=F.merge(xe),Tt=U.extend({method:u("tasks/result"),params:W.extend({taskId:d()})});F.loose();const Rt=Ie.extend({method:u("tasks/list")}),It=Pe.extend({tasks:b(xe)}),Pt=U.extend({method:u("tasks/cancel"),params:W.extend({taskId:d()})}),Cc=F.merge(xe),oo=p({uri:d(),mimeType:A(d()),_meta:R(d(),I()).optional()}),ro=oo.extend({text:d()}),xt=d().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),so=oo.extend({blob:xt}),Ee=B(["user","assistant"]),ye=p({audience:b(Ee).optional(),priority:y().min(0).max(1).optional(),lastModified:Ln({offset:!0}).optional()}),io=p({...ve.shape,...Re.shape,uri:d(),description:A(d()),mimeType:A(d()),annotations:ye.optional(),_meta:A(J({}))}),Zc=p({...ve.shape,...Re.shape,uriTemplate:d(),description:A(d()),mimeType:A(d()),annotations:ye.optional(),_meta:A(J({}))}),Oc=Ie.extend({method:u("resources/list")}),ao=Pe.extend({resources:b(io)}),Nc=Ie.extend({method:u("resources/templates/list")}),Ac=Pe.extend({resourceTemplates:b(Zc)}),Et=W.extend({uri:d()}),qc=Et,Mc=U.extend({method:u("resources/read"),params:qc}),co=F.extend({contents:b(k([ro,so]))}),jc=X.extend({method:u("notifications/resources/list_changed"),params:Y.optional()}),Dc=Et,Lc=U.extend({method:u("resources/subscribe"),params:Dc}),Uc=Et,Fc=U.extend({method:u("resources/unsubscribe"),params:Uc}),Hc=Y.extend({uri:d()}),Jc=X.extend({method:u("notifications/resources/updated"),params:Hc}),Vc=p({name:d(),description:A(d()),required:A(P())}),Bc=p({...ve.shape,...Re.shape,description:A(d()),arguments:A(b(Vc)),_meta:A(J({}))}),Wc=Ie.extend({method:u("prompts/list")}),Kc=Pe.extend({prompts:b(Bc)}),Gc=W.extend({name:d(),arguments:R(d(),d()).optional()}),Qc=U.extend({method:u("prompts/get"),params:Gc}),Ct=p({type:u("text"),text:d(),annotations:ye.optional(),_meta:R(d(),I()).optional()}),Zt=p({type:u("image"),data:xt,mimeType:d(),annotations:ye.optional(),_meta:R(d(),I()).optional()}),Ot=p({type:u("audio"),data:xt,mimeType:d(),annotations:ye.optional(),_meta:R(d(),I()).optional()}),Yc=p({type:u("tool_use"),name:d(),id:d(),input:R(d(),I()),_meta:R(d(),I()).optional()}),uo=p({type:u("resource"),resource:k([ro,so]),annotations:ye.optional(),_meta:R(d(),I()).optional()}),lo=io.extend({type:u("resource_link")}),Ce=k([Ct,Zt,Ot,lo,uo]),Xc=p({role:Ee,content:Ce}),eu=F.extend({description:d().optional(),messages:b(Xc)}),tu=X.extend({method:u("notifications/prompts/list_changed"),params:Y.optional()}),nu=p({title:d().optional(),readOnlyHint:P().optional(),destructiveHint:P().optional(),idempotentHint:P().optional(),openWorldHint:P().optional()}),ou=p({taskSupport:B(["required","optional","forbidden"]).optional()}),Nt=p({...ve.shape,...Re.shape,description:d().optional(),inputSchema:p({type:u("object"),properties:R(d(),L).optional(),required:b(d()).optional()}).catchall(I()),outputSchema:p({type:u("object"),properties:R(d(),L).optional(),required:b(d()).optional()}).catchall(I()).optional(),annotations:nu.optional(),execution:ou.optional(),_meta:R(d(),I()).optional()}),po=Ie.extend({method:u("tools/list")}),ru=Pe.extend({tools:b(Nt)}),Qe=F.extend({content:b(Ce).default([]),structuredContent:R(d(),I()).optional(),isError:P().optional()});Qe.or(F.extend({toolResult:I()}));const su=ze.extend({name:d(),arguments:R(d(),I()).optional()}),ho=U.extend({method:u("tools/call"),params:su}),iu=X.extend({method:u("notifications/tools/list_changed"),params:Y.optional()});p({autoRefresh:P().default(!0),debounceMs:y().int().nonnegative().default(300)});const mo=B(["debug","info","notice","warning","error","critical","alert","emergency"]),au=W.extend({level:mo}),cu=U.extend({method:u("logging/setLevel"),params:au}),uu=Y.extend({level:mo,logger:d().optional(),data:I()}),lu=X.extend({method:u("notifications/message"),params:uu}),du=p({name:d().optional()}),pu=p({hints:b(du).optional(),costPriority:y().min(0).max(1).optional(),speedPriority:y().min(0).max(1).optional(),intelligencePriority:y().min(0).max(1).optional()}),hu=p({mode:B(["auto","required","none"]).optional()}),mu=p({type:u("tool_result"),toolUseId:d().describe("The unique identifier for the corresponding tool call."),content:b(Ce).default([]),structuredContent:p({}).loose().optional(),isError:P().optional(),_meta:R(d(),I()).optional()}),fu=Bn("type",[Ct,Zt,Ot]),Ue=Bn("type",[Ct,Zt,Ot,Yc,mu]),gu=p({role:Ee,content:k([Ue,b(Ue)]),_meta:R(d(),I()).optional()}),_u=ze.extend({messages:b(gu),modelPreferences:pu.optional(),systemPrompt:d().optional(),includeContext:B(["none","thisServer","allServers"]).optional(),temperature:y().optional(),maxTokens:y().int(),stopSequences:b(d()).optional(),metadata:L.optional(),tools:b(Nt).optional(),toolChoice:hu.optional()}),vu=U.extend({method:u("sampling/createMessage"),params:_u}),bu=F.extend({model:d(),stopReason:A(B(["endTurn","stopSequence","maxTokens"]).or(d())),role:Ee,content:fu}),yu=F.extend({model:d(),stopReason:A(B(["endTurn","stopSequence","maxTokens","toolUse"]).or(d())),role:Ee,content:k([Ue,b(Ue)])}),wu=p({type:u("boolean"),title:d().optional(),description:d().optional(),default:P().optional()}),ku=p({type:u("string"),title:d().optional(),description:d().optional(),minLength:y().optional(),maxLength:y().optional(),format:B(["email","uri","date","date-time"]).optional(),default:d().optional()}),Su=p({type:B(["number","integer"]),title:d().optional(),description:d().optional(),minimum:y().optional(),maximum:y().optional(),default:y().optional()}),$u=p({type:u("string"),title:d().optional(),description:d().optional(),enum:b(d()),default:d().optional()}),zu=p({type:u("string"),title:d().optional(),description:d().optional(),oneOf:b(p({const:d(),title:d()})),default:d().optional()}),Tu=p({type:u("string"),title:d().optional(),description:d().optional(),enum:b(d()),enumNames:b(d()).optional(),default:d().optional()}),Ru=k([$u,zu]),Iu=p({type:u("array"),title:d().optional(),description:d().optional(),minItems:y().optional(),maxItems:y().optional(),items:p({type:u("string"),enum:b(d())}),default:b(d()).optional()}),Pu=p({type:u("array"),title:d().optional(),description:d().optional(),minItems:y().optional(),maxItems:y().optional(),items:p({anyOf:b(p({const:d(),title:d()}))}),default:b(d()).optional()}),xu=k([Iu,Pu]),Eu=k([Tu,Ru,xu]),Cu=k([Eu,wu,ku,Su]),Zu=ze.extend({mode:u("form").optional(),message:d(),requestedSchema:p({type:u("object"),properties:R(d(),Cu),required:b(d()).optional()})}),Ou=ze.extend({mode:u("url"),message:d(),elicitationId:d(),url:d().url()}),Nu=k([Zu,Ou]),Au=U.extend({method:u("elicitation/create"),params:Nu}),qu=Y.extend({elicitationId:d()}),Mu=X.extend({method:u("notifications/elicitation/complete"),params:qu}),ju=F.extend({action:B(["accept","decline","cancel"]),content:Yn(e=>e===null?void 0:e,R(d(),k([d(),y(),P(),b(d())])).optional())}),Du=p({type:u("ref/resource"),uri:d()}),Lu=p({type:u("ref/prompt"),name:d()}),Uu=W.extend({ref:k([Lu,Du]),argument:p({name:d(),value:d()}),context:p({arguments:R(d(),d()).optional()}).optional()}),Fu=U.extend({method:u("completion/complete"),params:Uu}),Hu=F.extend({completion:J({values:b(d()).max(100),total:A(y().int()),hasMore:A(P())})}),Ju=p({uri:d().startsWith("file://"),name:d().optional(),_meta:R(d(),I()).optional()}),Vu=U.extend({method:u("roots/list"),params:W.optional()}),Bu=F.extend({roots:b(Ju)}),Wu=X.extend({method:u("notifications/roots/list_changed"),params:Y.optional()});k([Ge,Sc,Fu,cu,Qc,Wc,Oc,Nc,Mc,Lc,Fc,ho,po,$t,Tt,Rt,Pt]);k([wt,kt,Tc,Wu,Le]);k([yt,bu,yu,ju,Bu,zt,It,St]);k([Ge,vu,Au,Vu,$t,Tt,Rt,Pt]);k([wt,kt,lu,Jc,jc,iu,tu,Le,Mu]);k([yt,zc,Hu,eu,Kc,ao,Ac,co,Qe,ru,zt,It,St]);class S extends Error{constructor(t,n,o){super(`MCP error ${t}: ${n}`),this.code=t,this.data=o,this.name="McpError"}static fromError(t,n,o){if(t===T.UrlElicitationRequired&&o){const r=o;if(r.elicitations)return new Ku(r.elicitations,n)}return new S(t,n,o)}}class Ku extends S{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(T.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}function ae(e){return e==="completed"||e==="failed"||e==="cancelled"}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function sn(e){const n=Wi(e)?.method;if(!n)throw new Error("Schema is missing a method literal");const o=Ki(n);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function an(e,t){const n=Dn(e,t);if(!n.success)throw n.error;return n.data}const Gu=6e4;class Qu{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(wt,n=>{this._oncancel(n)}),this.setNotificationHandler(kt,n=>{this._onprogress(n)}),this.setRequestHandler(Ge,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler($t,async(n,o)=>{const r=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!r)throw new S(T.InvalidParams,"Failed to retrieve task: Task not found");return{...r}}),this.setRequestHandler(Tt,async(n,o)=>{const r=async()=>{const i=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,o.sessionId);){if(a.type==="response"||a.type==="error"){const c=a.message,l=c.id,m=this._requestResolvers.get(l);if(m)if(this._requestResolvers.delete(l),a.type==="response")m(c);else{const f=c,g=new S(f.error.code,f.error.message,f.error.data);m(g)}else{const f=a.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${l}`))}continue}await this._transport?.send(a.message,{relatedRequestId:o.requestId})}}const s=await this._taskStore.getTask(i,o.sessionId);if(!s)throw new S(T.InvalidParams,`Task not found: ${i}`);if(!ae(s.status))return await this._waitForTaskUpdate(i,o.signal),await r();if(ae(s.status)){const a=await this._taskStore.getTaskResult(i,o.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[ce]:{taskId:i}}}}return await r()};return await r()}),this.setRequestHandler(Rt,async(n,o)=>{try{const{tasks:r,nextCursor:i}=await this._taskStore.listTasks(n.params?.cursor,o.sessionId);return{tasks:r,nextCursor:i,_meta:{}}}catch(r){throw new S(T.InvalidParams,`Failed to list tasks: ${r instanceof Error?r.message:String(r)}`)}}),this.setRequestHandler(Pt,async(n,o)=>{try{const r=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!r)throw new S(T.InvalidParams,`Task not found: ${n.params.taskId}`);if(ae(r.status))throw new S(T.InvalidParams,`Cannot cancel task in terminal status: ${r.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(n.params.taskId);const i=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!i)throw new S(T.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...i}}catch(r){throw r instanceof S?r:new S(T.InvalidRequest,`Failed to cancel task: ${r instanceof Error?r.message:String(r)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,o,r,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(r,n),startTime:Date.now(),timeout:n,maxTotalTimeout:o,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(t){const n=this._timeoutInfo.get(t);if(!n)return!1;const o=Date.now()-n.startTime;if(n.maxTotalTimeout&&o>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),S.fromError(T.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:o});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){const n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;const n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};const o=this.transport?.onerror;this._transport.onerror=i=>{o?.(i),this._onerror(i)};const r=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{r?.(i,s),qe(i)||hc(i)?this._onresponse(i):rn(i)?this._onrequest(i,s):pc(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){const t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(const o of this._requestHandlerAbortControllers.values())o.abort();this._requestHandlerAbortControllers.clear();const n=S.fromError(T.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(const o of t.values())o(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){const n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(t,n){const o=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,r=this._transport,i=t.params?._meta?.[ce]?.taskId;if(o===void 0){const m={jsonrpc:"2.0",id:t.id,error:{code:T.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:m,timestamp:Date.now()},r?.sessionId).catch(f=>this._onerror(new Error(`Failed to enqueue error response: ${f}`))):r?.send(m).catch(f=>this._onerror(new Error(`Failed to send an error response: ${f}`)));return}const s=new AbortController;this._requestHandlerAbortControllers.set(t.id,s);const a=dc(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,r?.sessionId):void 0,l={signal:s.signal,sessionId:r?.sessionId,_meta:t.params?._meta,sendNotification:async m=>{if(s.signal.aborted)return;const f={relatedRequestId:t.id};i&&(f.relatedTask={taskId:i}),await this.notification(m,f)},sendRequest:async(m,f,g)=>{if(s.signal.aborted)throw new S(T.ConnectionClosed,"Request was cancelled");const _={...g,relatedRequestId:t.id};i&&!_.relatedTask&&(_.relatedTask={taskId:i});const x=_.relatedTask?.taskId??i;return x&&c&&await c.updateTaskStatus(x,"input_required"),await this.request(m,f,_)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>o(t,l)).then(async m=>{if(s.signal.aborted)return;const f={result:m,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:f,timestamp:Date.now()},r?.sessionId):await r?.send(f)},async m=>{if(s.signal.aborted)return;const f={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(m.code)?m.code:T.InternalError,message:m.message??"Internal error",...m.data!==void 0&&{data:m.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:f,timestamp:Date.now()},r?.sessionId):await r?.send(f)}).catch(m=>this._onerror(new Error(`Failed to send response: ${m}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){const{progressToken:n,...o}=t.params,r=Number(n),i=this._progressHandlers.get(r);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}const s=this._responseHandlers.get(r),a=this._timeoutInfo.get(r);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(c){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),s(c);return}i(o)}_onresponse(t){const n=Number(t.id),o=this._requestResolvers.get(n);if(o){if(this._requestResolvers.delete(n),qe(t))o(t);else{const s=new S(t.error.code,t.error.message,t.error.data);o(s)}return}const r=this._responseHandlers.get(n);if(r===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let i=!1;if(qe(t)&&t.result&&typeof t.result=="object"){const s=t.result;if(s.task&&typeof s.task=="object"){const a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,n))}}if(i||this._progressHandlers.delete(n),qe(t))r(t);else{const s=S.fromError(t.error.code,t.error.message,t.error.data);r(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,o){const{task:r}=o??{};if(!r){try{yield{type:"result",result:await this.request(t,n,o)}}catch(s){yield{type:"error",error:s instanceof S?s:new S(T.InternalError,String(s))}}return}let i;try{const s=await this.request(t,St,o);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new S(T.InternalError,"Task creation did not return a task");for(;;){const a=await this.getTask({taskId:i},o);if(yield{type:"taskStatus",task:a},ae(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)}:a.status==="failed"?yield{type:"error",error:new S(T.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new S(T.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)};return}const c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),o?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof S?s:new S(T.InternalError,String(s))}}}request(t,n,o){const{relatedRequestId:r,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=o??{};return new Promise((l,m)=>{const f=D=>{m(D)};if(!this._transport){f(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(D){f(D);return}o?.signal?.throwIfAborted();const g=this._requestMessageId++,_={...t,jsonrpc:"2.0",id:g};o?.onprogress&&(this._progressHandlers.set(g,o.onprogress),_.params={...t.params,_meta:{...t.params?._meta||{},progressToken:g}}),a&&(_.params={..._.params,task:a}),c&&(_.params={..._.params,_meta:{..._.params?._meta||{},[ce]:c}});const x=D=>{this._responseHandlers.delete(g),this._progressHandlers.delete(g),this._cleanupTimeout(g),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:g,reason:String(D)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:s}).catch(j=>this._onerror(new Error(`Failed to send cancellation: ${j}`)));const N=D instanceof S?D:new S(T.RequestTimeout,String(D));m(N)};this._responseHandlers.set(g,D=>{if(!o?.signal?.aborted){if(D instanceof Error)return m(D);try{const N=Dn(n,D.result);N.success?l(N.data):m(N.error)}catch(N){m(N)}}}),o?.signal?.addEventListener("abort",()=>{x(o?.signal?.reason)});const q=o?.timeout??Gu,le=()=>x(S.fromError(T.RequestTimeout,"Request timed out",{timeout:q}));this._setupTimeout(g,q,o?.maxTotalTimeout,le,o?.resetTimeoutOnProgress??!1);const Ze=c?.taskId;if(Ze){const D=N=>{const j=this._responseHandlers.get(g);j?j(N):this._onerror(new Error(`Response handler missing for side-channeled request ${g}`))};this._requestResolvers.set(g,D),this._enqueueTaskMessage(Ze,{type:"request",message:_,timestamp:Date.now()}).catch(N=>{this._cleanupTimeout(g),m(N)})}else this._transport.send(_,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:s}).catch(D=>{this._cleanupTimeout(g),m(D)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},zt,n)}async getTaskResult(t,n,o){return this.request({method:"tasks/result",params:t},n,o)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},It,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Cc,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);const o=n?.relatedTask?.taskId;if(o){const a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[ce]:n.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[ce]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let s={...t,jsonrpc:"2.0"};n?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[ce]:n.relatedTask}}}),await this._transport.send(s,n)}setRequestHandler(t,n){const o=sn(t);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(r,i)=>{const s=an(t,r);return Promise.resolve(n(s,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){const o=sn(t);this._notificationHandlers.set(o,r=>{const i=an(t,r);return Promise.resolve(n(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){const n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,o){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");const r=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,o,r)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){const o=await this._taskMessageQueue.dequeueAll(t,n);for(const r of o)if(r.type==="request"&&rn(r.message)){const i=r.message.id,s=this._requestResolvers.get(i);s?(s(new S(T.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let o=this._options?.defaultTaskPollInterval??1e3;try{const r=await this._taskStore?.getTask(t);r?.pollInterval&&(o=r.pollInterval)}catch{}return new Promise((r,i)=>{if(n.aborted){i(new S(T.InvalidRequest,"Request cancelled"));return}const s=setTimeout(r,o);n.addEventListener("abort",()=>{clearTimeout(s),i(new S(T.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){const o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async r=>{if(!t)throw new Error("No request provided");return await o.createTask(r,t.id,{method:t.method,params:t.params},n)},getTask:async r=>{const i=await o.getTask(r,n);if(!i)throw new S(T.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(r,i,s)=>{await o.storeTaskResult(r,i,s,n);const a=await o.getTask(r,n);if(a){const c=Le.parse({method:"notifications/tasks/status",params:a});await this.notification(c),ae(a.status)&&this._cleanupTaskProgressHandler(r)}},getTaskResult:r=>o.getTaskResult(r,n),updateTaskStatus:async(r,i,s)=>{const a=await o.getTask(r,n);if(!a)throw new S(T.InvalidParams,`Task "${r}" not found - it may have been cleaned up`);if(ae(a.status))throw new S(T.InvalidParams,`Cannot update task "${r}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(r,i,s,n);const c=await o.getTask(r,n);if(c){const l=Le.parse({method:"notifications/tasks/status",params:c});await this.notification(l),ae(c.status)&&this._cleanupTaskProgressHandler(r)}},listTasks:r=>o.listTasks(r,n)}}}var Yu="2026-01-26",Xu="ui/notifications/tool-input-partial";class el{eventTarget;eventSource;messageListener;constructor(t=window.parent,n){this.eventTarget=t,this.eventSource=n,this.messageListener=o=>{if(n&&o.source!==this.eventSource){console.debug("Ignoring message from unknown source",o);return}let r=mc.safeParse(o.data);r.success?(console.debug("Parsed message",r.data),this.onmessage?.(r.data)):o.data?.jsonrpc!=="2.0"?console.debug("Ignoring non-JSON-RPC message",r.error.message,o):(console.error("Failed to parse message",r.error.message,o),this.onerror?.(Error("Invalid JSON-RPC message received: "+r.error.message)))}}async start(){window.addEventListener("message",this.messageListener)}async send(t,n){t.method!==Xu&&console.debug("Sending message",t),this.eventTarget.postMessage(t,"*")}async close(){window.removeEventListener("message",this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion}var tl=k([u("light"),u("dark")]).describe("Color theme preference for the host environment."),$e=k([u("inline"),u("fullscreen"),u("pip")]).describe("Display mode for UI presentation."),nl=k([u("--color-background-primary"),u("--color-background-secondary"),u("--color-background-tertiary"),u("--color-background-inverse"),u("--color-background-ghost"),u("--color-background-info"),u("--color-background-danger"),u("--color-background-success"),u("--color-background-warning"),u("--color-background-disabled"),u("--color-text-primary"),u("--color-text-secondary"),u("--color-text-tertiary"),u("--color-text-inverse"),u("--color-text-ghost"),u("--color-text-info"),u("--color-text-danger"),u("--color-text-success"),u("--color-text-warning"),u("--color-text-disabled"),u("--color-border-primary"),u("--color-border-secondary"),u("--color-border-tertiary"),u("--color-border-inverse"),u("--color-border-ghost"),u("--color-border-info"),u("--color-border-danger"),u("--color-border-success"),u("--color-border-warning"),u("--color-border-disabled"),u("--color-ring-primary"),u("--color-ring-secondary"),u("--color-ring-inverse"),u("--color-ring-info"),u("--color-ring-danger"),u("--color-ring-success"),u("--color-ring-warning"),u("--font-sans"),u("--font-mono"),u("--font-weight-normal"),u("--font-weight-medium"),u("--font-weight-semibold"),u("--font-weight-bold"),u("--font-text-xs-size"),u("--font-text-sm-size"),u("--font-text-md-size"),u("--font-text-lg-size"),u("--font-heading-xs-size"),u("--font-heading-sm-size"),u("--font-heading-md-size"),u("--font-heading-lg-size"),u("--font-heading-xl-size"),u("--font-heading-2xl-size"),u("--font-heading-3xl-size"),u("--font-text-xs-line-height"),u("--font-text-sm-line-height"),u("--font-text-md-line-height"),u("--font-text-lg-line-height"),u("--font-heading-xs-line-height"),u("--font-heading-sm-line-height"),u("--font-heading-md-line-height"),u("--font-heading-lg-line-height"),u("--font-heading-xl-line-height"),u("--font-heading-2xl-line-height"),u("--font-heading-3xl-line-height"),u("--border-radius-xs"),u("--border-radius-sm"),u("--border-radius-md"),u("--border-radius-lg"),u("--border-radius-xl"),u("--border-radius-full"),u("--border-width-regular"),u("--shadow-hairline"),u("--shadow-sm"),u("--shadow-md"),u("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),ol=R(nl.describe(`Style variables for theming MCP apps.
45
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const a=r[1];if(t===r[0]){i(r);continue}if(e.external){const l=e.external.registry.get(r[0])?.id;if(t!==r[0]&&l){i(r);continue}}if(e.metadataRegistry.get(r[0])?.id){i(r);continue}if(a.cycle){i(r);continue}if(a.count>1&&e.reused==="ref"){i(r);continue}}}function jn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=r=>{const a=e.seen.get(r);if(a.ref===null)return;const c=a.def??a.schema,l={...c},m=a.ref;if(a.ref=null,m){o(m);const g=e.seen.get(m),_=g.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(_)):Object.assign(c,_),Object.assign(c,l),r._zod.parent===m)for(const q in c)q==="$ref"||q==="allOf"||q in l||delete c[q];if(_.$ref&&g.def)for(const q in c)q==="$ref"||q==="allOf"||q in g.def&&JSON.stringify(c[q])===JSON.stringify(g.def[q])&&delete c[q]}const f=r._zod.parent;if(f&&f!==m){o(f);const g=e.seen.get(f);if(g?.schema.$ref&&(c.$ref=g.schema.$ref,g.def))for(const _ in c)_==="$ref"||_==="allOf"||_ in g.def&&JSON.stringify(c[_])===JSON.stringify(g.def[_])&&delete c[_]}e.override({zodSchema:r,jsonSchema:c,path:a.path??[]})};for(const r of[...e.seen.entries()].reverse())o(r[0]);const s={};if(e.target==="draft-2020-12"?s.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?s.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?s.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const r=e.external.registry.get(t)?.id;if(!r)throw new Error("Schema is missing an `id` property");s.$id=e.external.uri(r)}Object.assign(s,n.def??n.schema);const i=e.external?.defs??{};for(const r of e.seen.entries()){const a=r[1];a.def&&a.defId&&(i[a.defId]=a.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?s.$defs=i:s.definitions=i);try{const r=JSON.parse(JSON.stringify(s));return Object.defineProperty(r,"~standard",{value:{...t["~standard"],jsonSchema:{input:Fe(t,"input",e.processors),output:Fe(t,"output",e.processors)}},enumerable:!1,writable:!1}),r}catch{throw new Error("Error converting schema to JSON.")}}function H(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return H(o.element,n);if(o.type==="set")return H(o.valueType,n);if(o.type==="lazy")return H(o.getter(),n);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return H(o.innerType,n);if(o.type==="intersection")return H(o.left,n)||H(o.right,n);if(o.type==="record"||o.type==="map")return H(o.keyType,n)||H(o.valueType,n);if(o.type==="pipe")return H(o.in,n)||H(o.out,n);if(o.type==="object"){for(const s in o.shape)if(H(o.shape[s],n))return!0;return!1}if(o.type==="union"){for(const s of o.options)if(H(s,n))return!0;return!1}if(o.type==="tuple"){for(const s of o.items)if(H(s,n))return!0;return!!(o.rest&&H(o.rest,n))}return!1}const Si=(e,t={})=>n=>{const o=qn({...n,processors:t});return M(e,o),Mn(o,e),jn(o,e)},Fe=(e,t,n={})=>o=>{const{libraryOptions:s,target:i}=o??{},r=qn({...s??{},target:i,io:t,processors:n});return M(e,r),Mn(r,e),jn(r,e)},$i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},zi=(e,t,n,o)=>{const s=n;s.type="string";const{minimum:i,maximum:r,format:a,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof i=="number"&&(s.minLength=i),typeof r=="number"&&(s.maxLength=r),a&&(s.format=$i[a]??a,s.format===""&&delete s.format,a==="time"&&delete s.format),l&&(s.contentEncoding=l),c&&c.size>0){const m=[...c];m.length===1?s.pattern=m[0].source:m.length>1&&(s.allOf=[...m.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Ti=(e,t,n,o)=>{const s=n,{minimum:i,maximum:r,format:a,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:m}=e._zod.bag;typeof a=="string"&&a.includes("int")?s.type="integer":s.type="number",typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(s.minimum=m,s.exclusiveMinimum=!0):s.exclusiveMinimum=m),typeof i=="number"&&(s.minimum=i,typeof m=="number"&&t.target!=="draft-04"&&(m>=i?delete s.minimum:delete s.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(s.maximum=l,s.exclusiveMaximum=!0):s.exclusiveMaximum=l),typeof r=="number"&&(s.maximum=r,typeof l=="number"&&t.target!=="draft-04"&&(l<=r?delete s.maximum:delete s.exclusiveMaximum)),typeof c=="number"&&(s.multipleOf=c)},Ri=(e,t,n,o)=>{n.type="boolean"},Ii=(e,t,n,o)=>{t.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},Pi=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},xi=(e,t,n,o)=>{n.not={}},Ei=(e,t,n,o)=>{},Ci=(e,t,n,o)=>{const s=e._zod.def,i=fn(s.entries);i.every(r=>typeof r=="number")&&(n.type="number"),i.every(r=>typeof r=="string")&&(n.type="string"),n.enum=i},Zi=(e,t,n,o)=>{const s=e._zod.def,i=[];for(const r of s.values)if(r===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof r=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(r))}else i.push(r);if(i.length!==0)if(i.length===1){const r=i[0];n.type=r===null?"null":typeof r,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[r]:n.const=r}else i.every(r=>typeof r=="number")&&(n.type="number"),i.every(r=>typeof r=="string")&&(n.type="string"),i.every(r=>typeof r=="boolean")&&(n.type="boolean"),i.every(r=>r===null)&&(n.type="null"),n.enum=i},Oi=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Ni=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ai=(e,t,n,o)=>{const s=n,i=e._zod.def,{minimum:r,maximum:a}=e._zod.bag;typeof r=="number"&&(s.minItems=r),typeof a=="number"&&(s.maxItems=a),s.type="array",s.items=M(i.element,t,{...o,path:[...o.path,"items"]})},qi=(e,t,n,o)=>{const s=n,i=e._zod.def;s.type="object",s.properties={};const r=i.shape;for(const l in r)s.properties[l]=M(r[l],t,{...o,path:[...o.path,"properties",l]});const a=new Set(Object.keys(r)),c=new Set([...a].filter(l=>{const m=i.shape[l]._zod;return t.io==="input"?m.optin===void 0:m.optout===void 0}));c.size>0&&(s.required=Array.from(c)),i.catchall?._zod.def.type==="never"?s.additionalProperties=!1:i.catchall?i.catchall&&(s.additionalProperties=M(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):t.io==="output"&&(s.additionalProperties=!1)},Mi=(e,t,n,o)=>{const s=e._zod.def,i=s.inclusive===!1,r=s.options.map((a,c)=>M(a,t,{...o,path:[...o.path,i?"oneOf":"anyOf",c]}));i?n.oneOf=r:n.anyOf=r},ji=(e,t,n,o)=>{const s=e._zod.def,i=M(s.left,t,{...o,path:[...o.path,"allOf",0]}),r=M(s.right,t,{...o,path:[...o.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,c=[...a(i)?i.allOf:[i],...a(r)?r.allOf:[r]];n.allOf=c},Di=(e,t,n,o)=>{const s=n,i=e._zod.def;s.type="object";const r=i.keyType,c=r._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){const m=M(i.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});s.patternProperties={};for(const f of c)s.patternProperties[f.source]=m}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(s.propertyNames=M(i.keyType,t,{...o,path:[...o.path,"propertyNames"]})),s.additionalProperties=M(i.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const l=r._zod.values;if(l){const m=[...l].filter(f=>typeof f=="string"||typeof f=="number");m.length>0&&(s.required=m)}},Li=(e,t,n,o)=>{const s=e._zod.def,i=M(s.innerType,t,o),r=t.seen.get(e);t.target==="openapi-3.0"?(r.ref=s.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]},Ui=(e,t,n,o)=>{const s=e._zod.def;M(s.innerType,t,o);const i=t.seen.get(e);i.ref=s.innerType},Fi=(e,t,n,o)=>{const s=e._zod.def;M(s.innerType,t,o);const i=t.seen.get(e);i.ref=s.innerType,n.default=JSON.parse(JSON.stringify(s.defaultValue))},Hi=(e,t,n,o)=>{const s=e._zod.def;M(s.innerType,t,o);const i=t.seen.get(e);i.ref=s.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(s.defaultValue)))},Ji=(e,t,n,o)=>{const s=e._zod.def;M(s.innerType,t,o);const i=t.seen.get(e);i.ref=s.innerType;let r;try{r=s.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=r},Vi=(e,t,n,o)=>{const s=e._zod.def,i=t.io==="input"?s.in._zod.def.type==="transform"?s.out:s.in:s.out;M(i,t,o);const r=t.seen.get(e);r.ref=i},Bi=(e,t,n,o)=>{const s=e._zod.def;M(s.innerType,t,o);const i=t.seen.get(e);i.ref=s.innerType,n.readOnly=!0},Dn=(e,t,n,o)=>{const s=e._zod.def;M(s.innerType,t,o);const i=t.seen.get(e);i.ref=s.innerType};function gt(e){return!!e._zod}function Ln(e,t){return gt(e)?wn(e,t):e.safeParse(t)}function Wi(e){if(!e)return;let t;if(gt(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Ki(e){if(gt(e)){const i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}const n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}const o=e.value;if(o!==void 0)return o}const Gi=h("ZodISODateTime",(e,t)=>{Us.init(e,t),O.init(e,t)});function Un(e){return Gr(Gi,e)}const Qi=h("ZodISODate",(e,t)=>{Fs.init(e,t),O.init(e,t)});function Yi(e){return Qr(Qi,e)}const Xi=h("ZodISOTime",(e,t)=>{Hs.init(e,t),O.init(e,t)});function ea(e){return Yr(Xi,e)}const ta=h("ZodISODuration",(e,t)=>{Js.init(e,t),O.init(e,t)});function na(e){return Xr(ta,e)}const oa=(e,t)=>{bn.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Oo(e,n)},flatten:{value:n=>Zo(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,st,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,st,2)}},isEmpty:{get(){return e.issues.length===0}}})},Y=h("ZodError",oa,{Parent:Error}),sa=ht(Y),ra=mt(Y),ia=We(Y),aa=Ke(Y),ca=Ao(Y),ua=qo(Y),la=Mo(Y),da=jo(Y),pa=Do(Y),ha=Lo(Y),ma=Uo(Y),fa=Fo(Y),C=h("ZodType",(e,t)=>(E.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Fe(e,"input"),output:Fe(e,"output")}}),e.toJSONSchema=Si(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(re(t,{checks:[...t.checks??[],...n.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0}),e.with=e.check,e.clone=(n,o)=>ie(e,n,o),e.brand=()=>e,e.register=((n,o)=>(n.add(e,o),e)),e.parse=(n,o)=>sa(e,n,o,{callee:e.parse}),e.safeParse=(n,o)=>ia(e,n,o),e.parseAsync=async(n,o)=>ra(e,n,o,{callee:e.parseAsync}),e.safeParseAsync=async(n,o)=>aa(e,n,o),e.spa=e.safeParseAsync,e.encode=(n,o)=>ca(e,n,o),e.decode=(n,o)=>ua(e,n,o),e.encodeAsync=async(n,o)=>la(e,n,o),e.decodeAsync=async(n,o)=>da(e,n,o),e.safeEncode=(n,o)=>pa(e,n,o),e.safeDecode=(n,o)=>ha(e,n,o),e.safeEncodeAsync=async(n,o)=>ma(e,n,o),e.safeDecodeAsync=async(n,o)=>fa(e,n,o),e.refine=(n,o)=>e.check(ac(n,o)),e.superRefine=n=>e.check(cc(n)),e.overwrite=n=>e.check(be(n)),e.optional=()=>A(e),e.exactOptional=()=>Wa(e),e.nullable=()=>sn(e),e.nullish=()=>A(sn(e)),e.nonoptional=n=>ec(e,n),e.array=()=>b(e),e.or=n=>S([e,n]),e.and=n=>_t(e,n),e.transform=n=>ct(e,Kn(n)),e.default=n=>Qa(e,n),e.prefault=n=>Xa(e,n),e.catch=n=>nc(e,n),e.pipe=n=>ct(e,n),e.readonly=()=>rc(e),e.describe=n=>{const o=e.clone();return Se.add(o,{description:n}),o},Object.defineProperty(e,"description",{get(){return Se.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Se.get(e);const o=e.clone();return Se.add(o,n[0]),o},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),Fn=h("_ZodString",(e,t)=>{ft.init(e,t),C.init(e,t),e._zod.processJSONSchema=(o,s,i)=>zi(e,o,s);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...o)=>e.check(ai(...o)),e.includes=(...o)=>e.check(li(...o)),e.startsWith=(...o)=>e.check(di(...o)),e.endsWith=(...o)=>e.check(pi(...o)),e.min=(...o)=>e.check(Ue(...o)),e.max=(...o)=>e.check(Nn(...o)),e.length=(...o)=>e.check(An(...o)),e.nonempty=(...o)=>e.check(Ue(1,...o)),e.lowercase=o=>e.check(ci(o)),e.uppercase=o=>e.check(ui(o)),e.trim=()=>e.check(mi()),e.normalize=(...o)=>e.check(hi(...o)),e.toLowerCase=()=>e.check(fi()),e.toUpperCase=()=>e.check(gi()),e.slugify=()=>e.check(_i())}),ga=h("ZodString",(e,t)=>{ft.init(e,t),Fn.init(e,t),e.email=n=>e.check(Pr(_a,n)),e.url=n=>e.check(Or(va,n)),e.jwt=n=>e.check(Kr(Za,n)),e.emoji=n=>e.check(Nr(ba,n)),e.guid=n=>e.check(Yt(nn,n)),e.uuid=n=>e.check(xr(je,n)),e.uuidv4=n=>e.check(Er(je,n)),e.uuidv6=n=>e.check(Cr(je,n)),e.uuidv7=n=>e.check(Zr(je,n)),e.nanoid=n=>e.check(Ar(ya,n)),e.guid=n=>e.check(Yt(nn,n)),e.cuid=n=>e.check(qr(wa,n)),e.cuid2=n=>e.check(Mr(ka,n)),e.ulid=n=>e.check(jr(Sa,n)),e.base64=n=>e.check(Vr(xa,n)),e.base64url=n=>e.check(Br(Ea,n)),e.xid=n=>e.check(Dr($a,n)),e.ksuid=n=>e.check(Lr(za,n)),e.ipv4=n=>e.check(Ur(Ta,n)),e.ipv6=n=>e.check(Fr(Ra,n)),e.cidrv4=n=>e.check(Hr(Ia,n)),e.cidrv6=n=>e.check(Jr(Pa,n)),e.e164=n=>e.check(Wr(Ca,n)),e.datetime=n=>e.check(Un(n)),e.date=n=>e.check(Yi(n)),e.time=n=>e.check(ea(n)),e.duration=n=>e.check(na(n))});function d(e){return Ir(ga,e)}const O=h("ZodStringFormat",(e,t)=>{Z.init(e,t),Fn.init(e,t)}),_a=h("ZodEmail",(e,t)=>{Zs.init(e,t),O.init(e,t)}),nn=h("ZodGUID",(e,t)=>{Es.init(e,t),O.init(e,t)}),je=h("ZodUUID",(e,t)=>{Cs.init(e,t),O.init(e,t)}),va=h("ZodURL",(e,t)=>{Os.init(e,t),O.init(e,t)}),ba=h("ZodEmoji",(e,t)=>{Ns.init(e,t),O.init(e,t)}),ya=h("ZodNanoID",(e,t)=>{As.init(e,t),O.init(e,t)}),wa=h("ZodCUID",(e,t)=>{qs.init(e,t),O.init(e,t)}),ka=h("ZodCUID2",(e,t)=>{Ms.init(e,t),O.init(e,t)}),Sa=h("ZodULID",(e,t)=>{js.init(e,t),O.init(e,t)}),$a=h("ZodXID",(e,t)=>{Ds.init(e,t),O.init(e,t)}),za=h("ZodKSUID",(e,t)=>{Ls.init(e,t),O.init(e,t)}),Ta=h("ZodIPv4",(e,t)=>{Vs.init(e,t),O.init(e,t)}),Ra=h("ZodIPv6",(e,t)=>{Bs.init(e,t),O.init(e,t)}),Ia=h("ZodCIDRv4",(e,t)=>{Ws.init(e,t),O.init(e,t)}),Pa=h("ZodCIDRv6",(e,t)=>{Ks.init(e,t),O.init(e,t)}),xa=h("ZodBase64",(e,t)=>{Gs.init(e,t),O.init(e,t)}),Ea=h("ZodBase64URL",(e,t)=>{Ys.init(e,t),O.init(e,t)}),Ca=h("ZodE164",(e,t)=>{Xs.init(e,t),O.init(e,t)}),Za=h("ZodJWT",(e,t)=>{tr.init(e,t),O.init(e,t)}),Hn=h("ZodNumber",(e,t)=>{xn.init(e,t),C.init(e,t),e._zod.processJSONSchema=(o,s,i)=>Ti(e,o,s),e.gt=(o,s)=>e.check(en(o,s)),e.gte=(o,s)=>e.check(ot(o,s)),e.min=(o,s)=>e.check(ot(o,s)),e.lt=(o,s)=>e.check(Xt(o,s)),e.lte=(o,s)=>e.check(nt(o,s)),e.max=(o,s)=>e.check(nt(o,s)),e.int=o=>e.check(on(o)),e.safe=o=>e.check(on(o)),e.positive=o=>e.check(en(0,o)),e.nonnegative=o=>e.check(ot(0,o)),e.negative=o=>e.check(Xt(0,o)),e.nonpositive=o=>e.check(nt(0,o)),e.multipleOf=(o,s)=>e.check(tn(o,s)),e.step=(o,s)=>e.check(tn(o,s)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function w(e){return ei(Hn,e)}const Oa=h("ZodNumberFormat",(e,t)=>{nr.init(e,t),Hn.init(e,t)});function on(e){return ti(Oa,e)}const Na=h("ZodBoolean",(e,t)=>{or.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ri(e,n,o)});function P(e){return ni(Na,e)}const Aa=h("ZodUndefined",(e,t)=>{sr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Pi(e,n)});function it(e){return oi(Aa,e)}const qa=h("ZodNull",(e,t)=>{rr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ii(e,n,o)});function Jn(e){return si(qa,e)}const Ma=h("ZodUnknown",(e,t)=>{ir.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ei()});function I(){return ri(Ma)}const ja=h("ZodNever",(e,t)=>{ar.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>xi(e,n,o)});function Da(e){return ii(ja,e)}const La=h("ZodArray",(e,t)=>{cr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ai(e,n,o,s),e.element=t.element,e.min=(n,o)=>e.check(Ue(n,o)),e.nonempty=n=>e.check(Ue(1,n)),e.max=(n,o)=>e.check(Nn(n,o)),e.length=(n,o)=>e.check(An(n,o)),e.unwrap=()=>e.element});function b(e,t){return vi(La,e,t)}const Vn=h("ZodObject",(e,t)=>{lr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>qi(e,n,o,s),z(e,"shape",()=>t.shape),e.keyof=()=>K(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:I()}),e.loose=()=>e.clone({...e._zod.def,catchall:I()}),e.strict=()=>e.clone({...e._zod.def,catchall:Da()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Io(e,n),e.safeExtend=n=>Po(e,n),e.merge=n=>xo(e,n),e.pick=n=>To(e,n),e.omit=n=>Ro(e,n),e.partial=(...n)=>Eo(Gn,e,n[0]),e.required=(...n)=>Co(Qn,e,n[0])});function p(e,t){const n={type:"object",shape:e??{},...v(t)};return new Vn(n)}function V(e,t){return new Vn({type:"object",shape:e,catchall:I(),...v(t)})}const Bn=h("ZodUnion",(e,t)=>{Zn.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Mi(e,n,o,s),e.options=t.options});function S(e,t){return new Bn({type:"union",options:e,...v(t)})}const Ua=h("ZodDiscriminatedUnion",(e,t)=>{Bn.init(e,t),dr.init(e,t)});function Wn(e,t,n){return new Ua({type:"union",options:t,discriminator:e,...v(n)})}const Fa=h("ZodIntersection",(e,t)=>{pr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>ji(e,n,o,s)});function _t(e,t){return new Fa({type:"intersection",left:e,right:t})}const Ha=h("ZodRecord",(e,t)=>{hr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Di(e,n,o,s),e.keyType=t.keyType,e.valueType=t.valueType});function R(e,t,n){return new Ha({type:"record",keyType:e,valueType:t,...v(n)})}const at=h("ZodEnum",(e,t)=>{mr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(o,s,i)=>Ci(e,o,s),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(o,s)=>{const i={};for(const r of o)if(n.has(r))i[r]=t.entries[r];else throw new Error(`Key ${r} not found in enum`);return new at({...t,checks:[],...v(s),entries:i})},e.exclude=(o,s)=>{const i={...t.entries};for(const r of o)if(n.has(r))delete i[r];else throw new Error(`Key ${r} not found in enum`);return new at({...t,checks:[],...v(s),entries:i})}});function K(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new at({type:"enum",entries:n,...v(t)})}const Ja=h("ZodLiteral",(e,t)=>{fr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Zi(e,n,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function u(e,t){return new Ja({type:"literal",values:Array.isArray(e)?e:[e],...v(t)})}const Va=h("ZodTransform",(e,t)=>{gr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ni(e,n),e._zod.parse=(n,o)=>{if(o.direction==="backward")throw new hn(e.constructor.name);n.addIssue=i=>{if(typeof i=="string")n.issues.push(ze(i,n.value,t));else{const r=i;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=n.value),r.inst??(r.inst=e),n.issues.push(ze(r))}};const s=t.transform(n.value,n);return s instanceof Promise?s.then(i=>(n.value=i,n)):(n.value=s,n)}});function Kn(e){return new Va({type:"transform",transform:e})}const Gn=h("ZodOptional",(e,t)=>{On.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Dn(e,n,o,s),e.unwrap=()=>e._zod.def.innerType});function A(e){return new Gn({type:"optional",innerType:e})}const Ba=h("ZodExactOptional",(e,t)=>{_r.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Dn(e,n,o,s),e.unwrap=()=>e._zod.def.innerType});function Wa(e){return new Ba({type:"optional",innerType:e})}const Ka=h("ZodNullable",(e,t)=>{vr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Li(e,n,o,s),e.unwrap=()=>e._zod.def.innerType});function sn(e){return new Ka({type:"nullable",innerType:e})}const Ga=h("ZodDefault",(e,t)=>{br.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Fi(e,n,o,s),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Qa(e,t){return new Ga({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():_n(t)}})}const Ya=h("ZodPrefault",(e,t)=>{yr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Hi(e,n,o,s),e.unwrap=()=>e._zod.def.innerType});function Xa(e,t){return new Ya({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():_n(t)}})}const Qn=h("ZodNonOptional",(e,t)=>{wr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ui(e,n,o,s),e.unwrap=()=>e._zod.def.innerType});function ec(e,t){return new Qn({type:"nonoptional",innerType:e,...v(t)})}const tc=h("ZodCatch",(e,t)=>{kr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Ji(e,n,o,s),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function nc(e,t){return new tc({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const oc=h("ZodPipe",(e,t)=>{Sr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Vi(e,n,o,s),e.in=t.in,e.out=t.out});function ct(e,t){return new oc({type:"pipe",in:e,out:t})}const sc=h("ZodReadonly",(e,t)=>{$r.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Bi(e,n,o,s),e.unwrap=()=>e._zod.def.innerType});function rc(e){return new sc({type:"readonly",innerType:e})}const Yn=h("ZodCustom",(e,t)=>{zr.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,s)=>Oi(e,n)});function ic(e,t){return bi(Yn,e??(()=>!0),t)}function ac(e,t={}){return yi(Yn,e,t)}function cc(e){return wi(e)}function Xn(e,t){return ct(Kn(e),t)}const ce="io.modelcontextprotocol/related-task",Qe="2.0",L=ic(e=>e!==null&&(typeof e=="object"||typeof e=="function")),eo=S([d(),w().int()]),to=d();V({ttl:S([w(),Jn()]).optional(),pollInterval:w().optional()});const uc=p({ttl:w().optional()}),lc=p({taskId:d()}),vt=V({progressToken:eo.optional(),[ce]:lc.optional()}),G=p({_meta:vt.optional()}),Ie=G.extend({task:uc.optional()}),dc=e=>Ie.safeParse(e).success,U=p({method:d(),params:G.loose().optional()}),X=p({_meta:vt.optional()}),ee=p({method:d(),params:X.loose().optional()}),F=V({_meta:vt.optional()}),Pe=S([d(),w().int()]),no=p({jsonrpc:u(Qe),id:Pe,...U.shape}).strict(),rn=e=>no.safeParse(e).success,oo=p({jsonrpc:u(Qe),...ee.shape}).strict(),pc=e=>oo.safeParse(e).success,bt=p({jsonrpc:u(Qe),id:Pe,result:F}).strict(),De=e=>bt.safeParse(e).success;var T;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(T||(T={}));const yt=p({jsonrpc:u(Qe),id:Pe.optional(),error:p({code:w().int(),message:d(),data:I().optional()})}).strict(),hc=e=>yt.safeParse(e).success,mc=S([no,oo,bt,yt]);S([bt,yt]);const wt=F.strict(),fc=X.extend({requestId:Pe.optional(),reason:d().optional()}),kt=ee.extend({method:u("notifications/cancelled"),params:fc}),gc=p({src:d(),mimeType:d().optional(),sizes:b(d()).optional(),theme:K(["light","dark"]).optional()}),xe=p({icons:b(gc).optional()}),ve=p({name:d(),title:d().optional()}),Ye=ve.extend({...ve.shape,...xe.shape,version:d(),websiteUrl:d().optional(),description:d().optional()}),_c=_t(p({applyDefaults:P().optional()}),R(d(),I())),vc=Xn(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,_t(p({form:_c.optional(),url:L.optional()}),R(d(),I()).optional())),bc=V({list:L.optional(),cancel:L.optional(),requests:V({sampling:V({createMessage:L.optional()}).optional(),elicitation:V({create:L.optional()}).optional()}).optional()}),yc=V({list:L.optional(),cancel:L.optional(),requests:V({tools:V({call:L.optional()}).optional()}).optional()}),wc=p({experimental:R(d(),L).optional(),sampling:p({context:L.optional(),tools:L.optional()}).optional(),elicitation:vc.optional(),roots:p({listChanged:P().optional()}).optional(),tasks:bc.optional()}),kc=G.extend({protocolVersion:d(),capabilities:wc,clientInfo:Ye}),Sc=U.extend({method:u("initialize"),params:kc}),$c=p({experimental:R(d(),L).optional(),logging:L.optional(),completions:L.optional(),prompts:p({listChanged:P().optional()}).optional(),resources:p({subscribe:P().optional(),listChanged:P().optional()}).optional(),tools:p({listChanged:P().optional()}).optional(),tasks:yc.optional()}),zc=F.extend({protocolVersion:d(),capabilities:$c,serverInfo:Ye,instructions:d().optional()}),Tc=ee.extend({method:u("notifications/initialized"),params:X.optional()}),Xe=U.extend({method:u("ping"),params:G.optional()}),Rc=p({progress:w(),total:A(w()),message:A(d())}),Ic=p({...X.shape,...Rc.shape,progressToken:eo}),St=ee.extend({method:u("notifications/progress"),params:Ic}),Pc=G.extend({cursor:to.optional()}),Ee=U.extend({params:Pc.optional()}),Ce=F.extend({nextCursor:to.optional()}),xc=K(["working","input_required","completed","failed","cancelled"]),Ze=p({taskId:d(),status:xc,ttl:S([w(),Jn()]),createdAt:d(),lastUpdatedAt:d(),pollInterval:A(w()),statusMessage:A(d())}),$t=F.extend({task:Ze}),Ec=X.merge(Ze),He=ee.extend({method:u("notifications/tasks/status"),params:Ec}),zt=U.extend({method:u("tasks/get"),params:G.extend({taskId:d()})}),Tt=F.merge(Ze),Rt=U.extend({method:u("tasks/result"),params:G.extend({taskId:d()})});F.loose();const It=Ee.extend({method:u("tasks/list")}),Pt=Ce.extend({tasks:b(Ze)}),xt=U.extend({method:u("tasks/cancel"),params:G.extend({taskId:d()})}),Cc=F.merge(Ze),so=p({uri:d(),mimeType:A(d()),_meta:R(d(),I()).optional()}),ro=so.extend({text:d()}),Et=d().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),io=so.extend({blob:Et}),Oe=K(["user","assistant"]),ye=p({audience:b(Oe).optional(),priority:w().min(0).max(1).optional(),lastModified:Un({offset:!0}).optional()}),ao=p({...ve.shape,...xe.shape,uri:d(),description:A(d()),mimeType:A(d()),annotations:ye.optional(),_meta:A(V({}))}),Zc=p({...ve.shape,...xe.shape,uriTemplate:d(),description:A(d()),mimeType:A(d()),annotations:ye.optional(),_meta:A(V({}))}),Oc=Ee.extend({method:u("resources/list")}),co=Ce.extend({resources:b(ao)}),Nc=Ee.extend({method:u("resources/templates/list")}),Ac=Ce.extend({resourceTemplates:b(Zc)}),Ct=G.extend({uri:d()}),qc=Ct,Mc=U.extend({method:u("resources/read"),params:qc}),uo=F.extend({contents:b(S([ro,io]))}),jc=ee.extend({method:u("notifications/resources/list_changed"),params:X.optional()}),Dc=Ct,Lc=U.extend({method:u("resources/subscribe"),params:Dc}),Uc=Ct,Fc=U.extend({method:u("resources/unsubscribe"),params:Uc}),Hc=X.extend({uri:d()}),Jc=ee.extend({method:u("notifications/resources/updated"),params:Hc}),Vc=p({name:d(),description:A(d()),required:A(P())}),Bc=p({...ve.shape,...xe.shape,description:A(d()),arguments:A(b(Vc)),_meta:A(V({}))}),Wc=Ee.extend({method:u("prompts/list")}),Kc=Ce.extend({prompts:b(Bc)}),Gc=G.extend({name:d(),arguments:R(d(),d()).optional()}),Qc=U.extend({method:u("prompts/get"),params:Gc}),Zt=p({type:u("text"),text:d(),annotations:ye.optional(),_meta:R(d(),I()).optional()}),Ot=p({type:u("image"),data:Et,mimeType:d(),annotations:ye.optional(),_meta:R(d(),I()).optional()}),Nt=p({type:u("audio"),data:Et,mimeType:d(),annotations:ye.optional(),_meta:R(d(),I()).optional()}),Yc=p({type:u("tool_use"),name:d(),id:d(),input:R(d(),I()),_meta:R(d(),I()).optional()}),lo=p({type:u("resource"),resource:S([ro,io]),annotations:ye.optional(),_meta:R(d(),I()).optional()}),po=ao.extend({type:u("resource_link")}),Ne=S([Zt,Ot,Nt,po,lo]),Xc=p({role:Oe,content:Ne}),eu=F.extend({description:d().optional(),messages:b(Xc)}),tu=ee.extend({method:u("notifications/prompts/list_changed"),params:X.optional()}),nu=p({title:d().optional(),readOnlyHint:P().optional(),destructiveHint:P().optional(),idempotentHint:P().optional(),openWorldHint:P().optional()}),ou=p({taskSupport:K(["required","optional","forbidden"]).optional()}),At=p({...ve.shape,...xe.shape,description:d().optional(),inputSchema:p({type:u("object"),properties:R(d(),L).optional(),required:b(d()).optional()}).catchall(I()),outputSchema:p({type:u("object"),properties:R(d(),L).optional(),required:b(d()).optional()}).catchall(I()).optional(),annotations:nu.optional(),execution:ou.optional(),_meta:R(d(),I()).optional()}),ho=Ee.extend({method:u("tools/list")}),su=Ce.extend({tools:b(At)}),et=F.extend({content:b(Ne).default([]),structuredContent:R(d(),I()).optional(),isError:P().optional()});et.or(F.extend({toolResult:I()}));const ru=Ie.extend({name:d(),arguments:R(d(),I()).optional()}),mo=U.extend({method:u("tools/call"),params:ru}),iu=ee.extend({method:u("notifications/tools/list_changed"),params:X.optional()});p({autoRefresh:P().default(!0),debounceMs:w().int().nonnegative().default(300)});const fo=K(["debug","info","notice","warning","error","critical","alert","emergency"]),au=G.extend({level:fo}),cu=U.extend({method:u("logging/setLevel"),params:au}),uu=X.extend({level:fo,logger:d().optional(),data:I()}),lu=ee.extend({method:u("notifications/message"),params:uu}),du=p({name:d().optional()}),pu=p({hints:b(du).optional(),costPriority:w().min(0).max(1).optional(),speedPriority:w().min(0).max(1).optional(),intelligencePriority:w().min(0).max(1).optional()}),hu=p({mode:K(["auto","required","none"]).optional()}),mu=p({type:u("tool_result"),toolUseId:d().describe("The unique identifier for the corresponding tool call."),content:b(Ne).default([]),structuredContent:p({}).loose().optional(),isError:P().optional(),_meta:R(d(),I()).optional()}),fu=Wn("type",[Zt,Ot,Nt]),Je=Wn("type",[Zt,Ot,Nt,Yc,mu]),gu=p({role:Oe,content:S([Je,b(Je)]),_meta:R(d(),I()).optional()}),_u=Ie.extend({messages:b(gu),modelPreferences:pu.optional(),systemPrompt:d().optional(),includeContext:K(["none","thisServer","allServers"]).optional(),temperature:w().optional(),maxTokens:w().int(),stopSequences:b(d()).optional(),metadata:L.optional(),tools:b(At).optional(),toolChoice:hu.optional()}),vu=U.extend({method:u("sampling/createMessage"),params:_u}),bu=F.extend({model:d(),stopReason:A(K(["endTurn","stopSequence","maxTokens"]).or(d())),role:Oe,content:fu}),yu=F.extend({model:d(),stopReason:A(K(["endTurn","stopSequence","maxTokens","toolUse"]).or(d())),role:Oe,content:S([Je,b(Je)])}),wu=p({type:u("boolean"),title:d().optional(),description:d().optional(),default:P().optional()}),ku=p({type:u("string"),title:d().optional(),description:d().optional(),minLength:w().optional(),maxLength:w().optional(),format:K(["email","uri","date","date-time"]).optional(),default:d().optional()}),Su=p({type:K(["number","integer"]),title:d().optional(),description:d().optional(),minimum:w().optional(),maximum:w().optional(),default:w().optional()}),$u=p({type:u("string"),title:d().optional(),description:d().optional(),enum:b(d()),default:d().optional()}),zu=p({type:u("string"),title:d().optional(),description:d().optional(),oneOf:b(p({const:d(),title:d()})),default:d().optional()}),Tu=p({type:u("string"),title:d().optional(),description:d().optional(),enum:b(d()),enumNames:b(d()).optional(),default:d().optional()}),Ru=S([$u,zu]),Iu=p({type:u("array"),title:d().optional(),description:d().optional(),minItems:w().optional(),maxItems:w().optional(),items:p({type:u("string"),enum:b(d())}),default:b(d()).optional()}),Pu=p({type:u("array"),title:d().optional(),description:d().optional(),minItems:w().optional(),maxItems:w().optional(),items:p({anyOf:b(p({const:d(),title:d()}))}),default:b(d()).optional()}),xu=S([Iu,Pu]),Eu=S([Tu,Ru,xu]),Cu=S([Eu,wu,ku,Su]),Zu=Ie.extend({mode:u("form").optional(),message:d(),requestedSchema:p({type:u("object"),properties:R(d(),Cu),required:b(d()).optional()})}),Ou=Ie.extend({mode:u("url"),message:d(),elicitationId:d(),url:d().url()}),Nu=S([Zu,Ou]),Au=U.extend({method:u("elicitation/create"),params:Nu}),qu=X.extend({elicitationId:d()}),Mu=ee.extend({method:u("notifications/elicitation/complete"),params:qu}),ju=F.extend({action:K(["accept","decline","cancel"]),content:Xn(e=>e===null?void 0:e,R(d(),S([d(),w(),P(),b(d())])).optional())}),Du=p({type:u("ref/resource"),uri:d()}),Lu=p({type:u("ref/prompt"),name:d()}),Uu=G.extend({ref:S([Lu,Du]),argument:p({name:d(),value:d()}),context:p({arguments:R(d(),d()).optional()}).optional()}),Fu=U.extend({method:u("completion/complete"),params:Uu}),Hu=F.extend({completion:V({values:b(d()).max(100),total:A(w().int()),hasMore:A(P())})}),Ju=p({uri:d().startsWith("file://"),name:d().optional(),_meta:R(d(),I()).optional()}),Vu=U.extend({method:u("roots/list"),params:G.optional()}),Bu=F.extend({roots:b(Ju)}),Wu=ee.extend({method:u("notifications/roots/list_changed"),params:X.optional()});S([Xe,Sc,Fu,cu,Qc,Wc,Oc,Nc,Mc,Lc,Fc,mo,ho,zt,Rt,It,xt]);S([kt,St,Tc,Wu,He]);S([wt,bu,yu,ju,Bu,Tt,Pt,$t]);S([Xe,vu,Au,Vu,zt,Rt,It,xt]);S([kt,St,lu,Jc,jc,iu,tu,He,Mu]);S([wt,zc,Hu,eu,Kc,co,Ac,uo,et,su,Tt,Pt,$t]);class $ extends Error{constructor(t,n,o){super(`MCP error ${t}: ${n}`),this.code=t,this.data=o,this.name="McpError"}static fromError(t,n,o){if(t===T.UrlElicitationRequired&&o){const s=o;if(s.elicitations)return new Ku(s.elicitations,n)}return new $(t,n,o)}}class Ku extends ${constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(T.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}function ae(e){return e==="completed"||e==="failed"||e==="cancelled"}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function an(e){const n=Wi(e)?.method;if(!n)throw new Error("Schema is missing a method literal");const o=Ki(n);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function cn(e,t){const n=Ln(e,t);if(!n.success)throw n.error;return n.data}const Gu=6e4;class Qu{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(kt,n=>{this._oncancel(n)}),this.setNotificationHandler(St,n=>{this._onprogress(n)}),this.setRequestHandler(Xe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(zt,async(n,o)=>{const s=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!s)throw new $(T.InvalidParams,"Failed to retrieve task: Task not found");return{...s}}),this.setRequestHandler(Rt,async(n,o)=>{const s=async()=>{const i=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,o.sessionId);){if(a.type==="response"||a.type==="error"){const c=a.message,l=c.id,m=this._requestResolvers.get(l);if(m)if(this._requestResolvers.delete(l),a.type==="response")m(c);else{const f=c,g=new $(f.error.code,f.error.message,f.error.data);m(g)}else{const f=a.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${l}`))}continue}await this._transport?.send(a.message,{relatedRequestId:o.requestId})}}const r=await this._taskStore.getTask(i,o.sessionId);if(!r)throw new $(T.InvalidParams,`Task not found: ${i}`);if(!ae(r.status))return await this._waitForTaskUpdate(i,o.signal),await s();if(ae(r.status)){const a=await this._taskStore.getTaskResult(i,o.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[ce]:{taskId:i}}}}return await s()};return await s()}),this.setRequestHandler(It,async(n,o)=>{try{const{tasks:s,nextCursor:i}=await this._taskStore.listTasks(n.params?.cursor,o.sessionId);return{tasks:s,nextCursor:i,_meta:{}}}catch(s){throw new $(T.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(xt,async(n,o)=>{try{const s=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!s)throw new $(T.InvalidParams,`Task not found: ${n.params.taskId}`);if(ae(s.status))throw new $(T.InvalidParams,`Cannot cancel task in terminal status: ${s.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(n.params.taskId);const i=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!i)throw new $(T.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...i}}catch(s){throw s instanceof $?s:new $(T.InvalidRequest,`Failed to cancel task: ${s instanceof Error?s.message:String(s)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,o,s,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(s,n),startTime:Date.now(),timeout:n,maxTotalTimeout:o,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(t){const n=this._timeoutInfo.get(t);if(!n)return!1;const o=Date.now()-n.startTime;if(n.maxTotalTimeout&&o>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),$.fromError(T.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:o});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){const n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;const n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};const o=this.transport?.onerror;this._transport.onerror=i=>{o?.(i),this._onerror(i)};const s=this._transport?.onmessage;this._transport.onmessage=(i,r)=>{s?.(i,r),De(i)||hc(i)?this._onresponse(i):rn(i)?this._onrequest(i,r):pc(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){const t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(const o of this._requestHandlerAbortControllers.values())o.abort();this._requestHandlerAbortControllers.clear();const n=$.fromError(T.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(const o of t.values())o(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){const n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(t,n){const o=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,s=this._transport,i=t.params?._meta?.[ce]?.taskId;if(o===void 0){const m={jsonrpc:"2.0",id:t.id,error:{code:T.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:m,timestamp:Date.now()},s?.sessionId).catch(f=>this._onerror(new Error(`Failed to enqueue error response: ${f}`))):s?.send(m).catch(f=>this._onerror(new Error(`Failed to send an error response: ${f}`)));return}const r=new AbortController;this._requestHandlerAbortControllers.set(t.id,r);const a=dc(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,s?.sessionId):void 0,l={signal:r.signal,sessionId:s?.sessionId,_meta:t.params?._meta,sendNotification:async m=>{if(r.signal.aborted)return;const f={relatedRequestId:t.id};i&&(f.relatedTask={taskId:i}),await this.notification(m,f)},sendRequest:async(m,f,g)=>{if(r.signal.aborted)throw new $(T.ConnectionClosed,"Request was cancelled");const _={...g,relatedRequestId:t.id};i&&!_.relatedTask&&(_.relatedTask={taskId:i});const x=_.relatedTask?.taskId??i;return x&&c&&await c.updateTaskStatus(x,"input_required"),await this.request(m,f,_)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>o(t,l)).then(async m=>{if(r.signal.aborted)return;const f={result:m,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:f,timestamp:Date.now()},s?.sessionId):await s?.send(f)},async m=>{if(r.signal.aborted)return;const f={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(m.code)?m.code:T.InternalError,message:m.message??"Internal error",...m.data!==void 0&&{data:m.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:f,timestamp:Date.now()},s?.sessionId):await s?.send(f)}).catch(m=>this._onerror(new Error(`Failed to send response: ${m}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){const{progressToken:n,...o}=t.params,s=Number(n),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}const r=this._responseHandlers.get(s),a=this._timeoutInfo.get(s);if(a&&r&&a.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(c){this._responseHandlers.delete(s),this._progressHandlers.delete(s),this._cleanupTimeout(s),r(c);return}i(o)}_onresponse(t){const n=Number(t.id),o=this._requestResolvers.get(n);if(o){if(this._requestResolvers.delete(n),De(t))o(t);else{const r=new $(t.error.code,t.error.message,t.error.data);o(r)}return}const s=this._responseHandlers.get(n);if(s===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let i=!1;if(De(t)&&t.result&&typeof t.result=="object"){const r=t.result;if(r.task&&typeof r.task=="object"){const a=r.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,n))}}if(i||this._progressHandlers.delete(n),De(t))s(t);else{const r=$.fromError(t.error.code,t.error.message,t.error.data);s(r)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,o){const{task:s}=o??{};if(!s){try{yield{type:"result",result:await this.request(t,n,o)}}catch(r){yield{type:"error",error:r instanceof $?r:new $(T.InternalError,String(r))}}return}let i;try{const r=await this.request(t,$t,o);if(r.task)i=r.task.taskId,yield{type:"taskCreated",task:r.task};else throw new $(T.InternalError,"Task creation did not return a task");for(;;){const a=await this.getTask({taskId:i},o);if(yield{type:"taskStatus",task:a},ae(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)}:a.status==="failed"?yield{type:"error",error:new $(T.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new $(T.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)};return}const c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),o?.signal?.throwIfAborted()}}catch(r){yield{type:"error",error:r instanceof $?r:new $(T.InternalError,String(r))}}}request(t,n,o){const{relatedRequestId:s,resumptionToken:i,onresumptiontoken:r,task:a,relatedTask:c}=o??{};return new Promise((l,m)=>{const f=D=>{m(D)};if(!this._transport){f(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(D){f(D);return}o?.signal?.throwIfAborted();const g=this._requestMessageId++,_={...t,jsonrpc:"2.0",id:g};o?.onprogress&&(this._progressHandlers.set(g,o.onprogress),_.params={...t.params,_meta:{...t.params?._meta||{},progressToken:g}}),a&&(_.params={..._.params,task:a}),c&&(_.params={..._.params,_meta:{..._.params?._meta||{},[ce]:c}});const x=D=>{this._responseHandlers.delete(g),this._progressHandlers.delete(g),this._cleanupTimeout(g),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:g,reason:String(D)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:r}).catch(j=>this._onerror(new Error(`Failed to send cancellation: ${j}`)));const N=D instanceof $?D:new $(T.RequestTimeout,String(D));m(N)};this._responseHandlers.set(g,D=>{if(!o?.signal?.aborted){if(D instanceof Error)return m(D);try{const N=Ln(n,D.result);N.success?l(N.data):m(N.error)}catch(N){m(N)}}}),o?.signal?.addEventListener("abort",()=>{x(o?.signal?.reason)});const q=o?.timeout??Gu,le=()=>x($.fromError(T.RequestTimeout,"Request timed out",{timeout:q}));this._setupTimeout(g,q,o?.maxTotalTimeout,le,o?.resetTimeoutOnProgress??!1);const Ae=c?.taskId;if(Ae){const D=N=>{const j=this._responseHandlers.get(g);j?j(N):this._onerror(new Error(`Response handler missing for side-channeled request ${g}`))};this._requestResolvers.set(g,D),this._enqueueTaskMessage(Ae,{type:"request",message:_,timestamp:Date.now()}).catch(N=>{this._cleanupTimeout(g),m(N)})}else this._transport.send(_,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:r}).catch(D=>{this._cleanupTimeout(g),m(D)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},Tt,n)}async getTaskResult(t,n,o){return this.request({method:"tasks/result",params:t},n,o)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},Pt,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Cc,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);const o=n?.relatedTask?.taskId;if(o){const a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[ce]:n.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[ce]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let r={...t,jsonrpc:"2.0"};n?.relatedTask&&(r={...r,params:{...r.params,_meta:{...r.params?._meta||{},[ce]:n.relatedTask}}}),await this._transport.send(r,n)}setRequestHandler(t,n){const o=an(t);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(s,i)=>{const r=cn(t,s);return Promise.resolve(n(r,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){const o=an(t);this._notificationHandlers.set(o,s=>{const i=cn(t,s);return Promise.resolve(n(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){const n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,o){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");const s=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,o,s)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){const o=await this._taskMessageQueue.dequeueAll(t,n);for(const s of o)if(s.type==="request"&&rn(s.message)){const i=s.message.id,r=this._requestResolvers.get(i);r?(r(new $(T.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let o=this._options?.defaultTaskPollInterval??1e3;try{const s=await this._taskStore?.getTask(t);s?.pollInterval&&(o=s.pollInterval)}catch{}return new Promise((s,i)=>{if(n.aborted){i(new $(T.InvalidRequest,"Request cancelled"));return}const r=setTimeout(s,o);n.addEventListener("abort",()=>{clearTimeout(r),i(new $(T.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){const o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async s=>{if(!t)throw new Error("No request provided");return await o.createTask(s,t.id,{method:t.method,params:t.params},n)},getTask:async s=>{const i=await o.getTask(s,n);if(!i)throw new $(T.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(s,i,r)=>{await o.storeTaskResult(s,i,r,n);const a=await o.getTask(s,n);if(a){const c=He.parse({method:"notifications/tasks/status",params:a});await this.notification(c),ae(a.status)&&this._cleanupTaskProgressHandler(s)}},getTaskResult:s=>o.getTaskResult(s,n),updateTaskStatus:async(s,i,r)=>{const a=await o.getTask(s,n);if(!a)throw new $(T.InvalidParams,`Task "${s}" not found - it may have been cleaned up`);if(ae(a.status))throw new $(T.InvalidParams,`Cannot update task "${s}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(s,i,r,n);const c=await o.getTask(s,n);if(c){const l=He.parse({method:"notifications/tasks/status",params:c});await this.notification(l),ae(c.status)&&this._cleanupTaskProgressHandler(s)}},listTasks:s=>o.listTasks(s,n)}}}var Yu="2026-01-26",Xu="ui/notifications/tool-input-partial";class el{eventTarget;eventSource;messageListener;constructor(t=window.parent,n){this.eventTarget=t,this.eventSource=n,this.messageListener=o=>{if(n&&o.source!==this.eventSource){console.debug("Ignoring message from unknown source",o);return}let s=mc.safeParse(o.data);s.success?(console.debug("Parsed message",s.data),this.onmessage?.(s.data)):o.data?.jsonrpc!=="2.0"?console.debug("Ignoring non-JSON-RPC message",s.error.message,o):(console.error("Failed to parse message",s.error.message,o),this.onerror?.(Error("Invalid JSON-RPC message received: "+s.error.message)))}}async start(){window.addEventListener("message",this.messageListener)}async send(t,n){t.method!==Xu&&console.debug("Sending message",t),this.eventTarget.postMessage(t,"*")}async close(){window.removeEventListener("message",this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion}var tl=S([u("light"),u("dark")]).describe("Color theme preference for the host environment."),Te=S([u("inline"),u("fullscreen"),u("pip")]).describe("Display mode for UI presentation."),nl=S([u("--color-background-primary"),u("--color-background-secondary"),u("--color-background-tertiary"),u("--color-background-inverse"),u("--color-background-ghost"),u("--color-background-info"),u("--color-background-danger"),u("--color-background-success"),u("--color-background-warning"),u("--color-background-disabled"),u("--color-text-primary"),u("--color-text-secondary"),u("--color-text-tertiary"),u("--color-text-inverse"),u("--color-text-ghost"),u("--color-text-info"),u("--color-text-danger"),u("--color-text-success"),u("--color-text-warning"),u("--color-text-disabled"),u("--color-border-primary"),u("--color-border-secondary"),u("--color-border-tertiary"),u("--color-border-inverse"),u("--color-border-ghost"),u("--color-border-info"),u("--color-border-danger"),u("--color-border-success"),u("--color-border-warning"),u("--color-border-disabled"),u("--color-ring-primary"),u("--color-ring-secondary"),u("--color-ring-inverse"),u("--color-ring-info"),u("--color-ring-danger"),u("--color-ring-success"),u("--color-ring-warning"),u("--font-sans"),u("--font-mono"),u("--font-weight-normal"),u("--font-weight-medium"),u("--font-weight-semibold"),u("--font-weight-bold"),u("--font-text-xs-size"),u("--font-text-sm-size"),u("--font-text-md-size"),u("--font-text-lg-size"),u("--font-heading-xs-size"),u("--font-heading-sm-size"),u("--font-heading-md-size"),u("--font-heading-lg-size"),u("--font-heading-xl-size"),u("--font-heading-2xl-size"),u("--font-heading-3xl-size"),u("--font-text-xs-line-height"),u("--font-text-sm-line-height"),u("--font-text-md-line-height"),u("--font-text-lg-line-height"),u("--font-heading-xs-line-height"),u("--font-heading-sm-line-height"),u("--font-heading-md-line-height"),u("--font-heading-lg-line-height"),u("--font-heading-xl-line-height"),u("--font-heading-2xl-line-height"),u("--font-heading-3xl-line-height"),u("--border-radius-xs"),u("--border-radius-sm"),u("--border-radius-md"),u("--border-radius-lg"),u("--border-radius-xl"),u("--border-radius-full"),u("--border-width-regular"),u("--shadow-hairline"),u("--shadow-sm"),u("--shadow-md"),u("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),ol=R(nl.describe(`Style variables for theming MCP apps.
46
46
 
47
47
  Individual style keys are optional - hosts may provide any subset of these values.
48
48
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
49
49
 
50
50
  Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
51
- for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),k([d(),rt()]).describe(`Style variables for theming MCP apps.
51
+ for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),S([d(),it()]).describe(`Style variables for theming MCP apps.
52
52
 
53
53
  Individual style keys are optional - hosts may provide any subset of these values.
54
54
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
@@ -60,10 +60,10 @@ Individual style keys are optional - hosts may provide any subset of these value
60
60
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
61
61
 
62
62
  Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
63
- for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);p({method:u("ui/open-link"),params:p({url:d().describe("URL to open in the host's browser")})});var rl=p({isError:P().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough(),sl=p({isError:P().optional().describe("True if the download failed (e.g., user cancelled or host denied).")}).passthrough(),il=p({isError:P().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();p({method:u("ui/notifications/sandbox-proxy-ready"),params:p({})});var At=p({connectDomains:b(d()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
63
+ for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);p({method:u("ui/open-link"),params:p({url:d().describe("URL to open in the host's browser")})});var sl=p({isError:P().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough(),rl=p({isError:P().optional().describe("True if the download failed (e.g., user cancelled or host denied).")}).passthrough(),il=p({isError:P().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();p({method:u("ui/notifications/sandbox-proxy-ready"),params:p({})});var qt=p({connectDomains:b(d()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
64
64
 
65
65
  - Maps to CSP \`connect-src\` directive
66
- - Empty or omitted → no network connections (secure default)`),resourceDomains:b(d()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:b(d()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:b(d()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),qt=p({camera:p({}).optional().describe("Request camera access.\n\nMaps to Permission Policy `camera` feature."),microphone:p({}).optional().describe("Request microphone access.\n\nMaps to Permission Policy `microphone` feature."),geolocation:p({}).optional().describe("Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature."),clipboardWrite:p({}).optional().describe("Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.")});p({method:u("ui/notifications/size-changed"),params:p({width:y().optional().describe("New width in pixels."),height:y().optional().describe("New height in pixels.")})});var al=p({method:u("ui/notifications/tool-input"),params:p({arguments:R(d(),I().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})}),cl=p({method:u("ui/notifications/tool-input-partial"),params:p({arguments:R(d(),I().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})}),ul=p({method:u("ui/notifications/tool-cancelled"),params:p({reason:d().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})}),ll=p({fonts:d().optional()}),dl=p({variables:ol.optional().describe("CSS variables for theming the app."),css:ll.optional().describe("CSS blocks that apps can inject.")}),pl=p({method:u("ui/resource-teardown"),params:p({})});R(d(),I());var cn=p({text:p({}).optional().describe("Host supports text content blocks."),image:p({}).optional().describe("Host supports image content blocks."),audio:p({}).optional().describe("Host supports audio content blocks."),resource:p({}).optional().describe("Host supports resource content blocks."),resourceLink:p({}).optional().describe("Host supports resource link content blocks."),structuredContent:p({}).optional().describe("Host supports structured content.")}),hl=p({experimental:p({}).optional().describe("Experimental features (structure TBD)."),openLinks:p({}).optional().describe("Host supports opening external URLs."),downloadFile:p({}).optional().describe("Host supports file downloads via ui/download-file."),serverTools:p({listChanged:P().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:p({listChanged:P().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:p({}).optional().describe("Host accepts log messages."),sandbox:p({permissions:qt.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:At.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:cn.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:cn.optional().describe("Host supports receiving content messages (ui/message) from the view.")}),ml=p({experimental:p({}).optional().describe("Experimental features (structure TBD)."),tools:p({listChanged:P().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:b($e).optional().describe("Display modes the app supports.")});p({method:u("ui/notifications/initialized"),params:p({}).optional()});p({csp:At.optional().describe("Content Security Policy configuration for UI resources."),permissions:qt.optional().describe("Sandbox permissions requested by the UI resource."),domain:d().optional().describe(`Dedicated origin for view sandbox.
66
+ - Empty or omitted → no network connections (secure default)`),resourceDomains:b(d()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:b(d()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:b(d()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),Mt=p({camera:p({}).optional().describe("Request camera access.\n\nMaps to Permission Policy `camera` feature."),microphone:p({}).optional().describe("Request microphone access.\n\nMaps to Permission Policy `microphone` feature."),geolocation:p({}).optional().describe("Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature."),clipboardWrite:p({}).optional().describe("Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.")});p({method:u("ui/notifications/size-changed"),params:p({width:w().optional().describe("New width in pixels."),height:w().optional().describe("New height in pixels.")})});var al=p({method:u("ui/notifications/tool-input"),params:p({arguments:R(d(),I().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})}),cl=p({method:u("ui/notifications/tool-input-partial"),params:p({arguments:R(d(),I().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})}),ul=p({method:u("ui/notifications/tool-cancelled"),params:p({reason:d().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})}),ll=p({fonts:d().optional()}),dl=p({variables:ol.optional().describe("CSS variables for theming the app."),css:ll.optional().describe("CSS blocks that apps can inject.")}),pl=p({method:u("ui/resource-teardown"),params:p({})});R(d(),I());var un=p({text:p({}).optional().describe("Host supports text content blocks."),image:p({}).optional().describe("Host supports image content blocks."),audio:p({}).optional().describe("Host supports audio content blocks."),resource:p({}).optional().describe("Host supports resource content blocks."),resourceLink:p({}).optional().describe("Host supports resource link content blocks."),structuredContent:p({}).optional().describe("Host supports structured content.")}),hl=p({experimental:p({}).optional().describe("Experimental features (structure TBD)."),openLinks:p({}).optional().describe("Host supports opening external URLs."),downloadFile:p({}).optional().describe("Host supports file downloads via ui/download-file."),serverTools:p({listChanged:P().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:p({listChanged:P().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:p({}).optional().describe("Host accepts log messages."),sandbox:p({permissions:Mt.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:qt.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:un.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:un.optional().describe("Host supports receiving content messages (ui/message) from the view.")}),ml=p({experimental:p({}).optional().describe("Experimental features (structure TBD)."),tools:p({listChanged:P().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:b(Te).optional().describe("Display modes the app supports.")});p({method:u("ui/notifications/initialized"),params:p({}).optional()});p({csp:qt.optional().describe("Content Security Policy configuration for UI resources."),permissions:Mt.optional().describe("Sandbox permissions requested by the UI resource."),domain:d().optional().describe(`Dedicated origin for view sandbox.
67
67
 
68
68
  Useful when views need stable, dedicated origins for OAuth callbacks, CORS policies, or API key allowlists.
69
69
 
@@ -77,96 +77,111 @@ Boolean requesting whether a visible border and background is provided by the ho
77
77
 
78
78
  - \`true\`: request visible border + background
79
79
  - \`false\`: request no visible border + background
80
- - omitted: host decides border`)});p({method:u("ui/request-display-mode"),params:p({mode:$e.describe("The display mode being requested.")})});var fl=p({mode:$e.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),gl=k([u("model"),u("app")]).describe("Tool visibility scope - who can access the tool.");p({resourceUri:d().optional(),visibility:b(gl).optional().describe(`Who can access this tool. Default: ["model", "app"]
80
+ - omitted: host decides border`)});p({method:u("ui/request-display-mode"),params:p({mode:Te.describe("The display mode being requested.")})});var fl=p({mode:Te.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),gl=S([u("model"),u("app")]).describe("Tool visibility scope - who can access the tool.");p({resourceUri:d().optional(),visibility:b(gl).optional().describe(`Who can access this tool. Default: ["model", "app"]
81
81
  - "model": Tool visible to and callable by the agent
82
- - "app": Tool callable by the app from this server only`)});p({mimeTypes:b(d()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});p({method:u("ui/download-file"),params:p({contents:b(k([uo,lo])).describe("Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.")})});p({method:u("ui/message"),params:p({role:u("user").describe('Message role, currently only "user" is supported.'),content:b(Ce).describe("Message content blocks (text, image, etc.).")})});p({method:u("ui/notifications/sandbox-resource-ready"),params:p({html:d().describe("HTML content to load into the inner iframe."),sandbox:d().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:At.optional().describe("CSP configuration from resource metadata."),permissions:qt.optional().describe("Sandbox permissions from resource metadata.")})});var _l=p({method:u("ui/notifications/tool-result"),params:Qe.describe("Standard MCP tool execution result.")}),fo=p({toolInfo:p({id:Te.optional().describe("JSON-RPC id of the tools/call request."),tool:Nt.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:tl.optional().describe("Current color theme preference."),styles:dl.optional().describe("Style configuration for theming the app."),displayMode:$e.optional().describe("How the UI is currently displayed."),availableDisplayModes:b($e).optional().describe("Display modes the host supports."),containerDimensions:k([p({height:y().describe("Fixed container height in pixels.")}),p({maxHeight:k([y(),rt()]).optional().describe("Maximum container height in pixels.")})]).and(k([p({width:y().describe("Fixed container width in pixels.")}),p({maxWidth:k([y(),rt()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
83
- container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:d().optional().describe("User's language and region preference in BCP 47 format."),timeZone:d().optional().describe("User's timezone in IANA format."),userAgent:d().optional().describe("Host application identifier."),platform:k([u("web"),u("desktop"),u("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:p({touch:P().optional().describe("Whether the device supports touch input."),hover:P().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:p({top:y().describe("Top safe area inset in pixels."),right:y().describe("Right safe area inset in pixels."),bottom:y().describe("Bottom safe area inset in pixels."),left:y().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),vl=p({method:u("ui/notifications/host-context-changed"),params:fo.describe("Partial context update containing only changed fields.")});p({method:u("ui/update-model-context"),params:p({content:b(Ce).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:R(d(),I().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});p({method:u("ui/initialize"),params:p({appInfo:Ke.describe("App identification (name and version)."),appCapabilities:ml.describe("Features and capabilities this app provides."),protocolVersion:d().describe("Protocol version this app supports.")})});var bl=p({protocolVersion:d().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:Ke.describe("Host application identification and version."),hostCapabilities:hl.describe("Features and capabilities provided by the host."),hostContext:fo.describe("Rich context about the host environment.")}).passthrough();function yl(e){let t=document.documentElement;t.setAttribute("data-theme",e),t.style.colorScheme=e}function wl(e,t=document.documentElement){for(let[n,o]of Object.entries(e))o!==void 0&&t.style.setProperty(n,o)}class kl extends Qu{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;constructor(t,n={},o={autoResize:!0}){super(o),this._appInfo=t,this._capabilities=n,this.options=o,this.setRequestHandler(Ge,r=>(console.log("Received ping:",r.params),{})),this.onhostcontextchanged=()=>{}}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}set ontoolinput(t){this.setNotificationHandler(al,n=>t(n.params))}set ontoolinputpartial(t){this.setNotificationHandler(cl,n=>t(n.params))}set ontoolresult(t){this.setNotificationHandler(_l,n=>t(n.params))}set ontoolcancelled(t){this.setNotificationHandler(ul,n=>t(n.params))}set onhostcontextchanged(t){this.setNotificationHandler(vl,n=>{this._hostContext={...this._hostContext,...n.params},t(n.params)})}set onteardown(t){this.setRequestHandler(pl,(n,o)=>t(n.params,o))}set oncalltool(t){this.setRequestHandler(ho,(n,o)=>t(n.params,o))}set onlisttools(t){this.setRequestHandler(po,(n,o)=>t(n.params,o))}assertCapabilityForMethod(t){}assertRequestHandlerCapability(t){switch(t){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${t})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${t} registered`)}}assertNotificationCapability(t){}assertTaskCapability(t){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(t){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(t,n){if(typeof t=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${t}"). Did you mean: callServerTool({ name: "${t}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:t},Qe,n)}async readServerResource(t,n){return await this.request({method:"resources/read",params:t},co,n)}async listServerResources(t,n){return await this.request({method:"resources/list",params:t},ao,n)}sendMessage(t,n){return this.request({method:"ui/message",params:t},il,n)}sendLog(t){return this.notification({method:"notifications/message",params:t})}updateModelContext(t,n){return this.request({method:"ui/update-model-context",params:t},yt,n)}openLink(t,n){return this.request({method:"ui/open-link",params:t},rl,n)}sendOpenLink=this.openLink;downloadFile(t,n){return this.request({method:"ui/download-file",params:t},sl,n)}requestDisplayMode(t,n){return this.request({method:"ui/request-display-mode",params:t},fl,n)}sendSizeChanged(t){return this.notification({method:"ui/notifications/size-changed",params:t})}setupSizeChangedNotifications(){let t=!1,n=0,o=0,r=()=>{t||(t=!0,requestAnimationFrame(()=>{t=!1;let s=document.documentElement,a=s.style.width,c=s.style.height;s.style.width="fit-content",s.style.height="max-content";let l=s.getBoundingClientRect();s.style.width=a,s.style.height=c;let m=window.innerWidth-s.clientWidth,f=Math.ceil(l.width+m),g=Math.ceil(l.height);(f!==n||g!==o)&&(n=f,o=g,this.sendSizeChanged({width:f,height:g}))}))};r();let i=new ResizeObserver(r);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(t=new el(window.parent,window.parent),n){if(this.transport)throw Error("App is already connected. Call close() before connecting again.");await super.connect(t);try{let o=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:Yu}},bl,n);if(o===void 0)throw Error(`Server sent invalid initialize result: ${o}`);this._hostCapabilities=o.hostCapabilities,this._hostInfo=o.hostInfo,this._hostContext=o.hostContext,await this.notification({method:"ui/notifications/initialized"}),this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(o){throw this.close(),o}}}const $=e=>document.getElementById(e);function w(e){const t=document.createElement("span");return t.textContent=e,t.innerHTML}function Mt(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}let at=null,ct=null,Fe="all",ne=null;const Sl=["loading","error","dashboard","detail","person","report"];function te(e){for(const t of Sl)$(t).style.display=t===e?"":"none";requestAnimationFrame(()=>{G.sendSizeChanged({height:document.documentElement.scrollHeight})})}function Ye(e){$("error-message").textContent=e,te("error")}function $l(e){const t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};const n=t[1],o=t[2],r={};let i=null,s=null;for(const a of n.split(`
84
- `)){const c=a.match(/^\s{2,4}- (\w+):\s*(.*)$/);if(c&&i!==null){s={[c[1]]:c[2].trim()},i.push(s);continue}const l=a.match(/^\s{4,}(\w+):\s*(.*)$/);if(l&&s!==null){s[l[1]]=l[2].trim();continue}const m=a.match(/^(\w[\w_]*):\s*\[(.+)\]$/);if(m){i=null,s=null,r[m[1]]=m[2].split(",").map(_=>_.trim().replace(/^["']|["']$/g,""));continue}const f=a.match(/^\s{2,4}-\s+(.+)$/);if(f&&i!==null){s=null,i.push(f[1].trim());continue}const g=a.match(/^(\w[\w_]*):\s*(.*)$/);if(g){s=null;const _=g[1],x=g[2].trim();x===""||x==="[]"?(i=[],r[_]=i):(i=null,r[_]=x.replace(/^["']|["']$/g,""));continue}}return{frontmatter:r,body:o}}function zl(e){let t=w(e);return t=t.replace(/^### (.+)$/gm,"<h3>$1</h3>"),t=t.replace(/^## (.+)$/gm,"<h2>$1</h2>"),t=t.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*(.+?)\*/g,"<em>$1</em>"),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/^&gt; (.+)$/gm,"<blockquote>$1</blockquote>"),t=t.replace(/^- (.+)$/gm,"<li>$1</li>"),t=t.replace(/(<li>[\s\S]*?<\/li>)/g,"<ul>$1</ul>"),t=t.replace(/<\/ul>\s*<ul>/g,""),t=t.replace(/^(?!<[hublop])((?!<).+)$/gm,"<p>$1</p>"),t=t.replace(/<p>\s*<\/p>/g,""),t}function K(e,t){e.innerHTML=t}const G=new kl({name:"Minutes Dashboard",version:"1.0.0"},{},{autoResize:!0});let fe=null;async function Tl(){try{const t=(await G.callServerTool({name:"get_status",arguments:{}})).content?.map(r=>"text"in r?r.text:"").join("")||"",n=t.includes("in progress")&&!t.includes("No recording"),o=$("recording-banner");n?(fe||(fe=Date.now()),o.style.display="flex",un(),ne||(ne=setInterval(un,1e3))):(o.style.display="none",fe=null,ne&&(clearInterval(ne),ne=null))}catch{$("recording-banner").style.display="none"}}function un(){if(!fe)return;const e=Math.floor((Date.now()-fe)/1e3),t=Math.floor(e/60),n=e%60;$("rec-elapsed").textContent=`${t}:${String(n).padStart(2,"0")}`}document.addEventListener("click",async e=>{if(e.target.id==="rec-stop-btn"){const t=e.target;t.disabled=!0,t.textContent="Stopping...";try{await G.callServerTool({name:"stop_recording",arguments:{}}),$("recording-banner").style.display="none",fe=null,ne&&(clearInterval(ne),ne=null)}catch{t.disabled=!1,t.textContent="Stop"}}});function go(){const e=$("filter-input").value.toLowerCase();document.querySelectorAll(".meeting-card").forEach(t=>{const n=t,o=n.querySelector(".meeting-title")?.textContent?.toLowerCase()||"",r=n.querySelector(".meeting-date")?.textContent?.toLowerCase()||"",i=n.querySelector(".badge")?.textContent?.toLowerCase()||"",s=!e||o.includes(e)||r.includes(e),a=Fe==="all"||i===Fe;n.style.display=s&&a?"":"none"})}$("filter-input").addEventListener("input",go);document.querySelectorAll(".filter-btn").forEach(e=>{e.addEventListener("click",()=>{document.querySelectorAll(".filter-btn").forEach(t=>t.classList.remove("active")),e.classList.add("active"),Fe=e.dataset.filter,go()})});function Rl(){if(!ct)return;const{title:e,content:t}=ct,n=t.length>15e3?t.slice(0,15e3)+`
82
+ - "app": Tool callable by the app from this server only`)});p({mimeTypes:b(d()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});p({method:u("ui/download-file"),params:p({contents:b(S([lo,po])).describe("Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.")})});p({method:u("ui/message"),params:p({role:u("user").describe('Message role, currently only "user" is supported.'),content:b(Ne).describe("Message content blocks (text, image, etc.).")})});p({method:u("ui/notifications/sandbox-resource-ready"),params:p({html:d().describe("HTML content to load into the inner iframe."),sandbox:d().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:qt.optional().describe("CSP configuration from resource metadata."),permissions:Mt.optional().describe("Sandbox permissions from resource metadata.")})});var _l=p({method:u("ui/notifications/tool-result"),params:et.describe("Standard MCP tool execution result.")}),go=p({toolInfo:p({id:Pe.optional().describe("JSON-RPC id of the tools/call request."),tool:At.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:tl.optional().describe("Current color theme preference."),styles:dl.optional().describe("Style configuration for theming the app."),displayMode:Te.optional().describe("How the UI is currently displayed."),availableDisplayModes:b(Te).optional().describe("Display modes the host supports."),containerDimensions:S([p({height:w().describe("Fixed container height in pixels.")}),p({maxHeight:S([w(),it()]).optional().describe("Maximum container height in pixels.")})]).and(S([p({width:w().describe("Fixed container width in pixels.")}),p({maxWidth:S([w(),it()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
83
+ container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:d().optional().describe("User's language and region preference in BCP 47 format."),timeZone:d().optional().describe("User's timezone in IANA format."),userAgent:d().optional().describe("Host application identifier."),platform:S([u("web"),u("desktop"),u("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:p({touch:P().optional().describe("Whether the device supports touch input."),hover:P().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:p({top:w().describe("Top safe area inset in pixels."),right:w().describe("Right safe area inset in pixels."),bottom:w().describe("Bottom safe area inset in pixels."),left:w().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),vl=p({method:u("ui/notifications/host-context-changed"),params:go.describe("Partial context update containing only changed fields.")});p({method:u("ui/update-model-context"),params:p({content:b(Ne).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:R(d(),I().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});p({method:u("ui/initialize"),params:p({appInfo:Ye.describe("App identification (name and version)."),appCapabilities:ml.describe("Features and capabilities this app provides."),protocolVersion:d().describe("Protocol version this app supports.")})});var bl=p({protocolVersion:d().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:Ye.describe("Host application identification and version."),hostCapabilities:hl.describe("Features and capabilities provided by the host."),hostContext:go.describe("Rich context about the host environment.")}).passthrough();function yl(e){let t=document.documentElement;t.setAttribute("data-theme",e),t.style.colorScheme=e}function wl(e,t=document.documentElement){for(let[n,o]of Object.entries(e))o!==void 0&&t.style.setProperty(n,o)}class kl extends Qu{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;constructor(t,n={},o={autoResize:!0}){super(o),this._appInfo=t,this._capabilities=n,this.options=o,this.setRequestHandler(Xe,s=>(console.log("Received ping:",s.params),{})),this.onhostcontextchanged=()=>{}}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}set ontoolinput(t){this.setNotificationHandler(al,n=>t(n.params))}set ontoolinputpartial(t){this.setNotificationHandler(cl,n=>t(n.params))}set ontoolresult(t){this.setNotificationHandler(_l,n=>t(n.params))}set ontoolcancelled(t){this.setNotificationHandler(ul,n=>t(n.params))}set onhostcontextchanged(t){this.setNotificationHandler(vl,n=>{this._hostContext={...this._hostContext,...n.params},t(n.params)})}set onteardown(t){this.setRequestHandler(pl,(n,o)=>t(n.params,o))}set oncalltool(t){this.setRequestHandler(mo,(n,o)=>t(n.params,o))}set onlisttools(t){this.setRequestHandler(ho,(n,o)=>t(n.params,o))}assertCapabilityForMethod(t){}assertRequestHandlerCapability(t){switch(t){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${t})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${t} registered`)}}assertNotificationCapability(t){}assertTaskCapability(t){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(t){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(t,n){if(typeof t=="string")throw Error(`callServerTool() expects an object as its first argument, but received a string ("${t}"). Did you mean: callServerTool({ name: "${t}", arguments: { ... } })?`);return await this.request({method:"tools/call",params:t},et,n)}async readServerResource(t,n){return await this.request({method:"resources/read",params:t},uo,n)}async listServerResources(t,n){return await this.request({method:"resources/list",params:t},co,n)}sendMessage(t,n){return this.request({method:"ui/message",params:t},il,n)}sendLog(t){return this.notification({method:"notifications/message",params:t})}updateModelContext(t,n){return this.request({method:"ui/update-model-context",params:t},wt,n)}openLink(t,n){return this.request({method:"ui/open-link",params:t},sl,n)}sendOpenLink=this.openLink;downloadFile(t,n){return this.request({method:"ui/download-file",params:t},rl,n)}requestDisplayMode(t,n){return this.request({method:"ui/request-display-mode",params:t},fl,n)}sendSizeChanged(t){return this.notification({method:"ui/notifications/size-changed",params:t})}setupSizeChangedNotifications(){let t=!1,n=0,o=0,s=()=>{t||(t=!0,requestAnimationFrame(()=>{t=!1;let r=document.documentElement,a=r.style.width,c=r.style.height;r.style.width="fit-content",r.style.height="max-content";let l=r.getBoundingClientRect();r.style.width=a,r.style.height=c;let m=window.innerWidth-r.clientWidth,f=Math.ceil(l.width+m),g=Math.ceil(l.height);(f!==n||g!==o)&&(n=f,o=g,this.sendSizeChanged({width:f,height:g}))}))};s();let i=new ResizeObserver(s);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(t=new el(window.parent,window.parent),n){if(this.transport)throw Error("App is already connected. Call close() before connecting again.");await super.connect(t);try{let o=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:Yu}},bl,n);if(o===void 0)throw Error(`Server sent invalid initialize result: ${o}`);this._hostCapabilities=o.hostCapabilities,this._hostInfo=o.hostInfo,this._hostContext=o.hostContext,await this.notification({method:"ui/notifications/initialized"}),this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(o){throw this.close(),o}}}const k=e=>document.getElementById(e);function y(e){const t=document.createElement("span");return t.textContent=e,t.innerHTML}function tt(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}let Re=null,ut=null,Ve="all",ne=null;const Sl=["loading","error","dashboard","detail","person","people-map","report"];function Q(e){for(const t of Sl)k(t).style.display=t===e?"":"none";requestAnimationFrame(()=>{B.sendSizeChanged({height:document.documentElement.scrollHeight})})}function we(e){k("error-message").textContent=e,Q("error")}function $l(e){const t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};const n=t[1],o=t[2],s={};let i=null,r=null;for(const a of n.split(`
84
+ `)){const c=a.match(/^\s{2,4}- (\w+):\s*(.*)$/);if(c&&i!==null){r={[c[1]]:c[2].trim()},i.push(r);continue}const l=a.match(/^\s{4,}(\w+):\s*(.*)$/);if(l&&r!==null){r[l[1]]=l[2].trim();continue}const m=a.match(/^(\w[\w_]*):\s*\[(.+)\]$/);if(m){i=null,r=null,s[m[1]]=m[2].split(",").map(_=>_.trim().replace(/^["']|["']$/g,""));continue}const f=a.match(/^\s{2,4}-\s+(.+)$/);if(f&&i!==null){r=null,i.push(f[1].trim());continue}const g=a.match(/^(\w[\w_]*):\s*(.*)$/);if(g){r=null;const _=g[1],x=g[2].trim();x===""||x==="[]"?(i=[],s[_]=i):(i=null,s[_]=x.replace(/^["']|["']$/g,""));continue}}return{frontmatter:s,body:o}}function zl(e){let t=y(e);return t=t.replace(/^### (.+)$/gm,"<h3>$1</h3>"),t=t.replace(/^## (.+)$/gm,"<h2>$1</h2>"),t=t.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*(.+?)\*/g,"<em>$1</em>"),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/^&gt; (.+)$/gm,"<blockquote>$1</blockquote>"),t=t.replace(/^- (.+)$/gm,"<li>$1</li>"),t=t.replace(/(<li>[\s\S]*?<\/li>)/g,"<ul>$1</ul>"),t=t.replace(/<\/ul>\s*<ul>/g,""),t=t.replace(/^(?!<[hublop])((?!<).+)$/gm,"<p>$1</p>"),t=t.replace(/<p>\s*<\/p>/g,""),t}function J(e,t){e.innerHTML=t}const B=new kl({name:"Minutes Dashboard",version:"1.0.0"},{},{autoResize:!0});let fe=null;async function Tl(){try{const t=(await B.callServerTool({name:"get_status",arguments:{}})).content?.map(s=>"text"in s?s.text:"").join("")||"",n=t.includes("in progress")&&!t.includes("No recording"),o=k("recording-banner");n?(fe||(fe=Date.now()),o.style.display="flex",ln(),ne||(ne=setInterval(ln,1e3))):(o.style.display="none",fe=null,ne&&(clearInterval(ne),ne=null))}catch{k("recording-banner").style.display="none"}}function ln(){if(!fe)return;const e=Math.floor((Date.now()-fe)/1e3),t=Math.floor(e/60),n=e%60;k("rec-elapsed").textContent=`${t}:${String(n).padStart(2,"0")}`}document.addEventListener("click",async e=>{if(e.target.id==="rec-stop-btn"){const t=e.target;t.disabled=!0,t.textContent="Stopping...";try{await B.callServerTool({name:"stop_recording",arguments:{}}),k("recording-banner").style.display="none",fe=null,ne&&(clearInterval(ne),ne=null)}catch{t.disabled=!1,t.textContent="Stop"}}});function _o(){const e=k("filter-input").value.toLowerCase();document.querySelectorAll(".meeting-card").forEach(t=>{const n=t,o=n.querySelector(".meeting-title")?.textContent?.toLowerCase()||"",s=n.querySelector(".meeting-date")?.textContent?.toLowerCase()||"",i=n.querySelector(".badge")?.textContent?.toLowerCase()||"",r=!e||o.includes(e)||s.includes(e),a=Ve==="all"||i===Ve;n.style.display=r&&a?"":"none"})}k("filter-input").addEventListener("input",_o);document.querySelectorAll(".filter-btn").forEach(e=>{e.addEventListener("click",async()=>{const t=e.dataset.filter;if(t==="people"){document.querySelectorAll(".filter-btn").forEach(n=>n.classList.remove("active")),e.classList.add("active"),Q("loading"),k("loading-text").textContent="Loading people...";try{const n=await B.callServerTool({name:"relationship_map",arguments:{}});ke(n)}catch(n){we(n.message||"Failed to load people")}return}document.querySelectorAll(".filter-btn").forEach(n=>n.classList.remove("active")),e.classList.add("active"),Ve=t,_o()})});function Rl(){if(!ut)return;const{title:e,content:t}=ut,n=t.length>15e3?t.slice(0,15e3)+`
85
85
 
86
- [truncated]`:t;G.updateModelContext({content:[{type:"text",text:`Meeting: ${e}
86
+ [truncated]`:t;B.updateModelContext({content:[{type:"text",text:`Meeting: ${e}
87
87
 
88
- ${n}`}]})}let he=!1;function ln(){he=!he,G.requestDisplayMode({mode:he?"fullscreen":"inline"});const e=$("fullscreen-btn");e&&(e.textContent=he?"Exit Fullscreen":"Fullscreen")}function _o(e){const t=e.meetings||[],n=e.actions||[];at=e;const o=t.filter(a=>a.content_type==="memo").length,r=t.length-o;K($("stats-bar"),`<div class="stat"><span class="stat-value">${t.length}</span><span class="stat-label">Total</span></div>
89
- <div class="stat"><span class="stat-value">${r}</span><span class="stat-label">Meetings</span></div>
88
+ ${n}`}]})}let he=!1;function dn(){he=!he,B.requestDisplayMode({mode:he?"fullscreen":"inline"});const e=k("fullscreen-btn");e&&(e.textContent=he?"Exit Fullscreen":"Fullscreen")}function jt(e){const t=e.meetings||[],n=e.actions||[];Re=e;const o=t.filter(a=>a.content_type==="memo").length,s=t.length-o;J(k("stats-bar"),`<div class="stat"><span class="stat-value">${t.length}</span><span class="stat-label">Total</span></div>
89
+ <div class="stat"><span class="stat-value">${s}</span><span class="stat-label">Meetings</span></div>
90
90
  <div class="stat"><span class="stat-value">${o}</span><span class="stat-label">Memos</span></div>
91
- ${n.length?`<div class="stat"><span class="stat-value">${n.length}</span><span class="stat-label">Open Actions</span></div>`:""}`);const i=$("meetings-list");K(i,t.map(a=>`
92
- <div class="meeting-card" data-path="${Mt(a.path||"")}">
93
- <div class="meeting-date">${w(a.date||"")}</div>
94
- <div class="meeting-title">${w(a.title||"Untitled")}</div>
91
+ ${n.length?`<div class="stat"><span class="stat-value">${n.length}</span><span class="stat-label">Open Actions</span></div>`:""}`);const i=k("meetings-list");J(i,t.map(a=>`
92
+ <div class="meeting-card" data-path="${tt(a.path||"")}">
93
+ <div class="meeting-date">${y(a.date||"")}</div>
94
+ <div class="meeting-title">${y(a.title||"Untitled")}</div>
95
95
  <div class="meeting-meta">
96
- <span class="badge badge-${a.content_type==="memo"?"memo":"meeting"}">${w(a.content_type||"meeting")}</span>
97
- ${a.words?`<span class="word-count">${w(String(a.words))} words</span>`:""}
98
- ${a.duration?`<span class="duration">${w(String(a.duration))}</span>`:""}
96
+ <span class="badge badge-${a.content_type==="memo"?"memo":"meeting"}">${y(a.content_type||"meeting")}</span>
97
+ ${a.words?`<span class="word-count">${y(String(a.words))} words</span>`:""}
98
+ ${a.duration?`<span class="duration">${y(String(a.duration))}</span>`:""}
99
99
  </div>
100
- ${a.snippet?`<div class="meeting-snippet">${w(a.snippet)}</div>`:""}
101
- </div>`).join("")),i.querySelectorAll(".meeting-card").forEach(a=>{a.addEventListener("click",async()=>{const c=a.dataset.path;if(c){te("loading"),$("loading-text").textContent="Loading meeting...";try{const l=await G.callServerTool({name:"get_meeting",arguments:{path:c}});Xe(l)}catch(l){Ye(l.message||"Failed to load meeting")}}})});const s=$("actions-sidebar");n.length>0?K(s,'<div class="sidebar-title">Open Action Items</div>'+n.map(a=>`
100
+ ${a.snippet?`<div class="meeting-snippet">${y(a.snippet)}</div>`:""}
101
+ </div>`).join("")),i.querySelectorAll(".meeting-card").forEach(a=>{a.addEventListener("click",async()=>{const c=a.dataset.path;if(c){Q("loading"),k("loading-text").textContent="Loading meeting...";try{const l=await B.callServerTool({name:"get_meeting",arguments:{path:c}});ke(l)}catch(l){we(l.message||"Failed to load meeting")}}})});const r=k("actions-sidebar");n.length>0?J(r,'<div class="sidebar-title">Open Action Items</div>'+n.map(a=>`
102
102
  <div class="intent-item action${a.by_date&&new Date(a.by_date)<new Date?" overdue":""}">
103
- <div class="intent-what">${w(a.what||"")}</div>
104
- ${a.who?`<div class="intent-who">@${w(a.who)}</div>`:""}
105
- ${a.by_date?`<div class="intent-date">by ${w(a.by_date)}</div>`:""}
106
- ${a.title?`<div class="intent-source">${w(a.title)}</div>`:""}
107
- </div>`).join("")):K(s,""),$("filter-input").value="",Fe="all",document.querySelectorAll(".filter-btn").forEach(a=>{a.classList.toggle("active",a.dataset.filter==="all")}),te("dashboard"),Tl()}function dn(e){const t=e.content||"",n=e.path||"",{frontmatter:o,body:r}=$l(t),i=o.title||n.split("/").pop()?.replace(/\.md$/,"")||"Meeting";ct={content:t,path:n,title:i},K($("detail-header"),`<h1>${w(i)}</h1>
103
+ <div class="intent-what">${y(a.what||"")}</div>
104
+ ${a.who?`<div class="intent-who">@${y(a.who)}</div>`:""}
105
+ ${a.by_date?`<div class="intent-date">by ${y(a.by_date)}</div>`:""}
106
+ ${a.title?`<div class="intent-source">${y(a.title)}</div>`:""}
107
+ </div>`).join("")):J(r,""),k("filter-input").value="",Ve="all",document.querySelectorAll(".filter-btn").forEach(a=>{a.classList.toggle("active",a.dataset.filter==="all")}),Q("dashboard"),Tl()}function pn(e){const t=e.content||"",n=e.path||"",{frontmatter:o,body:s}=$l(t),i=o.title||n.split("/").pop()?.replace(/\.md$/,"")||"Meeting";ut={content:t,path:n,title:i},J(k("detail-header"),`<h1>${y(i)}</h1>
108
108
  <div class="detail-meta">
109
- ${o.date?`<span class="meta-item">${w(o.date)}</span>`:""}
110
- ${o.duration?`<span class="meta-item">${w(o.duration)}</span>`:""}
111
- ${o.content_type?`<span class="badge badge-${o.content_type==="memo"?"memo":"meeting"}">${w(o.content_type)}</span>`:""}
112
- ${o.words?`<span class="meta-item">${w(String(o.words))} words</span>`:""}
109
+ ${o.date?`<span class="meta-item">${y(o.date)}</span>`:""}
110
+ ${o.duration?`<span class="meta-item">${y(o.duration)}</span>`:""}
111
+ ${o.content_type?`<span class="badge badge-${o.content_type==="memo"?"memo":"meeting"}">${y(o.content_type)}</span>`:""}
112
+ ${o.words?`<span class="meta-item">${y(String(o.words))} words</span>`:""}
113
113
  </div>
114
- ${Array.isArray(o.attendees)&&o.attendees.length?`<div class="attendees">Attendees: ${o.attendees.map(l=>`<span class="attendee clickable" data-person="${Mt(l)}">${w(l)}</span>`).join(" ")}</div>`:""}
115
- ${Array.isArray(o.tags)&&o.tags.length?`<div class="tags">${o.tags.map(l=>`<span class="tag">${w(l)}</span>`).join("")}</div>`:""}`),$("detail-header").querySelectorAll(".attendee.clickable").forEach(l=>{l.addEventListener("click",async m=>{m.stopPropagation();const f=l.dataset.person;if(f){te("loading"),$("loading-text").textContent=`Loading profile for ${f}...`;try{const g=await G.callServerTool({name:"get_person_profile",arguments:{name:f}});Xe(g)}catch(g){Ye(g.message||"Failed to load profile")}}})}),K($("detail-content"),zl(r));const s=[],a=o.action_items;Array.isArray(a)&&a.length>0&&s.push(`
114
+ ${Array.isArray(o.attendees)&&o.attendees.length?`<div class="attendees">Attendees: ${o.attendees.map(l=>`<span class="attendee clickable" data-person="${tt(l)}">${y(l)}</span>`).join(" ")}</div>`:""}
115
+ ${Array.isArray(o.tags)&&o.tags.length?`<div class="tags">${o.tags.map(l=>`<span class="tag">${y(l)}</span>`).join("")}</div>`:""}`),k("detail-header").querySelectorAll(".attendee.clickable").forEach(l=>{l.addEventListener("click",async m=>{m.stopPropagation();const f=l.dataset.person;if(f){Q("loading"),k("loading-text").textContent=`Loading profile for ${f}...`;try{const g=await B.callServerTool({name:"get_person_profile",arguments:{name:f}});ke(g)}catch(g){we(g.message||"Failed to load profile")}}})}),J(k("detail-content"),zl(s));const r=[],a=o.action_items;Array.isArray(a)&&a.length>0&&r.push(`
116
116
  <div class="panel"><h3>Action Items</h3>
117
117
  ${a.map(l=>`
118
118
  <div class="intent-item action">
119
- <div class="intent-what">${w(typeof l=="string"?l:l.what||"")}</div>
120
- ${l.who?`<div class="intent-who">@${w(l.who)}</div>`:""}
121
- ${l.by_date?`<div class="intent-date">by ${w(l.by_date)}</div>`:""}
119
+ <div class="intent-what">${y(typeof l=="string"?l:l.what||"")}</div>
120
+ ${l.who?`<div class="intent-who">@${y(l.who)}</div>`:""}
121
+ ${l.by_date?`<div class="intent-date">by ${y(l.by_date)}</div>`:""}
122
122
  </div>`).join("")}
123
- </div>`);const c=o.decisions;Array.isArray(c)&&c.length>0&&s.push(`
123
+ </div>`);const c=o.decisions;Array.isArray(c)&&c.length>0&&r.push(`
124
124
  <div class="panel"><h3>Decisions</h3>
125
125
  ${c.map(l=>`
126
126
  <div class="intent-item decision">
127
- <div class="intent-what">${w(typeof l=="string"?l:l.what||"")}</div>
127
+ <div class="intent-what">${y(typeof l=="string"?l:l.what||"")}</div>
128
128
  </div>`).join("")}
129
- </div>`),K($("detail-panels"),s.join("")),$("back-btn").onclick=()=>{he&&ln(),at&&_o(at)},$("context-btn").onclick=Rl,$("fullscreen-btn").onclick=ln,$("fullscreen-btn").textContent=he?"Exit Fullscreen":"Fullscreen",te("detail")}function Il(e){const t=e.name||"Unknown",n=e.top_topics||[],o=e.open_intents||[],r=e.recent_meetings||[];K($("person-header"),`<h1>${w(t)}</h1>
129
+ </div>`),J(k("detail-panels"),r.join("")),k("back-btn").onclick=()=>{he&&dn(),Re&&jt(Re)},k("context-btn").onclick=Rl,k("fullscreen-btn").onclick=dn,k("fullscreen-btn").textContent=he?"Exit Fullscreen":"Fullscreen",Q("detail")}function Il(e){const t=e.name||"Unknown",n=e.top_topics||[],o=e.open_intents||[],s=e.recent_meetings||[];J(k("person-header"),`<h1>${y(t)}</h1>
130
130
  <div class="person-stats">
131
- <div class="stat"><span class="stat-value">${r.length}</span><span class="stat-label">Meetings</span></div>
131
+ <div class="stat"><span class="stat-value">${s.length}</span><span class="stat-label">Meetings</span></div>
132
132
  <div class="stat"><span class="stat-value">${o.length}</span><span class="stat-label">Open Items</span></div>
133
133
  <div class="stat"><span class="stat-value">${n.length}</span><span class="stat-label">Topics</span></div>
134
134
  </div>`);const i=[];n.length>0&&i.push(`
135
135
  <div class="person-section"><h3>Top Topics</h3>
136
- ${n.map(s=>`<div class="topic-item"><span class="topic-name">${w(s.topic||"")}</span><span class="topic-count">${s.count||0}</span></div>`).join("")}
136
+ ${n.map(r=>`<div class="topic-item"><span class="topic-name">${y(r.topic||"")}</span><span class="topic-count">${r.count||0}</span></div>`).join("")}
137
137
  </div>`),o.length>0&&i.push(`
138
138
  <div class="person-section"><h3>Open Commitments</h3>
139
- ${o.map(s=>`
139
+ ${o.map(r=>`
140
140
  <div class="intent-item action">
141
- <div class="intent-what">${w(s.what||"")}</div>
142
- ${s.kind?`<div class="intent-who">${w(s.kind)}</div>`:""}
143
- ${s.by_date?`<div class="intent-date">by ${w(s.by_date)}</div>`:""}
141
+ <div class="intent-what">${y(r.what||"")}</div>
142
+ ${r.kind?`<div class="intent-who">${y(r.kind)}</div>`:""}
143
+ ${r.by_date?`<div class="intent-date">by ${y(r.by_date)}</div>`:""}
144
144
  </div>`).join("")}
145
- </div>`),r.length>0&&i.push(`
145
+ </div>`),s.length>0&&i.push(`
146
146
  <div class="person-section"><h3>Recent Meetings</h3>
147
- ${r.map(s=>`
148
- <div class="person-meeting" data-path="${Mt(s.path||"")}">
149
- <div class="person-meeting-date">${w(s.date||"")}</div>
150
- <div class="person-meeting-title">${w(s.title||"Untitled")}</div>
147
+ ${s.map(r=>`
148
+ <div class="person-meeting" data-path="${tt(r.path||"")}">
149
+ <div class="person-meeting-date">${y(r.date||"")}</div>
150
+ <div class="person-meeting-title">${y(r.title||"Untitled")}</div>
151
151
  </div>`).join("")}
152
- </div>`),K($("person-body"),i.join("")),$("person-body").querySelectorAll(".person-meeting").forEach(s=>{s.addEventListener("click",async()=>{const a=s.dataset.path;if(a){te("loading"),$("loading-text").textContent="Loading meeting...";try{const c=await G.callServerTool({name:"get_meeting",arguments:{path:a}});Xe(c)}catch(c){Ye(c.message||"Failed to load meeting")}}})}),te("person")}function Pl(e){const t=e.decision_conflicts||[],n=e.stale_commitments||[];if(K($("report-header"),"<h1>Consistency Report</h1>"),t.length===0&&n.length===0){K($("report-body"),'<div class="report-empty">No consistency issues found.</div>'),te("report");return}const o=[];t.length>0&&o.push(`
152
+ </div>`),J(k("person-body"),i.join("")),k("person-body").querySelectorAll(".person-meeting").forEach(r=>{r.addEventListener("click",async()=>{const a=r.dataset.path;if(a){Q("loading"),k("loading-text").textContent="Loading meeting...";try{const c=await B.callServerTool({name:"get_meeting",arguments:{path:a}});ke(c)}catch(c){we(c.message||"Failed to load meeting")}}})}),Q("person")}function Pl(e){const t=e.length,n=e.filter(i=>i.losing_touch).length,o=e.filter(i=>i.open_commitments>0).length;J(k("people-header"),`<h2>People</h2>
153
+ <div class="stats-bar">
154
+ <div class="stat"><span class="stat-value">${t}</span><span class="stat-label">Contacts</span></div>
155
+ <div class="stat"><span class="stat-value">${o}</span><span class="stat-label">With Commitments</span></div>
156
+ ${n>0?`<div class="stat stat-warn"><span class="stat-value">${n}</span><span class="stat-label">Losing Touch</span></div>`:""}
157
+ </div>`);const s=e.map(i=>{const r=Math.round(i.days_since||0),a=r<1?"today":r<2?"yesterday":`${r}d ago`,c=(i.top_topics||[]).slice(0,3).join(", "),l=i.losing_touch?"losing-touch":i.open_commitments>0?"has-commitments":"clear",m=i.losing_touch?"⚠ losing touch":i.open_commitments>0?`${i.open_commitments} commitment${i.open_commitments!==1?"s":""}`:"✓ all clear";return`
158
+ <div class="person-card ${l}" data-name="${tt(i.name||"")}">
159
+ <div class="person-card-name">${y(i.name||"Unknown")}</div>
160
+ <div class="person-card-meta">
161
+ <span>${i.meeting_count||0} meeting${(i.meeting_count||0)!==1?"s":""}</span>
162
+ <span>last: ${y(a)}</span>
163
+ </div>
164
+ ${c?`<div class="person-card-topics">${y(c)}</div>`:""}
165
+ <div class="person-card-status ${l}">${m}</div>
166
+ <div class="person-card-score">score: ${(i.score||0).toFixed(1)}</div>
167
+ </div>`});J(k("people-grid"),s.join("")),k("people-grid").querySelectorAll(".person-card").forEach(i=>{i.addEventListener("click",async()=>{const r=i.dataset.name;if(r){Q("loading"),k("loading-text").textContent=`Loading ${r}...`;try{const a=await B.callServerTool({name:"get_person_profile",arguments:{name:r}});ke(a)}catch(a){we(a.message||"Failed to load person")}}})}),e.length===0&&J(k("people-grid"),'<div class="empty-state">No people found. Record some meetings, then click People again.</div>'),k("people-back-btn").onclick=()=>{Re&&jt(Re)},Q("people-map")}function xl(e){const t=e.decision_conflicts||[],n=e.stale_commitments||[];if(J(k("report-header"),"<h1>Consistency Report</h1>"),t.length===0&&n.length===0){J(k("report-body"),'<div class="report-empty">No consistency issues found.</div>'),Q("report");return}const o=[];t.length>0&&o.push(`
153
168
  <div class="report-section"><h3>Decision Conflicts</h3>
154
- ${t.map(r=>`
169
+ ${t.map(s=>`
155
170
  <div class="intent-item conflict">
156
- <div class="intent-what">${w(r.topic||"")}</div>
157
- ${r.latest?`<div class="intent-source">Latest: &quot;${w(r.latest.what||"")}&quot; (${w(r.latest.title||"")})</div>`:""}
171
+ <div class="intent-what">${y(s.topic||"")}</div>
172
+ ${s.latest?`<div class="intent-source">Latest: &quot;${y(s.latest.what||"")}&quot; (${y(s.latest.title||"")})</div>`:""}
158
173
  </div>`).join("")}
159
174
  </div>`),n.length>0&&o.push(`
160
175
  <div class="report-section"><h3>Stale Commitments</h3>
161
- ${n.map(r=>`
176
+ ${n.map(s=>`
162
177
  <div class="intent-item stale">
163
- <div class="intent-what">${w(r.entry?.what||"")}</div>
164
- ${r.entry?.who?`<div class="intent-who">@${w(r.entry.who)}</div>`:""}
165
- <div class="intent-reasons">${w(Array.isArray(r.reasons)?r.reasons.join(", "):`${r.age_days||"?"} days old`)}</div>
166
- ${r.latest_follow_up?`<div class="intent-source">Latest: ${w(r.latest_follow_up.title||"")}</div>`:""}
178
+ <div class="intent-what">${y(s.entry?.what||"")}</div>
179
+ ${s.entry?.who?`<div class="intent-who">@${y(s.entry.who)}</div>`:""}
180
+ <div class="intent-reasons">${y(Array.isArray(s.reasons)?s.reasons.join(", "):`${s.age_days||"?"} days old`)}</div>
181
+ ${s.latest_follow_up?`<div class="intent-source">Latest: ${y(s.latest_follow_up.title||"")}</div>`:""}
167
182
  </div>`).join("")}
168
- </div>`),K($("report-body"),o.join("")),te("report")}function Xe(e){const t=e.structuredContent,n=e._meta,o=t?.view||n?.view,r=t?.view?t:n?.view?n:t||n||{};if(!o){const i=e.content?.map(s=>"text"in s?s.text:"").join("");i&&dn({content:i,path:""});return}if(o==="detail"&&!r.content){const i=e.content?.map(s=>"text"in s?s.text:"").join("");i&&(r.content=i)}switch(o){case"dashboard":_o(r);break;case"detail":dn(r);break;case"person":Il(r);break;case"report":Pl(r);break;default:Ye(`Unknown view: ${o}`)}}G.ontoolresult=async e=>{Xe(e)};function vo(e){e.theme&&yl(e.theme),e.styles?.variables&&wl(e.styles.variables)}G.onhostcontextchanged=vo;G.connect().then(()=>{const e=G.getHostContext();e&&vo(e)});</script>
169
- <style rel="stylesheet" crossorigin>*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #1a1a1a;--bg-secondary: #242424;--bg-tertiary: #2e2e2e;--bg-hover: #363636;--text-primary: #e4e4e4;--text-secondary: #a0a0a0;--text-muted: #6b6b6b;--border-color: #333;--accent: #6b9fff;--accent-dim: #4a7fe0;--badge-meeting: #3b82f6;--badge-memo: #8b5cf6;--action-color: #f59e0b;--action-overdue: #ef4444;--decision-color: #10b981;--conflict-color: #ef4444;--stale-color: #f59e0b;--radius: 6px;--radius-lg: 10px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #ececec;--bg-hover: #e2e2e2;--text-primary: #1a1a1a;--text-secondary: #555;--text-muted: #999;--border-color: #ddd}html,body{height:100%;font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased}.main{min-height:100%;display:flex;flex-direction:column}#loading{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-secondary)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:12px}.spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;gap:8px;color:var(--conflict-color)}.error-icon{width:32px;height:32px;border-radius:50%;background:var(--conflict-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}#error-message{color:var(--text-secondary);text-align:center;max-width:400px}.stats-bar{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.stat{display:flex;align-items:baseline;gap:6px}.stat-value{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.dashboard-body{display:flex;flex:1;overflow:hidden}.meetings-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.meeting-card{padding:10px 12px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s}.meeting-card:hover{background:var(--bg-hover);border-color:var(--border-color)}.meeting-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);margin-bottom:2px}.meeting-title{font-weight:500;color:var(--text-primary);margin-bottom:4px}.meeting-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary)}.meeting-snippet{font-size:12px;color:var(--text-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-meeting{background:color-mix(in srgb,var(--badge-meeting) 20%,transparent);color:var(--badge-meeting)}.badge-memo{background:color-mix(in srgb,var(--badge-memo) 20%,transparent);color:var(--badge-memo)}.word-count,.duration{font-family:var(--font-mono);font-size:11px}.actions-sidebar{width:280px;border-left:1px solid var(--border-color);overflow-y:auto;padding:12px;background:var(--bg-secondary);flex-shrink:0}.actions-sidebar:empty{display:none}.sidebar-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:10px}.intent-item{padding:8px 10px;border-radius:var(--radius);background:var(--bg-tertiary);margin-bottom:6px;border-left:3px solid var(--border-color)}.intent-item.action{border-left-color:var(--action-color)}.intent-item.action.overdue{border-left-color:var(--action-overdue)}.intent-item.decision{border-left-color:var(--decision-color)}.intent-item.conflict{border-left-color:var(--conflict-color)}.intent-item.stale{border-left-color:var(--stale-color)}.intent-what{font-size:13px;color:var(--text-primary);margin-bottom:4px}.intent-who{font-size:11px;color:var(--accent);font-weight:500}.intent-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.intent-source{font-size:11px;color:var(--text-muted);margin-top:2px}.intent-reasons{font-size:11px;color:var(--stale-color);margin-top:2px}.back-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;margin:12px 16px 0;font-size:12px;color:var(--accent);background:none;border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;font-family:inherit;transition:background .15s}.back-btn:hover{background:var(--bg-hover)}.detail-header{padding:16px;border-bottom:1px solid var(--border-color)}.detail-header h1{font-size:18px;font-weight:600;margin-bottom:8px}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px}.meta-item{font-size:12px;color:var(--text-secondary)}.attendees{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.attendee{display:inline-block;padding:1px 6px;background:var(--bg-tertiary);border-radius:3px;margin:0 2px;color:var(--text-primary);font-weight:500}.tags{display:flex;gap:4px;flex-wrap:wrap}.tag{display:inline-block;padding:1px 8px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border-radius:10px;font-size:11px}.detail-body{display:flex;flex:1;overflow:hidden}.detail-content{flex:1;overflow-y:auto;padding:16px;line-height:1.7}.detail-content h2{font-size:15px;font-weight:600;margin:20px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.detail-content h2:first-child{margin-top:0}.detail-content h3{font-size:14px;font-weight:600;margin:16px 0 6px;color:var(--text-primary)}.detail-content p{margin-bottom:8px;color:var(--text-primary)}.detail-content ul,.detail-content ol{padding-left:20px;margin-bottom:8px}.detail-content li{margin-bottom:4px}.detail-content blockquote{border-left:3px solid var(--accent-dim);padding-left:12px;color:var(--text-secondary);margin:8px 0}.detail-content code{font-family:var(--font-mono);font-size:12px;padding:1px 4px;background:var(--bg-tertiary);border-radius:3px}.detail-content pre{background:var(--bg-tertiary);padding:12px;border-radius:var(--radius);overflow-x:auto;margin:8px 0}.detail-content pre code{padding:0;background:none}.detail-panels{width:260px;border-left:1px solid var(--border-color);overflow-y:auto;padding:12px;background:var(--bg-secondary);flex-shrink:0}.detail-panels:empty{display:none}.panel{margin-bottom:16px}.panel h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.person-header{padding:16px;border-bottom:1px solid var(--border-color)}.person-header h1{font-size:18px;font-weight:600}.person-header .person-stats{display:flex;gap:16px;margin-top:8px}.person-body{padding:16px;display:flex;flex-direction:column;gap:20px}.person-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.topic-item{display:flex;justify-content:space-between;padding:6px 10px;border-radius:var(--radius);background:var(--bg-secondary);margin-bottom:4px}.topic-name{color:var(--text-primary)}.topic-count{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.person-meeting{padding:6px 10px;border-radius:var(--radius);background:var(--bg-secondary);margin-bottom:4px;cursor:pointer;transition:background .15s}.person-meeting:hover{background:var(--bg-hover)}.person-meeting-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.person-meeting-title{color:var(--text-primary)}.report-header{padding:16px;border-bottom:1px solid var(--border-color)}.report-header h1{font-size:18px;font-weight:600}.report-body{padding:16px;display:flex;flex-direction:column;gap:20px}.report-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.report-empty{padding:24px;text-align:center;color:var(--text-muted)}#recording-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:color-mix(in srgb,var(--action-overdue) 12%,var(--bg-secondary));border-bottom:1px solid color-mix(in srgb,var(--action-overdue) 30%,var(--border-color))}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--action-overdue);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}#rec-label{font-weight:600;font-size:12px;color:var(--action-overdue);text-transform:uppercase;letter-spacing:.05em}.rec-elapsed{font-family:var(--font-mono);font-size:13px;color:var(--text-primary)}.rec-stop-btn{margin-left:auto;padding:4px 12px;font-size:11px;font-weight:600;font-family:inherit;color:#fff;background:var(--action-overdue);border:none;border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:opacity .15s}.rec-stop-btn:hover{opacity:.85}.filter-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-color)}#filter-input{flex:1;padding:5px 10px;font-size:12px;font-family:inherit;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius);outline:none;transition:border-color .15s}#filter-input:focus{border-color:var(--accent)}#filter-input::placeholder{color:var(--text-muted)}.filter-toggles{display:flex;gap:2px}.filter-btn{padding:4px 10px;font-size:11px;font-family:inherit;color:var(--text-secondary);background:none;border:1px solid var(--border-color);cursor:pointer;transition:all .15s}.filter-btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.filter-btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.filter-btn:not(:first-child){border-left:none}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-btn.active+.filter-btn{border-left-color:var(--accent)}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.detail-toolbar .back-btn{margin:0}.detail-toolbar-actions{display:flex;gap:6px}.toolbar-btn{padding:5px 12px;font-size:11px;font-family:inherit;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;transition:all .15s}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}#context-btn{color:var(--accent);border-color:var(--accent-dim)}#context-btn:hover{background:color-mix(in srgb,var(--accent) 15%,var(--bg-tertiary))}.attendee.clickable{cursor:pointer;transition:background .15s,color .15s}.attendee.clickable:hover{background:var(--accent);color:#fff}@media(max-width:600px){.dashboard-body{flex-direction:column}.actions-sidebar{width:100%;border-left:none;border-top:1px solid var(--border-color);max-height:200px}.detail-body{flex-direction:column}.detail-panels{width:100%;border-left:none;border-top:1px solid var(--border-color)}}</style>
183
+ </div>`),J(k("report-body"),o.join("")),Q("report")}function ke(e){const t=e.structuredContent,n=e._meta,o=t?.view||n?.view,s=t?.view?t:n?.view?n:t||n||{};if(!o){const i=e.content?.map(r=>"text"in r?r.text:"").join("");i&&pn({content:i,path:""});return}if(o==="detail"&&!s.content){const i=e.content?.map(r=>"text"in r?r.text:"").join("");i&&(s.content=i)}switch(o){case"dashboard":jt(s);break;case"detail":pn(s);break;case"person":Il(s);break;case"relationship_map":case"commitments":Pl(s.people||[]);break;case"report":xl(s);break;default:we(`Unknown view: ${o}`)}}B.ontoolresult=async e=>{ke(e)};function vo(e){e.theme&&yl(e.theme),e.styles?.variables&&wl(e.styles.variables)}B.onhostcontextchanged=vo;B.connect().then(()=>{const e=B.getHostContext();e&&vo(e)});</script>
184
+ <style rel="stylesheet" crossorigin>*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #1a1a1a;--bg-secondary: #242424;--bg-tertiary: #2e2e2e;--bg-hover: #363636;--text-primary: #e4e4e4;--text-secondary: #a0a0a0;--text-muted: #6b6b6b;--border-color: #333;--accent: #6b9fff;--accent-dim: #4a7fe0;--badge-meeting: #3b82f6;--badge-memo: #8b5cf6;--action-color: #f59e0b;--action-overdue: #ef4444;--decision-color: #10b981;--conflict-color: #ef4444;--stale-color: #f59e0b;--radius: 6px;--radius-lg: 10px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #ececec;--bg-hover: #e2e2e2;--text-primary: #1a1a1a;--text-secondary: #555;--text-muted: #999;--border-color: #ddd}html,body{height:100%;font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased}.main{min-height:100%;display:flex;flex-direction:column}#loading{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-secondary)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:12px}.spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;gap:8px;color:var(--conflict-color)}.error-icon{width:32px;height:32px;border-radius:50%;background:var(--conflict-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}#error-message{color:var(--text-secondary);text-align:center;max-width:400px}.stats-bar{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.stat{display:flex;align-items:baseline;gap:6px}.stat-value{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.dashboard-body{display:flex;flex:1;overflow:hidden}.meetings-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.meeting-card{padding:10px 12px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s}.meeting-card:hover{background:var(--bg-hover);border-color:var(--border-color)}.meeting-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);margin-bottom:2px}.meeting-title{font-weight:500;color:var(--text-primary);margin-bottom:4px}.meeting-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary)}.meeting-snippet{font-size:12px;color:var(--text-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-meeting{background:color-mix(in srgb,var(--badge-meeting) 20%,transparent);color:var(--badge-meeting)}.badge-memo{background:color-mix(in srgb,var(--badge-memo) 20%,transparent);color:var(--badge-memo)}.word-count,.duration{font-family:var(--font-mono);font-size:11px}.actions-sidebar{width:280px;border-left:1px solid var(--border-color);overflow-y:auto;padding:12px;background:var(--bg-secondary);flex-shrink:0}.actions-sidebar:empty{display:none}.sidebar-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:10px}.intent-item{padding:8px 10px;border-radius:var(--radius);background:var(--bg-tertiary);margin-bottom:6px;border-left:3px solid var(--border-color)}.intent-item.action{border-left-color:var(--action-color)}.intent-item.action.overdue{border-left-color:var(--action-overdue)}.intent-item.decision{border-left-color:var(--decision-color)}.intent-item.conflict{border-left-color:var(--conflict-color)}.intent-item.stale{border-left-color:var(--stale-color)}.intent-what{font-size:13px;color:var(--text-primary);margin-bottom:4px}.intent-who{font-size:11px;color:var(--accent);font-weight:500}.intent-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.intent-source{font-size:11px;color:var(--text-muted);margin-top:2px}.intent-reasons{font-size:11px;color:var(--stale-color);margin-top:2px}.back-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;margin:12px 16px 0;font-size:12px;color:var(--accent);background:none;border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;font-family:inherit;transition:background .15s}.back-btn:hover{background:var(--bg-hover)}.detail-header{padding:16px;border-bottom:1px solid var(--border-color)}.detail-header h1{font-size:18px;font-weight:600;margin-bottom:8px}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px}.meta-item{font-size:12px;color:var(--text-secondary)}.attendees{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.attendee{display:inline-block;padding:1px 6px;background:var(--bg-tertiary);border-radius:3px;margin:0 2px;color:var(--text-primary);font-weight:500}.tags{display:flex;gap:4px;flex-wrap:wrap}.tag{display:inline-block;padding:1px 8px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border-radius:10px;font-size:11px}.detail-body{display:flex;flex:1;overflow:hidden}.detail-content{flex:1;overflow-y:auto;padding:16px;line-height:1.7}.detail-content h2{font-size:15px;font-weight:600;margin:20px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.detail-content h2:first-child{margin-top:0}.detail-content h3{font-size:14px;font-weight:600;margin:16px 0 6px;color:var(--text-primary)}.detail-content p{margin-bottom:8px;color:var(--text-primary)}.detail-content ul,.detail-content ol{padding-left:20px;margin-bottom:8px}.detail-content li{margin-bottom:4px}.detail-content blockquote{border-left:3px solid var(--accent-dim);padding-left:12px;color:var(--text-secondary);margin:8px 0}.detail-content code{font-family:var(--font-mono);font-size:12px;padding:1px 4px;background:var(--bg-tertiary);border-radius:3px}.detail-content pre{background:var(--bg-tertiary);padding:12px;border-radius:var(--radius);overflow-x:auto;margin:8px 0}.detail-content pre code{padding:0;background:none}.detail-panels{width:260px;border-left:1px solid var(--border-color);overflow-y:auto;padding:12px;background:var(--bg-secondary);flex-shrink:0}.detail-panels:empty{display:none}.panel{margin-bottom:16px}.panel h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.person-header{padding:16px;border-bottom:1px solid var(--border-color)}.person-header h1{font-size:18px;font-weight:600}.person-header .person-stats{display:flex;gap:16px;margin-top:8px}.person-body{padding:16px;display:flex;flex-direction:column;gap:20px}.person-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.topic-item{display:flex;justify-content:space-between;padding:6px 10px;border-radius:var(--radius);background:var(--bg-secondary);margin-bottom:4px}.topic-name{color:var(--text-primary)}.topic-count{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.person-meeting{padding:6px 10px;border-radius:var(--radius);background:var(--bg-secondary);margin-bottom:4px;cursor:pointer;transition:background .15s}.person-meeting:hover{background:var(--bg-hover)}.person-meeting-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.person-meeting-title{color:var(--text-primary)}.report-header{padding:16px;border-bottom:1px solid var(--border-color)}.report-header h1{font-size:18px;font-weight:600}.report-body{padding:16px;display:flex;flex-direction:column;gap:20px}.report-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.report-empty{padding:24px;text-align:center;color:var(--text-muted)}#recording-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:color-mix(in srgb,var(--action-overdue) 12%,var(--bg-secondary));border-bottom:1px solid color-mix(in srgb,var(--action-overdue) 30%,var(--border-color))}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--action-overdue);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}#rec-label{font-weight:600;font-size:12px;color:var(--action-overdue);text-transform:uppercase;letter-spacing:.05em}.rec-elapsed{font-family:var(--font-mono);font-size:13px;color:var(--text-primary)}.rec-stop-btn{margin-left:auto;padding:4px 12px;font-size:11px;font-weight:600;font-family:inherit;color:#fff;background:var(--action-overdue);border:none;border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:opacity .15s}.rec-stop-btn:hover{opacity:.85}.filter-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-color)}#filter-input{flex:1;padding:5px 10px;font-size:12px;font-family:inherit;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius);outline:none;transition:border-color .15s}#filter-input:focus{border-color:var(--accent)}#filter-input::placeholder{color:var(--text-muted)}.filter-toggles{display:flex;gap:2px}.filter-btn{padding:4px 10px;font-size:11px;font-family:inherit;color:var(--text-secondary);background:none;border:1px solid var(--border-color);cursor:pointer;transition:all .15s}.filter-btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.filter-btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.filter-btn:not(:first-child){border-left:none}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-btn.active+.filter-btn{border-left-color:var(--accent)}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.detail-toolbar .back-btn{margin:0}.detail-toolbar-actions{display:flex;gap:6px}.toolbar-btn{padding:5px 12px;font-size:11px;font-family:inherit;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;transition:all .15s}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}#context-btn{color:var(--accent);border-color:var(--accent-dim)}#context-btn:hover{background:color-mix(in srgb,var(--accent) 15%,var(--bg-tertiary))}.attendee.clickable{cursor:pointer;transition:background .15s,color .15s}.attendee.clickable:hover{background:var(--accent);color:#fff}@media(max-width:600px){.dashboard-body{flex-direction:column}.actions-sidebar{width:100%;border-left:none;border-top:1px solid var(--border-color);max-height:200px}.detail-body{flex-direction:column}.detail-panels{width:100%;border-left:none;border-top:1px solid var(--border-color)}}.people-header{padding:16px 20px 8px}.people-header h2{margin:0 0 8px;font-size:18px;font-weight:600}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:8px 20px 20px}.person-card{border:1px solid var(--border-color);border-radius:8px;padding:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.person-card:hover{border-color:var(--accent-color, #4a9eff);box-shadow:0 2px 8px #00000014}.person-card.losing-touch{border-left:3px solid #f59e0b}.person-card.has-commitments{border-left:3px solid #6366f1}.person-card-name{font-weight:600;font-size:14px;margin-bottom:4px}.person-card-meta{display:flex;gap:8px;font-size:12px;color:var(--muted-color, #888);margin-bottom:6px}.person-card-topics{font-size:11px;color:var(--muted-color, #888);margin-bottom:6px;font-style:italic}.person-card-status{font-size:12px;font-weight:500}.person-card-status.losing-touch{color:#f59e0b}.person-card-status.has-commitments{color:#6366f1}.person-card-status.clear{color:#22c55e}.person-card-score{font-size:11px;color:var(--muted-color, #888);margin-top:4px}.stat-warn .stat-value{color:#f59e0b}</style>
170
185
  </head>
171
186
  <body>
172
187
  <div class="main">
@@ -201,6 +216,7 @@ ${n}`}]})}let he=!1;function ln(){he=!he,G.requestDisplayMode({mode:he?"fullscre
201
216
  <button class="filter-btn active" data-filter="all">All</button>
202
217
  <button class="filter-btn" data-filter="meeting">Meetings</button>
203
218
  <button class="filter-btn" data-filter="memo">Memos</button>
219
+ <button class="filter-btn" data-filter="people" id="people-tab-btn">People</button>
204
220
  </div>
205
221
  </div>
206
222
  <div class="dashboard-body">
@@ -231,6 +247,13 @@ ${n}`}]})}let he=!1;function ln(){he=!he,G.requestDisplayMode({mode:he?"fullscre
231
247
  <div class="person-body" id="person-body"></div>
232
248
  </div>
233
249
 
250
+ <!-- People Map -->
251
+ <div id="people-map" style="display:none">
252
+ <button class="back-btn" id="people-back-btn">&larr; Back to meetings</button>
253
+ <div class="people-header" id="people-header"></div>
254
+ <div class="people-grid" id="people-grid"></div>
255
+ </div>
256
+
234
257
  <!-- Report -->
235
258
  <div id="report" style="display:none">
236
259
  <div class="report-header" id="report-header"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minutes-mcp",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "description": "MCP server for minutes — conversation memory for AI assistants. Works with Claude Desktop, Cursor, Windsurf, and any MCP client.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",