1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31477,89810,73600,44,30148,96071,82807,35129,e=>{"use strict";let t,s,r;var n,a,i,o,l,c,h,u,d,p,f,m,g,b,y,w,x,v,_,k,S,j,N,R,M,T,A,P,$,E,O,I,z,C,q,W,L,U,D,F,B,X,H,J,K,V,Y,G,Q,Z,ee,et,es,er,en,ea,ei,eo,el,ec,eh,eu,ed,ep,ef,em,eg=e.i(43476),eb=e.i(75157),ey=e.i(43531);e.s(["StepIndicator",0,function({currentStep:e,totalSteps:t,steps:s}){return(0,eg.jsx)("nav",{"aria-label":"Progress",className:"mb-8",children:(0,eg.jsx)("ol",{className:"flex items-center justify-center gap-1 sm:gap-2 md:gap-4",children:s.map((s,r)=>{let n=r+1,a=n<e,i=n===e;return(0,eg.jsxs)("li",{className:"flex items-center",children:[(0,eg.jsxs)("div",{className:"flex flex-col items-center gap-1",children:[(0,eg.jsx)("div",{className:(0,eb.cn)("flex h-7 w-7 sm:h-8 sm:w-8 md:h-10 md:w-10 items-center justify-center rounded-full text-[10px] sm:text-xs md:text-sm font-semibold transition-all duration-200",a&&"bg-green-500 text-white",i&&"bg-[#FFD803] text-black ring-4 ring-[#FFD803]/30",!a&&!i&&"bg-zinc-200 text-zinc-500"),children:a?(0,eg.jsx)(ey.Check,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4 md:h-5 md:w-5"}):n}),(0,eg.jsx)("span",{className:(0,eb.cn)("text-[9px] sm:text-[10px] md:text-xs font-medium text-center leading-tight max-w-[56px] sm:max-w-[64px] md:max-w-none",i?"text-zinc-900":"text-zinc-400"),children:s.title})]}),n<t&&(0,eg.jsx)("div",{className:(0,eb.cn)("h-0.5 w-3 sm:w-5 md:w-10 ml-1 sm:ml-2 md:ml-4 transition-colors duration-200",n<e?"bg-green-500":"bg-zinc-200")})]},s.title)})})})}],89810),e.i(16787);var ew=e.i(93479);e.s(["StepChildInfo",0,function({formData:e,errors:t,updateField:s}){return(0,eg.jsxs)("div",{className:"space-y-6",children:[(0,eg.jsxs)("div",{className:"text-center mb-8",children:[(0,eg.jsx)("h2",{className:"text-2xl font-bold text-zinc-900",children:"Tell us about the child"}),(0,eg.jsx)("p",{className:"mt-2 text-zinc-600",children:"We'll build a one-of-a-kind gift just for them"})]}),(0,eg.jsx)(ew.Input,{label:"Child's Name",placeholder:"Enter the child's name",value:e.childName,onChange:e=>s("childName",e.target.value),error:t.childName,autoFocus:!0}),(0,eg.jsxs)("div",{children:[(0,eg.jsx)("label",{className:"block text-sm font-medium text-zinc-700 mb-1.5",children:"Age"}),(0,eg.jsxs)("div",{className:"flex items-center gap-4",children:[(0,eg.jsx)("button",{type:"button",onClick:()=>s("childAge",Math.max(2,e.childAge-1)),className:"flex h-12 w-12 items-center justify-center rounded-lg border border-zinc-300 text-xl font-medium hover:bg-zinc-50 focus:outline-none focus:ring-2 focus:ring-[#FFD803]",children:"-"}),(0,eg.jsx)("span",{className:"w-12 text-center text-2xl font-bold",children:e.childAge}),(0,eg.jsx)("button",{type:"button",onClick:()=>s("childAge",Math.min(12,e.childAge+1)),className:"flex h-12 w-12 items-center justify-center rounded-lg border border-zinc-300 text-xl font-medium hover:bg-zinc-50 focus:outline-none focus:ring-2 focus:ring-[#FFD803]",children:"+"})]}),t.childAge&&(0,eg.jsx)("p",{className:"mt-1.5 text-sm text-red-500",children:t.childAge})]})]})}],73600);var ex=e.i(12904);let ev=Object.values({bedtime:{id:"bedtime",label:"Bedtime",emoji:"ð",tagline:"Calm & soothing wind-down",narratorStyle:"Warm and soothing, like a beloved grandparent telling a bedtime story â unhurried, tender, and calming",cadence:"slow and gentle; let sentences breathe with a soft, lullaby-like rhythm and generous pauses",energy:"low and calming â quiet wonder rather than high excitement, easing toward a peaceful, sleepy ending",sfxFeel:"soft and sparse â gentle, quiet sounds that never jolt",musicTempo:"slow",musicMoods:["bedtime","peaceful","wonder","love"]},playful:{id:"playful",label:"Playful",emoji:"ð",tagline:"Lighthearted daytime fun",narratorStyle:"Warm, bright, and cheerful, like a fun-loving storyteller sharing a giggly daytime tale â lively but never frantic",cadence:"flowing and upbeat; keep the story moving with bouncy, conversational sentences and playful energy",energy:"cheerful and buoyant â plenty of humor, warmth, and delight, with a satisfying, happy ending",sfxFeel:"fun and characterful â bouncy, whimsical sounds that add sparkle",musicTempo:"medium",musicMoods:["playful","wonder","celebration","magical"]},adventure:{id:"adventure",label:"Adventure",emoji:"ð",tagline:"Fast-paced action & excitement",narratorStyle:"Energetic and thrilling, like an excited storyteller narrating a big daytime adventure â fast-moving and full of momentum",cadence:"brisk and punchy; use shorter, high-energy sentences that keep the action driving forward with no lulls",energy:"high and exciting â bold action, suspense, and momentum building to a triumphant, cheer-worthy climax",sfxFeel:"dynamic and vivid â bold, exciting sounds that heighten the action at key beats",musicTempo:"upbeat",musicMoods:["adventure","tension","celebration","playful"]}}),e_="bedtime";
1function ek({value:e,onChange:t}){return(0,eg.jsxs)("div",{className:"mt-8 pt-6 border-t border-zinc-200",children:[(0,eg.jsx)("label",{className:"block text-sm font-medium text-zinc-700 mb-1.5",children:"Story mood"}),(0,eg.jsx)("p",{className:"text-sm text-zinc-500 mb-3",children:"Set the pace and energy â a calm wind-down or a faster daytime adventure."}),(0,eg.jsx)("div",{role:"radiogroup","aria-label":"Story mood",className:"grid grid-cols-3 gap-2",children:ev.map(s=>{let r=s.id===e;return(0,eg.jsxs)("button",{type:"button",role:"radio","aria-checked":r,tabIndex:r?0:-1,onClick:()=>t(s.id),onKeyDown:s=>{if("ArrowRight"!==s.key&&"ArrowLeft"!==s.key)return;s.preventDefault();let r=ev.findIndex(t=>t.id===e),n="ArrowRight"===s.key?(r+1)%ev.length:(r-1+ev.length)%ev.length;t(ev[n].id),s.currentTarget.parentElement?.querySelectorAll('[role="radio"]')[n]?.focus()},className:(0,eb.cn)("flex flex-col items-center justify-center rounded-xl border px-2 py-3 text-center transition-colors focus:outline-none focus:ring-2 focus:ring-[#FFD803]",r?"border-transparent bg-[#FFD803] shadow-sm":"border-zinc-300 bg-white hover:border-zinc-400"),children:[(0,eg.jsx)("span",{className:"text-xl","aria-hidden":"true",children:s.emoji}),(0,eg.jsx)("span",{className:(0,eb.cn)("mt-1 text-sm font-semibold",r?"text-zinc-900":"text-zinc-800"),children:s.label}),(0,eg.jsx)("span",{className:(0,eb.cn)("mt-0.5 text-[11px] leading-tight",r?"text-zinc-700":"text-zinc-500"),children:s.tagline})]},s.id)})})]})}e.s(["DEFAULT_STORY_MODE",0,e_,"STORY_MODE_LIST",0,ev],44),e.s(["StepInterests",0,function({formData:e,errors:t,updateField:s}){return(0,eg.jsxs)("div",{className:"space-y-6",children:[(0,eg.jsxs)("div",{className:"text-center mb-8",children:[(0,eg.jsxs)("h2",{className:"text-2xl font-bold text-zinc-900",children:["What does ",e.childName||"your child"," love?"]}),(0,eg.jsx)("p",{className:"mt-2 text-zinc-600",children:"Select up to 3 interests to include in their gift"})]}),(0,eg.jsx)(ex.InterestSelector,{selectedInterests:e.interests,onSelect:e=>s("interests",e),maxSelections:3,error:t.interests}),(0,eg.jsx)(ek,{value:e.storyMode??e_,onChange:e=>s("storyMode",e)}),(0,eg.jsxs)("div",{className:"mt-8 pt-6 border-t border-zinc-200",children:[(0,eg.jsx)("label",{className:"block text-sm font-medium text-zinc-700 mb-1.5",children:"Custom prompt (optional)"}),(0,eg.jsx)("p",{className:"text-sm text-zinc-500 mb-3",children:"Add any special requests, themes, or lessons you'd like included"}),(0,eg.jsx)("textarea",{value:e.customPrompt||"",onChange:e=>s("customPrompt",e.target.value),placeholder:"e.g., Include a lesson about sharing, mention their pet dog Max...",className:"flex min-h-[100px] w-full rounded-lg border border-zinc-300 bg-white px-4 py-3 text-base transition-colors placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-[#FFD803] focus:border-transparent resize-none",rows:3})]}),(0,eg.jsx)("div",{className:"mt-6 pt-6 border-t border-zinc-200",children:(0,eg.jsx)(ew.Input,{type:"email",label:"Your email address",placeholder:"[email protected]",value:e.purchaserEmail||"",onChange:e=>s("purchaserEmail",e.target.value),error:t.purchaserEmail,helperText:"For your receipt â you can send the gift to someone else later"})})]})}],30148);var eS=e.i(71645),ej=e.i(19455),eN=e.i(24687),eR=e.i(83086),eM=e.i(31278),eT=e.i(16715),eA=e.i(33060);function eP(e,t,s,r,n){if("m"===r)throw TypeError("Private method is not writable");if("a"===r&&!n)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,s):n?n.value=s:t.set(e,s),s}function e$(e,t,s,r){if("a"===s&&!r)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?r:"a"===s?r.call(e):r?r.value:t.get(e)}e.i(47167);let eE=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return eE=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),s=e?()=>e.getRandomValues(t)[0]:()=>255*Math.random()&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^s()&15>>e/4).toString(16))};function eO(e){return"object"==typeof e&&null!==e&&("name"in e&&"AbortError"===e.name||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}let eI=e=>{if(e instanceof Error)return e;if("object"==typeof e&&null!==e){try{if("[object Error]"===Object.prototype.toString.call(e)){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)};
1class ez extends Error{}class eC extends ez{constructor(e,t,s,r){super(`${eC.makeMessage(e,t,s)}`),this.status=e,this.headers=r,this.requestID=r?.get("request-id"),this.error=t}static makeMessage(e,t,s){let r=t?.message?"string"==typeof t.message?t.message:JSON.stringify(t.message):t?JSON.stringify(t):s;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,s,r){return e&&r?400===e?new eU(e,t,s,r):401===e?new eD(e,t,s,r):403===e?new eF(e,t,s,r):404===e?new eB(e,t,s,r):409===e?new eX(e,t,s,r):422===e?new eH(e,t,s,r):429===e?new eJ(e,t,s,r):e>=500?new eK(e,t,s,r):new eC(e,t,s,r):new eW({message:s,cause:eI(t)})}}class eq extends eC{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class eW extends eC{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}}class eL extends eW{constructor({message:e}={}){super({message:e??"Request timed out."})}}class eU extends eC{}class eD extends eC{}class eF extends eC{}class eB extends eC{}class eX extends eC{}class eH extends eC{}class eJ extends eC{}class eK extends eC{}let eV=/^[a-z][a-z0-9+.-]*:/i,eY=e=>(eY=Array.isArray)(e),eG=eY;function eQ(e){return"object"!=typeof e?{}:e??{}}let eZ=e=>{try{return JSON.parse(e)}catch(e){return}},e0="0.71.2",e1=e=>"x32"===e?"x32":"x86_64"===e||"x64"===e?"x64":"arm"===e?"arm":"aarch64"===e||"arm64"===e?"arm64":e?`other:${e}`:"unknown",e2=e=>(e=e.toLowerCase()).includes("ios")?"iOS":"android"===e?"Android":"darwin"===e?"MacOS":"win32"===e?"Windows":"freebsd"===e?"FreeBSD":"openbsd"===e?"OpenBSD":"linux"===e?"Linux":e?`Other:${e}`:"Unknown";function e4(...e){let t=globalThis.ReadableStream;if(void 0===t)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function e5(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return e4({start(){},async pull(e){let{done:s,value:r}=await t.next();s?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function e3(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function e6(e){if(null===e||"object"!=typeof e)return;if(e[Symbol.asyncIterator])return void await e[Symbol.asyncIterator]().return?.();let t=e.getReader(),s=t.cancel();t.releaseLock(),await s}let e8=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)});function e9(e){let t;return(s??(s=(t=new globalThis.TextEncoder).encode.bind(t)))(e)}function e7(e){let t;return(r??(r=(t=new globalThis.TextDecoder).decode.bind(t)))(e)}class te{constructor(){n.set(this,void 0),a.set(this,void 0),eP(this,n,new Uint8Array,"f"),eP(this,a,null,"f")}decode(e){let t;if(null==e)return[];let s=e instanceof ArrayBuffer?new Uint8Array(e):"string"==typeof e?e9(e):e;eP(this,n,function(e){let t=0;for(let s of e)t+=s.length;let s=new Uint8Array(t),r=0;for(let t of e)s.set(t,r),r+=t.length;return s}([e$(this,n,"f"),s]),"f");let r=[];for(;null!=(t=function(e,t){for(let s=t??0;s<e.length;s++){if(10===e[s])return{preceding:s,index:s+1,carriage:!1};if(13===e[s])return{preceding:s,index:s+1,carriage:!0}}return null}(e$(this,n,"f"),e$(this,a,"f")));){if(t.carriage&&null==e$(this,a,"f")){eP(this,a,t.index,"f");continue}if(null!=e$(this,a,"f")&&(t.index!==e$(this,a,"f")+1||t.carriage)){r.push(e7(e$(this,n,"f").subarray(0,e$(this,a,"f")-1))),eP(this,n,e$(this,n,"f").subarray(e$(this,a,"f")),"f"),eP(this,a,null,"f");continue}let e=null!==e$(this,a,"f")?t.preceding-1:t.preceding,s=e7(e$(this,n,"f").subarray(0,e));r.push(s),eP(this,n,e$(this,n,"f").subarray(t.index),"f"),eP(this,a,null,"f")}return r}flush(){return e$(this,n,"f").length?this.decode("\n"):[]}}n=new WeakMap,a=new WeakMap,te.NEWLINE_CHARS=new Set(["\n","\r"]),te.NEWLINE_REGEXP=/\r\n|[\n\r]/g;let tt={off:0,error:200,warn:300,info:400,debug:500},ts=(e,t,s)=>{if(e){if(Object.prototype.hasOwnProperty.call(tt,e))return e;to(s).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(tt))}`)}};function tr(){}function tn(e,t,s){return!t||tt[e]>tt[s]?tr:t[e].bind(t)}let ta={error:tr,warn:tr,info:tr,debug:tr},ti=new WeakMap;function to(e){let t=e.logger,s=e.logLevel??"off";if(!t)return ta;let r=ti.get(t);if(r&&r[0]===s)return r[1];let n={error:tn("error",t,s),warn:tn("warn",t,s),info:tn("info",t,s),debug:tn("debug",t,s)};return ti.set(t,[s,n]),n}let tl=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,"x-api-key"===e.toLowerCase()||"authorization"===e.toLowerCase()||"cookie"===e.toLowerCase()||"set-cookie"===e.toLowerCase()?"***":t]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);class tc{constructor(e,t,s){this.iterator=e,i.set(this,void 0),this.controller=t,eP(this,i,s,"f")}static fromSSEResponse(e,t,s){let r=!1,n=s?to(s):console;async function*a(){if(r)throw new ez("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let s=!1;try{for await(let s of th(e,t)){if("completion"===s.event)try{yield JSON.parse(s.data)}catch(e){throw n.error("Could not parse message into JSON:",s.data),n.error("From chunk:",s.raw),e}if("message_start"===s.event||"message_delta"===s.event||"message_stop"===s.event||"content_block_start"===s.event||"content_block_delta"===s.event||"content_block_stop"===s.event)try{yield JSON.parse(s.data)}catch(e){throw n.error("Could not parse message into JSON:",s.data),n.error("From chunk:",s.raw),e}if("ping"!==s.event&&"error"===s.event)throw new eC(void 0,eZ(s.data)??s.data,void 0,e.headers)}s=!0}catch(e){if(eO(e))return;throw e}finally{s||t.abort()}}return new tc(a,t,s)}static fromReadableStream(e,t,s){let r=!1;async function*n(){let t=new te;for await(let s of e3(e))for(let e of t.decode(s))yield e;for(let e of t.flush())yield e}return new tc(async function*(){if(r)throw new ez("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let e=!1;try{for await(let t of n())!e&&t&&(yield JSON.parse(t));e=!0}catch(e){if(eO(e))return;throw e}finally{e||t.abort()}},t,s)}[(i=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],t=[],s=this.iterator(),r=r=>({next:()=>{if(0===r.length){let r=s.next();e.push(r),t.push(r)}return r.shift()}});return[new tc(()=>r(e),this.controller,e$(this,i,"f")),new tc(()=>r(t),this.controller,e$(this,i,"f"))]}toReadableStream(){let e,t=this;
1return e4({async start(){e=t[Symbol.asyncIterator]()},async pull(t){try{let{value:s,done:r}=await e.next();if(r)return t.close();let n=e9(JSON.stringify(s)+"\n");t.enqueue(n)}catch(e){t.error(e)}},async cancel(){await e.return?.()}})}}async function*th(e,t){if(!e.body){if(t.abort(),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product)throw new ez("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new ez("Attempted to iterate over a response with no body")}let s=new td,r=new te;for await(let t of tu(e3(e.body)))for(let e of r.decode(t)){let t=s.decode(e);t&&(yield t)}for(let e of r.flush()){let t=s.decode(e);t&&(yield t)}}async function*tu(e){let t=new Uint8Array;for await(let s of e){let e;if(null==s)continue;let r=s instanceof ArrayBuffer?new Uint8Array(s):"string"==typeof s?e9(s):s,n=new Uint8Array(t.length+r.length);for(n.set(t),n.set(r,t.length),t=n;-1!==(e=function(e){for(let t=0;t<e.length-1;t++){if(10===e[t]&&10===e[t+1]||13===e[t]&&13===e[t+1])return t+2;if(13===e[t]&&10===e[t+1]&&t+3<e.length&&13===e[t+2]&&10===e[t+3])return t+4}return -1}(t));)yield t.slice(0,e),t=t.slice(e)}t.length>0&&(yield t)}class td{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){var t;let s;if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join("\n"),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],e}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,n,a]=-1!==(s=(t=e).indexOf(":"))?[t.substring(0,s),":",t.substring(s+1)]:[t,"",""];return a.startsWith(" ")&&(a=a.substring(1)),"event"===r?this.event=a:"data"===r&&this.data.push(a),null}}async function tp(e,t){let{response:s,requestLogID:r,retryOfRequestLogID:n,startTime:a}=t,i=await (async()=>{if(t.options.stream)return(to(e).debug("response",s.status,s.url,s.headers,s.body),t.options.__streamClass)?t.options.__streamClass.fromSSEResponse(s,t.controller):tc.fromSSEResponse(s,t.controller);if(204===s.status)return null;if(t.options.__binaryResponse)return s;let r=s.headers.get("content-type"),n=r?.split(";")[0]?.trim();return n?.includes("application/json")||n?.endsWith("+json")?tf(await s.json(),s):await s.text()})();return to(e).debug(`[${r}] response parsed`,tl({retryOfRequestLogID:n,url:s.url,status:s.status,body:i,durationMs:Date.now()-a})),i}function tf(e,t){return!e||"object"!=typeof e||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get("request-id"),enumerable:!1})}class tm extends Promise{constructor(e,t,s=tp){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=s,o.set(this,void 0),eP(this,o,e,"f")}_thenUnwrap(e){return new tm(e$(this,o,"f"),this.responsePromise,async(t,s)=>tf(e(await this.parseResponse(t,s),s),s.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(e$(this,o,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}o=new WeakMap;class tg{constructor(e,t,s,r){l.set(this,void 0),eP(this,l,e,"f"),this.options=r,this.response=t,this.body=s}hasNextPage(){return!!this.getPaginatedItems().length&&null!=this.nextPageRequestOptions()}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new ez("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await e$(this,l,"f").requestAPIList(this.constructor,e)}async *iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async *[(l=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}}class tb extends tm{constructor(e,t,s){super(e,t,async(e,t)=>new s(e,t.response,await tp(e,t),t.options))}async *[Symbol.asyncIterator](){for await(let e of(await this))yield e}}class ty extends tg{constructor(e,t,s,r){super(e,t,s,r),this.data=s.data||[],this.has_more=s.has_more||!1,this.first_id=s.first_id||null,this.last_id=s.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return!1!==this.has_more&&super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let e=this.first_id;return e?{...this.options,query:{...eQ(this.options.query),before_id:e}}:null}let e=this.last_id;return e?{...this.options,query:{...eQ(this.options.query),after_id:e}}:null}}class tw extends tg{constructor(e,t,s,r){super(e,t,s,r),this.data=s.data||[],this.has_more=s.has_more||!1,this.next_page=s.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return!1!==this.has_more&&super.hasNextPage()}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...eQ(this.options.query),page:e}}:null}}let tx=()=>
1{if("u"<typeof File){let{process:e}=globalThis;throw Error("`File` is not defined as a global, which is required for file uploads."+("string"==typeof e?.versions?.node&&20>parseInt(e.versions.node.split("."))?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function tv(e,t,s){return tx(),new File(e,t??"unknown_file",s)}function t_(e){return("object"==typeof e&&null!==e&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"").split(/[\\/]/).pop()||void 0}let tk=e=>null!=e&&"object"==typeof e&&"function"==typeof e[Symbol.asyncIterator],tS=async(e,t)=>({...e,body:await tN(e.body,t)}),tj=new WeakMap,tN=async(e,t)=>{if(!await function(e){let t="function"==typeof e?e:e.fetch,s=tj.get(t);if(s)return s;let r=(async()=>{try{let e="Response"in t?t.Response:(await t("data:,")).constructor,s=new FormData;if(s.toString()===await new e(s).text())return!1;return!0}catch{return!0}})();return tj.set(t,r),r}(t))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let s=new FormData;return await Promise.all(Object.entries(e||{}).map(([e,t])=>tR(s,e,t))),s},tR=async(e,t,s)=>{if(void 0!==s){if(null==s)throw TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if("string"==typeof s||"number"==typeof s||"boolean"==typeof s)e.append(t,String(s));else if(s instanceof Response){let r={},n=s.headers.get("Content-Type");n&&(r={type:n}),e.append(t,tv([await s.blob()],t_(s),r))}else if(tk(s))e.append(t,tv([await new Response(e5(s)).blob()],t_(s)));else{let r;if((r=s)instanceof Blob&&"name"in r)e.append(t,tv([s],t_(s),{type:s.type}));else if(Array.isArray(s))await Promise.all(s.map(s=>tR(e,t+"[]",s)));else if("object"==typeof s)await Promise.all(Object.entries(s).map(([s,r])=>tR(e,`${t}[${s}]`,r)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${s} instead`)}}},tM=e=>null!=e&&"object"==typeof e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.text&&"function"==typeof e.slice&&"function"==typeof e.arrayBuffer;async function tT(e,t,s){let r,n;if(tx(),e=await e,t||(t=t_(e)),null!=(r=e)&&"object"==typeof r&&"string"==typeof r.name&&"number"==typeof r.lastModified&&tM(r))return e instanceof File&&null==t&&null==s?e:tv([await e.arrayBuffer()],t??e.name,{type:e.type,lastModified:e.lastModified,...s});if(null!=(n=e)&&"object"==typeof n&&"string"==typeof n.url&&"function"==typeof n.blob){let r=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),tv(await tA(r),t,s)}let a=await tA(e);if(!s?.type){let e=a.find(e=>"object"==typeof e&&"type"in e&&e.type);"string"==typeof e&&(s={...s,type:e})}return tv(a,t,s)}async function tA(e){let t=[];if("string"==typeof e||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(tM(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(tk(e))for await(let s of e)t.push(...await tA(s));else{let t=e?.constructor?.name;throw Error(`Unexpected data type: ${typeof e}${t?`; constructor: ${t}`:""}${function(e){if("object"!=typeof e||null===e)return"";let t=Object.getOwnPropertyNames(e);return`; props: [${t.map(e=>`"${e}"`).join(", ")}]`}(e)}`)}return t}class tP{constructor(e){this._client=e}}let t$=Symbol.for("brand.privateNullableHeaders"),tE=e=>{let t=new Headers,s=new Set;for(let r of e){let e=new Set;for(let[n,a]of function*(e){let t;if(!e)return;if(t$ in e){let{values:t,nulls:s}=e;for(let e of(yield*t.entries(),s))yield[e,null];return}let s=!1;for(let r of(e instanceof Headers?t=e.entries():eG(e)?t=e:(s=!0,t=Object.entries(e??{})),t)){let e=r[0];if("string"!=typeof e)throw TypeError("expected header name to be a string");let t=eG(r[1])?r[1]:[r[1]],n=!1;for(let r of t)void 0!==r&&(s&&!n&&(n=!0,yield[e,null]),yield[e,r])}}(r)){let r=n.toLowerCase();e.has(r)||(t.delete(n),e.add(r)),null===a?(t.delete(n),s.add(r)):(t.append(n,a),s.delete(r))}}return{[t$]:!0,values:t,nulls:s}};function tO(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}let tI=Object.freeze(Object.create(null)),tz=((e=tO)=>function(t,...s){let r;if(1===t.length)return t[0];let n=!1,a=[],i=t.reduce((t,r,i)=>{/[?#]/.test(r)&&(n=!0);let o=s[i],l=(n?encodeURIComponent:e)(""+o);return i!==s.length&&(null==o||"object"==typeof o&&o.toString===Object.getPrototypeOf(Object.getPrototypeOf(o.hasOwnProperty??tI)??tI)?.toString)&&(l=o+"",a.push({start:t.length+r.length,length:l.length,error:`Value of type ${Object.prototype.toString.call(o).slice(8,-1)} is not a valid path parameter`})),t+r+(i===s.length?"":l)},""),o=i.split(/[?#]/,1)[0],l=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;for(;null!==(r=l.exec(o));)a.push({start:r.index,length:r[0].length,error:`Value "${r[0]}" can't be safely passed as a path parameter`});if(a.sort((e,t)=>
1e.start-t.start),a.length>0){let e=0,t=a.reduce((t,s)=>{let r=" ".repeat(s.start-e),n="^".repeat(s.length);return e=s.start+s.length,t+r+n},"");throw new ez(`Path parameters result in path with invalid segments: 2${a.map(e=>e.error).join("\n")} 3${i} 4${t}`)}return i})(tO);class tC extends tP{list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/files",ty,{query:r,...t,headers:tE([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tz`/v1/files/${e}`,{...s,headers:tE([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},s?.headers])})}download(e,t={},s){let{betas:r}=t??{};return this._client.get(tz`/v1/files/${e}/content`,{...s,headers:tE([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},s?.headers]),__binaryResponse:!0})}retrieveMetadata(e,t={},s){let{betas:r}=t??{};return this._client.get(tz`/v1/files/${e}`,{...s,headers:tE([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},s?.headers])})}upload(e,t){let{betas:s,...r}=e;return this._client.post("/v1/files",tS({body:r,...t,headers:tE([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},t?.headers])},this._client))}}class tq extends tP{retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tz`/v1/models/${e}?beta=true`,{...s,headers:tE([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/models?beta=true",ty,{query:r,...t,headers:tE([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers])})}}let tW={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function tL(e,t,s){return t&&"parse"in(t.output_format??{})?tU(e,t,s):{...e,content:e.content.map(e=>"text"===e.type?Object.defineProperty(Object.defineProperty({...e},"parsed_output",{value:null,enumerable:!1}),"parsed",{get:()=>(s.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null),enumerable:!1}):e),parsed_output:null}}function tU(e,t,s){let r=null,n=e.content.map(e=>{if("text"===e.type){let n=function(e,t){if(e.output_format?.type!=="json_schema")return null;try{if("parse"in e.output_format)return e.output_format.parse(t);return JSON.parse(t)}catch(e){throw new ez(`Failed to parse structured output: ${e}`)}}(t,e.text);return null===r&&(r=n),Object.defineProperty(Object.defineProperty({...e},"parsed_output",{value:n,enumerable:!1}),"parsed",{get:()=>(s.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),n),enumerable:!1})}return e});return{...e,content:n,parsed_output:r}}let tD=e=>{if(0===e.length)return e;let t=e[e.length-1];switch(t.type){case"separator":return tD(e=e.slice(0,e.length-1));case"number":let s=t.value[t.value.length-1];if("."===s||"-"===s)return tD(e=e.slice(0,e.length-1));case"string":let r=e[e.length-2];if(r?.type==="delimiter"||r?.type==="brace"&&"{"===r.value)return tD(e=e.slice(0,e.length-1));break;case"delimiter":return tD(e=e.slice(0,e.length-1))}return e},tF=e=>{var t;let s,r;return JSON.parse((t=tD((e=>{let t=0,s=[];for(;t<e.length;){let r=e[t];if("\\"===r){t++;continue}if("{"===r){s.push({type:"brace",value:"{"}),t++;continue}if("}"===r){s.push({type:"brace",value:"}"}),t++;continue}if("["===r){s.push({type:"paren",value:"["}),t++;continue}if("]"===r){s.push({type:"paren",value:"]"}),t++;continue}if(":"===r){s.push({type:"separator",value:":"}),t++;continue}if(","===r){s.push({type:"delimiter",value:","}),t++;continue}if('"'===r){let n="",a=!1;for(r=e[++t];'"'!==r;){if(t===e.length){a=!0;break}if("\\"===r){if(++t===e.length){a=!0;break}n+=r+e[t],r=e[++t]}else n+=r,r=e[++t]}r=e[++t],a||s.push({type:"string",value:n});continue}let n=/\s/;if(r&&n.test(r)){t++;continue}let a=/[0-9]/;if(r&&a.test(r)||"-"===r||"."===r){let n="";for("-"===r&&(n+=r,r=e[++t]);r&&a.test(r)||"."===r;)n+=r,r=e[++t];s.push({type:"number",value:n});continue}let i=/[a-z]/i;
4if(r&&i.test(r)){let n="";for(;r&&i.test(r)&&t!==e.length;)n+=r,r=e[++t];"true"==n||"false"==n||"null"===n?s.push({type:"name",value:n}):t++;continue}t++}return s})(e)),s=[],t.map(e=>{"brace"===e.type&&("{"===e.value?s.push("}"):s.splice(s.lastIndexOf("}"),1)),"paren"===e.type&&("["===e.value?s.push("]"):s.splice(s.lastIndexOf("]"),1))}),s.length>0&&s.reverse().map(e=>{"}"===e?t.push({type:"brace",value:"}"}):"]"===e&&t.push({type:"paren",value:"]"})}),r="",t.map(e=>{"string"===e.type?r+='"'+e.value+'"':r+=e.value}),r))},tB="__json_buf";function tX(e){return"tool_use"===e.type||"server_tool_use"===e.type||"mcp_tool_use"===e.type}class tH{constructor(e,t){c.add(this),this.messages=[],this.receivedMessages=[],h.set(this,void 0),u.set(this,null),this.controller=new AbortController,d.set(this,void 0),p.set(this,()=>{}),f.set(this,()=>{}),m.set(this,void 0),g.set(this,()=>{}),b.set(this,()=>{}),y.set(this,{}),w.set(this,!1),x.set(this,!1),v.set(this,!1),_.set(this,!1),k.set(this,void 0),S.set(this,void 0),j.set(this,void 0),M.set(this,e=>{if(eP(this,x,!0,"f"),eO(e)&&(e=new eq),e instanceof eq)return eP(this,v,!0,"f"),this._emit("abort",e);if(e instanceof ez)return this._emit("error",e);if(e instanceof Error){let t=new ez(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new ez(String(e)))}),eP(this,d,new Promise((e,t)=>{eP(this,p,e,"f"),eP(this,f,t,"f")}),"f"),eP(this,m,new Promise((e,t)=>{eP(this,g,e,"f"),eP(this,b,t,"f")}),"f"),e$(this,d,"f").catch(()=>{}),e$(this,m,"f").catch(()=>{}),eP(this,u,e,"f"),eP(this,j,t?.logger??console,"f")}get response(){return e$(this,k,"f")}get request_id(){return e$(this,S,"f")}async withResponse(){eP(this,_,!0,"f");let e=await e$(this,d,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let t=new tH(null);return t._run(()=>t._fromReadableStream(e)),t}static createMessage(e,t,s,{logger:r}={}){let n=new tH(t,{logger:r});for(let e of t.messages)n._addMessageParam(e);return eP(n,u,{...t,stream:!0},"f"),n._run(()=>n._createMessage(e,{...t,stream:!0},{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),n}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},e$(this,M,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,t=!0){this.receivedMessages.push(e),t&&this._emit("message",e)}async _createMessage(e,t,s){let r,n=s?.signal;n&&(n.aborted&&this.controller.abort(),r=this.controller.abort.bind(this.controller),n.addEventListener("abort",r));try{e$(this,c,"m",T).call(this);let{response:r,data:n}=await e.create({...t,stream:!0},{...s,signal:this.controller.signal}).withResponse();for await(let e of(this._connected(r),n))e$(this,c,"m",A).call(this,e);if(n.controller.signal?.aborted)throw new eq;e$(this,c,"m",P).call(this)}finally{n&&r&&n.removeEventListener("abort",r)}}_connected(e){this.ended||(eP(this,k,e,"f"),eP(this,S,e?.headers.get("request-id"),"f"),e$(this,p,"f").call(this,e),this._emit("connect"))}get ended(){return e$(this,w,"f")}get errored(){return e$(this,x,"f")}get aborted(){return e$(this,v,"f")}abort(){this.controller.abort()}on(e,t){return(e$(this,y,"f")[e]||(e$(this,y,"f")[e]=[])).push({listener:t}),this}off(e,t){let s=e$(this,y,"f")[e];if(!s)return this;let r=s.findIndex(e=>e.listener===t);return r>=0&&s.splice(r,1),this}once(e,t){return(e$(this,y,"f")[e]||(e$(this,y,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,s)=>{eP(this,_,!0,"f"),"error"!==e&&this.once("error",s),this.once(e,t)})}async done(){eP(this,_,!0,"f"),await e$(this,m,"f")}get currentMessage(){return e$(this,h,"f")}async finalMessage(){return await this.done(),e$(this,c,"m",N).call(this)}async finalText(){return await this.done(),e$(this,c,"m",R).call(this)}_emit(e,...t){if(e$(this,w,"f"))return;"end"===e&&(eP(this,w,!0,"f"),e$(this,g,"f").call(this));let s=e$(this,y,"f")[e];if(s&&(e$(this,y,"f")[e]=s.filter(e=>!e.once),s.forEach(({listener:e})=>e(...t))),"abort"===e){let e=t[0];e$(this,_,"f")||s?.length||Promise.reject(e),e$(this,f,"f").call(this,e),e$(this,b,"f").call(this,e),this._emit("end");return}if("error"===e){let e=t[0];e$(this,_,"f")||s?.length||Promise.reject(e),e$(this,f,"f").call(this,e),e$(this,b,"f").call(this,e),this._emit("end")}}
4_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",e$(this,c,"m",N).call(this))}async _fromReadableStream(e,t){let s,r=t?.signal;r&&(r.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),r.addEventListener("abort",s));try{e$(this,c,"m",T).call(this),this._connected(null);let t=tc.fromReadableStream(e,this.controller);for await(let e of t)e$(this,c,"m",A).call(this,e);if(t.controller.signal?.aborted)throw new eq;e$(this,c,"m",P).call(this)}finally{r&&s&&r.removeEventListener("abort",s)}}[(h=new WeakMap,u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakMap,m=new WeakMap,g=new WeakMap,b=new WeakMap,y=new WeakMap,w=new WeakMap,x=new WeakMap,v=new WeakMap,_=new WeakMap,k=new WeakMap,S=new WeakMap,j=new WeakMap,M=new WeakMap,c=new WeakSet,N=function(){if(0===this.receivedMessages.length)throw new ez("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},R=function(){if(0===this.receivedMessages.length)throw new ez("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(e=>"text"===e.type).map(e=>e.text);if(0===e.length)throw new ez("stream ended without producing a content block with type=text");return e.join(" ")},T=function(){this.ended||eP(this,h,void 0,"f")},A=function(e){if(this.ended)return;let t=e$(this,c,"m",$).call(this,e);switch(this._emit("streamEvent",e,t),e.type){case"content_block_delta":{let s=t.content.at(-1);switch(e.delta.type){case"text_delta":"text"===s.type&&this._emit("text",e.delta.text,s.text||"");break;case"citations_delta":"text"===s.type&&this._emit("citation",e.delta.citation,s.citations??[]);break;case"input_json_delta":tX(s)&&s.input&&this._emit("inputJson",e.delta.partial_json,s.input);break;case"thinking_delta":"thinking"===s.type&&this._emit("thinking",e.delta.thinking,s.thinking);break;case"signature_delta":"thinking"===s.type&&this._emit("signature",s.signature);break;default:tJ(e.delta)}break}case"message_stop":this._addMessageParam(t),this._addMessage(tL(t,e$(this,u,"f"),{logger:e$(this,j,"f")}),!0);break;case"content_block_stop":this._emit("contentBlock",t.content.at(-1));break;case"message_start":eP(this,h,t,"f")}},P=function(){if(this.ended)throw new ez("stream has ended, this shouldn't happen");let e=e$(this,h,"f");if(!e)throw new ez("request ended without sending any chunks");return eP(this,h,void 0,"f"),tL(e,e$(this,u,"f"),{logger:e$(this,j,"f")})},$=function(e){let t=e$(this,h,"f");if("message_start"===e.type){if(t)throw new ez(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!t)throw new ez(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":case"content_block_stop":return t;case"message_delta":return t.container=e.delta.container,t.stop_reason=e.delta.stop_reason,t.stop_sequence=e.delta.stop_sequence,t.usage.output_tokens=e.usage.output_tokens,t.context_management=e.context_management,null!=e.usage.input_tokens&&(t.usage.input_tokens=e.usage.input_tokens),null!=e.usage.cache_creation_input_tokens&&(t.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),null!=e.usage.cache_read_input_tokens&&(t.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),null!=e.usage.server_tool_use&&(t.usage.server_tool_use=e.usage.server_tool_use),t;case"content_block_start":return t.content.push(e.content_block),t;case"content_block_delta":{let s=t.content.at(e.index);switch(e.delta.type){case"text_delta":s?.type==="text"&&(t.content[e.index]={...s,text:(s.text||"")+e.delta.text});break;case"citations_delta":s?.type==="text"&&(t.content[e.index]={...s,citations:[...s.citations??[],e.delta.citation]});break;case"input_json_delta":if(s&&tX(s)){let r=s[tB]||"";r+=e.delta.partial_json;let n={...s};if(Object.defineProperty(n,tB,{value:r,enumerable:!1,writable:!0}),r)try{n.input=tF(r)}catch(t){let e=new ez(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${t}. JSON: ${r}`);e$(this,M,"f").call(this,e)}t.content[e.index]=n}break;case"thinking_delta":s?.type==="thinking"&&(t.content[e.index]={...s,thinking:s.thinking+e.delta.thinking});break;case"signature_delta":s?.type==="thinking"&&(t.content[e.index]={...s,signature:e.delta.signature});break;default:tJ(e.delta)}return t}}},Symbol.asyncIterator)](){let e=[],t=[],s=!1;return this.on("streamEvent",s=>{let r=t.shift();r?r.resolve(s):e.push(s)}),this.on("end",()=>{for(let e of(s=!0,t))e.resolve(void 0);t.length=0}),this.on("abort",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),this.on("error",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:s?{value:void 0,done:!0}:new Promise((e,s)=>t.push({resolve:e,reject:s})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new tc(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function tJ(e){}let tK=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficie
4ntly in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: 51. Task Overview 6The user's core request and success criteria 7Any clarifications or constraints they specified 82. Current State 9What has been completed so far 10Files created, modified, or analyzed (with paths if relevant) 11Key outputs or artifacts produced 123. Important Discoveries 13Technical constraints or requirements uncovered 14Decisions made and their rationale 15Errors encountered and how they were resolved 16What approaches were tried that didn't work (and why) 174. Next Steps 18Specific actions needed to complete the task 19Any blockers or open questions to resolve 20Priority order if multiple steps remain 215. Context to Preserve 22User preferences or style requirements 23Domain-specific details that aren't obvious 24Any promises made to the user 25Be concise but completeâerr on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task. 26Wrap your summary in <summary></summary> tags.`;function tV(){let e,t;return{promise:new Promise((s,r)=>{e=s,t=r}),resolve:e,reject:t}}class tY{constructor(e,t,s){E.add(this),this.client=e,O.set(this,!1),I.set(this,!1),z.set(this,void 0),C.set(this,void 0),q.set(this,void 0),W.set(this,void 0),L.set(this,void 0),U.set(this,0),eP(this,z,{params:{...t,messages:structuredClone(t.messages)}},"f"),eP(this,C,{...s,headers:tE([{"x-stainless-helper":"BetaToolRunner"},s?.headers])},"f"),eP(this,L,tV(),"f")}async *[(O=new WeakMap,I=new WeakMap,z=new WeakMap,C=new WeakMap,q=new WeakMap,W=new WeakMap,L=new WeakMap,U=new WeakMap,E=new WeakSet,D=async function(){let e=e$(this,z,"f").params.compactionControl;if(!e||!e.enabled)return!1;let t=0;if(void 0!==e$(this,q,"f"))try{let e=await e$(this,q,"f");t=e.usage.input_tokens+(e.usage.cache_creation_input_tokens??0)+(e.usage.cache_read_input_tokens??0)+e.usage.output_tokens}catch{return!1}if(t<(e.contextTokenThreshold??1e5))return!1;let s=e.model??e$(this,z,"f").params.model,r=e.summaryPrompt??tK,n=e$(this,z,"f").params.messages;if("assistant"===n[n.length-1].role){let e=n[n.length-1];if(Array.isArray(e.content)){let t=e.content.filter(e=>"tool_use"!==e.type);0===t.length?n.pop():e.content=t}}let a=await this.client.beta.messages.create({model:s,messages:[...n,{role:"user",content:[{type:"text",text:r}]}],max_tokens:e$(this,z,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(a.content[0]?.type!=="text")throw new ez("Expected text response for compaction");return e$(this,z,"f").params.messages=[{role:"user",content:a.content}],!0},Symbol.asyncIterator)](){var e;if(e$(this,O,"f"))throw new ez("Cannot iterate over a consumed stream");eP(this,O,!0,"f"),eP(this,I,!0,"f"),eP(this,W,void 0,"f");try{for(;;){let t;try{if(e$(this,z,"f").params.max_iterations&&e$(this,U,"f")>=e$(this,z,"f").params.max_iterations)break;eP(this,I,!1,"f"),eP(this,W,void 0,"f"),eP(this,U,(e=e$(this,U,"f"),++e),"f"),eP(this,q,void 0,"f");let{max_iterations:s,compactionControl:r,...n}=e$(this,z,"f").params;if(n.stream?(t=this.client.beta.messages.stream({...n},e$(this,C,"f")),eP(this,q,t.finalMessage(),"f"),e$(this,q,"f").catch(()=>{}),yield t):(eP(this,q,this.client.beta.messages.create({...n,stream:!1},e$(this,C,"f")),"f"),yield e$(this,q,"f")),!await e$(this,E,"m",D).call(this)){if(!e$(this,I,"f")){let{role:e,content:t}=await e$(this,q,"f");e$(this,z,"f").params.messages.push({role:e,content:t})}let e=await e$(this,E,"m",F).call(this,e$(this,z,"f").params.messages.at(-1));if(e)e$(this,z,"f").params.messages.push(e);else if(!e$(this,I,"f"))break}}finally{t&&t.abort()}}if(!e$(this,q,"f"))throw new ez("ToolRunner concluded without a message from the server");e$(this,L,"f").resolve(await e$(this,q,"f"))}catch(e){throw eP(this,O,!1,"f"),e$(this,L,"f").promise.catch(()=>{}),e$(this,L,"f").reject(e),eP(this,L,tV(),"f"),e}}setMessagesParams(e){"function"==typeof e?e$(this,z,"f").params=e(e$(this,z,"f").params):e$(this,z,"f").params=e,eP(this,I,!0,"f"),eP(this,W,void 0,"f")}async generateToolResponse(){let e=await e$(this,q,"f")??this.params.messages.at(-1);return e?e$(this,E,"m",F).call(this,e):null}done(){return e$(this,L,"f").promise}async runUntilDone(){if(!e$(this,O,"f"))for await(let e of this);return this.done()}get params(){return e$(this,z,"f").params}pushMessages(...e){this.setMessagesParams(t=>({...t,messages:[...t.messages,...e]}))}then(e,t){return this.runUntilDone().then(e,t)}}
26async function tG(e,t=e.messages.at(-1)){if(!t||"assistant"!==t.role||!t.content||"string"==typeof t.content)return null;let s=t.content.filter(e=>"tool_use"===e.type);return 0===s.length?null:{role:"user",content:await Promise.all(s.map(async t=>{let s=e.tools.find(e=>("name"in e?e.name:e.mcp_server_name)===t.name);if(!s||!("run"in s))return{type:"tool_result",tool_use_id:t.id,content:`Error: Tool '${t.name}' not found`,is_error:!0};try{let e=t.input;"parse"in s&&s.parse&&(e=s.parse(e));let r=await s.run(e);return{type:"tool_result",tool_use_id:t.id,content:r}}catch(e){return{type:"tool_result",tool_use_id:t.id,content:`Error: ${e instanceof Error?e.message:String(e)}`,is_error:!0}}}))}}F=async function(e){return void 0!==e$(this,W,"f")||eP(this,W,tG(e$(this,z,"f").params,e),"f"),e$(this,W,"f")};class tQ{constructor(e,t){this.iterator=e,this.controller=t}async *decoder(){let e=new te;for await(let t of this.iterator)for(let s of e.decode(t))yield JSON.parse(s);for(let t of e.flush())yield JSON.parse(t)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,t){if(!e.body){if(t.abort(),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product)throw new ez("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new ez("Attempted to iterate over a response with no body")}return new tQ(e3(e.body),t)}}class tZ extends tP{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/messages/batches?beta=true",{body:r,...t,headers:tE([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tz`/v1/messages/batches/${e}?beta=true`,{...s,headers:tE([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",ty,{query:r,...t,headers:tE([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tz`/v1/messages/batches/${e}?beta=true`,{...s,headers:tE([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}cancel(e,t={},s){let{betas:r}=t??{};return this._client.post(tz`/v1/messages/batches/${e}/cancel?beta=true`,{...s,headers:tE([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}async results(e,t={},s){let r=await this.retrieve(e);if(!r.results_url)throw new ez(`No batch \`results_url\`; Has it finished processing? ${r.processing_status} - ${r.id}`);let{betas:n}=t??{};return this._client.get(r.results_url,{...s,headers:tE([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},s?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((e,t)=>tQ.fromResponse(t.response,t.controller))}}let t0={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};class t1 extends tP{constructor(){super(...arguments),this.batches=new tZ(this._client)}create(e,t){let{betas:s,...r}=e;r.model in t0&&console.warn(`The model '${r.model}' is deprecated and will reach end-of-life on ${t0[r.model]} 27Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let n=this._client._options.timeout;if(!r.stream&&null==n){let e=tW[r.model]??void 0;n=this._client.calculateNonstreamingTimeout(r.max_tokens,e)}return this._client.post("/v1/messages?beta=true",{body:r,timeout:n??6e5,...t,headers:tE([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers]),stream:e.stream??!1})}parse(e,t){return t={...t,headers:tE([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-11-13"].toString()},t?.headers])},this.create(e,t).then(t=>tU(t,e,{logger:this._client.logger??console}))}stream(e,t){return tH.createMessage(this,e,t)}countTokens(e,t){let{betas:s,...r}=e;return this._client.post("/v1/messages/count_tokens?beta=true",{body:r,...t,headers:tE([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},t?.headers])})}toolRunner(e,t){return new tY(this._client,e,t)}}t1.Batches=tZ,t1.BetaToolRunner=tY;class t2 extends tP{create(e,t={},s){let{betas:r,...n}=t??{};return this._client.post(tz`/v1/skills/${e}/versions?beta=true`,tS({body:n,...s,headers:tE([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])},this._client))}
27retrieve(e,t,s){let{skill_id:r,betas:n}=t;return this._client.get(tz`/v1/skills/${r}/versions/${e}?beta=true`,{...s,headers:tE([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...n}=t??{};return this._client.getAPIList(tz`/v1/skills/${e}/versions?beta=true`,tw,{query:n,...s,headers:tE([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}delete(e,t,s){let{skill_id:r,betas:n}=t;return this._client.delete(tz`/v1/skills/${r}/versions/${e}?beta=true`,{...s,headers:tE([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},s?.headers])})}}class t4 extends tP{constructor(){super(...arguments),this.versions=new t2(this._client)}create(e={},t){let{betas:s,...r}=e??{};return this._client.post("/v1/skills?beta=true",tS({body:r,...t,headers:tE([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},t?.headers])},this._client))}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tz`/v1/skills/${e}?beta=true`,{...s,headers:tE([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/skills?beta=true",tw,{query:r,...t,headers:tE([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tz`/v1/skills/${e}?beta=true`,{...s,headers:tE([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}}t4.Versions=t2;class t5 extends tP{constructor(){super(...arguments),this.models=new tq(this._client),this.messages=new t1(this._client),this.files=new tC(this._client),this.skills=new t4(this._client)}}t5.Models=tq,t5.Messages=t1,t5.Files=tC,t5.Skills=t4;let t3="__json_buf";function t6(e){return"tool_use"===e.type||"server_tool_use"===e.type}class t8{constructor(){B.add(this),this.messages=[],this.receivedMessages=[],X.set(this,void 0),this.controller=new AbortController,H.set(this,void 0),J.set(this,()=>{}),K.set(this,()=>{}),V.set(this,void 0),Y.set(this,()=>{}),G.set(this,()=>{}),Q.set(this,{}),Z.set(this,!1),ee.set(this,!1),et.set(this,!1),es.set(this,!1),er.set(this,void 0),en.set(this,void 0),eo.set(this,e=>{if(eP(this,ee,!0,"f"),eO(e)&&(e=new eq),e instanceof eq)return eP(this,et,!0,"f"),this._emit("abort",e);if(e instanceof ez)return this._emit("error",e);if(e instanceof Error){let t=new ez(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new ez(String(e)))}),eP(this,H,new Promise((e,t)=>{eP(this,J,e,"f"),eP(this,K,t,"f")}),"f"),eP(this,V,new Promise((e,t)=>{eP(this,Y,e,"f"),eP(this,G,t,"f")}),"f"),e$(this,H,"f").catch(()=>{}),e$(this,V,"f").catch(()=>{})}get response(){return e$(this,er,"f")}get request_id(){return e$(this,en,"f")}async withResponse(){eP(this,es,!0,"f");let e=await e$(this,H,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let t=new t8;return t._run(()=>t._fromReadableStream(e)),t}static createMessage(e,t,s){let r=new t8;for(let e of t.messages)r._addMessageParam(e);return r._run(()=>r._createMessage(e,{...t,stream:!0},{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),r}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},e$(this,eo,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,t=!0){this.receivedMessages.push(e),t&&this._emit("message",e)}async _createMessage(e,t,s){let r,n=s?.signal;n&&(n.aborted&&this.controller.abort(),r=this.controller.abort.bind(this.controller),n.addEventListener("abort",r));try{e$(this,B,"m",el).call(this);let{response:r,data:n}=await e.create({...t,stream:!0},{...s,signal:this.controller.signal}).withResponse();for await(let e of(this._connected(r),n))e$(this,B,"m",ec).call(this,e);if(n.controller.signal?.aborted)throw new eq;e$(this,B,"m",eh).call(this)}finally{n&&r&&n.removeEventListener("abort",r)}}_connected(e){this.ended||(eP(this,er,e,"f"),eP(this,en,e?.headers.get("request-id"),"f"),e$(this,J,"f").call(this,e),this._emit("connect"))}get ended(){return e$(this,Z,"f")}get errored(){return e$(this,ee,"f")}get aborted(){return e$(this,et,"f")}abort(){this.controller.abort()}on(e,t){return(e$(this,Q,"f")[e]||(e$(this,Q,"f")[e]=[])).push({listener:t}),this}off(e,t){let s=e$(this,Q,"f")[e];if(!s)return this;let r=s.findIndex(e=>e.listener===t);return r>=0&&s.splice(r,1),this}once(e,t){return(e$(this,Q,"f")[e]||(e$(this,Q,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,s)=>{eP(this,es,!0,"f"),"error"!==e&&this.once("error",s),this.once(e,t)})}async done(){eP(this,es,!0,"f"),await e$(this,V,"f")}get currentMessage(){return e$(this,X,"f")}async finalMessage(){return await this.done(),e$(this,B,"m",ea).call(this)}async finalText(){return await this.done(),e$(this,B,"m",ei).call(this)}_emit(e,...t){if(e$(this,Z,"f"))return;"end"===e&&(eP(this,Z,!0,"f"),e$(this,Y,"f").call(this));let s=e$(this,Q,"f")[e];if(s&&(e$(this,Q,"f")[e]=s.filter(e=>
27!e.once),s.forEach(({listener:e})=>e(...t))),"abort"===e){let e=t[0];e$(this,es,"f")||s?.length||Promise.reject(e),e$(this,K,"f").call(this,e),e$(this,G,"f").call(this,e),this._emit("end");return}if("error"===e){let e=t[0];e$(this,es,"f")||s?.length||Promise.reject(e),e$(this,K,"f").call(this,e),e$(this,G,"f").call(this,e),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",e$(this,B,"m",ea).call(this))}async _fromReadableStream(e,t){let s,r=t?.signal;r&&(r.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),r.addEventListener("abort",s));try{e$(this,B,"m",el).call(this),this._connected(null);let t=tc.fromReadableStream(e,this.controller);for await(let e of t)e$(this,B,"m",ec).call(this,e);if(t.controller.signal?.aborted)throw new eq;e$(this,B,"m",eh).call(this)}finally{r&&s&&r.removeEventListener("abort",s)}}[(X=new WeakMap,H=new WeakMap,J=new WeakMap,K=new WeakMap,V=new WeakMap,Y=new WeakMap,G=new WeakMap,Q=new WeakMap,Z=new WeakMap,ee=new WeakMap,et=new WeakMap,es=new WeakMap,er=new WeakMap,en=new WeakMap,eo=new WeakMap,B=new WeakSet,ea=function(){if(0===this.receivedMessages.length)throw new ez("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},ei=function(){if(0===this.receivedMessages.length)throw new ez("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(e=>"text"===e.type).map(e=>e.text);if(0===e.length)throw new ez("stream ended without producing a content block with type=text");return e.join(" ")},el=function(){this.ended||eP(this,X,void 0,"f")},ec=function(e){if(this.ended)return;let t=e$(this,B,"m",eu).call(this,e);switch(this._emit("streamEvent",e,t),e.type){case"content_block_delta":{let s=t.content.at(-1);switch(e.delta.type){case"text_delta":"text"===s.type&&this._emit("text",e.delta.text,s.text||"");break;case"citations_delta":"text"===s.type&&this._emit("citation",e.delta.citation,s.citations??[]);break;case"input_json_delta":t6(s)&&s.input&&this._emit("inputJson",e.delta.partial_json,s.input);break;case"thinking_delta":"thinking"===s.type&&this._emit("thinking",e.delta.thinking,s.thinking);break;case"signature_delta":"thinking"===s.type&&this._emit("signature",s.signature);break;default:t9(e.delta)}break}case"message_stop":this._addMessageParam(t),this._addMessage(t,!0);break;case"content_block_stop":this._emit("contentBlock",t.content.at(-1));break;case"message_start":eP(this,X,t,"f")}},eh=function(){if(this.ended)throw new ez("stream has ended, this shouldn't happen");let e=e$(this,X,"f");if(!e)throw new ez("request ended without sending any chunks");return eP(this,X,void 0,"f"),e},eu=function(e){let t=e$(this,X,"f");if("message_start"===e.type){if(t)throw new ez(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!t)throw new ez(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":case"content_block_stop":return t;case"message_delta":return t.stop_reason=e.delta.stop_reason,t.stop_sequence=e.delta.stop_sequence,t.usage.output_tokens=e.usage.output_tokens,null!=e.usage.input_tokens&&(t.usage.input_tokens=e.usage.input_tokens),null!=e.usage.cache_creation_input_tokens&&(t.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),null!=e.usage.cache_read_input_tokens&&(t.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),null!=e.usage.server_tool_use&&(t.usage.server_tool_use=e.usage.server_tool_use),t;case"content_block_start":return t.content.push({...e.content_block}),t;case"content_block_delta":{let s=t.content.at(e.index);switch(e.delta.type){case"text_delta":s?.type==="text"&&(t.content[e.index]={...s,text:(s.text||"")+e.delta.text});break;case"citations_delta":s?.type==="text"&&(t.content[e.index]={...s,citations:[...s.citations??[],e.delta.citation]});break;case"input_json_delta":if(s&&t6(s)){let r=s[t3]||"";r+=e.delta.partial_json;let n={...s};Object.defineProperty(n,t3,{value:r,enumerable:!1,writable:!0}),r&&(n.input=tF(r)),t.content[e.index]=n}break;case"thinking_delta":s?.type==="thinking"&&(t.content[e.index]={...s,thinking:s.thinking+e.delta.thinking});break;case"signature_delta":s?.type==="thinking"&&(t.content[e.index]={...s,signature:e.delta.signature});break;default:t9(e.delta)}return t}}},Symbol.asyncIterator)](){let e=[],t=[],s=!1;return this.on("streamEvent",s=>{let r=t.shift();r?r.resolve(s):e.push(s)}),this.on("end",()=>{for(let e of(s=!0,t))e.resolve(void 0);t.length=0}),this.on("abort",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),this.on("error",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:s?{value:void 0,done:!0}:new Promise((e,s)=>t.push({resolve:e,reject:s})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new tc(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function t9(e){}class t7 extends tP{create(e,t){return this._client.post("/v1/messages/batches",{body:e,...t})}retrieve(e,t){return this._client.get(tz`/v1/messages/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/v1/messages/batches",ty,{query:e,...t})}delete(e,t){return this._client.delete(tz`/v1/messages/batches/${e}`,t)}cancel(e,t){return this._client.post(tz`/v1/messages/batches/${e}/cancel`,t)}async results(e,t){let s=await this.retrieve(e);if(!s.results_url)throw new ez(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);return this._client.get(s.results_url,{...t,headers:tE([{Accept:"application/binary"},t?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((e,t)=>tQ.fromResponse(t.response,t.controller))}}class se extends tP{constructor(){super(...arguments),this.batches=new t7(this._client)}create(e,t){e.model in st&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${st[e.model]} 28Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let s=this._client._options.timeout;if(!e.stream&&null==s){let t=tW[e.model]??void 0;s=this._client.calculateNonstreamingTimeout(e.max_tokens,t)}return this._client.post("/v1/messages",{body:e,timeout:s??6e5,...t,stream:e.stream??!1})}stream(e,t){return t8.createMessage(this,e,t)}countTokens(e,t){return this._client.post("/v1/messages/count_tokens",{body:e,...t})}}let st={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.
281":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};se.Batches=t7;class ss extends tP{retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tz`/v1/models/${e}`,{...s,headers:tE([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/models",ty,{query:r,...t,headers:tE([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers])})}}class sr extends tP{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/complete",{body:r,timeout:this._client._options.timeout??6e5,...t,headers:tE([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers]),stream:e.stream??!1})}}let sn=e=>void 0!==globalThis.process?globalThis.process.env?.[e]?.trim()??void 0:void 0!==globalThis.Deno?globalThis.Deno.env?.get?.(e)?.trim():void 0;class sa{constructor({baseURL:e=sn("ANTHROPIC_BASE_URL"),apiKey:t=sn("ANTHROPIC_API_KEY")??null,authToken:s=sn("ANTHROPIC_AUTH_TOKEN")??null,...r}={}){ed.add(this),ef.set(this,void 0);const n={apiKey:t,authToken:s,...r,baseURL:e||"https://api.anthropic.com"};if(!n.dangerouslyAllowBrowser&&"u">typeof window&&void 0!==window.document&&"u">typeof navigator)throw new ez("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew Anthropic({ apiKey, dangerouslyAllowBrowser: true });\n");this.baseURL=n.baseURL,this.timeout=n.timeout??ep.DEFAULT_TIMEOUT,this.logger=n.logger??console;const a="warn";this.logLevel=a,this.logLevel=ts(n.logLevel,"ClientOptions.logLevel",this)??ts(sn("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??a,this.fetchOptions=n.fetchOptions,this.maxRetries=n.maxRetries??2,this.fetch=n.fetch??function(){if("u">typeof fetch)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}(),eP(this,ef,e8,"f"),this._options=n,this.apiKey="string"==typeof t?t:null,this.authToken=s}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){if(!(e.get("x-api-key")||e.get("authorization")||this.apiKey&&e.get("x-api-key")||t.has("x-api-key")||this.authToken&&e.get("authorization"))&&!t.has("authorization"))throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(e){return tE([await this.apiKeyAuth(e),await this.bearerAuth(e)])}async apiKeyAuth(e){if(null!=this.apiKey)return tE([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(null!=this.authToken)return tE([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return Object.entries(e).filter(([e,t])=>void 0!==t).map(([e,t])=>{if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(null===t)return`${encodeURIComponent(e)}=`;throw new ez(`Cannot stringify type ${typeof t}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${e0}`}defaultIdempotencyKey(){return`stainless-node-retry-${eE()}`}makeStatusError(e,t,s,r){return eC.generate(e,t,s,r)}buildURL(e,t,s){let r=!e$(this,ed,"m",em).call(this)&&s||this.baseURL,n=new URL(eV.test(e)?e:r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return!function(e){if(!e)return!0;for(let t in e)return!1;return!0}(a)&&(t={...a,...t}),"object"==typeof t&&t&&!Array.isArray(t)&&(n.search=this.stringifyQuery(t)),n.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new ez("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}
28async prepareRequest(e,{url:t,options:s}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,s){return this.request(Promise.resolve(s).then(s=>({method:e,path:t,...s})))}request(e,t=null){return new tm(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,s){let r=await e,n=r.maxRetries??this.maxRetries;null==t&&(t=n),await this.prepareOptions(r);let{req:a,url:i,timeout:o}=await this.buildRequest(r,{retryCount:n-t});await this.prepareRequest(a,{url:i,options:r});let l="log_"+(0x1000000*Math.random()|0).toString(16).padStart(6,"0"),c=void 0===s?"":`, retryOf: ${s}`,h=Date.now();if(to(this).debug(`[${l}] sending request`,tl({retryOfRequestLogID:s,method:r.method,url:i,options:r,headers:a.headers})),r.signal?.aborted)throw new eq;let u=new AbortController,d=await this.fetchWithTimeout(i,a,o,u).catch(eI),p=Date.now();if(d instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new eq;let n=eO(d)||/timed? ?out/i.test(String(d)+("cause"in d?String(d.cause):""));if(t)return to(this).info(`[${l}] connection ${n?"timed out":"failed"} - ${e}`),to(this).debug(`[${l}] connection ${n?"timed out":"failed"} (${e})`,tl({retryOfRequestLogID:s,url:i,durationMs:p-h,message:d.message})),this.retryRequest(r,t,s??l);if(to(this).info(`[${l}] connection ${n?"timed out":"failed"} - error; no more retries left`),to(this).debug(`[${l}] connection ${n?"timed out":"failed"} (error; no more retries left)`,tl({retryOfRequestLogID:s,url:i,durationMs:p-h,message:d.message})),n)throw new eL;throw new eW({cause:d})}let f=[...d.headers.entries()].filter(([e])=>"request-id"===e).map(([e,t])=>", "+e+": "+JSON.stringify(t)).join(""),m=`[${l}${c}${f}] ${a.method} ${i} ${d.ok?"succeeded":"failed"} with status ${d.status} in ${p-h}ms`;if(!d.ok){let e=await this.shouldRetry(d);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await e6(d.body),to(this).info(`${m} - ${e}`),to(this).debug(`[${l}] response error (${e})`,tl({retryOfRequestLogID:s,url:d.url,status:d.status,headers:d.headers,durationMs:p-h})),this.retryRequest(r,t,s??l,d.headers)}let n=e?"error; no more retries left":"error; not retryable";to(this).info(`${m} - ${n}`);let a=await d.text().catch(e=>eI(e).message),i=eZ(a),o=i?void 0:a;throw to(this).debug(`[${l}] response error (${n})`,tl({retryOfRequestLogID:s,url:d.url,status:d.status,headers:d.headers,message:o,durationMs:Date.now()-h})),this.makeStatusError(d.status,i,o,d.headers)}return to(this).info(m),to(this).debug(`[${l}] response start`,tl({retryOfRequestLogID:s,url:d.url,status:d.status,headers:d.headers,durationMs:p-h})),{response:d,options:r,controller:u,requestLogID:l,retryOfRequestLogID:s,startTime:h}}getAPIList(e,t,s){return this.requestAPIList(t,{method:"get",path:e,...s})}requestAPIList(e,t){return new tb(this,this.makeRequest(t,null,void 0),e)}async fetchWithTimeout(e,t,s,r){let{signal:n,method:a,...i}=t||{};n&&n.addEventListener("abort",()=>r.abort());let o=setTimeout(()=>r.abort(),s),l=globalThis.ReadableStream&&i.body instanceof globalThis.ReadableStream||"object"==typeof i.body&&null!==i.body&&Symbol.asyncIterator in i.body,c={signal:r.signal,...l?{duplex:"half"}:{},method:"GET",...i};a&&(c.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,c)}finally{clearTimeout(o)}}async shouldRetry(e){let t=e.headers.get("x-should-retry");return"true"===t||"false"!==t&&(408===e.status||409===e.status||429===e.status||!!(e.status>=500))}async retryRequest(e,t,s,r){let n,a,i=r?.get("retry-after-ms");if(i){let e=parseFloat(i);Number.isNaN(e)||(n=e)}let o=r?.get("retry-after");if(o&&!n){let e=parseFloat(o);n=Number.isNaN(e)?Date.parse(o)-Date.now():1e3*e}if(!(n&&0<=n&&n<6e4)){let s=e.maxRetries??this.maxRetries;n=this.calculateDefaultRetryTimeoutMillis(t,s)}return await (a=n,new Promise(e=>setTimeout(e,a))),this.makeRequest(e,t-1,s)}calculateDefaultRetryTimeoutMillis(e,t){return Math.min(.5*Math.pow(2,t-e),8)*(1-.25*Math.random())*1e3}calculateNonstreamingTimeout(e,t){if(36e5*e/128e3>6e5||null!=t&&e>t)throw new ez("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:t=0}={}){let s={...e},{method:r,path:n,query:a,defaultBaseURL:i}=s,o=this.buildURL(n,a,i);"timeout"in s&&((e,t)=>{if("number"!=typeof t||!Number.isInteger(t))throw new ez(`${e} must be an integer`);if(t<0)throw new ez(`${e} must be a positive integer`)})("timeout",s.timeout),s.timeout=s.timeout??this.timeout;let{bodyHeaders:l,body:c}=this.buildBody({options:s}),h=await this.buildHeaders({options:e,method:r,bodyHeaders:l,retryCount:t});return{req:{method:r,headers:h,...s.signal&&{signal:s.signal},...globalThis.ReadableStream&&c instanceof globalThis.ReadableStream&&{duplex:"half"},...c&&{body:c},...this.fetchOptions??{},...s.fetchOptions??{}},url:o,timeout:s.timeout}}async buildHeaders({options:e,method:s,bodyHeaders:r,retryCount:n}){let a={};this.idempotencyHeader&&"get"!==s&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),a[this.idempotencyHeader]=e.idempotencyKey);let i=tE([a,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(n),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...t??(t=(()=>{let e="u">typeof Deno&&null!=Deno.build?"deno":"u">typeof EdgeRuntime?"edge":"[object process]"===Object.prototype.toString.call(void 0!==globalThis.process?globalThis.process:0)?"node":"unknown";if("deno"===e)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":e0,"X-Stainless-OS":e2(Deno.build.os),"X-Stainless-Arch":e1(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":"string"==typeof Deno.version?Deno.version:Deno.version?.deno??"unknown"};if("u">typeof EdgeRuntime)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":e0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if("node"===e)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":e0,"X-Stainless-OS":e2(globalThis.process.platform??"unknown"),"X-Stainless-Arch":e1(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let t=function(){if("u"<typeof navigator||!navigator)return null;for(let{key:e,pattern:t}of[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}]){let s=t.exec(navigator.userAgent);if(s){let t=s[1]||0,r=s[2]||0,n=s[3]||0;return{browser:e,version:`${t}.${r}.${n}`}}}return null}();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":e0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":e0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}})()),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(e),this._options.defaultHeaders,r,e.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:e,headers:t}}
28){if(!e)return{bodyHeaders:void 0,body:void 0};let s=tE([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||"string"==typeof e&&s.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:"object"==typeof e&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&"function"==typeof e.next)?{bodyHeaders:void 0,body:e5(e)}:e$(this,ef,"f").call(this,{body:e,headers:s})}}ep=sa,ef=new WeakMap,ed=new WeakSet,em=function(){return"https://api.anthropic.com"!==this.baseURL},sa.Anthropic=ep,sa.HUMAN_PROMPT="\\n\\nHuman:",sa.AI_PROMPT="\\n\\nAssistant:",sa.DEFAULT_TIMEOUT=6e5,sa.AnthropicError=ez,sa.APIError=eC,sa.APIConnectionError=eW,sa.APIConnectionTimeoutError=eL,sa.APIUserAbortError=eq,sa.NotFoundError=eB,sa.ConflictError=eX,sa.RateLimitError=eJ,sa.BadRequestError=eU,sa.AuthenticationError=eD,sa.InternalServerError=eK,sa.PermissionDeniedError=eF,sa.UnprocessableEntityError=eH,sa.toFile=tT;class si extends sa{constructor(){super(...arguments),this.completions=new sr(this),this.messages=new se(this),this.models=new ss(this),this.beta=new t5(this)}}si.Completions=sr,si.Messages=se,si.Models=ss,si.Beta=t5,e.s(["STORY_SPINE_BEAT_COUNT",0,6],96071);let so=["Dreaming up a story...","Choosing the perfect characters...","Building a world of adventure...","Adding a dash of magic...","Crafting the perfect ending..."];e.s(["StepStoryPreview",0,function({formData:e,onGeneratePreview:t,isSubmitting:s}){let[r,n]=(0,eS.useState)(null),[a,i]=(0,eS.useState)(null),[o,l]=(0,eS.use
28State)([]),[c,h]=(0,eS.useState)(!0),[u,d]=(0,eS.useState)(null),[p,f]=(0,eS.useState)(""),[m,g]=(0,eS.useState)(0),b=(0,eS.useCallback)(async(t,s)=>{h(!0),d(null),n(null),i(null),l([]);try{let r=await fetch("/api/generate/summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({formData:e,feedback:s?.feedback,previousSpine:s?.previousSpine,suggestionUsed:s?.suggestionUsed}),signal:t});if(!r.ok)throw Error("Failed to generate story summary");let a=r.body?.getReader();if(!a)throw Error("No response body");let o=new TextDecoder,c="";for(;;){let{done:e,value:t}=await a.read();if(e)break;let s=(c+=o.decode(t,{stream:!0})).split("\n\n");for(let e of(c=s.pop()||"",s)){if(!e.startsWith("data: "))continue;let t=JSON.parse(e.slice(6));if("title"===t.type)i(t.title);else if("beat"===t.type)l(e=>[...e,t.beat]);else if("spine"===t.type)n(t.spine),i(null),l([]),h(!1);else if("error"===t.type)throw Error(t.message)}}}catch(e){if(t.aborted)return;d(e instanceof Error?e.message:"Something went wrong"),h(!1)}},[e]),y=(0,eS.useRef)(null);(0,eS.useEffect)(()=>{let e=new AbortController;y.current=e;let t=setTimeout(()=>{e.signal.aborted||b(e.signal)},0);return()=>{clearTimeout(t),e.abort()}},[b]);let[w,x]=(0,eS.useState)(0);(0,eS.useEffect)(()=>{if(!c)return;let e=setInterval(()=>{x(e=>(e+1)%so.length)},2500);return()=>clearInterval(e)},[c]);let v=r?.title??a,_=r?.beats??o,k=c&&!v;if(u&&!r)return(0,eg.jsxs)("div",{className:"space-y-6 text-center",children:[(0,eg.jsx)("h2",{className:"text-2xl font-bold text-zinc-900",children:"Something went wrong"}),(0,eg.jsx)("p",{className:"text-zinc-600",children:u}),(0,eg.jsx)(ej.Button,{onClick:()=>{y.current?.abort();let e=new AbortController;y.current=e,b(e.signal)},children:"Try Again"})]});if(k)return(0,eg.jsxs)("div",{className:"space-y-8",children:[(0,eg.jsxs)("div",{className:"text-center",children:[(0,eg.jsx)("div",{className:"inline-flex items-center justify-center h-16 w-16 rounded-full bg-amber-100 mb-4",children:(0,eg.jsx)(eA.Wand2,{className:"h-8 w-8 text-amber-600 animate-pulse"})}),(0,eg.jsxs)("h2",{className:"text-2xl font-bold text-zinc-900",children:["Crafting ",e.childName,"'s Story Outline"]}),(0,eg.jsx)("p",{className:"mt-3 text-zinc-500 animate-fade-in",children:so[w]},w)]}),(0,eg.jsx)("div",{className:"rounded-xl border border-zinc-100 bg-zinc-50/50 p-5 space-y-5",children:Array.from({length:6}).map((e,t)=>(0,eg.jsxs)("div",{className:"animate-pulse",style:{animationDelay:`${100*t}ms`},children:[(0,eg.jsx)("div",{className:"h-3 w-28 bg-zinc-200/70 rounded mb-2"}),(0,eg.jsx)("div",{className:"h-3 w-full bg-zinc-100 rounded mb-1"}),(0,eg.jsx)("div",{className:"h-3 w-3/4 bg-zinc-100 rounded"})]},t))})]});if(!v)return null;let S=m<3;return(0,eg.jsxs)("div",{className:"space-y-6",children:[(0,eg.jsxs)("div",{className:"text-center mb-4",children:[(0,eg.jsx)("h2",{className:"text-2xl font-bold text-zinc-900 animate-fade-in",children:v}),r?.theme&&(0,eg.jsxs)("p",{className:"mt-1 text-sm text-zinc-500",children:["A story about ",r.theme]})]}),(0,eg.jsxs)("div",{className:"rounded-xl border border-zinc-200 bg-gradient-to-b from-amber-50/50 to-white overflow-hidden",children:[_.map((e,t)=>(0,eg.jsxs)("div",{className:(0,eb.cn)("px-5 py-4 animate-fade-in",t<_.length-1&&"border-b border-zinc-100"),children:[(0,eg.jsx)("p",{className:"text-xs font-semibold text-amber-700 uppercase tracking-wide mb-1",children:e.label}),(0,eg.jsx)("p",{className:"text-sm text-zinc-700 leading-relaxed",children:e.content})]},`${e.label}-${t}`)),c&&_.length<6&&Array.from({length:6-_.length}).map((e,t)=>(0,eg.jsxs)("div",{className:(0,eb.cn)("px-5 py-4 animate-pulse",t<5-_.length&&"border-b border-zinc-100"),children:[(0,eg.jsx)("div",{className:"h-3 w-28 bg-zinc-200/70 rounded mb-2"}),(0,eg.jsx)("div",{className:"h-3 w-full bg-zinc-100 rounded mb-1"}),(0,eg.jsx)("div",{className:"h-3 w-3/4 bg-zinc-100 rounded"})]},`skeleton-${t}`))]}),r?.characters&&(0,eg.jsx)("div",{className:"flex flex-wrap gap-2 animate-fade-in",children:r.characters.map(e=>(0,eg.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-zinc-100 px-3 py-1 text-xs font-medium text-zinc-700",children:[(0,eg.jsx)("span",{className:"capitalize",children:"protagonist"===e.role?"Hero":e.role}),(0,eg.jsx)("span",{className:"text-zinc-400",children:"·"}),e.name]},e.name))}),c&&_.length>=6&&(0,eg.jsxs)("div",{className:"space-y-4 pt-2 animate-fade-in",children:[(0,eg.jsx)("p",{className:"text-sm font-medium text-zinc-600 text-center",children:"Want to change something?"}),(0,eg.jsx)("div",{className:"flex flex-wrap justify-center gap-2",children:Array.from({length:3}).map((e,t)=>(0,eg.jsx)("div",{className:"h-9 rounded-full bg-zinc-100 animate-pulse",style:{width:`${100+20*t}px`,animationDelay:`${150*t}ms`}},t))})]}),S&&!c&&r&&(0,eg.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,eg.jsx)("p",{className:"text-sm font-medium text-zinc-600 text-center",children:"Want to change something?"}),(0,eg.jsx)("div",{className:"flex flex-wrap justify-center gap-2",children:r.suggestions.map(e=>(0,eg.jsx)("button",{onClick:()=>(e=>{if(m>=3||!r)return;y.current?.abort();let t=new AbortController;y.current=t,g(e=>e+1),b(t.signal,{suggestionUsed:e,previousSpine:r})})(e),className:"rounded-full border border-zinc-200 bg-white px-4 py-2 text-sm text-zinc-700 hover:border-amber-300 hover:bg-amber-50 transition-colors",children:e},e))}),(0,eg.jsxs)("div",{className:"flex gap-2",children:[(0,eg.jsx)(eN.Textarea,{value:p,onChange:e=>f(e.target.value),placeholder:"Describe what you'd like changed",className:"min-h-[44px] text-sm resize-none",rows:1}),(0,eg.jsxs)(ej.Button,{variant:"outline",size:"sm",onClick:()=>
28{if(!p.trim()||m>=3||!r)return;y.current?.abort();let e=new AbortController;y.current=e,g(e=>e+1),b(e.signal,{feedback:p.trim(),previousSpine:r}),f("")},disabled:!p.trim(),className:"shrink-0 self-end",children:[(0,eg.jsx)(eT.RefreshCw,{className:"h-4 w-4 mr-1.5"}),"Update"]})]}),(0,eg.jsxs)("p",{className:"text-xs text-zinc-400 text-center",children:[3-m," change",3-m!=1?"s":""," remaining"]})]}),!S&&!c&&(0,eg.jsx)("p",{className:"text-sm text-zinc-500 text-center py-2",children:"Happy with your outline? Generate a preview below!"}),(0,eg.jsx)("div",{className:"pt-4",children:(0,eg.jsxs)(ej.Button,{onClick:()=>{r&&!s&&t(r)},disabled:c||s,size:"lg",className:"w-full",children:[s?(0,eg.jsx)(eM.Loader2,{className:"mr-2 h-5 w-5 animate-spin"}):(0,eg.jsx)(eR.Sparkles,{className:"mr-2 h-5 w-5"}),s?"Creating...":"Generate Audio Preview"]})})]})}],82807);var sl=e.i(64659),sc=e.i(55900);function sh({storyIndex:e,value:t,onChange:s}){let[r,n]=(0,eS.useState)(!!t);return(0,eg.jsxs)("div",{className:"mt-6 pt-4 border-t border-zinc-200",children:[(0,eg.jsxs)("button",{type:"button",onClick:()=>n(!r),className:"flex items-center justify-between w-full text-left group",children:[(0,eg.jsxs)("span",{className:"text-sm font-medium text-zinc-600 group-hover:text-zinc-900 transition-colors",children:["Special requests for Story ",e+1," (optional)"]}),r?(0,eg.jsx)(sc.ChevronUp,{className:"h-4 w-4 text-zinc-400"}):(0,eg.jsx)(sl.ChevronDown,{className:"h-4 w-4 text-zinc-400"})]}),r&&(0,eg.jsxs)("div",{className:"mt-3",children:[(0,eg.jsx)("p",{className:"text-sm text-zinc-500 mb-2",children:"Add any themes, lessons, or details you'd like in this story"}),(0,eg.jsx)("textarea",{value:t,onChange:e=>s(e.target.value),placeholder:"e.g., Include a lesson about sharing, mention their pet dog Max...",className:"flex min-h-[80px] w-full rounded-lg border border-zinc-300 bg-white px-4 py-3 text-sm transition-colors placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-[#FFD803] focus:border-transparent resize-none",rows:2})]})]})}e.s(["StepBundleInterests",0,function({childName:e,purchaserEmail:t,stories:s,activeStoryTab:r,errors:n,onTabChange:a,onInterestsChange:i,onCustomPromptChange:o,onEmailChange:l}){let c=s[r];return(0,eg.jsxs)("div",{className:"space-y-6",children:[(0,eg.jsxs)("div",{className:"text-center mb-6",children:[(0,eg.jsx)("h2",{className:"text-2xl font-bold text-zinc-900",children:"Pick interests for 3 stories"}),(0,eg.jsxs)("p",{className:"mt-2 text-zinc-600",children:["Each story will be a unique adventure for ",e||"your child"]})]}),(0,eg.jsx)("div",{className:"flex gap-2",children:[0,1,2].map(e=>{let t=s[e].interests.length>0,i=r===e,o=n[`story${e}Interests`];return(0,eg.jsxs)("button",{onClick:()=>a(e),className:` 29 flex-1 flex items-center justify-center gap-2 px-3 py-3 rounded-xl 30 text-sm font-semibold transition-all 31 ${i?"bg-[#FFD803] text-black shadow-md":o?"bg-red-50 text-red-600 border-2 border-red-200":t?"bg-green-50 text-green-700 border-2 border-green-200":"bg-zinc-100 text-zinc-500 hover:bg-zinc-200"} 32 `,children:[t&&!i&&(0,eg.jsx)(ey.Check,{className:"h-4 w-4"}),"Story ",e+1]},e)})}),(0,eg.jsx)(ex.InterestSelector,{selectedInterests:c.interests,onSelect:e=>i(r,e),maxSelections:3,error:n[`story${r}Interests`]}),(0,eg.jsx)(sh,{storyIndex:r,value:c.customPrompt||"",onChange:e=>o(r,e)}),(0,eg.jsx)("div",{className:"mt-6 pt-6 border-t border-zinc-200",children:(0,eg.jsx)(ew.Input,{type:"email",label:"Your email address",placeholder:"[email protected]",value:t,onChange:e=>l(e.target.value),error:n.purchaserEmail,helperText:"For your receipt â you can send the gift to someone else later"})})]})}],35129),e.s([],31477)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.