@mindstudio-ai/interface 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +133 -5
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -26,21 +26,30 @@
|
|
|
26
26
|
*
|
|
27
27
|
* ## Streaming
|
|
28
28
|
*
|
|
29
|
-
* Methods can optionally stream
|
|
30
|
-
*
|
|
31
|
-
* callback to receive incremental updates:
|
|
29
|
+
* Methods can optionally stream output via SSE. Pass `{ stream: true }` as
|
|
30
|
+
* the second argument along with callbacks for the events you care about:
|
|
32
31
|
*
|
|
33
32
|
* ```ts
|
|
33
|
+
* // LLM token text
|
|
34
34
|
* const result = await api.submitVendorRequest({ name: 'Acme' }, {
|
|
35
35
|
* stream: true,
|
|
36
36
|
* onToken: (text) => setResponseText(text),
|
|
37
37
|
* });
|
|
38
|
+
*
|
|
39
|
+
* // Structured progress events from `stream({...})` on the backend
|
|
40
|
+
* const order = await api.processOrder({ id: 'abc' }, {
|
|
41
|
+
* stream: true,
|
|
42
|
+
* onStreamData: (event) => setStatus(event),
|
|
43
|
+
* });
|
|
38
44
|
* ```
|
|
39
45
|
*
|
|
40
46
|
* **Important:** The `text` value passed to `onToken` is the accumulated
|
|
41
47
|
* response so far (not a delta). Replace your display content each time —
|
|
42
48
|
* do not append. See {@link InvokeOptions.onToken} for details.
|
|
43
49
|
*
|
|
50
|
+
* Each `onStreamData` payload is independent (no accumulation) — it's the
|
|
51
|
+
* raw object passed to `stream({...})` on the backend.
|
|
52
|
+
*
|
|
44
53
|
* ## Type safety
|
|
45
54
|
*
|
|
46
55
|
* Since the frontend and backend live in the same project, you can import
|
|
@@ -67,11 +76,12 @@
|
|
|
67
76
|
*
|
|
68
77
|
* When `stream` is `true`, the SDK sends `{ stream: true }` in the request
|
|
69
78
|
* body and parses the response as an SSE (Server-Sent Events) stream.
|
|
70
|
-
*
|
|
79
|
+
* Four event types are handled:
|
|
71
80
|
*
|
|
72
81
|
* | SSE `type` | Payload field | SDK action |
|
|
73
82
|
* |------------|---------------|------------|
|
|
74
83
|
* | `token` | `text` | Calls {@link onToken} with accumulated text |
|
|
84
|
+
* | `data` | `data` | Calls {@link onStreamData} with the raw payload |
|
|
75
85
|
* | `error` | `error` | Calls {@link onStreamError} with the message |
|
|
76
86
|
* | `done` | `output` | Captures as the method's return value |
|
|
77
87
|
*
|
|
@@ -113,6 +123,30 @@ interface InvokeOptions {
|
|
|
113
123
|
* ```
|
|
114
124
|
*/
|
|
115
125
|
onToken?: (text: string) => void;
|
|
126
|
+
/**
|
|
127
|
+
* Called when the backend method emits a structured event via
|
|
128
|
+
* `stream({...})` (object payload).
|
|
129
|
+
*
|
|
130
|
+
* Receives the raw object passed to `stream()` on the backend —
|
|
131
|
+
* not accumulated, not parsed, not wrapped. Use this for status
|
|
132
|
+
* updates, progress, intermediate results, or any structured
|
|
133
|
+
* streaming UI that isn't LLM token text.
|
|
134
|
+
*
|
|
135
|
+
* Different from {@link onToken}, which receives accumulated text from
|
|
136
|
+
* `stream('text')` calls.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* await api.processOrder({ id: 'abc' }, {
|
|
141
|
+
* stream: true,
|
|
142
|
+
* onStreamData: (event) => {
|
|
143
|
+
* // event is whatever the backend passed to stream({...})
|
|
144
|
+
* setStatus(event as { status: string; progress: number });
|
|
145
|
+
* },
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
onStreamData?: (payload: unknown) => void;
|
|
116
150
|
/**
|
|
117
151
|
* Called if a stream-level error event arrives.
|
|
118
152
|
*
|
|
@@ -573,6 +607,13 @@ interface AppUser {
|
|
|
573
607
|
roles: string[];
|
|
574
608
|
/** Masked API key (e.g. "sk_...a1b2"), or null if no key exists. */
|
|
575
609
|
apiKey: string | null;
|
|
610
|
+
/**
|
|
611
|
+
* How this user authenticated. `'remy'` means the identity was delegated
|
|
612
|
+
* to the platform via "Sign in with Remy" (roles + verification are
|
|
613
|
+
* platform-managed for these users). `null`/absent means an app-verified
|
|
614
|
+
* user (email-code, sms-code, or api-key).
|
|
615
|
+
*/
|
|
616
|
+
provider?: 'remy' | null;
|
|
576
617
|
/** ISO 8601 timestamp of when the user was created. */
|
|
577
618
|
createdAt: string;
|
|
578
619
|
}
|
|
@@ -713,6 +754,38 @@ interface Country {
|
|
|
713
754
|
* ```
|
|
714
755
|
*/
|
|
715
756
|
|
|
757
|
+
/**
|
|
758
|
+
* Options for {@link Auth.signInWithRemy}.
|
|
759
|
+
*/
|
|
760
|
+
interface SignInWithRemyOptions {
|
|
761
|
+
/**
|
|
762
|
+
* The same-origin URL the platform should return the browser to after
|
|
763
|
+
* resolving access. Must be an origin the app actually serves on (the
|
|
764
|
+
* backend validates it against the app's allow-list).
|
|
765
|
+
*
|
|
766
|
+
* @default `window.location.href` — the user lands back where they started.
|
|
767
|
+
*/
|
|
768
|
+
redirectUri?: string;
|
|
769
|
+
/**
|
|
770
|
+
* CSRF token round-tripped through the redirect. Provide your own to
|
|
771
|
+
* correlate the return with app state; otherwise an opaque random value
|
|
772
|
+
* is generated. Validated on return by {@link Auth.handleRemyRedirect}
|
|
773
|
+
* (top-level flow) or by the opener (embedded/popup flow).
|
|
774
|
+
*/
|
|
775
|
+
state?: string;
|
|
776
|
+
/**
|
|
777
|
+
* How to run the handshake.
|
|
778
|
+
*
|
|
779
|
+
* - `'auto'` (default) — full-page redirect when the app is top-level; a
|
|
780
|
+
* popup when it's embedded in a cross-origin iframe (the authorize page
|
|
781
|
+
* can't be framed, so a redirect there would fail).
|
|
782
|
+
* - `'popup'` — always use a popup.
|
|
783
|
+
* - `'redirect'` — always use a full-page redirect.
|
|
784
|
+
*
|
|
785
|
+
* @default 'auto'
|
|
786
|
+
*/
|
|
787
|
+
mode?: 'auto' | 'popup' | 'redirect';
|
|
788
|
+
}
|
|
716
789
|
/**
|
|
717
790
|
* The auth namespace — authentication flows, state, and helpers.
|
|
718
791
|
*
|
|
@@ -765,6 +838,61 @@ interface Auth {
|
|
|
765
838
|
* and returns the authenticated user.
|
|
766
839
|
*/
|
|
767
840
|
verifySmsCode(verificationId: string, code: string): Promise<AppUser>;
|
|
841
|
+
/**
|
|
842
|
+
* Start the "Sign in with Remy" flow. The platform — not the app — decides
|
|
843
|
+
* who the person is and whether they're allowed (think "Sign in with
|
|
844
|
+
* Google"). Auto-detects the context:
|
|
845
|
+
*
|
|
846
|
+
* - **Top-level** (production, standalone tab): redirects the browser to the
|
|
847
|
+
* platform and bounces back to `redirectUri` with a one-time code that
|
|
848
|
+
* {@link handleRemyRedirect} redeems on return. **The page navigates away**,
|
|
849
|
+
* so the returned promise never settles.
|
|
850
|
+
* - **Embedded** (cross-origin iframe, e.g. the dev IDE preview): opens a
|
|
851
|
+
* top-level popup for the handshake (the authorize page can't be framed).
|
|
852
|
+
* The returned promise resolves with the user on success, `null` if the
|
|
853
|
+
* user closes the popup, or rejects (`popup_blocked` / `invalid_state` /
|
|
854
|
+
* `signin_timeout` / exchange error). `onAuthStateChanged` also fires on
|
|
855
|
+
* success.
|
|
856
|
+
*
|
|
857
|
+
* Must be called from a user gesture (e.g. a click) so the popup isn't
|
|
858
|
+
* blocked. Override the auto-detection with `options.mode`.
|
|
859
|
+
*
|
|
860
|
+
* @example
|
|
861
|
+
* ```ts
|
|
862
|
+
* // "Continue with {Org}" button — works top-level or embedded:
|
|
863
|
+
* <button onClick={() => auth.signInWithRemy()}>Continue with Acme</button>
|
|
864
|
+
*
|
|
865
|
+
* // Await the result in an embedded app:
|
|
866
|
+
* const user = await auth.signInWithRemy();
|
|
867
|
+
* if (user) navigate('/dashboard');
|
|
868
|
+
* ```
|
|
869
|
+
*/
|
|
870
|
+
signInWithRemy(options?: SignInWithRemyOptions): Promise<AppUser | null>;
|
|
871
|
+
/**
|
|
872
|
+
* Complete a "Sign in with Remy" redirect. Call once on app load — it's a
|
|
873
|
+
* no-op (resolves `null`) when there's no code to redeem, so it's safe to
|
|
874
|
+
* run on every mount.
|
|
875
|
+
*
|
|
876
|
+
* Handles both entry points:
|
|
877
|
+
* - **SP-initiated** (returned from {@link signInWithRemy}) — validates the
|
|
878
|
+
* round-tripped CSRF `state` against the value stashed at start.
|
|
879
|
+
* - **IdP-initiated** (opened from the Remy dashboard) — a `?code=` lands on
|
|
880
|
+
* first paint with no `state`; the single-use, app-bound code is the
|
|
881
|
+
* control, so it's redeemed directly.
|
|
882
|
+
*
|
|
883
|
+
* On success, updates the session in-place (fires `onAuthStateChanged`),
|
|
884
|
+
* strips `code`/`state` from the URL, and returns the authenticated user.
|
|
885
|
+
*
|
|
886
|
+
* @returns The authenticated user, or `null` if there was no code to redeem.
|
|
887
|
+
* @throws `invalid_state` if a returned `state` doesn't match the stashed one.
|
|
888
|
+
*
|
|
889
|
+
* @example
|
|
890
|
+
* ```ts
|
|
891
|
+
* useEffect(() => { auth.handleRemyRedirect(); }, []);
|
|
892
|
+
* useEffect(() => auth.onAuthStateChanged(setUser), []);
|
|
893
|
+
* ```
|
|
894
|
+
*/
|
|
895
|
+
handleRemyRedirect(): Promise<AppUser | null>;
|
|
768
896
|
/** Request an email change. Sends a code to the new email. */
|
|
769
897
|
requestEmailChange(newEmail: string): Promise<void>;
|
|
770
898
|
/** Confirm an email change with the verification code. */
|
|
@@ -974,4 +1102,4 @@ type Breadcrumb = {
|
|
|
974
1102
|
timestamp: number;
|
|
975
1103
|
};
|
|
976
1104
|
|
|
977
|
-
export { type AbortablePromise, type AgentChatClient, type AgentChatEvent, type AnalyticsClient, type AppUser, type Auth, type BootstrapConfig, type Breadcrumb, type Country, type CustomEventProps, type InvokeOptions, type Message, MindStudioInterfaceError, type SendMessageCallbacks, type SendMessageOptions, type SendMessageResult, type Thread, type ThreadListPage, type ThreadSummary, type UploadFileOptions, analytics, auth, createAgentChatClient, createClient, platform };
|
|
1105
|
+
export { type AbortablePromise, type AgentChatClient, type AgentChatEvent, type AnalyticsClient, type AppUser, type Auth, type BootstrapConfig, type Breadcrumb, type Country, type CustomEventProps, type InvokeOptions, type Message, MindStudioInterfaceError, type SendMessageCallbacks, type SendMessageOptions, type SendMessageResult, type SignInWithRemyOptions, type Thread, type ThreadListPage, type ThreadSummary, type UploadFileOptions, analytics, auth, createAgentChatClient, createClient, platform };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var l=class extends Error{code;status;constructor(t,n,o){super(t),this.name="MindStudioInterfaceError",this.code=n,this.status=o}};var
|
|
2
|
-
`)[1]??"";return`${e}|${n.trim()}`}function
|
|
3
|
-
`);f=m.pop()??"";for(let
|
|
4
|
-
`);E=A.pop()??"";for(let R of A){if(!R.startsWith("data: "))continue;let h=R.slice(6);try{let I=JSON.parse(h);I.type==="done"&&(T={stopReason:I.stopReason,usage:I.usage}),Xe(I,r)}catch{}}}if(!T)throw new l("Stream ended without a done event","stream_incomplete");return T})();return c.abort=()=>a.abort(),c}}}var We={async uploadFile(e,t){let n=s(),{onProgress:o,signal:a}=t??{};a?.throwIfAborted();let i=await fetch("/_/generate-upload-request",{method:"POST",headers:{Authorization:`Bearer ${n.token}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e.name,contentType:e.type||"application/octet-stream"}),signal:a});if(!i.ok)throw new l(`Upload presign failed: ${i.status} ${i.statusText}`,"upload_error",i.status);let{uploadUrl:c,uploadFields:d,publicUrl:g}=await i.json(),u=new FormData;for(let[v,E]of Object.entries(d))u.append(v,E);if(u.append("file",e),o)return await Qe(c,u,o,a),g;let f=await fetch(c,{method:"POST",body:u,signal:a});if(!f.ok)throw new l(`File upload failed: ${f.status} ${f.statusText}`,"upload_error",f.status);return g}};function Qe(e,t,n,o){return new Promise((a,r)=>{let i=new XMLHttpRequest;if(i.upload.addEventListener("progress",c=>{c.lengthComputable&&n(c.loaded/c.total)}),i.addEventListener("load",()=>{i.status>=200&&i.status<300?(n(1),a()):r(new l(`File upload failed: ${i.status} ${i.statusText}`,"upload_error",i.status))}),i.addEventListener("error",()=>{r(new l("File upload failed: network error","upload_error"))}),i.addEventListener("abort",()=>{r(new DOMException("Upload aborted","AbortError"))}),o){if(o.aborted){r(new DOMException("Upload aborted","AbortError"));return}o.addEventListener("abort",()=>i.abort(),{once:!0})}i.open("POST",e),i.send(t)})}var D=[{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}"}],et=new Map(D.map(e=>[e.code,e])),tt={"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 he(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return tt[e]??"US"}catch{return"US"}}function Ce(e){if(!e.startsWith("+"))return e;let t=e.slice(1);if(t.startsWith("1")&&t.length===11){let n=t.slice(1,4),o=t.slice(4,7),a=t.slice(7);return`+1 (${n}) ${o}-${a}`}for(let n=4;n>=1;n--){let o="+"+t.slice(0,n),a=D.find(r=>r.dialCode===o);if(a){let r=t.slice(n);return`${a.dialCode} ${r}`}}return e}function ye(e,t){let n=e.replace(/\D/g,""),o=et.get(t);if(!o)return"+"+n;let a=o.dialCode.slice(1);return n.startsWith(a)?"+"+n:o.dialCode+n}function Ae(e){return/^\+[1-9]\d{6,14}$/.test(e)}function Ee(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}async function y(e,t,n){let a={Authorization:`Bearer ${s().token}`};n!==void 0&&(a["Content-Type"]="application/json");let r=await fetch(e,{method:t,headers:a,...n!==void 0&&{body:JSON.stringify(n)}});if(!r.ok){let i=`Auth request failed: ${r.status} ${r.statusText}`,c="auth_error";try{let d=await r.json();d.error&&(i=d.error),d.code&&(c=d.code)}catch{}throw new l(i,c,r.status)}return await r.json()}var G=new Set;function P(e){me({token:e.token,user:e.user,methods:e.methods,visitorId:e.visitorId}),G.forEach(t=>t(e.user))}function H(e){if(!e.user)throw new l("Verification succeeded but no user was returned","auth_error");return e.user}function Te(e){let t=s();t.user&&(Object.assign(t.user,e),G.forEach(n=>n(t.user)))}var ot={get currentUser(){return s().user},getCurrentUser(){return s().user},isAuthenticated(){return s().user!==null},get currentVisitorId(){return s().visitorId??null},getCurrentVisitorId(){return s().visitorId??null},sendEmailCode(e){return y("/_/auth/email/send","POST",{email:e})},async verifyEmailCode(e,t){let n=await y("/_/auth/email/verify","POST",{verificationId:e,code:t});return P(n),H(n)},sendSmsCode(e){return y("/_/auth/sms/send","POST",{phone:e})},async verifySmsCode(e,t){let n=await y("/_/auth/sms/verify","POST",{verificationId:e,code:t});return P(n),H(n)},async requestEmailChange(e){await y("/_/auth/email/change","POST",{newEmail:e})},async confirmEmailChange(e,t){let n=await y("/_/auth/email/change/confirm","POST",{newEmail:e,code:t});return P(n),H(n)},async requestPhoneChange(e){await y("/_/auth/phone/change","POST",{newPhone:e})},async confirmPhoneChange(e,t){let n=await y("/_/auth/phone/change/confirm","POST",{newPhone:e,code:t});return P(n),H(n)},async logout(){let e=await y("/_/auth/logout","POST",{});P(e)},async createApiKey(){let e=await y("/_/auth/api-key/create","POST",{});return Te({apiKey:e.apiKey}),{key:e.key}},async revokeApiKey(){await y("/_/auth/api-key/revoke","POST",{}),Te({apiKey:null})},onAuthStateChanged(e){return G.add(e),e(s().user),()=>{G.delete(e)}},phone:{countries:D,detectCountry:he,format:Ce,toE164:ye,isValid:Ae},email:{isValid:Ee}};typeof window<"u"&&globalThis.__MINDSTUDIO__&&setTimeout(()=>{try{s()}catch{}},0);export{l as MindStudioInterfaceError,De as analytics,ot as auth,Ye as createAgentChatClient,ze as createClient,We as platform};
|
|
1
|
+
var l=class extends Error{code;status;constructor(t,n,o){super(t),this.name="MindStudioInterfaceError",this.code=n,this.status=o}};var _e="/_/telemetry/";var L=[];function v(e){L.push(e),L.length>20&&L.shift()}function F(){return L.slice()}function Y(e){return e.includes(_e)}function Pe(e){return typeof e=="string"?e:e instanceof URL?e.href:e.url||String(e)}var x="",K=new Set;function Q(e){return K.add(e),()=>{K.delete(e)}}function B(e){e!==x&&(v({type:"navigation",from:x,to:e,timestamp:Date.now()}),x=e,K.forEach(t=>{try{t(e)}catch{}}))}function Re(){let e=window;if(e.__ms_history_patched)return;e.__ms_history_patched=!0,x=location.href;let t=history.pushState.bind(history);history.pushState=function(o,a,r){t(o,a,r);try{B(location.href)}catch{}};let n=history.replaceState.bind(history);history.replaceState=function(o,a,r){n(o,a,r);try{B(location.href)}catch{}},window.addEventListener("popstate",()=>{try{B(location.href)}catch{}}),window.addEventListener("hashchange",()=>{try{B(location.href)}catch{}})}function ke(e){if(!window.fetch||window.fetch.__ms_patched)return;let n=window.fetch.bind(window),o=function(a,r){let i=Pe(a);if(Y(i))return n(a,r);let u=(r?.method||(typeof a!="string"&&!(a instanceof URL)?a.method:"")||"GET").toUpperCase(),d=Date.now();return n(a,r).then(g=>{let c={type:"fetch",method:u,url:i,status:g.status,ok:g.ok,duration:Date.now()-d,timestamp:d};if(!g.ok&&e)try{g.clone().text().then(f=>{c.body=f.slice(0,1024),v(c)}).catch(()=>v(c))}catch{v(c)}else v(c);return g},g=>{throw v({type:"fetch",method:u,url:i,ok:!1,duration:Date.now()-d,timestamp:d,error:g instanceof Error?g.message:String(g??"fetch failed")}),g})};o.__ms_patched=!0,window.fetch=o}function Me(){if(XMLHttpRequest.prototype.open.__ms_patched)return;let t=XMLHttpRequest.prototype.open,n=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(o,a,...r){return this.__ms_method=(o||"GET").toUpperCase(),this.__ms_url=String(a),t.apply(this,[o,a,...r])},XMLHttpRequest.prototype.send=function(o){let a=this.__ms_method||"GET",r=this.__ms_url||"";if(Y(r))return n.apply(this,[o]);let i=Date.now();return this.addEventListener("loadend",function(){v({type:"xhr",method:a,url:r,status:this.status,ok:this.status>=200&&this.status<300,duration:Date.now()-i,timestamp:i})},{once:!0}),n.apply(this,[o])},XMLHttpRequest.prototype.open.__ms_patched=!0}var X=!1;function ee(e){if(!X){X=!0;try{Re()}catch{}try{ke(e.captureResponseBodies)}catch{}try{Me()}catch{}}}var oe="/_/telemetry/events",Ue=1e3,Ie=100,Be=6e4,w=[],$=null,V=0,re=!1;function ie(e){re||w.length>=Ie||(w.push(e),Le())}function Le(){$||w.length===0||($=setTimeout(()=>{$=null,xe()},Ue))}function se(){let e=w;return w=[],e}async function xe(){if(w.length===0)return;if(Date.now()<V){w=[];return}let e;try{e=s()}catch{w=[];return}let t=se();try{let n=await fetch(oe,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({events:t})});if(n.status===429){let o=n.headers.get("Retry-After"),a=o?parseInt(o,10):NaN,r=Number.isFinite(a)&&a>0?a*1e3:Be;V=Date.now()+r}}catch{}}function te(){if(w.length===0)return;if(Date.now()<V){w=[];return}let e;try{e=s()}catch{w=[];return}let t=se();try{fetch(oe,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({events:t}),keepalive:!0})}catch{}}function Oe(e){if(!e)return;let t={};for(let[n,o]of Object.entries(e))(typeof o=="string"||typeof o=="number"||typeof o=="boolean")&&(t[n]=o);return Object.keys(t).length>0?t:void 0}function ne(e){try{let t=s();ie({type:"pageview",releaseId:t.releaseId,url:e,referrer:document.referrer,userAgent:navigator.userAgent,language:navigator.language,screen:{w:window.innerWidth,h:window.innerHeight},timestamp:Date.now()})}catch{}}function De(e,t){try{let n=s();ie({type:"event",releaseId:n.releaseId,name:e,url:location.href,timestamp:Date.now(),props:Oe(t)})}catch{}}var Ne="/_/telemetry/presence",He=1e4,Ge=3e4,k=null,_=null,D=1e3,b=!1;function j(){let e=D;D=Math.min(D*2,He);let t=Math.random()*250;return e+t}function O(e){_&&clearTimeout(_),_=setTimeout(()=>{_=null,b&&de()},e)}function Ke(){if(b=!1,_&&(clearTimeout(_),_=null),k){try{k.abort()}catch{}k=null}}async function de(){if(!b)return;let e;try{e=s()}catch{b=!1;return}k=new AbortController;let t=k.signal;try{let n=await fetch(Ne,{method:"GET",headers:{Authorization:`Bearer ${e.token}`,Accept:"text/event-stream"},signal:t});if(n.status===503){let a=n.headers.get("Retry-After"),r=a?parseInt(a,10):NaN,i=Number.isFinite(r)&&r>0?r*1e3:Ge;O(i);return}if(n.status===401){b=!1;return}if(!n.ok||!n.body){O(j());return}D=1e3;let o=n.body.getReader();for(;b;){let{done:a}=await o.read();if(a)break}b&&O(j())}catch(n){let o=n?.name;b&&o!=="AbortError"&&O(j())}}var Fe={track:De},ae=!1;function $e(){if(ae||typeof window>"u")return;let e;try{e=s()}catch{return}if(e.telemetry?.analytics===!1)return;ae=!0;let t=()=>{re=!0,te(),Ke()};window.addEventListener("pagehide",t),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&te()}),Q(n=>{ne(n)}),ne(location.href),b=!0,de()}function le(){try{$e()}catch{}}var ge="/_/telemetry/errors",je=1e3,Ve=50,qe=6e4,ce=!1,A=[],q=null,J=0,me=!1;function Je(e,t){let n=t.split(`
|
|
2
|
+
`)[1]??"";return`${e}|${n.trim()}`}function fe(e){if(me)return;let t=Je(e.message,e.stack);for(let n of A)if(n._fp===t){n.count=(n.count??1)+1;return}A.length>=Ve||(e._fp=t,A.push(e),Ze())}function Ze(){q||A.length===0||(q=setTimeout(()=>{q=null,ze()},je))}function pe(){let e=A;return A=[],e.map(({_fp:t,...n})=>n)}async function ze(){if(A.length===0)return;if(Date.now()<J){A=[];return}let e=(()=>{try{return s()}catch{return null}})();if(!e){A=[];return}let t=pe();try{let n=await fetch(ge,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({events:t})});if(n.status===429){let o=n.headers.get("Retry-After"),a=o?parseInt(o,10):NaN,r=Number.isFinite(a)&&a>0?a*1e3:qe;J=Date.now()+r}}catch{}}function ue(){if(A.length===0)return;if(Date.now()<J){A=[];return}let e=null;try{e=s()}catch{A=[];return}let t=pe();try{fetch(ge,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({events:t}),keepalive:!0})}catch{}}function We(e){try{let t=s();fe({releaseId:t.releaseId,url:location.href,userAgent:navigator.userAgent,timestamp:Date.now(),type:"error",message:e.message||"Unknown error",stack:e.error?.stack??"",source:e.filename||void 0,line:typeof e.lineno=="number"?e.lineno:void 0,column:typeof e.colno=="number"?e.colno:void 0,breadcrumbs:F()})}catch{}}function Xe(e){try{let t=s(),n=e.reason,o,a="";n&&typeof n=="object"?(o=n.message||String(n),a=n.stack??""):o=String(n??"Unhandled rejection"),fe({releaseId:t.releaseId,url:location.href,userAgent:navigator.userAgent,timestamp:Date.now(),type:"unhandledrejection",message:o,stack:a,breadcrumbs:F()})}catch{}}function Ye(){if(ce||typeof window>"u")return;let e;try{e=s()}catch{return}if(e.telemetry?.errors===!1)return;ce=!0,ee({captureResponseBodies:!!e.telemetryCaptureResponseBodies}),window.addEventListener("error",We),window.addEventListener("unhandledrejection",Xe);let t=()=>{me=!0,ue()};window.addEventListener("pagehide",t),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ue()})}function he(){try{Ye()}catch{}}var N;function s(){if(N)return N;let e=globalThis.__MINDSTUDIO__;if(!e)throw new l("@mindstudio-ai/interface requires the MindStudio platform context. This page must be loaded inside MindStudio (window.__MINDSTUDIO__ is missing).","not_initialized");if(!e.token||!e.releaseId||!e.methods){let t=["token","releaseId","methods"].filter(n=>!e[n]).join(", ");throw new l(`MindStudio platform context is incomplete. Missing: ${t}`,"invalid_config")}return N=e,he(),le(),N}function Ce(e){let t=s();e.token!==void 0&&(t.token=e.token),e.user!==void 0&&(t.user=e.user),e.methods!==void 0&&(t.methods=e.methods),e.visitorId!==void 0&&(t.visitorId=e.visitorId)}function Qe(){return new Proxy({},{get(e,t){return async(n,o)=>{let a=s(),r=a.methods[t];if(!r)throw new l(`Method "${t}" not found. Available methods: ${Object.keys(a.methods).join(", ")||"(none)"}`,"method_not_found");let i=`/_/methods/${r}/invoke`,u=o?.stream===!0,d=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.token}`},body:JSON.stringify({input:n??{},...u&&{stream:!0}})});if(!d.ok){let p=`Method "${t}" failed: ${d.status} ${d.statusText}`,h="method_error";try{let m=await d.json();m.error&&(p=m.error),m.code&&(h=m.code)}catch{}throw new l(p,h,d.status)}if(!u)return(await d.json()).output;let g=d.body.getReader(),c=new TextDecoder,f="",E,S;for(;;){let{done:p,value:h}=await g.read();if(p)break;f+=c.decode(h,{stream:!0});let m=f.split(`
|
|
3
|
+
`);f=m.pop()??"";for(let T of m){if(!T.startsWith("data: "))continue;let U=T.slice(6);try{let C=JSON.parse(U);C.type==="token"&&o?.onToken&&C.text?o.onToken(C.text):C.type==="data"&&o?.onStreamData?o.onStreamData(C.data):C.type==="error"&&C.error?(S=C.error,o?.onStreamError&&o.onStreamError(C.error)):C.type==="done"&&(E=C.output)}catch{}}}if(E===void 0&&S!==void 0)throw new l(S,"method_error");if(E===void 0)throw new l("Stream ended without a done event","stream_incomplete");return E}}})}var ye="/_/agent";async function M(e,t,n){let a={Authorization:`Bearer ${s().token}`};n!==void 0&&(a["Content-Type"]="application/json");let r=await fetch(`${ye}${e}`,{method:t,headers:a,...n!==void 0&&{body:JSON.stringify(n)}});if(!r.ok){let i=`Agent chat request failed: ${r.status} ${r.statusText}`,u="agent_chat_error";try{let d=await r.json();d.error&&(i=d.error),d.code&&(u=d.code)}catch{}throw new l(i,u,r.status)}return await r.json()}function et(e,t){switch(t.onEvent?.(e),e.type){case"text":t.onText?.(e.text);break;case"thinking":t.onThinking?.(e.text);break;case"thinking_complete":t.onThinkingComplete?.(e.thinking,e.signature);break;case"tool_call_start":t.onToolCallStart?.(e.id,e.name);break;case"tool_call_result":t.onToolCallResult?.(e.id,e.output);break;case"error":t.onError?.(e.error);break}}function tt(){return{createThread(){return M("/threads","POST")},listThreads(e){let t=e?`?cursor=${encodeURIComponent(e)}`:"";return M(`/threads${t}`,"GET")},getThread(e){return M(`/threads/${e}`,"GET")},async updateThread(e,t){await M(`/threads/${e}`,"PATCH",{title:t})},async deleteThread(e){await M(`/threads/${e}`,"DELETE")},sendMessage(e,t,n,o){let a=new AbortController,r=n??{};r.signal&&(r.signal.aborted?a.abort():r.signal.addEventListener("abort",()=>a.abort(),{once:!0}));let u=(async()=>{let d=s(),g=`${ye}/threads/${e}/messages`,c=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${d.token}`},body:JSON.stringify({content:t,...o?.attachments?.length&&{attachments:o.attachments}}),signal:a.signal});if(!c.ok){let h=`Send message failed: ${c.status} ${c.statusText}`,m="agent_chat_error";try{let T=await c.json();T.error&&(h=T.error),T.code&&(m=T.code)}catch{}throw new l(h,m,c.status)}let f=c.body.getReader(),E=new TextDecoder,S="",p;for(;;){let{done:h,value:m}=await f.read();if(h)break;S+=E.decode(m,{stream:!0});let T=S.split(`
|
|
4
|
+
`);S=T.pop()??"";for(let U of T){if(!U.startsWith("data: "))continue;let C=U.slice(6);try{let I=JSON.parse(C);I.type==="done"&&(p={stopReason:I.stopReason,usage:I.usage}),et(I,r)}catch{}}}if(!p)throw new l("Stream ended without a done event","stream_incomplete");return p})();return u.abort=()=>a.abort(),u}}}var nt={async uploadFile(e,t){let n=s(),{onProgress:o,signal:a}=t??{};a?.throwIfAborted();let i=await fetch("/_/generate-upload-request",{method:"POST",headers:{Authorization:`Bearer ${n.token}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e.name,contentType:e.type||"application/octet-stream"}),signal:a});if(!i.ok)throw new l(`Upload presign failed: ${i.status} ${i.statusText}`,"upload_error",i.status);let{uploadUrl:u,uploadFields:d,publicUrl:g}=await i.json(),c=new FormData;for(let[E,S]of Object.entries(d))c.append(E,S);if(c.append("file",e),o)return await at(u,c,o,a),g;let f=await fetch(u,{method:"POST",body:c,signal:a});if(!f.ok)throw new l(`File upload failed: ${f.status} ${f.statusText}`,"upload_error",f.status);return g}};function at(e,t,n,o){return new Promise((a,r)=>{let i=new XMLHttpRequest;if(i.upload.addEventListener("progress",u=>{u.lengthComputable&&n(u.loaded/u.total)}),i.addEventListener("load",()=>{i.status>=200&&i.status<300?(n(1),a()):r(new l(`File upload failed: ${i.status} ${i.statusText}`,"upload_error",i.status))}),i.addEventListener("error",()=>{r(new l("File upload failed: network error","upload_error"))}),i.addEventListener("abort",()=>{r(new DOMException("Upload aborted","AbortError"))}),o){if(o.aborted){r(new DOMException("Upload aborted","AbortError"));return}o.addEventListener("abort",()=>i.abort(),{once:!0})}i.open("POST",e),i.send(t)})}var H=[{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}"}],ot=new Map(H.map(e=>[e.code,e])),rt={"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 Ae(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return rt[e]??"US"}catch{return"US"}}function Se(e){if(!e.startsWith("+"))return e;let t=e.slice(1);if(t.startsWith("1")&&t.length===11){let n=t.slice(1,4),o=t.slice(4,7),a=t.slice(7);return`+1 (${n}) ${o}-${a}`}for(let n=4;n>=1;n--){let o="+"+t.slice(0,n),a=H.find(r=>r.dialCode===o);if(a){let r=t.slice(n);return`${a.dialCode} ${r}`}}return e}function we(e,t){let n=e.replace(/\D/g,""),o=ot.get(t);if(!o)return"+"+n;let a=o.dialCode.slice(1);return n.startsWith(a)?"+"+n:o.dialCode+n}function Ee(e){return/^\+[1-9]\d{6,14}$/.test(e)}function Te(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}async function y(e,t,n){let a={Authorization:`Bearer ${s().token}`};n!==void 0&&(a["Content-Type"]="application/json");let r=await fetch(e,{method:t,headers:a,...n!==void 0&&{body:JSON.stringify(n)}});if(!r.ok){let i=`Auth request failed: ${r.status} ${r.statusText}`,u="auth_error";try{let d=await r.json();d.error&&(i=d.error),d.code&&(u=d.code)}catch{}throw new l(i,u,r.status)}return await r.json()}var Z="__ms_remy_state",z="ms_popup",ve="ms:remy:callback";function dt(){let e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e?.getRandomValues?.(t),Array.from(t,n=>n.toString(16).padStart(2,"0")).join("")}function lt(e){e.searchParams.delete("code"),e.searchParams.delete("state");try{window.history.replaceState(window.history.state,"",e.toString())}catch{}}var G=new Set;function P(e){Ce({token:e.token,user:e.user,methods:e.methods,visitorId:e.visitorId}),G.forEach(t=>t(e.user))}function R(e){if(!e.user)throw new l("Verification succeeded but no user was returned","auth_error");return e.user}function be(e){let t=s();t.user&&(Object.assign(t.user,e),G.forEach(n=>n(t.user)))}function ct(){try{return window.top!==window.self}catch{return!0}}function ut(e,t){let n=new URL(e,window.location.href);n.searchParams.set(z,"1");let o=`/_/auth/remy/start?${new URLSearchParams({redirect_uri:n.toString(),state:t}).toString()}`,a=window.open(o,"ms-remy-signin","width=480,height=720");return a?new Promise((r,i)=>{let u=window.location.origin,d=!1,g=!1,c=p=>{if(!d){d=!0,window.removeEventListener("message",f),clearInterval(E),clearTimeout(S);try{a.closed||a.close()}catch{}p()}},f=p=>{if(p.origin!==u||p.source!==a)return;let h=p.data;if(!(!h||h.type!==ve||h.state!==t)){if(g=!0,!h.code){c(()=>i(new l("Sign-in returned no code.","auth_error")));return}y("/_/auth/remy/exchange","POST",{code:h.code}).then(m=>{P(m),c(()=>r(R(m)))}).catch(m=>c(()=>i(m)))}};window.addEventListener("message",f);let E=setInterval(()=>{a.closed&&!g&&c(()=>r(null))},400),S=setTimeout(()=>c(()=>i(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 W(){if(typeof window>"u")return!1;let e;try{e=new URL(window.location.href).searchParams}catch{return!1}if(e.get(z)!=="1")return!1;let t=e.get("code");if(!t)return!1;let n=window.opener;if(!n||n===window)return!1;try{n.postMessage({type:ve,code:t,state:e.get("state")??void 0},window.location.origin)}catch{return!1}try{setTimeout(()=>window.close(),0)}catch{}return!0}var gt={get currentUser(){return s().user},getCurrentUser(){return s().user},isAuthenticated(){return s().user!==null},get currentVisitorId(){return s().visitorId??null},getCurrentVisitorId(){return s().visitorId??null},sendEmailCode(e){return y("/_/auth/email/send","POST",{email:e})},async verifyEmailCode(e,t){let n=await y("/_/auth/email/verify","POST",{verificationId:e,code:t});return P(n),R(n)},sendSmsCode(e){return y("/_/auth/sms/send","POST",{phone:e})},async verifySmsCode(e,t){let n=await y("/_/auth/sms/verify","POST",{verificationId:e,code:t});return P(n),R(n)},signInWithRemy(e){let t=e?.mode??"auto",n=t==="popup"||t==="auto"&&ct(),o=e?.redirectUri??window.location.href,a=e?.state??dt();if(n)return ut(o,a);try{sessionStorage.setItem(Z,a)}catch{}let r=new URLSearchParams({redirect_uri:o,state:a});return window.location.assign(`/_/auth/remy/start?${r.toString()}`),new Promise(()=>{})},async handleRemyRedirect(){if(typeof window>"u")return null;let e=new URL(window.location.href),t=e.searchParams.get("code");if(!t)return null;if(e.searchParams.get(z)==="1")return W(),null;let n=e.searchParams.get("state");lt(e);let o=null;try{o=sessionStorage.getItem(Z),sessionStorage.removeItem(Z)}catch{}if(n!==null&&n!==o)throw new l("Sign-in state mismatch \u2014 possible CSRF or a stale redirect. Please try again.","invalid_state");let a=await y("/_/auth/remy/exchange","POST",{code:t});return P(a),R(a)},async requestEmailChange(e){await y("/_/auth/email/change","POST",{newEmail:e})},async confirmEmailChange(e,t){let n=await y("/_/auth/email/change/confirm","POST",{newEmail:e,code:t});return P(n),R(n)},async requestPhoneChange(e){await y("/_/auth/phone/change","POST",{newPhone:e})},async confirmPhoneChange(e,t){let n=await y("/_/auth/phone/change/confirm","POST",{newPhone:e,code:t});return P(n),R(n)},async logout(){let e=await y("/_/auth/logout","POST",{});P(e)},async createApiKey(){let e=await y("/_/auth/api-key/create","POST",{});return be({apiKey:e.apiKey}),{key:e.key}},async revokeApiKey(){await y("/_/auth/api-key/revoke","POST",{}),be({apiKey:null})},onAuthStateChanged(e){return G.add(e),e(s().user),()=>{G.delete(e)}},phone:{countries:H,detectCountry:Ae,format:Se,toE164:we,isValid:Ee},email:{isValid:Te}};typeof window<"u"&&!W()&&globalThis.__MINDSTUDIO__&&setTimeout(()=>{try{s()}catch{}},0);export{l as MindStudioInterfaceError,Fe as analytics,gt as auth,tt as createAgentChatClient,Qe as createClient,nt as platform};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|