@mindstudio-ai/interface 0.1.14 → 0.1.15

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/README.md CHANGED
@@ -211,6 +211,7 @@ const { threads, nextCursor } = await chat.listThreads();
211
211
  const full = await chat.getThread(thread.id);
212
212
  await chat.updateThread(thread.id, 'New title');
213
213
  await chat.deleteThread(thread.id);
214
+ await chat.claimThread(thread.id); // after in-app login: keep anonymous threads
214
215
 
215
216
  // Paginate
216
217
  const page2 = await chat.listThreads(nextCursor);
@@ -337,15 +338,25 @@ session.on('transcript', ({ role, segmentId, text, final }) =>
337
338
 
338
339
  session.on('toolCall', ({ method, status, result }) => {
339
340
  showToolStatus(method, status);
340
- // Tools declared with `forwardResult: true` in voice.md deliver their raw
341
- // return value here on 'done' — render what the agent just did in lockstep
342
- // with speech. Over ~32KB serialized arrives as `resultTruncated: true`.
341
+ // Every successful tool delivers its raw return value here on 'done' —
342
+ // render what the agent just did in lockstep with speech. Over ~32KB
343
+ // serialized arrives as `resultTruncated: true` instead.
343
344
  if (status === 'done' && result !== undefined) renderToolResult(method, result);
344
345
  });
345
346
 
346
347
  session.mute();
347
348
  session.unmute();
348
349
  await session.sendText('123 Main Street'); // exact strings beat spelling aloud
350
+ // Client tools (voice.md `target: "client"`): the agent invokes, your handler
351
+ // runs in this browser, and its return value goes back as the tool result.
352
+ session.registerClientTool('showVerification', async (args) => {
353
+ openVerifySheet(args);
354
+ return { opened: true };
355
+ });
356
+
357
+ // Progressive auth: after your in-app verification succeeds, upgrade the live
358
+ // session anonymous → signed-in in place (no teardown, conversation continues).
359
+ await session.refreshIdentity();
349
360
  await session.end();
350
361
  ```
351
362
 
package/dist/index.d.ts CHANGED
@@ -374,6 +374,19 @@ interface AgentToolCallResultEvent {
374
374
  output: unknown;
375
375
  ts: number;
376
376
  }
377
+ /**
378
+ * The agent invoked a client tool (agent.md `target: "client"`) — an action
379
+ * that happens in this browser (open a sheet, navigate, highlight). Handle it
380
+ * via `onClientToolCall`. Fire-and-forget: the agent continues immediately
381
+ * with an acknowledgment; your next message closes the loop.
382
+ */
383
+ interface AgentClientToolCallEvent {
384
+ type: 'client_tool_call';
385
+ id: string;
386
+ name: string;
387
+ input: unknown;
388
+ ts: number;
389
+ }
377
390
  /** Stream complete. */
378
391
  interface AgentDoneEvent {
379
392
  type: 'done';
@@ -391,7 +404,7 @@ interface AgentErrorEvent {
391
404
  ts: number;
392
405
  }
393
406
  /** Discriminated union of all SSE events from the agent chat stream. */
394
- type AgentChatEvent = AgentTextEvent | AgentThinkingEvent | AgentThinkingCompleteEvent | AgentToolUseEvent | AgentToolInputDeltaEvent | AgentToolCallStartEvent | AgentToolCallResultEvent | AgentDoneEvent | AgentErrorEvent;
407
+ type AgentChatEvent = AgentTextEvent | AgentThinkingEvent | AgentThinkingCompleteEvent | AgentToolUseEvent | AgentToolInputDeltaEvent | AgentToolCallStartEvent | AgentToolCallResultEvent | AgentClientToolCallEvent | AgentDoneEvent | AgentErrorEvent;
395
408
  /**
396
409
  * Callbacks for `sendMessage` streaming.
397
410
  *
@@ -421,6 +434,12 @@ interface SendMessageCallbacks {
421
434
  onToolCallStart?: (id: string, name: string) => void;
422
435
  /** Called when a tool call produces a result. */
423
436
  onToolCallResult?: (id: string, output: unknown) => void;
437
+ /**
438
+ * Called when the agent invokes a client tool (agent.md `target:
439
+ * "client"`) — run the on-screen action here. Fire-and-forget: the agent
440
+ * has already been told the action was displayed.
441
+ */
442
+ onClientToolCall?: (name: string, input: unknown, id: string) => void;
424
443
  /** Called on a stream-level error event. */
425
444
  onError?: (error: string) => void;
426
445
  /** Called for every SSE event (including ones with named callbacks). */
@@ -477,6 +496,22 @@ interface AgentChatClient {
477
496
  updateThread(threadId: string, title: string): Promise<void>;
478
497
  /** Delete a thread (soft delete). */
479
498
  deleteThread(threadId: string): Promise<void>;
499
+ /**
500
+ * Claim an anonymous thread after in-app verification (progressive auth).
501
+ * Login replaces the app's session token, which makes threads started
502
+ * anonymously unreachable — claiming re-binds the thread to the signed-in
503
+ * user so the conversation survives the login. Call it right after your
504
+ * verification succeeds, for each anonymous thread you want to keep.
505
+ *
506
+ * Ownership is proven with the token the thread was created/used under:
507
+ * the client remembers it automatically for threads touched in this page
508
+ * session; pass `previousToken` explicitly for threads from an earlier
509
+ * page load (e.g. a token you persisted before login).
510
+ * Rejects with `already_identified` if the thread already has an owner.
511
+ */
512
+ claimThread(threadId: string, options?: {
513
+ previousToken?: string;
514
+ }): Promise<void>;
480
515
  /**
481
516
  * Send a message and stream the agent's response.
482
517
  *
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as l,b as Z,c as u,d as O}from"./chunk-5L3RRB4F.js";function Y(){return new Proxy({},{get(e,a){return async(t,i)=>{let n=u(),o=n.methods[a];if(!o)throw new l(`Method "${a}" not found. Available methods: ${Object.keys(n.methods).join(", ")||"(none)"}`,"method_not_found");let r=`/_/methods/${o}/invoke`,s=i?.stream===!0,d=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n.token}`},body:JSON.stringify({input:t??{},...s&&{stream:!0}})});if(!d.ok){let m=`Method "${a}" failed: ${d.status} ${d.statusText}`,f="method_error";try{let g=await d.json();g.error&&(m=g.error),g.code&&(f=g.code)}catch{}throw new l(m,f,d.status)}if(!s)return(await d.json()).output;let A=d.body.getReader(),c=new TextDecoder,p="",S,y;for(;;){let{done:m,value:f}=await A.read();if(m)break;p+=c.decode(f,{stream:!0});let g=p.split(`
2
- `);p=g.pop()??"";for(let w of g){if(!w.startsWith("data: "))continue;let v=w.slice(6);try{let C=JSON.parse(v);C.type==="token"&&i?.onToken&&C.text?i.onToken(C.text):C.type==="data"&&i?.onStreamData?i.onStreamData(C.data):C.type==="error"&&C.error?(y=C.error,i?.onStreamError&&i.onStreamError(C.error)):C.type==="done"&&(S=C.output)}catch{}}}if(S===void 0&&y!==void 0)throw new l(y,"method_error");if(S===void 0)throw new l("Stream ended without a done event","stream_incomplete");return S}}})}var L="/_/agent";async function P(e,a,t){let n={Authorization:`Bearer ${u().token}`};t!==void 0&&(n["Content-Type"]="application/json");let o=await fetch(`${L}${e}`,{method:a,headers:n,...t!==void 0&&{body:JSON.stringify(t)}});if(!o.ok){let r=`Agent chat request failed: ${o.status} ${o.statusText}`,s="agent_chat_error";try{let d=await o.json();d.error&&(r=d.error),d.code&&(s=d.code)}catch{}throw new l(r,s,o.status)}return await o.json()}function z(e,a){switch(a.onEvent?.(e),e.type){case"text":a.onText?.(e.text);break;case"thinking":a.onThinking?.(e.text);break;case"thinking_complete":a.onThinkingComplete?.(e.thinking,e.signature);break;case"tool_call_start":a.onToolCallStart?.(e.id,e.name);break;case"tool_call_result":a.onToolCallResult?.(e.id,e.output);break;case"error":a.onError?.(e.error);break}}function q(){return{createThread(){return P("/threads","POST")},listThreads(e){let a=e?`?cursor=${encodeURIComponent(e)}`:"";return P(`/threads${a}`,"GET")},getThread(e){return P(`/threads/${e}`,"GET")},async updateThread(e,a){await P(`/threads/${e}`,"PATCH",{title:a})},async deleteThread(e){await P(`/threads/${e}`,"DELETE")},sendMessage(e,a,t,i){let n=new AbortController,o=t??{};o.signal&&(o.signal.aborted?n.abort():o.signal.addEventListener("abort",()=>n.abort(),{once:!0}));let s=(async()=>{let d=u(),A=`${L}/threads/${e}/messages`,c=await fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${d.token}`},body:JSON.stringify({content:a,...i?.attachments?.length&&{attachments:i.attachments}}),signal:n.signal});if(!c.ok){let f=`Send message failed: ${c.status} ${c.statusText}`,g="agent_chat_error";try{let w=await c.json();w.error&&(f=w.error),w.code&&(g=w.code)}catch{}throw new l(f,g,c.status)}let p=c.body.getReader(),S=new TextDecoder,y="",m;for(;;){let{done:f,value:g}=await p.read();if(f)break;y+=S.decode(g,{stream:!0});let w=y.split(`
3
- `);y=w.pop()??"";for(let v of w){if(!v.startsWith("data: "))continue;let C=v.slice(6);try{let U=JSON.parse(C);U.type==="done"&&(m={stopReason:U.stopReason,usage:U.usage}),z(U,o)}catch{}}}if(!m)throw new l("Stream ended without a done event","stream_incomplete");return m})();return s.abort=()=>n.abort(),s}}}var Q={async uploadFile(e,a){let t=u(),{onProgress:i,signal:n}=a??{};n?.throwIfAborted();let r=await fetch("/_/generate-upload-request",{method:"POST",headers:{Authorization:`Bearer ${t.token}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e.name,contentType:e.type||"application/octet-stream"}),signal:n});if(!r.ok)throw new l(`Upload presign failed: ${r.status} ${r.statusText}`,"upload_error",r.status);let{uploadUrl:s,uploadFields:d,publicUrl:A}=await r.json(),c=new FormData;for(let[S,y]of Object.entries(d))c.append(S,y);if(c.append("file",e),i)return await D(s,c,i,n),A;let p=await fetch(s,{method:"POST",body:c,signal:n});if(!p.ok)throw new l(`File upload failed: ${p.status} ${p.statusText}`,"upload_error",p.status);return A},async upload(e,a,t){let{onProgress:i,signal:n}=t??{};n?.throwIfAborted();let o=new FormData;for(let[r,s]of Object.entries(e.upload.fields))o.append(r,s);if(o.append("file",a),i)await D(e.upload.url,o,i,n);else{let r=await fetch(e.upload.url,{method:"POST",body:o,signal:n});if(!r.ok)throw new l(`File upload failed: ${r.status} ${r.statusText}`,"upload_error",r.status)}return{key:e.key,url:e.url}}};function D(e,a,t,i){return new Promise((n,o)=>{let r=new XMLHttpRequest;if(r.upload.addEventListener("progress",s=>{s.lengthComputable&&t(s.loaded/s.total)}),r.addEventListener("load",()=>{r.status>=200&&r.status<300?(t(1),n()):o(new l(`File upload failed: ${r.status} ${r.statusText}`,"upload_error",r.status))}),r.addEventListener("error",()=>{o(new l("File upload failed: network error","upload_error"))}),r.addEventListener("abort",()=>{o(new DOMException("Upload aborted","AbortError"))}),i){if(i.aborted){o(new DOMException("Upload aborted","AbortError"));return}i.addEventListener("abort",()=>r.abort(),{once:!0})}r.open("POST",e),r.send(a)})}var k=[{code:"AF",dialCode:"+93",name:"Afghanistan",flag:"\u{1F1E6}\u{1F1EB}"},{code:"AL",dialCode:"+355",name:"Albania",flag:"\u{1F1E6}\u{1F1F1}"},{code:"DZ",dialCode:"+213",name:"Algeria",flag:"\u{1F1E9}\u{1F1FF}"},{code:"AD",dialCode:"+376",name:"Andorra",flag:"\u{1F1E6}\u{1F1E9}"},{code:"AO",dialCode:"+244",name:"Angola",flag:"\u{1F1E6}\u{1F1F4}"},{code:"AG",dialCode:"+1",name:"Antigua and Barbuda",flag:"\u{1F1E6}\u{1F1EC}"},{code:"AR",dialCode:"+54",name:"Argentina",flag:"\u{1F1E6}\u{1F1F7}"},{code:"AM",dialCode:"+374",name:"Armenia",flag:"\u{1F1E6}\u{1F1F2}"},{code:"AU",dialCode:"+61",name:"Australia",flag:"\u{1F1E6}\u{1F1FA}"},{code:"AT",dialCode:"+43",name:"Austria",flag:"\u{1F1E6}\u{1F1F9}"},{code:"AZ",dialCode:"+994",name:"Azerbaijan",flag:"\u{1F1E6}\u{1F1FF}"},{code:"BS",dialCode:"+1",name:"Bahamas",flag:"\u{1F1E7}\u{1F1F8}"},{code:"BH",dialCode:"+973",name:"Bahrain",flag:"\u{1F1E7}\u{1F1ED}"},{code:"BD",dialCode:"+880",name:"Bangladesh",flag:"\u{1F1E7}\u{1F1E9}"},{code:"BB",dialCode:"+1",name:"Barbados",flag:"\u{1F1E7}\u{1F1E7}"},{code:"BY",dialCode:"+375",name:"Belarus",flag:"\u{1F1E7}\u{1F1FE}"},{code:"BE",dialCode:"+32",name:"Belgium",flag:"\u{1F1E7}\u{1F1EA}"},{code:"BZ",dialCode:"+501",name:"Belize",flag:"\u{1F1E7}\u{1F1FF}"},{code:"BJ",dialCode:"+229",name:"Benin",flag:"\u{1F1E7}\u{1F1EF}"},{code:"BT",dialCode:"+975",name:"Bhutan",flag:"\u{1F1E7}\u{1F1F9}"},{code:"BO",dialCode:"+591",name:"Bolivia",flag:"\u{1F1E7}\u{1F1F4}"},{code:"BA",dialCode:"+387",name:"Bosnia and Herzegovina",flag:"\u{1F1E7}\u{1F1E6}"},{code:"BW",dialCode:"+267",name:"Botswana",flag:"\u{1F1E7}\u{1F1FC}"},{code:"BR",dialCode:"+55",name:"Brazil",flag:"\u{1F1E7}\u{1F1F7}"},{code:"BN",dialCode:"+673",name:"Brunei",flag:"\u{1F1E7}\u{1F1F3}"},{code:"BG",dialCode:"+359",name:"Bulgaria",flag:"\u{1F1E7}\u{1F1EC}"},{code:"BF",dialCode:"+226",name:"Burkina Faso",flag:"\u{1F1E7}\u{1F1EB}"},{code:"BI",dialCode:"+257",name:"Burundi",flag:"\u{1F1E7}\u{1F1EE}"},{code:"CV",dialCode:"+238",name:"Cabo Verde",flag:"\u{1F1E8}\u{1F1FB}"},{code:"KH",dialCode:"+855",name:"Cambodia",flag:"\u{1F1F0}\u{1F1ED}"},{code:"CM",dialCode:"+237",name:"Cameroon",flag:"\u{1F1E8}\u{1F1F2}"},{code:"CA",dialCode:"+1",name:"Canada",flag:"\u{1F1E8}\u{1F1E6}"},{code:"CF",dialCode:"+236",name:"Central African Republic",flag:"\u{1F1E8}\u{1F1EB}"},{code:"TD",dialCode:"+235",name:"Chad",flag:"\u{1F1F9}\u{1F1E9}"},{code:"CL",dialCode:"+56",name:"Chile",flag:"\u{1F1E8}\u{1F1F1}"},{code:"CN",dialCode:"+86",name:"China",flag:"\u{1F1E8}\u{1F1F3}"},{code:"CO",dialCode:"+57",name:"Colombia",flag:"\u{1F1E8}\u{1F1F4}"},{code:"KM",dialCode:"+269",name:"Comoros",flag:"\u{1F1F0}\u{1F1F2}"},{code:"CG",dialCode:"+242",name:"Congo",flag:"\u{1F1E8}\u{1F1EC}"},{code:"CD",dialCode:"+243",name:"Congo (DRC)",flag:"\u{1F1E8}\u{1F1E9}"},{code:"CR",dialCode:"+506",name:"Costa Rica",flag:"\u{1F1E8}\u{1F1F7}"},{code:"HR",dialCode:"+385",name:"Croatia",flag:"\u{1F1ED}\u{1F1F7}"},{code:"CU",dialCode:"+53",name:"Cuba",flag:"\u{1F1E8}\u{1F1FA}"},{code:"CY",dialCode:"+357",name:"Cyprus",flag:"\u{1F1E8}\u{1F1FE}"},{code:"CZ",dialCode:"+420",name:"Czechia",flag:"\u{1F1E8}\u{1F1FF}"},{code:"CI",dialCode:"+225",name:"Cote d'Ivoire",flag:"\u{1F1E8}\u{1F1EE}"},{code:"DK",dialCode:"+45",name:"Denmark",flag:"\u{1F1E9}\u{1F1F0}"},{code:"DJ",dialCode:"+253",name:"Djibouti",flag:"\u{1F1E9}\u{1F1EF}"},{code:"DM",dialCode:"+1",name:"Dominica",flag:"\u{1F1E9}\u{1F1F2}"},{code:"DO",dialCode:"+1",name:"Dominican Republic",flag:"\u{1F1E9}\u{1F1F4}"},{code:"EC",dialCode:"+593",name:"Ecuador",flag:"\u{1F1EA}\u{1F1E8}"},{code:"EG",dialCode:"+20",name:"Egypt",flag:"\u{1F1EA}\u{1F1EC}"},{code:"SV",dialCode:"+503",name:"El Salvador",flag:"\u{1F1F8}\u{1F1FB}"},{code:"GQ",dialCode:"+240",name:"Equatorial Guinea",flag:"\u{1F1EC}\u{1F1F6}"},{code:"ER",dialCode:"+291",name:"Eritrea",flag:"\u{1F1EA}\u{1F1F7}"},{code:"EE",dialCode:"+372",name:"Estonia",flag:"\u{1F1EA}\u{1F1EA}"},{code:"SZ",dialCode:"+268",name:"Eswatini",flag:"\u{1F1F8}\u{1F1FF}"},{code:"ET",dialCode:"+251",name:"Ethiopia",flag:"\u{1F1EA}\u{1F1F9}"},{code:"FJ",dialCode:"+679",name:"Fiji",flag:"\u{1F1EB}\u{1F1EF}"},{code:"FI",dialCode:"+358",name:"Finland",flag:"\u{1F1EB}\u{1F1EE}"},{code:"FR",dialCode:"+33",name:"France",flag:"\u{1F1EB}\u{1F1F7}"},{code:"GA",dialCode:"+241",name:"Gabon",flag:"\u{1F1EC}\u{1F1E6}"},{code:"GM",dialCode:"+220",name:"Gambia",flag:"\u{1F1EC}\u{1F1F2}"},{code:"GE",dialCode:"+995",name:"Georgia",flag:"\u{1F1EC}\u{1F1EA}"},{code:"DE",dialCode:"+49",name:"Germany",flag:"\u{1F1E9}\u{1F1EA}"},{code:"GH",dialCode:"+233",name:"Ghana",flag:"\u{1F1EC}\u{1F1ED}"},{code:"GR",dialCode:"+30",name:"Greece",flag:"\u{1F1EC}\u{1F1F7}"},{code:"GD",dialCode:"+1",name:"Grenada",flag:"\u{1F1EC}\u{1F1E9}"},{code:"GT",dialCode:"+502",name:"Guatemala",flag:"\u{1F1EC}\u{1F1F9}"},{code:"GN",dialCode:"+224",name:"Guinea",flag:"\u{1F1EC}\u{1F1F3}"},{code:"GW",dialCode:"+245",name:"Guinea-Bissau",flag:"\u{1F1EC}\u{1F1FC}"},{code:"GY",dialCode:"+592",name:"Guyana",flag:"\u{1F1EC}\u{1F1FE}"},{code:"HT",dialCode:"+509",name:"Haiti",flag:"\u{1F1ED}\u{1F1F9}"},{code:"HN",dialCode:"+504",name:"Honduras",flag:"\u{1F1ED}\u{1F1F3}"},{code:"HK",dialCode:"+852",name:"Hong Kong",flag:"\u{1F1ED}\u{1F1F0}"},{code:"HU",dialCode:"+36",name:"Hungary",flag:"\u{1F1ED}\u{1F1FA}"},{code:"IS",dialCode:"+354",name:"Iceland",flag:"\u{1F1EE}\u{1F1F8}"},{code:"IN",dialCode:"+91",name:"India",flag:"\u{1F1EE}\u{1F1F3}"},{code:"ID",dialCode:"+62",name:"Indonesia",flag:"\u{1F1EE}\u{1F1E9}"},{code:"IR",dialCode:"+98",name:"Iran",flag:"\u{1F1EE}\u{1F1F7}"},{code:"IQ",dialCode:"+964",name:"Iraq",flag:"\u{1F1EE}\u{1F1F6}"},{code:"IE",dialCode:"+353",name:"Ireland",flag:"\u{1F1EE}\u{1F1EA}"},{code:"IL",dialCode:"+972",name:"Israel",flag:"\u{1F1EE}\u{1F1F1}"},{code:"IT",dialCode:"+39",name:"Italy",flag:"\u{1F1EE}\u{1F1F9}"},{code:"JM",dialCode:"+1",name:"Jamaica",flag:"\u{1F1EF}\u{1F1F2}"},{code:"JP",dialCode:"+81",name:"Japan",flag:"\u{1F1EF}\u{1F1F5}"},{code:"JO",dialCode:"+962",name:"Jordan",flag:"\u{1F1EF}\u{1F1F4}"},{code:"KZ",dialCode:"+7",name:"Kazakhstan",flag:"\u{1F1F0}\u{1F1FF}"},{code:"KE",dialCode:"+254",name:"Kenya",flag:"\u{1F1F0}\u{1F1EA}"},{code:"KI",dialCode:"+686",name:"Kiribati",flag:"\u{1F1F0}\u{1F1EE}"},{code:"KW",dialCode:"+965",name:"Kuwait",flag:"\u{1F1F0}\u{1F1FC}"},{code:"KG",dialCode:"+996",name:"Kyrgyzstan",flag:"\u{1F1F0}\u{1F1EC}"},{code:"LA",dialCode:"+856",name:"Laos",flag:"\u{1F1F1}\u{1F1E6}"},{code:"LV",dialCode:"+371",name:"Latvia",flag:"\u{1F1F1}\u{1F1FB}"},{code:"LB",dialCode:"+961",name:"Lebanon",flag:"\u{1F1F1}\u{1F1E7}"},{code:"LS",dialCode:"+266",name:"Lesotho",flag:"\u{1F1F1}\u{1F1F8}"},{code:"LR",dialCode:"+231",name:"Liberia",flag:"\u{1F1F1}\u{1F1F7}"},{code:"LY",dialCode:"+218",name:"Libya",flag:"\u{1F1F1}\u{1F1FE}"},{code:"LI",dialCode:"+423",name:"Liechtenstein",flag:"\u{1F1F1}\u{1F1EE}"},{code:"LT",dialCode:"+370",name:"Lithuania",flag:"\u{1F1F1}\u{1F1F9}"},{code:"LU",dialCode:"+352",name:"Luxembourg",flag:"\u{1F1F1}\u{1F1FA}"},{code:"MO",dialCode:"+853",name:"Macao",flag:"\u{1F1F2}\u{1F1F4}"},{code:"MG",dialCode:"+261",name:"Madagascar",flag:"\u{1F1F2}\u{1F1EC}"},{code:"MW",dialCode:"+265",name:"Malawi",flag:"\u{1F1F2}\u{1F1FC}"},{code:"MY",dialCode:"+60",name:"Malaysia",flag:"\u{1F1F2}\u{1F1FE}"},{code:"MV",dialCode:"+960",name:"Maldives",flag:"\u{1F1F2}\u{1F1FB}"},{code:"ML",dialCode:"+223",name:"Mali",flag:"\u{1F1F2}\u{1F1F1}"},{code:"MT",dialCode:"+356",name:"Malta",flag:"\u{1F1F2}\u{1F1F9}"},{code:"MH",dialCode:"+692",name:"Marshall Islands",flag:"\u{1F1F2}\u{1F1ED}"},{code:"MR",dialCode:"+222",name:"Mauritania",flag:"\u{1F1F2}\u{1F1F7}"},{code:"MU",dialCode:"+230",name:"Mauritius",flag:"\u{1F1F2}\u{1F1FA}"},{code:"MX",dialCode:"+52",name:"Mexico",flag:"\u{1F1F2}\u{1F1FD}"},{code:"FM",dialCode:"+691",name:"Micronesia",flag:"\u{1F1EB}\u{1F1F2}"},{code:"MD",dialCode:"+373",name:"Moldova",flag:"\u{1F1F2}\u{1F1E9}"},{code:"MC",dialCode:"+377",name:"Monaco",flag:"\u{1F1F2}\u{1F1E8}"},{code:"MN",dialCode:"+976",name:"Mongolia",flag:"\u{1F1F2}\u{1F1F3}"},{code:"ME",dialCode:"+382",name:"Montenegro",flag:"\u{1F1F2}\u{1F1EA}"},{code:"MA",dialCode:"+212",name:"Morocco",flag:"\u{1F1F2}\u{1F1E6}"},{code:"MZ",dialCode:"+258",name:"Mozambique",flag:"\u{1F1F2}\u{1F1FF}"},{code:"MM",dialCode:"+95",name:"Myanmar",flag:"\u{1F1F2}\u{1F1F2}"},{code:"NA",dialCode:"+264",name:"Namibia",flag:"\u{1F1F3}\u{1F1E6}"},{code:"NR",dialCode:"+674",name:"Nauru",flag:"\u{1F1F3}\u{1F1F7}"},{code:"NP",dialCode:"+977",name:"Nepal",flag:"\u{1F1F3}\u{1F1F5}"},{code:"NL",dialCode:"+31",name:"Netherlands",flag:"\u{1F1F3}\u{1F1F1}"},{code:"NZ",dialCode:"+64",name:"New Zealand",flag:"\u{1F1F3}\u{1F1FF}"},{code:"NI",dialCode:"+505",name:"Nicaragua",flag:"\u{1F1F3}\u{1F1EE}"},{code:"NE",dialCode:"+227",name:"Niger",flag:"\u{1F1F3}\u{1F1EA}"},{code:"NG",dialCode:"+234",name:"Nigeria",flag:"\u{1F1F3}\u{1F1EC}"},{code:"KP",dialCode:"+850",name:"North Korea",flag:"\u{1F1F0}\u{1F1F5}"},{code:"MK",dialCode:"+389",name:"North Macedonia",flag:"\u{1F1F2}\u{1F1F0}"},{code:"NO",dialCode:"+47",name:"Norway",flag:"\u{1F1F3}\u{1F1F4}"},{code:"OM",dialCode:"+968",name:"Oman",flag:"\u{1F1F4}\u{1F1F2}"},{code:"PK",dialCode:"+92",name:"Pakistan",flag:"\u{1F1F5}\u{1F1F0}"},{code:"PW",dialCode:"+680",name:"Palau",flag:"\u{1F1F5}\u{1F1FC}"},{code:"PS",dialCode:"+970",name:"Palestine",flag:"\u{1F1F5}\u{1F1F8}"},{code:"PA",dialCode:"+507",name:"Panama",flag:"\u{1F1F5}\u{1F1E6}"},{code:"PG",dialCode:"+675",name:"Papua New Guinea",flag:"\u{1F1F5}\u{1F1EC}"},{code:"PY",dialCode:"+595",name:"Paraguay",flag:"\u{1F1F5}\u{1F1FE}"},{code:"PE",dialCode:"+51",name:"Peru",flag:"\u{1F1F5}\u{1F1EA}"},{code:"PH",dialCode:"+63",name:"Philippines",flag:"\u{1F1F5}\u{1F1ED}"},{code:"PL",dialCode:"+48",name:"Poland",flag:"\u{1F1F5}\u{1F1F1}"},{code:"PT",dialCode:"+351",name:"Portugal",flag:"\u{1F1F5}\u{1F1F9}"},{code:"PR",dialCode:"+1",name:"Puerto Rico",flag:"\u{1F1F5}\u{1F1F7}"},{code:"QA",dialCode:"+974",name:"Qatar",flag:"\u{1F1F6}\u{1F1E6}"},{code:"RO",dialCode:"+40",name:"Romania",flag:"\u{1F1F7}\u{1F1F4}"},{code:"RU",dialCode:"+7",name:"Russia",flag:"\u{1F1F7}\u{1F1FA}"},{code:"RW",dialCode:"+250",name:"Rwanda",flag:"\u{1F1F7}\u{1F1FC}"},{code:"KN",dialCode:"+1",name:"Saint Kitts and Nevis",flag:"\u{1F1F0}\u{1F1F3}"},{code:"LC",dialCode:"+1",name:"Saint Lucia",flag:"\u{1F1F1}\u{1F1E8}"},{code:"VC",dialCode:"+1",name:"Saint Vincent and the Grenadines",flag:"\u{1F1FB}\u{1F1E8}"},{code:"WS",dialCode:"+685",name:"Samoa",flag:"\u{1F1FC}\u{1F1F8}"},{code:"SM",dialCode:"+378",name:"San Marino",flag:"\u{1F1F8}\u{1F1F2}"},{code:"ST",dialCode:"+239",name:"Sao Tome and Principe",flag:"\u{1F1F8}\u{1F1F9}"},{code:"SA",dialCode:"+966",name:"Saudi Arabia",flag:"\u{1F1F8}\u{1F1E6}"},{code:"SN",dialCode:"+221",name:"Senegal",flag:"\u{1F1F8}\u{1F1F3}"},{code:"RS",dialCode:"+381",name:"Serbia",flag:"\u{1F1F7}\u{1F1F8}"},{code:"SC",dialCode:"+248",name:"Seychelles",flag:"\u{1F1F8}\u{1F1E8}"},{code:"SL",dialCode:"+232",name:"Sierra Leone",flag:"\u{1F1F8}\u{1F1F1}"},{code:"SG",dialCode:"+65",name:"Singapore",flag:"\u{1F1F8}\u{1F1EC}"},{code:"SK",dialCode:"+421",name:"Slovakia",flag:"\u{1F1F8}\u{1F1F0}"},{code:"SI",dialCode:"+386",name:"Slovenia",flag:"\u{1F1F8}\u{1F1EE}"},{code:"SB",dialCode:"+677",name:"Solomon Islands",flag:"\u{1F1F8}\u{1F1E7}"},{code:"SO",dialCode:"+252",name:"Somalia",flag:"\u{1F1F8}\u{1F1F4}"},{code:"ZA",dialCode:"+27",name:"South Africa",flag:"\u{1F1FF}\u{1F1E6}"},{code:"KR",dialCode:"+82",name:"South Korea",flag:"\u{1F1F0}\u{1F1F7}"},{code:"SS",dialCode:"+211",name:"South Sudan",flag:"\u{1F1F8}\u{1F1F8}"},{code:"ES",dialCode:"+34",name:"Spain",flag:"\u{1F1EA}\u{1F1F8}"},{code:"LK",dialCode:"+94",name:"Sri Lanka",flag:"\u{1F1F1}\u{1F1F0}"},{code:"SD",dialCode:"+249",name:"Sudan",flag:"\u{1F1F8}\u{1F1E9}"},{code:"SR",dialCode:"+597",name:"Suriname",flag:"\u{1F1F8}\u{1F1F7}"},{code:"SE",dialCode:"+46",name:"Sweden",flag:"\u{1F1F8}\u{1F1EA}"},{code:"CH",dialCode:"+41",name:"Switzerland",flag:"\u{1F1E8}\u{1F1ED}"},{code:"SY",dialCode:"+963",name:"Syria",flag:"\u{1F1F8}\u{1F1FE}"},{code:"TW",dialCode:"+886",name:"Taiwan",flag:"\u{1F1F9}\u{1F1FC}"},{code:"TJ",dialCode:"+992",name:"Tajikistan",flag:"\u{1F1F9}\u{1F1EF}"},{code:"TZ",dialCode:"+255",name:"Tanzania",flag:"\u{1F1F9}\u{1F1FF}"},{code:"TH",dialCode:"+66",name:"Thailand",flag:"\u{1F1F9}\u{1F1ED}"},{code:"TL",dialCode:"+670",name:"Timor-Leste",flag:"\u{1F1F9}\u{1F1F1}"},{code:"TG",dialCode:"+228",name:"Togo",flag:"\u{1F1F9}\u{1F1EC}"},{code:"TO",dialCode:"+676",name:"Tonga",flag:"\u{1F1F9}\u{1F1F4}"},{code:"TT",dialCode:"+1",name:"Trinidad and Tobago",flag:"\u{1F1F9}\u{1F1F9}"},{code:"TN",dialCode:"+216",name:"Tunisia",flag:"\u{1F1F9}\u{1F1F3}"},{code:"TR",dialCode:"+90",name:"Turkey",flag:"\u{1F1F9}\u{1F1F7}"},{code:"TM",dialCode:"+993",name:"Turkmenistan",flag:"\u{1F1F9}\u{1F1F2}"},{code:"TV",dialCode:"+688",name:"Tuvalu",flag:"\u{1F1F9}\u{1F1FB}"},{code:"UG",dialCode:"+256",name:"Uganda",flag:"\u{1F1FA}\u{1F1EC}"},{code:"UA",dialCode:"+380",name:"Ukraine",flag:"\u{1F1FA}\u{1F1E6}"},{code:"AE",dialCode:"+971",name:"United Arab Emirates",flag:"\u{1F1E6}\u{1F1EA}"},{code:"GB",dialCode:"+44",name:"United Kingdom",flag:"\u{1F1EC}\u{1F1E7}"},{code:"US",dialCode:"+1",name:"United States",flag:"\u{1F1FA}\u{1F1F8}"},{code:"UY",dialCode:"+598",name:"Uruguay",flag:"\u{1F1FA}\u{1F1FE}"},{code:"UZ",dialCode:"+998",name:"Uzbekistan",flag:"\u{1F1FA}\u{1F1FF}"},{code:"VU",dialCode:"+678",name:"Vanuatu",flag:"\u{1F1FB}\u{1F1FA}"},{code:"VA",dialCode:"+39",name:"Vatican City",flag:"\u{1F1FB}\u{1F1E6}"},{code:"VE",dialCode:"+58",name:"Venezuela",flag:"\u{1F1FB}\u{1F1EA}"},{code:"VN",dialCode:"+84",name:"Vietnam",flag:"\u{1F1FB}\u{1F1F3}"},{code:"YE",dialCode:"+967",name:"Yemen",flag:"\u{1F1FE}\u{1F1EA}"},{code:"ZM",dialCode:"+260",name:"Zambia",flag:"\u{1F1FF}\u{1F1F2}"},{code:"ZW",dialCode:"+263",name:"Zimbabwe",flag:"\u{1F1FF}\u{1F1FC}"}],X=new Map(k.map(e=>[e.code,e])),ee={"America/New_York":"US","America/Chicago":"US","America/Denver":"US","America/Los_Angeles":"US","America/Anchorage":"US","Pacific/Honolulu":"US","America/Phoenix":"US","America/Indiana/Indianapolis":"US","America/Toronto":"CA","America/Vancouver":"CA","America/Edmonton":"CA","America/Winnipeg":"CA","America/Halifax":"CA","America/St_Johns":"CA","Europe/London":"GB","Europe/Dublin":"IE","Europe/Paris":"FR","Europe/Berlin":"DE","Europe/Madrid":"ES","Europe/Rome":"IT","Europe/Amsterdam":"NL","Europe/Brussels":"BE","Europe/Zurich":"CH","Europe/Vienna":"AT","Europe/Stockholm":"SE","Europe/Oslo":"NO","Europe/Copenhagen":"DK","Europe/Helsinki":"FI","Europe/Warsaw":"PL","Europe/Prague":"CZ","Europe/Bucharest":"RO","Europe/Budapest":"HU","Europe/Athens":"GR","Europe/Istanbul":"TR","Europe/Moscow":"RU","Europe/Kiev":"UA","Europe/Lisbon":"PT","Europe/Belgrade":"RS","Europe/Zagreb":"HR","Europe/Bratislava":"SK","Europe/Ljubljana":"SI","Europe/Tallinn":"EE","Europe/Riga":"LV","Europe/Vilnius":"LT","Asia/Tokyo":"JP","Asia/Seoul":"KR","Asia/Shanghai":"CN","Asia/Hong_Kong":"HK","Asia/Taipei":"TW","Asia/Singapore":"SG","Asia/Kolkata":"IN","Asia/Karachi":"PK","Asia/Dhaka":"BD","Asia/Bangkok":"TH","Asia/Jakarta":"ID","Asia/Manila":"PH","Asia/Kuala_Lumpur":"MY","Asia/Ho_Chi_Minh":"VN","Asia/Riyadh":"SA","Asia/Dubai":"AE","Asia/Tehran":"IR","Asia/Baghdad":"IQ","Asia/Beirut":"LB","Asia/Jerusalem":"IL","Asia/Amman":"JO","Asia/Almaty":"KZ","Asia/Tashkent":"UZ","Asia/Colombo":"LK","Asia/Kathmandu":"NP","Asia/Yangon":"MM","Australia/Sydney":"AU","Australia/Melbourne":"AU","Australia/Brisbane":"AU","Australia/Perth":"AU","Australia/Adelaide":"AU","Pacific/Auckland":"NZ","Pacific/Fiji":"FJ","Africa/Cairo":"EG","Africa/Lagos":"NG","Africa/Nairobi":"KE","Africa/Johannesburg":"ZA","Africa/Casablanca":"MA","Africa/Accra":"GH","Africa/Addis_Ababa":"ET","Africa/Dar_es_Salaam":"TZ","Africa/Kampala":"UG","America/Mexico_City":"MX","America/Bogota":"CO","America/Lima":"PE","America/Santiago":"CL","America/Buenos_Aires":"AR","America/Sao_Paulo":"BR","America/Caracas":"VE","America/Guatemala":"GT","America/Havana":"CU","America/Panama":"PA","America/Jamaica":"JM"};function G(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return ee[e]??"US"}catch{return"US"}}function K(e){if(!e.startsWith("+"))return e;let a=e.slice(1);if(a.startsWith("1")&&a.length===11){let t=a.slice(1,4),i=a.slice(4,7),n=a.slice(7);return`+1 (${t}) ${i}-${n}`}for(let t=4;t>=1;t--){let i="+"+a.slice(0,t),n=k.find(o=>o.dialCode===i);if(n){let o=a.slice(t);return`${n.dialCode} ${o}`}}return e}function N(e,a){let t=e.replace(/\D/g,""),i=X.get(a);if(!i)return"+"+t;let n=i.dialCode.slice(1);return t.startsWith(n)?"+"+t:i.dialCode+t}function H(e){return/^\+[1-9]\d{6,14}$/.test(e)}function $(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}async function h(e,a,t){let n={Authorization:`Bearer ${u().token}`};t!==void 0&&(n["Content-Type"]="application/json");let o=await fetch(e,{method:a,headers:n,...t!==void 0&&{body:JSON.stringify(t)}});if(!o.ok){let r=`Auth request failed: ${o.status} ${o.statusText}`,s="auth_error";try{let d=await o.json();d.error&&(r=d.error),d.code&&(s=d.code)}catch{}throw new l(r,s,o.status)}return await o.json()}var I="__ms_remy_state",R="ms_popup",j="ms:remy:callback",F=!1,E=ne();function ne(){if(typeof window>"u")return!1;try{let e=new URL(window.location.href).searchParams;return e.has("code")&&e.get(R)!=="1"}catch{return!1}}function oe(){let e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();let a=new Uint8Array(16);return e?.getRandomValues?.(a),Array.from(a,t=>t.toString(16).padStart(2,"0")).join("")}function re(e){e.searchParams.delete("code"),e.searchParams.delete("state");try{window.history.replaceState(window.history.state,"",e.toString())}catch{}}var M=new Set;function T(e){O({token:e.token,user:e.user,methods:e.methods,visitorId:e.visitorId}),M.forEach(a=>a(e.user))}function b(e){if(!e.user)throw new l("Verification succeeded but no user was returned","auth_error");return e.user}function V(e){let a=u();a.user&&(Object.assign(a.user,e),M.forEach(t=>t(a.user)))}function x(){try{return u().user}catch{return null}}function W(){let e=x();M.forEach(a=>a(e))}function J(){E||(E=!0,W())}function _(){E&&(E=!1,W())}function ie(){try{return window.top!==window.self}catch{return!0}}var de=520,se=600;function le(e,a){let t=window.screenX,i=window.screenY,n=window.outerWidth||window.innerWidth||window.screen.width,o=window.outerHeight||window.innerHeight||window.screen.height,r=Math.min(e,n),s=Math.min(a,o),d=Math.max(0,Math.round(t+(n-r)/2)),A=Math.max(0,Math.round(i+(o-s)/2));return`popup=yes,width=${Math.round(r)},height=${Math.round(s)},left=${d},top=${A}`}function ce(e,a){let t=new URL(e,window.location.href);t.searchParams.set(R,"1");let i=`/_/auth/remy/start?${new URLSearchParams({redirect_uri:t.toString(),state:a}).toString()}`,n=window.open(i,"ms-remy-signin",le(de,se));return n?(J(),new Promise((o,r)=>{let s=window.location.origin,d=!1,A=!1,c=m=>{if(!d){d=!0,window.removeEventListener("message",p),clearInterval(S),clearTimeout(y),_();try{n.closed||n.close()}catch{}m()}},p=m=>{if(d||A||m.origin!==s||m.source!==n)return;let f=m.data;if(!(!f||f.type!==j||f.state!==a)){if(A=!0,!f.code){c(()=>r(new l("Sign-in returned no code.","auth_error")));return}h("/_/auth/remy/exchange","POST",{code:f.code}).then(g=>{E=!1,T(g),c(()=>o(b(g)))}).catch(g=>c(()=>r(g)))}};window.addEventListener("message",p);let S=setInterval(()=>{n.closed&&!A&&c(()=>o(null))},400),y=setTimeout(()=>c(()=>r(new l("Sign-in timed out.","signin_timeout"))),300*1e3)})):Promise.reject(new l("The sign-in popup was blocked. Allow popups for this site and try again.","popup_blocked"))}function B(){if(typeof window>"u")return!1;let e;try{e=new URL(window.location.href).searchParams}catch{return!1}if(e.get(R)!=="1")return!1;let a=e.get("code");if(!a)return!1;if(F)return!0;let t=window.opener;if(!t||t===window)return!1;try{t.postMessage({type:j,code:a,state:e.get("state")??void 0},window.location.origin)}catch{return!1}F=!0;try{setTimeout(()=>window.close(),0)}catch{}return!0}var ue={get currentUser(){return u().user},getCurrentUser(){return u().user},isAuthenticated(){return u().user!==null},get authStatus(){return E?"authenticating":x()?"authenticated":"unauthenticated"},get currentVisitorId(){return u().visitorId??null},getCurrentVisitorId(){return u().visitorId??null},sendEmailCode(e){return h("/_/auth/email/send","POST",{email:e})},async verifyEmailCode(e,a){let t=await h("/_/auth/email/verify","POST",{verificationId:e,code:a});return T(t),b(t)},sendSmsCode(e){return h("/_/auth/sms/send","POST",{phone:e})},async verifySmsCode(e,a){let t=await h("/_/auth/sms/verify","POST",{verificationId:e,code:a});return T(t),b(t)},signInWithRemy(e){let a=e?.mode??"auto",t=a==="popup"||a==="auto"&&ie(),i=e?.redirectUri??window.location.href,n=e?.state??oe();if(t)return ce(i,n);try{sessionStorage.setItem(I,n)}catch{}let o=new URLSearchParams({redirect_uri:i,state:n});return window.location.assign(`/_/auth/remy/start?${o.toString()}`),new Promise(()=>{})},async handleRemyRedirect(){if(typeof window>"u")return null;let e=new URL(window.location.href),a=e.searchParams.get("code");if(!a)return null;if(e.searchParams.get(R)==="1")return B(),null;let t=e.searchParams.get("state");re(e);let i=null;try{i=sessionStorage.getItem(I),sessionStorage.removeItem(I)}catch{}if(J(),t!==null&&t!==i)throw _(),new l("Sign-in state mismatch \u2014 possible CSRF or a stale redirect. Please try again.","invalid_state");try{let n=await h("/_/auth/remy/exchange","POST",{code:a});return E=!1,T(n),b(n)}catch(n){throw _(),n}},async requestEmailChange(e){await h("/_/auth/email/change","POST",{newEmail:e})},async confirmEmailChange(e,a){let t=await h("/_/auth/email/change/confirm","POST",{newEmail:e,code:a});return T(t),b(t)},async requestPhoneChange(e){await h("/_/auth/phone/change","POST",{newPhone:e})},async confirmPhoneChange(e,a){let t=await h("/_/auth/phone/change/confirm","POST",{newPhone:e,code:a});return T(t),b(t)},async logout(){let e=await h("/_/auth/logout","POST",{});T(e)},async createApiKey(){let e=await h("/_/auth/api-key/create","POST",{});return V({apiKey:e.apiKey}),{key:e.key}},async revokeApiKey(){await h("/_/auth/api-key/revoke","POST",{}),V({apiKey:null})},onAuthStateChanged(e){return M.add(e),e(x()),()=>{M.delete(e)}},phone:{countries:k,detectCountry:G,format:K,toE164:N,isValid:H},email:{isValid:$}};typeof window<"u"&&!B()&&globalThis.__MINDSTUDIO__&&setTimeout(()=>{try{u()}catch{}},0);export{l as MindStudioInterfaceError,Z as analytics,ue as auth,q as createAgentChatClient,Y as createClient,Q as platform};
1
+ import{a as l,b as z,c,d as L}from"./chunk-5L3RRB4F.js";function q(){return new Proxy({},{get(e,n){return async(a,t)=>{let o=c(),i=o.methods[n];if(!i)throw new l(`Method "${n}" not found. Available methods: ${Object.keys(o.methods).join(", ")||"(none)"}`,"method_not_found");let r=`/_/methods/${i}/invoke`,d=t?.stream===!0,s=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.token}`},body:JSON.stringify({input:a??{},...d&&{stream:!0}})});if(!s.ok){let A=`Method "${n}" failed: ${s.status} ${s.statusText}`,p="method_error";try{let u=await s.json();u.error&&(A=u.error),u.code&&(p=u.code)}catch{}throw new l(A,p,s.status)}if(!d)return(await s.json()).output;let C=s.body.getReader(),f=new TextDecoder,h="",m,w;for(;;){let{done:A,value:p}=await C.read();if(A)break;h+=f.decode(p,{stream:!0});let u=h.split(`
2
+ `);h=u.pop()??"";for(let S of u){if(!S.startsWith("data: "))continue;let b=S.slice(6);try{let g=JSON.parse(b);g.type==="token"&&t?.onToken&&g.text?t.onToken(g.text):g.type==="data"&&t?.onStreamData?t.onStreamData(g.data):g.type==="error"&&g.error?(w=g.error,t?.onStreamError&&t.onStreamError(g.error)):g.type==="done"&&(m=g.output)}catch{}}}if(m===void 0&&w!==void 0)throw new l(w,"method_error");if(m===void 0)throw new l("Stream ended without a done event","stream_incomplete");return m}}})}var D="/_/agent";async function P(e,n,a){let o={Authorization:`Bearer ${c().token}`};a!==void 0&&(o["Content-Type"]="application/json");let i=await fetch(`${D}${e}`,{method:n,headers:o,...a!==void 0&&{body:JSON.stringify(a)}});if(!i.ok){let r=`Agent chat request failed: ${i.status} ${i.statusText}`,d="agent_chat_error";try{let s=await i.json();s.error&&(r=s.error),s.code&&(d=s.code)}catch{}throw new l(r,d,i.status)}return await i.json()}function Q(e,n){switch(n.onEvent?.(e),e.type){case"text":n.onText?.(e.text);break;case"thinking":n.onThinking?.(e.text);break;case"thinking_complete":n.onThinkingComplete?.(e.thinking,e.signature);break;case"tool_call_start":n.onToolCallStart?.(e.id,e.name);break;case"tool_call_result":n.onToolCallResult?.(e.id,e.output);break;case"client_tool_call":n.onClientToolCall?.(e.name,e.input,e.id);break;case"error":n.onError?.(e.error);break}}function X(){let e=new Map,n=a=>{let t=c().token;t&&!e.has(a)&&e.set(a,t)};return{async createThread(){let a=c().token,t=await P("/threads","POST");return a&&e.set(t.id,a),t},listThreads(a){let t=a?`?cursor=${encodeURIComponent(a)}`:"";return P(`/threads${t}`,"GET")},getThread(a){return P(`/threads/${a}`,"GET")},async updateThread(a,t){await P(`/threads/${a}`,"PATCH",{title:t})},async deleteThread(a){await P(`/threads/${a}`,"DELETE")},async claimThread(a,t){let o=t?.previousToken??e.get(a);if(!o)throw new l("No pre-login token known for this thread \u2014 pass options.previousToken.","missing_previous_token",400);await P(`/threads/${a}/claim`,"POST",{previousToken:o}),e.delete(a)},sendMessage(a,t,o,i){n(a);let r=new AbortController,d=o??{};d.signal&&(d.signal.aborted?r.abort():d.signal.addEventListener("abort",()=>r.abort(),{once:!0}));let C=(async()=>{let f=c(),h=`${D}/threads/${a}/messages`,m=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${f.token}`},body:JSON.stringify({content:t,...i?.attachments?.length&&{attachments:i.attachments}}),signal:r.signal});if(!m.ok){let S=`Send message failed: ${m.status} ${m.statusText}`,b="agent_chat_error";try{let g=await m.json();g.error&&(S=g.error),g.code&&(b=g.code)}catch{}throw new l(S,b,m.status)}let w=m.body.getReader(),A=new TextDecoder,p="",u;for(;;){let{done:S,value:b}=await w.read();if(S)break;p+=A.decode(b,{stream:!0});let g=p.split(`
3
+ `);p=g.pop()??"";for(let B of g){if(!B.startsWith("data: "))continue;let Y=B.slice(6);try{let M=JSON.parse(Y);M.type==="done"&&(u={stopReason:M.stopReason,usage:M.usage}),Q(M,d)}catch{}}}if(!u)throw new l("Stream ended without a done event","stream_incomplete");return u})();return C.abort=()=>r.abort(),C}}}var ee={async uploadFile(e,n){let a=c(),{onProgress:t,signal:o}=n??{};o?.throwIfAborted();let r=await fetch("/_/generate-upload-request",{method:"POST",headers:{Authorization:`Bearer ${a.token}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e.name,contentType:e.type||"application/octet-stream"}),signal:o});if(!r.ok)throw new l(`Upload presign failed: ${r.status} ${r.statusText}`,"upload_error",r.status);let{uploadUrl:d,uploadFields:s,publicUrl:C}=await r.json(),f=new FormData;for(let[m,w]of Object.entries(s))f.append(m,w);if(f.append("file",e),t)return await G(d,f,t,o),C;let h=await fetch(d,{method:"POST",body:f,signal:o});if(!h.ok)throw new l(`File upload failed: ${h.status} ${h.statusText}`,"upload_error",h.status);return C},async upload(e,n,a){let{onProgress:t,signal:o}=a??{};o?.throwIfAborted();let i=new FormData;for(let[r,d]of Object.entries(e.upload.fields))i.append(r,d);if(i.append("file",n),t)await G(e.upload.url,i,t,o);else{let r=await fetch(e.upload.url,{method:"POST",body:i,signal:o});if(!r.ok)throw new l(`File upload failed: ${r.status} ${r.statusText}`,"upload_error",r.status)}return{key:e.key,url:e.url}}};function G(e,n,a,t){return new Promise((o,i)=>{let r=new XMLHttpRequest;if(r.upload.addEventListener("progress",d=>{d.lengthComputable&&a(d.loaded/d.total)}),r.addEventListener("load",()=>{r.status>=200&&r.status<300?(a(1),o()):i(new l(`File upload failed: ${r.status} ${r.statusText}`,"upload_error",r.status))}),r.addEventListener("error",()=>{i(new l("File upload failed: network error","upload_error"))}),r.addEventListener("abort",()=>{i(new DOMException("Upload aborted","AbortError"))}),t){if(t.aborted){i(new DOMException("Upload aborted","AbortError"));return}t.addEventListener("abort",()=>r.abort(),{once:!0})}r.open("POST",e),r.send(n)})}var U=[{code:"AF",dialCode:"+93",name:"Afghanistan",flag:"\u{1F1E6}\u{1F1EB}"},{code:"AL",dialCode:"+355",name:"Albania",flag:"\u{1F1E6}\u{1F1F1}"},{code:"DZ",dialCode:"+213",name:"Algeria",flag:"\u{1F1E9}\u{1F1FF}"},{code:"AD",dialCode:"+376",name:"Andorra",flag:"\u{1F1E6}\u{1F1E9}"},{code:"AO",dialCode:"+244",name:"Angola",flag:"\u{1F1E6}\u{1F1F4}"},{code:"AG",dialCode:"+1",name:"Antigua and Barbuda",flag:"\u{1F1E6}\u{1F1EC}"},{code:"AR",dialCode:"+54",name:"Argentina",flag:"\u{1F1E6}\u{1F1F7}"},{code:"AM",dialCode:"+374",name:"Armenia",flag:"\u{1F1E6}\u{1F1F2}"},{code:"AU",dialCode:"+61",name:"Australia",flag:"\u{1F1E6}\u{1F1FA}"},{code:"AT",dialCode:"+43",name:"Austria",flag:"\u{1F1E6}\u{1F1F9}"},{code:"AZ",dialCode:"+994",name:"Azerbaijan",flag:"\u{1F1E6}\u{1F1FF}"},{code:"BS",dialCode:"+1",name:"Bahamas",flag:"\u{1F1E7}\u{1F1F8}"},{code:"BH",dialCode:"+973",name:"Bahrain",flag:"\u{1F1E7}\u{1F1ED}"},{code:"BD",dialCode:"+880",name:"Bangladesh",flag:"\u{1F1E7}\u{1F1E9}"},{code:"BB",dialCode:"+1",name:"Barbados",flag:"\u{1F1E7}\u{1F1E7}"},{code:"BY",dialCode:"+375",name:"Belarus",flag:"\u{1F1E7}\u{1F1FE}"},{code:"BE",dialCode:"+32",name:"Belgium",flag:"\u{1F1E7}\u{1F1EA}"},{code:"BZ",dialCode:"+501",name:"Belize",flag:"\u{1F1E7}\u{1F1FF}"},{code:"BJ",dialCode:"+229",name:"Benin",flag:"\u{1F1E7}\u{1F1EF}"},{code:"BT",dialCode:"+975",name:"Bhutan",flag:"\u{1F1E7}\u{1F1F9}"},{code:"BO",dialCode:"+591",name:"Bolivia",flag:"\u{1F1E7}\u{1F1F4}"},{code:"BA",dialCode:"+387",name:"Bosnia and Herzegovina",flag:"\u{1F1E7}\u{1F1E6}"},{code:"BW",dialCode:"+267",name:"Botswana",flag:"\u{1F1E7}\u{1F1FC}"},{code:"BR",dialCode:"+55",name:"Brazil",flag:"\u{1F1E7}\u{1F1F7}"},{code:"BN",dialCode:"+673",name:"Brunei",flag:"\u{1F1E7}\u{1F1F3}"},{code:"BG",dialCode:"+359",name:"Bulgaria",flag:"\u{1F1E7}\u{1F1EC}"},{code:"BF",dialCode:"+226",name:"Burkina Faso",flag:"\u{1F1E7}\u{1F1EB}"},{code:"BI",dialCode:"+257",name:"Burundi",flag:"\u{1F1E7}\u{1F1EE}"},{code:"CV",dialCode:"+238",name:"Cabo Verde",flag:"\u{1F1E8}\u{1F1FB}"},{code:"KH",dialCode:"+855",name:"Cambodia",flag:"\u{1F1F0}\u{1F1ED}"},{code:"CM",dialCode:"+237",name:"Cameroon",flag:"\u{1F1E8}\u{1F1F2}"},{code:"CA",dialCode:"+1",name:"Canada",flag:"\u{1F1E8}\u{1F1E6}"},{code:"CF",dialCode:"+236",name:"Central African Republic",flag:"\u{1F1E8}\u{1F1EB}"},{code:"TD",dialCode:"+235",name:"Chad",flag:"\u{1F1F9}\u{1F1E9}"},{code:"CL",dialCode:"+56",name:"Chile",flag:"\u{1F1E8}\u{1F1F1}"},{code:"CN",dialCode:"+86",name:"China",flag:"\u{1F1E8}\u{1F1F3}"},{code:"CO",dialCode:"+57",name:"Colombia",flag:"\u{1F1E8}\u{1F1F4}"},{code:"KM",dialCode:"+269",name:"Comoros",flag:"\u{1F1F0}\u{1F1F2}"},{code:"CG",dialCode:"+242",name:"Congo",flag:"\u{1F1E8}\u{1F1EC}"},{code:"CD",dialCode:"+243",name:"Congo (DRC)",flag:"\u{1F1E8}\u{1F1E9}"},{code:"CR",dialCode:"+506",name:"Costa Rica",flag:"\u{1F1E8}\u{1F1F7}"},{code:"HR",dialCode:"+385",name:"Croatia",flag:"\u{1F1ED}\u{1F1F7}"},{code:"CU",dialCode:"+53",name:"Cuba",flag:"\u{1F1E8}\u{1F1FA}"},{code:"CY",dialCode:"+357",name:"Cyprus",flag:"\u{1F1E8}\u{1F1FE}"},{code:"CZ",dialCode:"+420",name:"Czechia",flag:"\u{1F1E8}\u{1F1FF}"},{code:"CI",dialCode:"+225",name:"Cote d'Ivoire",flag:"\u{1F1E8}\u{1F1EE}"},{code:"DK",dialCode:"+45",name:"Denmark",flag:"\u{1F1E9}\u{1F1F0}"},{code:"DJ",dialCode:"+253",name:"Djibouti",flag:"\u{1F1E9}\u{1F1EF}"},{code:"DM",dialCode:"+1",name:"Dominica",flag:"\u{1F1E9}\u{1F1F2}"},{code:"DO",dialCode:"+1",name:"Dominican Republic",flag:"\u{1F1E9}\u{1F1F4}"},{code:"EC",dialCode:"+593",name:"Ecuador",flag:"\u{1F1EA}\u{1F1E8}"},{code:"EG",dialCode:"+20",name:"Egypt",flag:"\u{1F1EA}\u{1F1EC}"},{code:"SV",dialCode:"+503",name:"El Salvador",flag:"\u{1F1F8}\u{1F1FB}"},{code:"GQ",dialCode:"+240",name:"Equatorial Guinea",flag:"\u{1F1EC}\u{1F1F6}"},{code:"ER",dialCode:"+291",name:"Eritrea",flag:"\u{1F1EA}\u{1F1F7}"},{code:"EE",dialCode:"+372",name:"Estonia",flag:"\u{1F1EA}\u{1F1EA}"},{code:"SZ",dialCode:"+268",name:"Eswatini",flag:"\u{1F1F8}\u{1F1FF}"},{code:"ET",dialCode:"+251",name:"Ethiopia",flag:"\u{1F1EA}\u{1F1F9}"},{code:"FJ",dialCode:"+679",name:"Fiji",flag:"\u{1F1EB}\u{1F1EF}"},{code:"FI",dialCode:"+358",name:"Finland",flag:"\u{1F1EB}\u{1F1EE}"},{code:"FR",dialCode:"+33",name:"France",flag:"\u{1F1EB}\u{1F1F7}"},{code:"GA",dialCode:"+241",name:"Gabon",flag:"\u{1F1EC}\u{1F1E6}"},{code:"GM",dialCode:"+220",name:"Gambia",flag:"\u{1F1EC}\u{1F1F2}"},{code:"GE",dialCode:"+995",name:"Georgia",flag:"\u{1F1EC}\u{1F1EA}"},{code:"DE",dialCode:"+49",name:"Germany",flag:"\u{1F1E9}\u{1F1EA}"},{code:"GH",dialCode:"+233",name:"Ghana",flag:"\u{1F1EC}\u{1F1ED}"},{code:"GR",dialCode:"+30",name:"Greece",flag:"\u{1F1EC}\u{1F1F7}"},{code:"GD",dialCode:"+1",name:"Grenada",flag:"\u{1F1EC}\u{1F1E9}"},{code:"GT",dialCode:"+502",name:"Guatemala",flag:"\u{1F1EC}\u{1F1F9}"},{code:"GN",dialCode:"+224",name:"Guinea",flag:"\u{1F1EC}\u{1F1F3}"},{code:"GW",dialCode:"+245",name:"Guinea-Bissau",flag:"\u{1F1EC}\u{1F1FC}"},{code:"GY",dialCode:"+592",name:"Guyana",flag:"\u{1F1EC}\u{1F1FE}"},{code:"HT",dialCode:"+509",name:"Haiti",flag:"\u{1F1ED}\u{1F1F9}"},{code:"HN",dialCode:"+504",name:"Honduras",flag:"\u{1F1ED}\u{1F1F3}"},{code:"HK",dialCode:"+852",name:"Hong Kong",flag:"\u{1F1ED}\u{1F1F0}"},{code:"HU",dialCode:"+36",name:"Hungary",flag:"\u{1F1ED}\u{1F1FA}"},{code:"IS",dialCode:"+354",name:"Iceland",flag:"\u{1F1EE}\u{1F1F8}"},{code:"IN",dialCode:"+91",name:"India",flag:"\u{1F1EE}\u{1F1F3}"},{code:"ID",dialCode:"+62",name:"Indonesia",flag:"\u{1F1EE}\u{1F1E9}"},{code:"IR",dialCode:"+98",name:"Iran",flag:"\u{1F1EE}\u{1F1F7}"},{code:"IQ",dialCode:"+964",name:"Iraq",flag:"\u{1F1EE}\u{1F1F6}"},{code:"IE",dialCode:"+353",name:"Ireland",flag:"\u{1F1EE}\u{1F1EA}"},{code:"IL",dialCode:"+972",name:"Israel",flag:"\u{1F1EE}\u{1F1F1}"},{code:"IT",dialCode:"+39",name:"Italy",flag:"\u{1F1EE}\u{1F1F9}"},{code:"JM",dialCode:"+1",name:"Jamaica",flag:"\u{1F1EF}\u{1F1F2}"},{code:"JP",dialCode:"+81",name:"Japan",flag:"\u{1F1EF}\u{1F1F5}"},{code:"JO",dialCode:"+962",name:"Jordan",flag:"\u{1F1EF}\u{1F1F4}"},{code:"KZ",dialCode:"+7",name:"Kazakhstan",flag:"\u{1F1F0}\u{1F1FF}"},{code:"KE",dialCode:"+254",name:"Kenya",flag:"\u{1F1F0}\u{1F1EA}"},{code:"KI",dialCode:"+686",name:"Kiribati",flag:"\u{1F1F0}\u{1F1EE}"},{code:"KW",dialCode:"+965",name:"Kuwait",flag:"\u{1F1F0}\u{1F1FC}"},{code:"KG",dialCode:"+996",name:"Kyrgyzstan",flag:"\u{1F1F0}\u{1F1EC}"},{code:"LA",dialCode:"+856",name:"Laos",flag:"\u{1F1F1}\u{1F1E6}"},{code:"LV",dialCode:"+371",name:"Latvia",flag:"\u{1F1F1}\u{1F1FB}"},{code:"LB",dialCode:"+961",name:"Lebanon",flag:"\u{1F1F1}\u{1F1E7}"},{code:"LS",dialCode:"+266",name:"Lesotho",flag:"\u{1F1F1}\u{1F1F8}"},{code:"LR",dialCode:"+231",name:"Liberia",flag:"\u{1F1F1}\u{1F1F7}"},{code:"LY",dialCode:"+218",name:"Libya",flag:"\u{1F1F1}\u{1F1FE}"},{code:"LI",dialCode:"+423",name:"Liechtenstein",flag:"\u{1F1F1}\u{1F1EE}"},{code:"LT",dialCode:"+370",name:"Lithuania",flag:"\u{1F1F1}\u{1F1F9}"},{code:"LU",dialCode:"+352",name:"Luxembourg",flag:"\u{1F1F1}\u{1F1FA}"},{code:"MO",dialCode:"+853",name:"Macao",flag:"\u{1F1F2}\u{1F1F4}"},{code:"MG",dialCode:"+261",name:"Madagascar",flag:"\u{1F1F2}\u{1F1EC}"},{code:"MW",dialCode:"+265",name:"Malawi",flag:"\u{1F1F2}\u{1F1FC}"},{code:"MY",dialCode:"+60",name:"Malaysia",flag:"\u{1F1F2}\u{1F1FE}"},{code:"MV",dialCode:"+960",name:"Maldives",flag:"\u{1F1F2}\u{1F1FB}"},{code:"ML",dialCode:"+223",name:"Mali",flag:"\u{1F1F2}\u{1F1F1}"},{code:"MT",dialCode:"+356",name:"Malta",flag:"\u{1F1F2}\u{1F1F9}"},{code:"MH",dialCode:"+692",name:"Marshall Islands",flag:"\u{1F1F2}\u{1F1ED}"},{code:"MR",dialCode:"+222",name:"Mauritania",flag:"\u{1F1F2}\u{1F1F7}"},{code:"MU",dialCode:"+230",name:"Mauritius",flag:"\u{1F1F2}\u{1F1FA}"},{code:"MX",dialCode:"+52",name:"Mexico",flag:"\u{1F1F2}\u{1F1FD}"},{code:"FM",dialCode:"+691",name:"Micronesia",flag:"\u{1F1EB}\u{1F1F2}"},{code:"MD",dialCode:"+373",name:"Moldova",flag:"\u{1F1F2}\u{1F1E9}"},{code:"MC",dialCode:"+377",name:"Monaco",flag:"\u{1F1F2}\u{1F1E8}"},{code:"MN",dialCode:"+976",name:"Mongolia",flag:"\u{1F1F2}\u{1F1F3}"},{code:"ME",dialCode:"+382",name:"Montenegro",flag:"\u{1F1F2}\u{1F1EA}"},{code:"MA",dialCode:"+212",name:"Morocco",flag:"\u{1F1F2}\u{1F1E6}"},{code:"MZ",dialCode:"+258",name:"Mozambique",flag:"\u{1F1F2}\u{1F1FF}"},{code:"MM",dialCode:"+95",name:"Myanmar",flag:"\u{1F1F2}\u{1F1F2}"},{code:"NA",dialCode:"+264",name:"Namibia",flag:"\u{1F1F3}\u{1F1E6}"},{code:"NR",dialCode:"+674",name:"Nauru",flag:"\u{1F1F3}\u{1F1F7}"},{code:"NP",dialCode:"+977",name:"Nepal",flag:"\u{1F1F3}\u{1F1F5}"},{code:"NL",dialCode:"+31",name:"Netherlands",flag:"\u{1F1F3}\u{1F1F1}"},{code:"NZ",dialCode:"+64",name:"New Zealand",flag:"\u{1F1F3}\u{1F1FF}"},{code:"NI",dialCode:"+505",name:"Nicaragua",flag:"\u{1F1F3}\u{1F1EE}"},{code:"NE",dialCode:"+227",name:"Niger",flag:"\u{1F1F3}\u{1F1EA}"},{code:"NG",dialCode:"+234",name:"Nigeria",flag:"\u{1F1F3}\u{1F1EC}"},{code:"KP",dialCode:"+850",name:"North Korea",flag:"\u{1F1F0}\u{1F1F5}"},{code:"MK",dialCode:"+389",name:"North Macedonia",flag:"\u{1F1F2}\u{1F1F0}"},{code:"NO",dialCode:"+47",name:"Norway",flag:"\u{1F1F3}\u{1F1F4}"},{code:"OM",dialCode:"+968",name:"Oman",flag:"\u{1F1F4}\u{1F1F2}"},{code:"PK",dialCode:"+92",name:"Pakistan",flag:"\u{1F1F5}\u{1F1F0}"},{code:"PW",dialCode:"+680",name:"Palau",flag:"\u{1F1F5}\u{1F1FC}"},{code:"PS",dialCode:"+970",name:"Palestine",flag:"\u{1F1F5}\u{1F1F8}"},{code:"PA",dialCode:"+507",name:"Panama",flag:"\u{1F1F5}\u{1F1E6}"},{code:"PG",dialCode:"+675",name:"Papua New Guinea",flag:"\u{1F1F5}\u{1F1EC}"},{code:"PY",dialCode:"+595",name:"Paraguay",flag:"\u{1F1F5}\u{1F1FE}"},{code:"PE",dialCode:"+51",name:"Peru",flag:"\u{1F1F5}\u{1F1EA}"},{code:"PH",dialCode:"+63",name:"Philippines",flag:"\u{1F1F5}\u{1F1ED}"},{code:"PL",dialCode:"+48",name:"Poland",flag:"\u{1F1F5}\u{1F1F1}"},{code:"PT",dialCode:"+351",name:"Portugal",flag:"\u{1F1F5}\u{1F1F9}"},{code:"PR",dialCode:"+1",name:"Puerto Rico",flag:"\u{1F1F5}\u{1F1F7}"},{code:"QA",dialCode:"+974",name:"Qatar",flag:"\u{1F1F6}\u{1F1E6}"},{code:"RO",dialCode:"+40",name:"Romania",flag:"\u{1F1F7}\u{1F1F4}"},{code:"RU",dialCode:"+7",name:"Russia",flag:"\u{1F1F7}\u{1F1FA}"},{code:"RW",dialCode:"+250",name:"Rwanda",flag:"\u{1F1F7}\u{1F1FC}"},{code:"KN",dialCode:"+1",name:"Saint Kitts and Nevis",flag:"\u{1F1F0}\u{1F1F3}"},{code:"LC",dialCode:"+1",name:"Saint Lucia",flag:"\u{1F1F1}\u{1F1E8}"},{code:"VC",dialCode:"+1",name:"Saint Vincent and the Grenadines",flag:"\u{1F1FB}\u{1F1E8}"},{code:"WS",dialCode:"+685",name:"Samoa",flag:"\u{1F1FC}\u{1F1F8}"},{code:"SM",dialCode:"+378",name:"San Marino",flag:"\u{1F1F8}\u{1F1F2}"},{code:"ST",dialCode:"+239",name:"Sao Tome and Principe",flag:"\u{1F1F8}\u{1F1F9}"},{code:"SA",dialCode:"+966",name:"Saudi Arabia",flag:"\u{1F1F8}\u{1F1E6}"},{code:"SN",dialCode:"+221",name:"Senegal",flag:"\u{1F1F8}\u{1F1F3}"},{code:"RS",dialCode:"+381",name:"Serbia",flag:"\u{1F1F7}\u{1F1F8}"},{code:"SC",dialCode:"+248",name:"Seychelles",flag:"\u{1F1F8}\u{1F1E8}"},{code:"SL",dialCode:"+232",name:"Sierra Leone",flag:"\u{1F1F8}\u{1F1F1}"},{code:"SG",dialCode:"+65",name:"Singapore",flag:"\u{1F1F8}\u{1F1EC}"},{code:"SK",dialCode:"+421",name:"Slovakia",flag:"\u{1F1F8}\u{1F1F0}"},{code:"SI",dialCode:"+386",name:"Slovenia",flag:"\u{1F1F8}\u{1F1EE}"},{code:"SB",dialCode:"+677",name:"Solomon Islands",flag:"\u{1F1F8}\u{1F1E7}"},{code:"SO",dialCode:"+252",name:"Somalia",flag:"\u{1F1F8}\u{1F1F4}"},{code:"ZA",dialCode:"+27",name:"South Africa",flag:"\u{1F1FF}\u{1F1E6}"},{code:"KR",dialCode:"+82",name:"South Korea",flag:"\u{1F1F0}\u{1F1F7}"},{code:"SS",dialCode:"+211",name:"South Sudan",flag:"\u{1F1F8}\u{1F1F8}"},{code:"ES",dialCode:"+34",name:"Spain",flag:"\u{1F1EA}\u{1F1F8}"},{code:"LK",dialCode:"+94",name:"Sri Lanka",flag:"\u{1F1F1}\u{1F1F0}"},{code:"SD",dialCode:"+249",name:"Sudan",flag:"\u{1F1F8}\u{1F1E9}"},{code:"SR",dialCode:"+597",name:"Suriname",flag:"\u{1F1F8}\u{1F1F7}"},{code:"SE",dialCode:"+46",name:"Sweden",flag:"\u{1F1F8}\u{1F1EA}"},{code:"CH",dialCode:"+41",name:"Switzerland",flag:"\u{1F1E8}\u{1F1ED}"},{code:"SY",dialCode:"+963",name:"Syria",flag:"\u{1F1F8}\u{1F1FE}"},{code:"TW",dialCode:"+886",name:"Taiwan",flag:"\u{1F1F9}\u{1F1FC}"},{code:"TJ",dialCode:"+992",name:"Tajikistan",flag:"\u{1F1F9}\u{1F1EF}"},{code:"TZ",dialCode:"+255",name:"Tanzania",flag:"\u{1F1F9}\u{1F1FF}"},{code:"TH",dialCode:"+66",name:"Thailand",flag:"\u{1F1F9}\u{1F1ED}"},{code:"TL",dialCode:"+670",name:"Timor-Leste",flag:"\u{1F1F9}\u{1F1F1}"},{code:"TG",dialCode:"+228",name:"Togo",flag:"\u{1F1F9}\u{1F1EC}"},{code:"TO",dialCode:"+676",name:"Tonga",flag:"\u{1F1F9}\u{1F1F4}"},{code:"TT",dialCode:"+1",name:"Trinidad and Tobago",flag:"\u{1F1F9}\u{1F1F9}"},{code:"TN",dialCode:"+216",name:"Tunisia",flag:"\u{1F1F9}\u{1F1F3}"},{code:"TR",dialCode:"+90",name:"Turkey",flag:"\u{1F1F9}\u{1F1F7}"},{code:"TM",dialCode:"+993",name:"Turkmenistan",flag:"\u{1F1F9}\u{1F1F2}"},{code:"TV",dialCode:"+688",name:"Tuvalu",flag:"\u{1F1F9}\u{1F1FB}"},{code:"UG",dialCode:"+256",name:"Uganda",flag:"\u{1F1FA}\u{1F1EC}"},{code:"UA",dialCode:"+380",name:"Ukraine",flag:"\u{1F1FA}\u{1F1E6}"},{code:"AE",dialCode:"+971",name:"United Arab Emirates",flag:"\u{1F1E6}\u{1F1EA}"},{code:"GB",dialCode:"+44",name:"United Kingdom",flag:"\u{1F1EC}\u{1F1E7}"},{code:"US",dialCode:"+1",name:"United States",flag:"\u{1F1FA}\u{1F1F8}"},{code:"UY",dialCode:"+598",name:"Uruguay",flag:"\u{1F1FA}\u{1F1FE}"},{code:"UZ",dialCode:"+998",name:"Uzbekistan",flag:"\u{1F1FA}\u{1F1FF}"},{code:"VU",dialCode:"+678",name:"Vanuatu",flag:"\u{1F1FB}\u{1F1FA}"},{code:"VA",dialCode:"+39",name:"Vatican City",flag:"\u{1F1FB}\u{1F1E6}"},{code:"VE",dialCode:"+58",name:"Venezuela",flag:"\u{1F1FB}\u{1F1EA}"},{code:"VN",dialCode:"+84",name:"Vietnam",flag:"\u{1F1FB}\u{1F1F3}"},{code:"YE",dialCode:"+967",name:"Yemen",flag:"\u{1F1FE}\u{1F1EA}"},{code:"ZM",dialCode:"+260",name:"Zambia",flag:"\u{1F1FF}\u{1F1F2}"},{code:"ZW",dialCode:"+263",name:"Zimbabwe",flag:"\u{1F1FF}\u{1F1FC}"}],ae=new Map(U.map(e=>[e.code,e])),ne={"America/New_York":"US","America/Chicago":"US","America/Denver":"US","America/Los_Angeles":"US","America/Anchorage":"US","Pacific/Honolulu":"US","America/Phoenix":"US","America/Indiana/Indianapolis":"US","America/Toronto":"CA","America/Vancouver":"CA","America/Edmonton":"CA","America/Winnipeg":"CA","America/Halifax":"CA","America/St_Johns":"CA","Europe/London":"GB","Europe/Dublin":"IE","Europe/Paris":"FR","Europe/Berlin":"DE","Europe/Madrid":"ES","Europe/Rome":"IT","Europe/Amsterdam":"NL","Europe/Brussels":"BE","Europe/Zurich":"CH","Europe/Vienna":"AT","Europe/Stockholm":"SE","Europe/Oslo":"NO","Europe/Copenhagen":"DK","Europe/Helsinki":"FI","Europe/Warsaw":"PL","Europe/Prague":"CZ","Europe/Bucharest":"RO","Europe/Budapest":"HU","Europe/Athens":"GR","Europe/Istanbul":"TR","Europe/Moscow":"RU","Europe/Kiev":"UA","Europe/Lisbon":"PT","Europe/Belgrade":"RS","Europe/Zagreb":"HR","Europe/Bratislava":"SK","Europe/Ljubljana":"SI","Europe/Tallinn":"EE","Europe/Riga":"LV","Europe/Vilnius":"LT","Asia/Tokyo":"JP","Asia/Seoul":"KR","Asia/Shanghai":"CN","Asia/Hong_Kong":"HK","Asia/Taipei":"TW","Asia/Singapore":"SG","Asia/Kolkata":"IN","Asia/Karachi":"PK","Asia/Dhaka":"BD","Asia/Bangkok":"TH","Asia/Jakarta":"ID","Asia/Manila":"PH","Asia/Kuala_Lumpur":"MY","Asia/Ho_Chi_Minh":"VN","Asia/Riyadh":"SA","Asia/Dubai":"AE","Asia/Tehran":"IR","Asia/Baghdad":"IQ","Asia/Beirut":"LB","Asia/Jerusalem":"IL","Asia/Amman":"JO","Asia/Almaty":"KZ","Asia/Tashkent":"UZ","Asia/Colombo":"LK","Asia/Kathmandu":"NP","Asia/Yangon":"MM","Australia/Sydney":"AU","Australia/Melbourne":"AU","Australia/Brisbane":"AU","Australia/Perth":"AU","Australia/Adelaide":"AU","Pacific/Auckland":"NZ","Pacific/Fiji":"FJ","Africa/Cairo":"EG","Africa/Lagos":"NG","Africa/Nairobi":"KE","Africa/Johannesburg":"ZA","Africa/Casablanca":"MA","Africa/Accra":"GH","Africa/Addis_Ababa":"ET","Africa/Dar_es_Salaam":"TZ","Africa/Kampala":"UG","America/Mexico_City":"MX","America/Bogota":"CO","America/Lima":"PE","America/Santiago":"CL","America/Buenos_Aires":"AR","America/Sao_Paulo":"BR","America/Caracas":"VE","America/Guatemala":"GT","America/Havana":"CU","America/Panama":"PA","America/Jamaica":"JM"};function K(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return ne[e]??"US"}catch{return"US"}}function N(e){if(!e.startsWith("+"))return e;let n=e.slice(1);if(n.startsWith("1")&&n.length===11){let a=n.slice(1,4),t=n.slice(4,7),o=n.slice(7);return`+1 (${a}) ${t}-${o}`}for(let a=4;a>=1;a--){let t="+"+n.slice(0,a),o=U.find(i=>i.dialCode===t);if(o){let i=n.slice(a);return`${o.dialCode} ${i}`}}return e}function $(e,n){let a=e.replace(/\D/g,""),t=ae.get(n);if(!t)return"+"+a;let o=t.dialCode.slice(1);return a.startsWith(o)?"+"+a:t.dialCode+a}function H(e){return/^\+[1-9]\d{6,14}$/.test(e)}function F(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}async function y(e,n,a){let o={Authorization:`Bearer ${c().token}`};a!==void 0&&(o["Content-Type"]="application/json");let i=await fetch(e,{method:n,headers:o,...a!==void 0&&{body:JSON.stringify(a)}});if(!i.ok){let r=`Auth request failed: ${i.status} ${i.statusText}`,d="auth_error";try{let s=await i.json();s.error&&(r=s.error),s.code&&(d=s.code)}catch{}throw new l(r,d,i.status)}return await i.json()}var _="__ms_remy_state",R="ms_popup",W="ms:remy:callback",V=!1,E=re();function re(){if(typeof window>"u")return!1;try{let e=new URL(window.location.href).searchParams;return e.has("code")&&e.get(R)!=="1"}catch{return!1}}function ie(){let e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();let n=new Uint8Array(16);return e?.getRandomValues?.(n),Array.from(n,a=>a.toString(16).padStart(2,"0")).join("")}function de(e){e.searchParams.delete("code"),e.searchParams.delete("state");try{window.history.replaceState(window.history.state,"",e.toString())}catch{}}var v=new Set;function T(e){L({token:e.token,user:e.user,methods:e.methods,visitorId:e.visitorId}),v.forEach(n=>n(e.user))}function k(e){if(!e.user)throw new l("Verification succeeded but no user was returned","auth_error");return e.user}function j(e){let n=c();n.user&&(Object.assign(n.user,e),v.forEach(a=>a(n.user)))}function x(){try{return c().user}catch{return null}}function J(){let e=x();v.forEach(n=>n(e))}function Z(){E||(E=!0,J())}function I(){E&&(E=!1,J())}function se(){try{return window.top!==window.self}catch{return!0}}var le=520,ce=600;function ge(e,n){let a=window.screenX,t=window.screenY,o=window.outerWidth||window.innerWidth||window.screen.width,i=window.outerHeight||window.innerHeight||window.screen.height,r=Math.min(e,o),d=Math.min(n,i),s=Math.max(0,Math.round(a+(o-r)/2)),C=Math.max(0,Math.round(t+(i-d)/2));return`popup=yes,width=${Math.round(r)},height=${Math.round(d)},left=${s},top=${C}`}function ue(e,n){let a=new URL(e,window.location.href);a.searchParams.set(R,"1");let t=`/_/auth/remy/start?${new URLSearchParams({redirect_uri:a.toString(),state:n}).toString()}`,o=window.open(t,"ms-remy-signin",ge(le,ce));return o?(Z(),new Promise((i,r)=>{let d=window.location.origin,s=!1,C=!1,f=A=>{if(!s){s=!0,window.removeEventListener("message",h),clearInterval(m),clearTimeout(w),I();try{o.closed||o.close()}catch{}A()}},h=A=>{if(s||C||A.origin!==d||A.source!==o)return;let p=A.data;if(!(!p||p.type!==W||p.state!==n)){if(C=!0,!p.code){f(()=>r(new l("Sign-in returned no code.","auth_error")));return}y("/_/auth/remy/exchange","POST",{code:p.code}).then(u=>{E=!1,T(u),f(()=>i(k(u)))}).catch(u=>f(()=>r(u)))}};window.addEventListener("message",h);let m=setInterval(()=>{o.closed&&!C&&f(()=>i(null))},400),w=setTimeout(()=>f(()=>r(new l("Sign-in timed out.","signin_timeout"))),300*1e3)})):Promise.reject(new l("The sign-in popup was blocked. Allow popups for this site and try again.","popup_blocked"))}function O(){if(typeof window>"u")return!1;let e;try{e=new URL(window.location.href).searchParams}catch{return!1}if(e.get(R)!=="1")return!1;let n=e.get("code");if(!n)return!1;if(V)return!0;let a=window.opener;if(!a||a===window)return!1;try{a.postMessage({type:W,code:n,state:e.get("state")??void 0},window.location.origin)}catch{return!1}V=!0;try{setTimeout(()=>window.close(),0)}catch{}return!0}var me={get currentUser(){return c().user},getCurrentUser(){return c().user},isAuthenticated(){return c().user!==null},get authStatus(){return E?"authenticating":x()?"authenticated":"unauthenticated"},get currentVisitorId(){return c().visitorId??null},getCurrentVisitorId(){return c().visitorId??null},sendEmailCode(e){return y("/_/auth/email/send","POST",{email:e})},async verifyEmailCode(e,n){let a=await y("/_/auth/email/verify","POST",{verificationId:e,code:n});return T(a),k(a)},sendSmsCode(e){return y("/_/auth/sms/send","POST",{phone:e})},async verifySmsCode(e,n){let a=await y("/_/auth/sms/verify","POST",{verificationId:e,code:n});return T(a),k(a)},signInWithRemy(e){let n=e?.mode??"auto",a=n==="popup"||n==="auto"&&se(),t=e?.redirectUri??window.location.href,o=e?.state??ie();if(a)return ue(t,o);try{sessionStorage.setItem(_,o)}catch{}let i=new URLSearchParams({redirect_uri:t,state:o});return window.location.assign(`/_/auth/remy/start?${i.toString()}`),new Promise(()=>{})},async handleRemyRedirect(){if(typeof window>"u")return null;let e=new URL(window.location.href),n=e.searchParams.get("code");if(!n)return null;if(e.searchParams.get(R)==="1")return O(),null;let a=e.searchParams.get("state");de(e);let t=null;try{t=sessionStorage.getItem(_),sessionStorage.removeItem(_)}catch{}if(Z(),a!==null&&a!==t)throw I(),new l("Sign-in state mismatch \u2014 possible CSRF or a stale redirect. Please try again.","invalid_state");try{let o=await y("/_/auth/remy/exchange","POST",{code:n});return E=!1,T(o),k(o)}catch(o){throw I(),o}},async requestEmailChange(e){await y("/_/auth/email/change","POST",{newEmail:e})},async confirmEmailChange(e,n){let a=await y("/_/auth/email/change/confirm","POST",{newEmail:e,code:n});return T(a),k(a)},async requestPhoneChange(e){await y("/_/auth/phone/change","POST",{newPhone:e})},async confirmPhoneChange(e,n){let a=await y("/_/auth/phone/change/confirm","POST",{newPhone:e,code:n});return T(a),k(a)},async logout(){let e=await y("/_/auth/logout","POST",{});T(e)},async createApiKey(){let e=await y("/_/auth/api-key/create","POST",{});return j({apiKey:e.apiKey}),{key:e.key}},async revokeApiKey(){await y("/_/auth/api-key/revoke","POST",{}),j({apiKey:null})},onAuthStateChanged(e){return v.add(e),e(x()),()=>{v.delete(e)}},phone:{countries:U,detectCountry:K,format:N,toE164:$,isValid:H},email:{isValid:F}};typeof window<"u"&&!O()&&globalThis.__MINDSTUDIO__&&setTimeout(()=>{try{c()}catch{}},0);export{l as MindStudioInterfaceError,z as analytics,me as auth,X as createAgentChatClient,q as createClient,ee as platform};
4
4
  //# sourceMappingURL=index.js.map