@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 +14 -3
- package/dist/index.d.ts +36 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/voice.d.ts +63 -5
- package/dist/voice.js +1 -1
- package/dist/voice.js.map +1 -1
- package/package.json +1 -1
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
|
-
//
|
|
341
|
-
//
|
|
342
|
-
//
|
|
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
|
|
2
|
-
`);
|
|
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
|