@mindstudio-ai/interface 0.1.29 → 0.1.31
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/CHANGELOG.md +23 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
What changed in `@mindstudio-ai/interface`, newest first, each version under its own heading. An entry says what's new, what's fixed, and what changed behavior, with what an app's code should be checked for. An entry whose version npm doesn't have yet is still open: a later change adds to it.
|
|
4
|
+
|
|
5
|
+
Versions before 0.1.30 aren't recorded here.
|
|
6
|
+
|
|
7
|
+
## 0.1.31
|
|
8
|
+
|
|
9
|
+
### New
|
|
10
|
+
|
|
11
|
+
- The package carries this changelog, `CHANGELOG.md`, from this version on. Its entries start at 0.1.30.
|
|
12
|
+
|
|
13
|
+
## 0.1.30
|
|
14
|
+
|
|
15
|
+
Published by release v1.0.2832.
|
|
16
|
+
|
|
17
|
+
### Changed behavior
|
|
18
|
+
|
|
19
|
+
- `onToken` is called at most once per animation frame, with the latest text (on a timer in a hidden tab), and always with the final text before an `onStreamData` or `onStreamError` call and before the method's promise resolves. It still receives the whole text so far, as before. Check: an `onToken` that appends what it's given, against the documented contract. It would now lose text, so make it replace what it shows.
|
|
20
|
+
|
|
21
|
+
### New
|
|
22
|
+
|
|
23
|
+
- A streamed call asks for its text as what changed since the last frame (`streamFormat: 'delta'`), and the SDK puts the whole text back together, so a long answer costs about its own length on the wire rather than its length times the number of updates. Against an api from before this, frames carry the whole text, which the SDK reads too.
|
package/dist/index.d.ts
CHANGED
|
@@ -74,13 +74,13 @@
|
|
|
74
74
|
* Options for method invocation. Pass as the optional second argument to
|
|
75
75
|
* any method on the client returned by {@link createClient}.
|
|
76
76
|
*
|
|
77
|
-
* When `stream` is `true`, the SDK sends `{ stream: true
|
|
78
|
-
* body and parses the response as an SSE
|
|
79
|
-
* Four event types are handled:
|
|
77
|
+
* When `stream` is `true`, the SDK sends `{ stream: true, streamFormat:
|
|
78
|
+
* 'delta' }` in the request body and parses the response as an SSE
|
|
79
|
+
* (Server-Sent Events) stream. Four event types are handled:
|
|
80
80
|
*
|
|
81
81
|
* | SSE `type` | Payload field | SDK action |
|
|
82
82
|
* |------------|---------------|------------|
|
|
83
|
-
* | `token` | `text`
|
|
83
|
+
* | `token` | `from`, `text` | Keeps the first `from` characters of the text so far and appends `text` (no `from`: `text` is the whole text), then calls {@link onToken} with it |
|
|
84
84
|
* | `data` | `data` | Calls {@link onStreamData} with the raw payload |
|
|
85
85
|
* | `error` | `error` | Calls {@link onStreamError} with the message |
|
|
86
86
|
* | `done` | `output` | Captures as the method's return value |
|
|
@@ -101,7 +101,9 @@ interface InvokeOptions {
|
|
|
101
101
|
*/
|
|
102
102
|
stream?: boolean;
|
|
103
103
|
/**
|
|
104
|
-
* Called with the accumulated response text
|
|
104
|
+
* Called with the accumulated response text as tokens arrive, at most once
|
|
105
|
+
* per animation frame (the latest text then; a timer in a hidden tab), and
|
|
106
|
+
* always with the final text before the method's promise resolves.
|
|
105
107
|
*
|
|
106
108
|
* **Important:** `text` is the full response so far, not a delta/chunk.
|
|
107
109
|
* Your frontend should **replace** (not append to) its display content
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
`);l=
|
|
3
|
-
`);u=w.pop()??"";for(let M of w){if(!M.startsWith("data: "))continue;let v=M.slice(6);try{let T=JSON.parse(v);if(T.type==="done"&&(A={stopReason:T.stopReason,usage:T.usage}),T.type==="client_tool_call"){let D=t.get(T.name)??(c.onClientToolCall?me=>c.onClientToolCall(T.name,me,T.id):void 0);we(a,T,D)}ye(T,c)}catch{}}}if(!A)throw new m("Stream ended without a done event","stream_incomplete");return A})();return s.abort=()=>d.abort(),s}}}var q=64*1024*1024,Te=4,Y=6,G=50,Se=5,be=6e4,Ee="mindstudio:upload:",K=(e,t)=>new Promise((o,a)=>{let n=setTimeout(o,e);t?.addEventListener("abort",()=>{clearTimeout(n),a(new DOMException("Upload aborted","AbortError"))},{once:!0})});async function B(e,t,o){let a=await fetch(C(`/_/uploads/${e}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:o});if(!a.ok)throw await k(a,`File upload failed: ${e} ${a.status}`,"upload_error");return await a.json()}var x={key:(e,t)=>`${Ee}${e.url}:${t.name}:${t.size}:${t.lastModified}`,read(e){try{return globalThis.localStorage?.getItem(e)??null}catch{return null}},write(e,t){try{globalThis.localStorage?.setItem(e,t)}catch{}},forget(e){try{globalThis.localStorage?.removeItem(e)}catch{}}},X=e=>e instanceof m&&(e.code==="upload_restart"||e.code==="invalid_upload_token");function Pe(e,t,o,a){return new Promise((n,i)=>{let r=new XMLHttpRequest;if(r.upload.addEventListener("progress",d=>o(d.loaded)),r.addEventListener("load",()=>n(r.status)),r.addEventListener("error",()=>n(0)),r.addEventListener("abort",()=>i(new DOMException("Upload aborted","AbortError"))),a){if(a.aborted){i(new DOMException("Upload aborted","AbortError"));return}a.addEventListener("abort",()=>r.abort(),{once:!0})}r.open("PUT",e),r.send(t)})}async function Q(e,t,o){let{onProgress:a,signal:n}=o,i=x.key(e,t);for(let r=0;;r+=1){let d=x.read(i),c=0,h=new Map;if(d)try{let s=await B("status",{session:d},n);c=s.partSize;for(let{partNumber:l,size:f}of s.parts)h.set(l,f)}catch(s){if(s instanceof DOMException&&s.name==="AbortError")throw s;x.forget(i),d=null}if(!d){if(!e.upload.grant)throw new m("This upload token has no grant for a large file.","upload_error");let s=await B("start",{grant:e.upload.grant,size:t.size},n);d=s.session,c=s.partSize,x.write(i,d)}try{await ve(d,t,c,h,a,n),await ke(d,n)}catch(s){if(X(s)&&r===0){x.forget(i);continue}throw s}return x.forget(i),a?.(1),{key:e.key,url:e.url}}}async function ve(e,t,o,a,n,i){let r=Math.max(1,Math.ceil(t.size/o)),d=u=>u<r?o:t.size-o*(r-1),c=[],h=0;for(let u=1;u<=r;u+=1)a.get(u)===d(u)?h+=d(u):c.push(u);let s=new Map,l=()=>{if(n&&t.size>0){let u=h;for(let A of s.values())u+=A;n(Math.min(u/t.size,.999))}};l();let f=new Map,y=(u,A)=>{let E=Math.floor((u-1)/G);A&&f.delete(E);let g=f.get(E);if(!g){let w=E*G+1,M=Math.min(r,w+G-1);g=B("parts",{session:e,parts:Array.from({length:M-w+1},(v,T)=>w+T)},i).then(v=>new Map(v.urls.map(({partNumber:T,url:D})=>[T,D]))),g.catch(()=>f.delete(E)),f.set(E,g)}return g.then(w=>w.get(u))},b=async u=>{let A=(u-1)*o,E=t.slice(A,A+d(u)),g=-1;for(let w=1;w<=Y;w+=1){let M;try{M=await y(u,g===403)}catch(v){if(X(v)||v instanceof DOMException&&v.name==="AbortError")throw v;g=0,await K(1e3*2**(w-1),i);continue}if(g=await Pe(M,E,v=>{s.set(u,v),l()},i),s.delete(u),g>=200&&g<300){h+=E.size,l();return}if(g>=400&&g<500&&g!==403)break;w<Y&&await K(1e3*2**(w-1),i)}throw new m(`File upload failed: part ${u} of ${r}${g>0?` (${g})`:": network error"}`,"upload_error",g>0?g:void 0)},P=Array.from({length:Math.min(Te,c.length)},async()=>{for(;c.length>0;)await b(c.shift())});await Promise.all(P)}async function ke(e,t){for(let o=1;;o+=1)try{await B("complete",{session:e},t);return}catch(a){if(!(a instanceof m&&a.status===503&&o<Se))throw a;await K(be,t)}}var Me={get basePath(){return j()},async uploadFile(e,t){let o=p(),{onProgress:a,signal:n}=t??{};n?.throwIfAborted();let i=C("/_/generate-upload-request"),r=await fetch(i,{method:"POST",headers:{Authorization:`Bearer ${o.token}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e.name,contentType:e.type||"application/octet-stream"}),signal:n});if(!r.ok)throw new m(`Upload presign failed: ${r.status} ${r.statusText}`,"upload_error",r.status);let{uploadUrl:d,uploadFields:c,publicUrl:h}=await r.json(),s=new FormData;for(let[f,y]of Object.entries(c))s.append(f,y);if(s.append("file",e),a)return await ee(d,s,a,n),h;let l=await fetch(d,{method:"POST",body:s,signal:n});if(!l.ok)throw new m(`File upload failed: ${l.status} ${l.statusText}`,"upload_error",l.status);return h},async upload(e,t,o){let{onProgress:a,signal:n}=o??{};if(n?.throwIfAborted(),e.upload.grant&&t.size>=q)return Q(e,t,{onProgress:a,signal:n});let i=new FormData;for(let[r,d]of Object.entries(e.upload.fields))i.append(r,d);if(i.append("file",t),a)await ee(e.upload.url,i,a,n);else{let r=await fetch(e.upload.url,{method:"POST",body:i,signal:n});if(!r.ok)throw new m(`File upload failed: ${r.status} ${r.statusText}`,"upload_error",r.status)}return{key:e.key,url:e.url}}};function ee(e,t,o,a){return new Promise((n,i)=>{let r=new XMLHttpRequest;if(r.upload.addEventListener("progress",d=>{d.lengthComputable&&o(d.loaded/d.total)}),r.addEventListener("load",()=>{r.status>=200&&r.status<300?(o(1),n()):i(new m(`File upload failed: ${r.status} ${r.statusText}`,"upload_error",r.status))}),r.addEventListener("error",()=>{i(new m("File upload failed: network error","upload_error"))}),r.addEventListener("abort",()=>{i(new DOMException("Upload aborted","AbortError"))}),a){if(a.aborted){i(new DOMException("Upload aborted","AbortError"));return}a.addEventListener("abort",()=>r.abort(),{once:!0})}r.open("POST",e),r.send(t)})}var $=[{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}"}],Re=new Map($.map(e=>[e.code,e])),_e={"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 te(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return _e[e]??"US"}catch{return"US"}}function ae(e){if(!e.startsWith("+"))return e;let t=e.slice(1);if(t.startsWith("1")&&t.length===11){let o=t.slice(1,4),a=t.slice(4,7),n=t.slice(7);return`+1 (${o}) ${a}-${n}`}for(let o=4;o>=1;o--){let a="+"+t.slice(0,o),n=$.find(i=>i.dialCode===a);if(n){let i=t.slice(o);return`${n.dialCode} ${i}`}}return e}function ne(e,t){let o=e.replace(/\D/g,""),a=Re.get(t);if(!a)return"+"+o;let n=a.dialCode.slice(1);return o.startsWith(n)?"+"+o:a.dialCode+o}function oe(e){return/^\+[1-9]\d{6,14}$/.test(e)}function re(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function de(){try{return window.top!==window.self}catch{return!0}}async function S(e,t,o){let n={Authorization:`Bearer ${p().token}`},i=t==="POST"?{...o,embedded:de()}:o;i!==void 0&&(n["Content-Type"]="application/json");let r=await fetch(C(e),{method:t,headers:n,...i!==void 0&&{body:JSON.stringify(i)}});if(!r.ok)throw await k(r,`Auth request failed: ${r.status} ${r.statusText}`,"auth_error");return await r.json()}var F="__ms_remy_state",N="ms_popup",le="ms:remy:callback",ie=!1,_=Oe();function Oe(){if(typeof window>"u")return!1;try{let e=new URL(window.location.href).searchParams;return e.has("code")&&e.get(N)!=="1"}catch{return!1}}function Ie(){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,o=>o.toString(16).padStart(2,"0")).join("")}function Le(e){e.searchParams.delete("code"),e.searchParams.delete("state");try{window.history.replaceState(window.history.state,"",e.toString())}catch{}}var I=new Set;function R(e){Z({token:e.token,user:e.user,methods:e.methods,visitorId:e.visitorId}),I.forEach(t=>t(e.user))}function O(e){if(!e.user)throw new m("Verification succeeded but no user was returned","auth_error");return e.user}function se(e){let t=p();t.user&&(Object.assign(t.user,e),I.forEach(o=>o(t.user)))}function z(){try{return p().user}catch{return null}}function ce(){let e=z();I.forEach(t=>t(e))}function ue(){_||(_=!0,ce())}function V(){_&&(_=!1,ce())}var Be=520,$e=600;function Ne(e,t){let o=window.screenX,a=window.screenY,n=window.outerWidth||window.innerWidth||window.screen.width,i=window.outerHeight||window.innerHeight||window.screen.height,r=Math.min(e,n),d=Math.min(t,i),c=Math.max(0,Math.round(o+(n-r)/2)),h=Math.max(0,Math.round(a+(i-d)/2));return`popup=yes,width=${Math.round(r)},height=${Math.round(d)},left=${c},top=${h}`}function De(e,t){let o=new URL(e,window.location.href);o.searchParams.set(N,"1");let a=`${C("/_/auth/remy/start")}?${new URLSearchParams({redirect_uri:o.toString(),state:t}).toString()}`,n=window.open(a,"ms-remy-signin",Ne(Be,$e));return n?(ue(),new Promise((i,r)=>{let d=window.location.origin,c=!1,h=!1,s=b=>{if(!c){c=!0,window.removeEventListener("message",l),clearInterval(f),clearTimeout(y),V();try{n.closed||n.close()}catch{}b()}},l=b=>{if(c||h||b.origin!==d||b.source!==n)return;let P=b.data;if(!(!P||P.type!==le||P.state!==t)){if(h=!0,!P.code){s(()=>r(new m("Sign-in returned no code.","auth_error")));return}S("/_/auth/remy/exchange","POST",{code:P.code}).then(u=>{_=!1,R(u),s(()=>i(O(u)))}).catch(u=>s(()=>r(u)))}};window.addEventListener("message",l);let f=setInterval(()=>{n.closed&&!h&&s(()=>i(null))},400),y=setTimeout(()=>s(()=>r(new m("Sign-in timed out.","signin_timeout"))),300*1e3)})):Promise.reject(new m("The sign-in popup was blocked. Allow popups for this site and try again.","popup_blocked"))}function J(){if(typeof window>"u")return!1;let e;try{e=new URL(window.location.href).searchParams}catch{return!1}if(e.get(N)!=="1")return!1;let t=e.get("code");if(!t)return!1;if(ie)return!0;let o=window.opener;if(!o||o===window)return!1;try{o.postMessage({type:le,code:t,state:e.get("state")??void 0},window.location.origin)}catch{return!1}ie=!0;try{setTimeout(()=>window.close(),0)}catch{}return!0}var He={get currentUser(){return p().user},getCurrentUser(){return p().user},isAuthenticated(){return p().user!==null},get authStatus(){return _?"authenticating":z()?"authenticated":"unauthenticated"},get currentVisitorId(){return p().visitorId??null},getCurrentVisitorId(){return p().visitorId??null},sendEmailCode(e){return S("/_/auth/email/send","POST",{email:e})},async verifyEmailCode(e,t){let o=await S("/_/auth/email/verify","POST",{verificationId:e,code:t});return R(o),O(o)},sendSmsCode(e){return S("/_/auth/sms/send","POST",{phone:e})},async verifySmsCode(e,t){let o=await S("/_/auth/sms/verify","POST",{verificationId:e,code:t});return R(o),O(o)},signInWithRemy(e){let t=e?.mode??"auto",o=t==="popup"||t==="auto"&&de(),a=e?.redirectUri??window.location.href,n=e?.state??Ie();if(o)return De(a,n);try{sessionStorage.setItem(F,n)}catch{}let i=new URLSearchParams({redirect_uri:a,state:n});return window.location.assign(`${C("/_/auth/remy/start")}?${i.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(N)==="1")return J(),null;let o=e.searchParams.get("state");Le(e);let a=null;try{a=sessionStorage.getItem(F),sessionStorage.removeItem(F)}catch{}if(ue(),o!==null&&o!==a)throw V(),new m("Sign-in state mismatch \u2014 possible CSRF or a stale redirect. Please try again.","invalid_state");try{let n=await S("/_/auth/remy/exchange","POST",{code:t});return _=!1,R(n),O(n)}catch(n){throw V(),n}},async requestEmailChange(e){await S("/_/auth/email/change","POST",{newEmail:e})},async confirmEmailChange(e,t){let o=await S("/_/auth/email/change/confirm","POST",{newEmail:e,code:t});return R(o),O(o)},async requestPhoneChange(e){await S("/_/auth/phone/change","POST",{newPhone:e})},async confirmPhoneChange(e,t){let o=await S("/_/auth/phone/change/confirm","POST",{newPhone:e,code:t});return R(o),O(o)},async logout(){let e=await S("/_/auth/logout","POST",{});R(e)},async createApiKey(){let e=await S("/_/auth/api-key/create","POST",{});return se({apiKey:e.apiKey}),{key:e.key}},async revokeApiKey(){await S("/_/auth/api-key/revoke","POST",{}),se({apiKey:null})},onAuthStateChanged(e){return I.add(e),e(z()),()=>{I.delete(e)}},phone:{countries:$,detectCountry:te,format:ae,toE164:ne,isValid:oe},email:{isValid:re}};var ge="/_/events",Ge=40,Ke=50;function Fe(e){let t=null,o=W({prepare:async()=>{if(!t)try{t=await e.getToken()}catch(s){return e.onError?.(s instanceof Error?s:new Error(String(s))),"stop"}return{url:C(ge),headers:{Authorization:`Bearer ${t}`}}},onStatus:s=>(s===401&&(t=null),"retry"),onOpen:()=>{e.onConnect?.()},onLine:s=>{if(!s.startsWith("data: "))return;let l;try{l=JSON.parse(s.slice(6))}catch{return}if(l?.type==="grant_expired"){t=null;return}if(l?.type==="events_dropped"){e.onGap?.(typeof l.count=="number"?l.count:0);return}typeof l?.channel=="string"&&e.onEvent({id:l.id,channel:l.channel,data:l.data,ts:l.ts})}});o.start();let a=[],n=null,i=0,r=!1,d=!1,c=async()=>{if(n=null,r||a.length===0)return;if(!t||Date.now()<i){a=[];return}let s=a;a=[];try{let l=await fetch(C(ge),{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({events:s})});if(l.status===401){t=null;return}if(l.status===429){let f=parseInt(l.headers.get("Retry-After")??"",10);i=Date.now()+(Number.isFinite(f)&&f>0?f*1e3:1e3);return}l.status===403&&!d&&(d=!0,e.onError?.(new Error("events.publish refused: the grant does not carry publish capability for these channels \u2014 mint it with `events.grant(channels, { publish: [...] })`.")))}catch{}};return{close:()=>{r=!0,n&&(clearTimeout(n),n=null),a=[],o.stop()},get state(){let s=o.state;return s==="open"?"open":s==="stopped"?"closed":"connecting"},publish:(s,l)=>{if(!r){if(a.push({channels:s,data:l}),a.length>=Ke){n&&clearTimeout(n),c();return}n||(n=setTimeout(()=>{c()},Ge))}}}}var ze={connect:Fe};if(typeof window<"u"&&!J()&&globalThis.__MINDSTUDIO__)try{p()}catch{}export{m as MindStudioInterfaceError,fe as analytics,He as auth,Ae as createAgentChatClient,he as createClient,ze as events,Me as platform,pe as telemetry};
|
|
1
|
+
import{a as g,b as M,c as W,d as fe,e as pe,f as h,g as j,h as y,i as Z}from"./chunk-5E7SM65A.js";function he(){return new Proxy({},{get(e,t){return async(o,a)=>{let n=h(),r=n.methods[t];if(!r)throw new g(`Method "${t}" not found. Available methods: ${Object.keys(n.methods).join(", ")||"(none)"}`,"method_not_found");let i=y(`/_/methods/${r}/invoke`),d=a?.stream===!0,c=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n.token}`},body:JSON.stringify({input:o??{},...d&&{stream:!0,streamFormat:"delta"}})});if(!c.ok)throw await M(c,`Method "${t}" failed: ${c.status} ${c.statusText}`,"method_error");if(!d)return(await c.json()).output;let C=c.body.getReader(),s=new TextDecoder,l="",p,A,T="",S=Ce(a?.onToken);for(;;){let{done:u,value:v}=await C.read();if(u)break;l+=s.decode(v,{stream:!0});let b=l.split(`
|
|
2
|
+
`);l=b.pop()??"";for(let m of b){if(!m.startsWith("data: "))continue;let w=m.slice(6);try{let f=JSON.parse(w);if(f.type==="token"&&typeof f.text=="string"){T=typeof f.from=="number"?T.slice(0,f.from)+f.text:f.text,T&&S.push(T);continue}S.flush(),f.type==="data"&&a?.onStreamData?a.onStreamData(f.data):f.type==="error"&&f.error?(A=f.error,a?.onStreamError&&a.onStreamError(f.error)):f.type==="done"&&(p=f.output)}catch{}}}if(S.flush(),p===void 0&&A!==void 0)throw new g(A,"method_error");if(p===void 0)throw new g("Stream ended without a done event","stream_incomplete");return p}}})}function Ce(e){let t,o=!1,a=()=>{if(o=!1,t!==void 0&&e){let r=t;t=void 0,e(r)}},n=r=>{typeof requestAnimationFrame=="function"&&!(typeof document<"u"&&document.hidden)?requestAnimationFrame(r):setTimeout(r,16)};return{push(r){e&&(t=r,o||(o=!0,n(a)))},flush:a}}var H="/_/agent",ye=32e3;async function U(e,t,o){let n={Authorization:`Bearer ${h().token}`};o!==void 0&&(n["Content-Type"]="application/json");let r=await fetch(y(`${H}${e}`),{method:t,headers:n,...o!==void 0&&{body:JSON.stringify(o)}});if(!r.ok)throw await M(r,`Agent chat request failed: ${r.status} ${r.statusText}`,"agent_chat_error");return await r.json()}async function L(e,t){let o=h(),a=await fetch(y(`${H}/threads/${e}/tool-results`),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.token}`},body:JSON.stringify(t)});a.ok||console.warn(`[agent-chat] could not deliver client tool result: ${a.status} ${a.statusText}`)}function we(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;case"client_tool_call":break;case"tool_use":case"tool_input_delta":case"done":break}}async function Ae(e,t,o){if(!o){console.warn(`[agent-chat] client tool "${t.name}" was invoked but no handler is registered \u2014 call chat.registerClientTool()`),await L(e,{callId:t.id,error:"unhandled_client_tool"});return}try{let a=await o(t.input);if(a!==void 0){let n=JSON.stringify(a);if(n&&n.length>ye){await L(e,{callId:t.id,error:"result_too_large"});return}}await L(e,{callId:t.id,result:a})}catch(a){await L(e,{callId:t.id,error:a instanceof Error?a.message:String(a)})}}function Te(){let e=new Map,t=new Map,o=a=>{let n=h().token;n&&!e.has(a)&&e.set(a,n)};return{async createThread(){let a=h().token,n=await U("/threads","POST");return a&&e.set(n.id,a),n},listThreads(a){let n=a?`?cursor=${encodeURIComponent(a)}`:"";return U(`/threads${n}`,"GET")},getThread(a){return U(`/threads/${a}`,"GET")},async updateThread(a,n){await U(`/threads/${a}`,"PATCH",{title:n})},async deleteThread(a){await U(`/threads/${a}`,"DELETE")},async claimThread(a,n){let r=n?.previousToken??e.get(a);if(!r)throw new g("No pre-login token known for this thread \u2014 pass options.previousToken.","missing_previous_token",400);await U(`/threads/${a}/claim`,"POST",{previousToken:r}),e.delete(a)},registerClientTool(a,n){return t.set(a,n),()=>{t.get(a)===n&&t.delete(a)}},sendMessage(a,n,r,i){o(a);let d=new AbortController,c=r??{};c.signal&&(c.signal.aborted?d.abort():c.signal.addEventListener("abort",()=>d.abort(),{once:!0}));let s=(async()=>{let l=h(),p=y(`${H}/threads/${a}/messages`),A=await fetch(p,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l.token}`},body:JSON.stringify({content:n,...i?.attachments?.length&&{attachments:i.attachments}}),signal:d.signal});if(!A.ok)throw await M(A,`Send message failed: ${A.status} ${A.statusText}`,"agent_chat_error");let T=A.body.getReader(),S=new TextDecoder,u="",v;for(;;){let{done:b,value:m}=await T.read();if(b)break;u+=S.decode(m,{stream:!0});let w=u.split(`
|
|
3
|
+
`);u=w.pop()??"";for(let f of w){if(!f.startsWith("data: "))continue;let k=f.slice(6);try{let E=JSON.parse(k);if(E.type==="done"&&(v={stopReason:E.stopReason,usage:E.usage}),E.type==="client_tool_call"){let D=t.get(E.name)??(c.onClientToolCall?me=>c.onClientToolCall(E.name,me,E.id):void 0);Ae(a,E,D)}we(E,c)}catch{}}}if(!v)throw new g("Stream ended without a done event","stream_incomplete");return v})();return s.abort=()=>d.abort(),s}}}var q=64*1024*1024,Se=4,Y=6,G=50,be=5,Ee=6e4,Pe="mindstudio:upload:",F=(e,t)=>new Promise((o,a)=>{let n=setTimeout(o,e);t?.addEventListener("abort",()=>{clearTimeout(n),a(new DOMException("Upload aborted","AbortError"))},{once:!0})});async function B(e,t,o){let a=await fetch(y(`/_/uploads/${e}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:o});if(!a.ok)throw await M(a,`File upload failed: ${e} ${a.status}`,"upload_error");return await a.json()}var x={key:(e,t)=>`${Pe}${e.url}:${t.name}:${t.size}:${t.lastModified}`,read(e){try{return globalThis.localStorage?.getItem(e)??null}catch{return null}},write(e,t){try{globalThis.localStorage?.setItem(e,t)}catch{}},forget(e){try{globalThis.localStorage?.removeItem(e)}catch{}}},X=e=>e instanceof g&&(e.code==="upload_restart"||e.code==="invalid_upload_token");function ve(e,t,o,a){return new Promise((n,r)=>{let i=new XMLHttpRequest;if(i.upload.addEventListener("progress",d=>o(d.loaded)),i.addEventListener("load",()=>n(i.status)),i.addEventListener("error",()=>n(0)),i.addEventListener("abort",()=>r(new DOMException("Upload aborted","AbortError"))),a){if(a.aborted){r(new DOMException("Upload aborted","AbortError"));return}a.addEventListener("abort",()=>i.abort(),{once:!0})}i.open("PUT",e),i.send(t)})}async function Q(e,t,o){let{onProgress:a,signal:n}=o,r=x.key(e,t);for(let i=0;;i+=1){let d=x.read(r),c=0,C=new Map;if(d)try{let s=await B("status",{session:d},n);c=s.partSize;for(let{partNumber:l,size:p}of s.parts)C.set(l,p)}catch(s){if(s instanceof DOMException&&s.name==="AbortError")throw s;x.forget(r),d=null}if(!d){if(!e.upload.grant)throw new g("This upload token has no grant for a large file.","upload_error");let s=await B("start",{grant:e.upload.grant,size:t.size},n);d=s.session,c=s.partSize,x.write(r,d)}try{await ke(d,t,c,C,a,n),await Me(d,n)}catch(s){if(X(s)&&i===0){x.forget(r);continue}throw s}return x.forget(r),a?.(1),{key:e.key,url:e.url}}}async function ke(e,t,o,a,n,r){let i=Math.max(1,Math.ceil(t.size/o)),d=u=>u<i?o:t.size-o*(i-1),c=[],C=0;for(let u=1;u<=i;u+=1)a.get(u)===d(u)?C+=d(u):c.push(u);let s=new Map,l=()=>{if(n&&t.size>0){let u=C;for(let v of s.values())u+=v;n(Math.min(u/t.size,.999))}};l();let p=new Map,A=(u,v)=>{let b=Math.floor((u-1)/G);v&&p.delete(b);let m=p.get(b);if(!m){let w=b*G+1,f=Math.min(i,w+G-1);m=B("parts",{session:e,parts:Array.from({length:f-w+1},(k,E)=>w+E)},r).then(k=>new Map(k.urls.map(({partNumber:E,url:D})=>[E,D]))),m.catch(()=>p.delete(b)),p.set(b,m)}return m.then(w=>w.get(u))},T=async u=>{let v=(u-1)*o,b=t.slice(v,v+d(u)),m=-1;for(let w=1;w<=Y;w+=1){let f;try{f=await A(u,m===403)}catch(k){if(X(k)||k instanceof DOMException&&k.name==="AbortError")throw k;m=0,await F(1e3*2**(w-1),r);continue}if(m=await ve(f,b,k=>{s.set(u,k),l()},r),s.delete(u),m>=200&&m<300){C+=b.size,l();return}if(m>=400&&m<500&&m!==403)break;w<Y&&await F(1e3*2**(w-1),r)}throw new g(`File upload failed: part ${u} of ${i}${m>0?` (${m})`:": network error"}`,"upload_error",m>0?m:void 0)},S=Array.from({length:Math.min(Se,c.length)},async()=>{for(;c.length>0;)await T(c.shift())});await Promise.all(S)}async function Me(e,t){for(let o=1;;o+=1)try{await B("complete",{session:e},t);return}catch(a){if(!(a instanceof g&&a.status===503&&o<be))throw a;await F(Ee,t)}}var Re={get basePath(){return j()},async uploadFile(e,t){let o=h(),{onProgress:a,signal:n}=t??{};n?.throwIfAborted();let r=y("/_/generate-upload-request"),i=await fetch(r,{method:"POST",headers:{Authorization:`Bearer ${o.token}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e.name,contentType:e.type||"application/octet-stream"}),signal:n});if(!i.ok)throw new g(`Upload presign failed: ${i.status} ${i.statusText}`,"upload_error",i.status);let{uploadUrl:d,uploadFields:c,publicUrl:C}=await i.json(),s=new FormData;for(let[p,A]of Object.entries(c))s.append(p,A);if(s.append("file",e),a)return await ee(d,s,a,n),C;let l=await fetch(d,{method:"POST",body:s,signal:n});if(!l.ok)throw new g(`File upload failed: ${l.status} ${l.statusText}`,"upload_error",l.status);return C},async upload(e,t,o){let{onProgress:a,signal:n}=o??{};if(n?.throwIfAborted(),e.upload.grant&&t.size>=q)return Q(e,t,{onProgress:a,signal:n});let r=new FormData;for(let[i,d]of Object.entries(e.upload.fields))r.append(i,d);if(r.append("file",t),a)await ee(e.upload.url,r,a,n);else{let i=await fetch(e.upload.url,{method:"POST",body:r,signal:n});if(!i.ok)throw new g(`File upload failed: ${i.status} ${i.statusText}`,"upload_error",i.status)}return{key:e.key,url:e.url}}};function ee(e,t,o,a){return new Promise((n,r)=>{let i=new XMLHttpRequest;if(i.upload.addEventListener("progress",d=>{d.lengthComputable&&o(d.loaded/d.total)}),i.addEventListener("load",()=>{i.status>=200&&i.status<300?(o(1),n()):r(new g(`File upload failed: ${i.status} ${i.statusText}`,"upload_error",i.status))}),i.addEventListener("error",()=>{r(new g("File upload failed: network error","upload_error"))}),i.addEventListener("abort",()=>{r(new DOMException("Upload aborted","AbortError"))}),a){if(a.aborted){r(new DOMException("Upload aborted","AbortError"));return}a.addEventListener("abort",()=>i.abort(),{once:!0})}i.open("POST",e),i.send(t)})}var $=[{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}"}],_e=new Map($.map(e=>[e.code,e])),Ue={"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 te(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return Ue[e]??"US"}catch{return"US"}}function ae(e){if(!e.startsWith("+"))return e;let t=e.slice(1);if(t.startsWith("1")&&t.length===11){let o=t.slice(1,4),a=t.slice(4,7),n=t.slice(7);return`+1 (${o}) ${a}-${n}`}for(let o=4;o>=1;o--){let a="+"+t.slice(0,o),n=$.find(r=>r.dialCode===a);if(n){let r=t.slice(o);return`${n.dialCode} ${r}`}}return e}function ne(e,t){let o=e.replace(/\D/g,""),a=_e.get(t);if(!a)return"+"+o;let n=a.dialCode.slice(1);return o.startsWith(n)?"+"+o:a.dialCode+o}function oe(e){return/^\+[1-9]\d{6,14}$/.test(e)}function re(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function de(){try{return window.top!==window.self}catch{return!0}}async function P(e,t,o){let n={Authorization:`Bearer ${h().token}`},r=t==="POST"?{...o,embedded:de()}:o;r!==void 0&&(n["Content-Type"]="application/json");let i=await fetch(y(e),{method:t,headers:n,...r!==void 0&&{body:JSON.stringify(r)}});if(!i.ok)throw await M(i,`Auth request failed: ${i.status} ${i.statusText}`,"auth_error");return await i.json()}var K="__ms_remy_state",N="ms_popup",le="ms:remy:callback",ie=!1,_=Ie();function Ie(){if(typeof window>"u")return!1;try{let e=new URL(window.location.href).searchParams;return e.has("code")&&e.get(N)!=="1"}catch{return!1}}function Le(){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,o=>o.toString(16).padStart(2,"0")).join("")}function Be(e){e.searchParams.delete("code"),e.searchParams.delete("state");try{window.history.replaceState(window.history.state,"",e.toString())}catch{}}var I=new Set;function R(e){Z({token:e.token,user:e.user,methods:e.methods,visitorId:e.visitorId}),I.forEach(t=>t(e.user))}function O(e){if(!e.user)throw new g("Verification succeeded but no user was returned","auth_error");return e.user}function se(e){let t=h();t.user&&(Object.assign(t.user,e),I.forEach(o=>o(t.user)))}function z(){try{return h().user}catch{return null}}function ce(){let e=z();I.forEach(t=>t(e))}function ue(){_||(_=!0,ce())}function V(){_&&(_=!1,ce())}var $e=520,Ne=600;function De(e,t){let o=window.screenX,a=window.screenY,n=window.outerWidth||window.innerWidth||window.screen.width,r=window.outerHeight||window.innerHeight||window.screen.height,i=Math.min(e,n),d=Math.min(t,r),c=Math.max(0,Math.round(o+(n-i)/2)),C=Math.max(0,Math.round(a+(r-d)/2));return`popup=yes,width=${Math.round(i)},height=${Math.round(d)},left=${c},top=${C}`}function He(e,t){let o=new URL(e,window.location.href);o.searchParams.set(N,"1");let a=`${y("/_/auth/remy/start")}?${new URLSearchParams({redirect_uri:o.toString(),state:t}).toString()}`,n=window.open(a,"ms-remy-signin",De($e,Ne));return n?(ue(),new Promise((r,i)=>{let d=window.location.origin,c=!1,C=!1,s=T=>{if(!c){c=!0,window.removeEventListener("message",l),clearInterval(p),clearTimeout(A),V();try{n.closed||n.close()}catch{}T()}},l=T=>{if(c||C||T.origin!==d||T.source!==n)return;let S=T.data;if(!(!S||S.type!==le||S.state!==t)){if(C=!0,!S.code){s(()=>i(new g("Sign-in returned no code.","auth_error")));return}P("/_/auth/remy/exchange","POST",{code:S.code}).then(u=>{_=!1,R(u),s(()=>r(O(u)))}).catch(u=>s(()=>i(u)))}};window.addEventListener("message",l);let p=setInterval(()=>{n.closed&&!C&&s(()=>r(null))},400),A=setTimeout(()=>s(()=>i(new g("Sign-in timed out.","signin_timeout"))),300*1e3)})):Promise.reject(new g("The sign-in popup was blocked. Allow popups for this site and try again.","popup_blocked"))}function J(){if(typeof window>"u")return!1;let e;try{e=new URL(window.location.href).searchParams}catch{return!1}if(e.get(N)!=="1")return!1;let t=e.get("code");if(!t)return!1;if(ie)return!0;let o=window.opener;if(!o||o===window)return!1;try{o.postMessage({type:le,code:t,state:e.get("state")??void 0},window.location.origin)}catch{return!1}ie=!0;try{setTimeout(()=>window.close(),0)}catch{}return!0}var Ge={get currentUser(){return h().user},getCurrentUser(){return h().user},isAuthenticated(){return h().user!==null},get authStatus(){return _?"authenticating":z()?"authenticated":"unauthenticated"},get currentVisitorId(){return h().visitorId??null},getCurrentVisitorId(){return h().visitorId??null},sendEmailCode(e){return P("/_/auth/email/send","POST",{email:e})},async verifyEmailCode(e,t){let o=await P("/_/auth/email/verify","POST",{verificationId:e,code:t});return R(o),O(o)},sendSmsCode(e){return P("/_/auth/sms/send","POST",{phone:e})},async verifySmsCode(e,t){let o=await P("/_/auth/sms/verify","POST",{verificationId:e,code:t});return R(o),O(o)},signInWithRemy(e){let t=e?.mode??"auto",o=t==="popup"||t==="auto"&&de(),a=e?.redirectUri??window.location.href,n=e?.state??Le();if(o)return He(a,n);try{sessionStorage.setItem(K,n)}catch{}let r=new URLSearchParams({redirect_uri:a,state:n});return window.location.assign(`${y("/_/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(N)==="1")return J(),null;let o=e.searchParams.get("state");Be(e);let a=null;try{a=sessionStorage.getItem(K),sessionStorage.removeItem(K)}catch{}if(ue(),o!==null&&o!==a)throw V(),new g("Sign-in state mismatch \u2014 possible CSRF or a stale redirect. Please try again.","invalid_state");try{let n=await P("/_/auth/remy/exchange","POST",{code:t});return _=!1,R(n),O(n)}catch(n){throw V(),n}},async requestEmailChange(e){await P("/_/auth/email/change","POST",{newEmail:e})},async confirmEmailChange(e,t){let o=await P("/_/auth/email/change/confirm","POST",{newEmail:e,code:t});return R(o),O(o)},async requestPhoneChange(e){await P("/_/auth/phone/change","POST",{newPhone:e})},async confirmPhoneChange(e,t){let o=await P("/_/auth/phone/change/confirm","POST",{newPhone:e,code:t});return R(o),O(o)},async logout(){let e=await P("/_/auth/logout","POST",{});R(e)},async createApiKey(){let e=await P("/_/auth/api-key/create","POST",{});return se({apiKey:e.apiKey}),{key:e.key}},async revokeApiKey(){await P("/_/auth/api-key/revoke","POST",{}),se({apiKey:null})},onAuthStateChanged(e){return I.add(e),e(z()),()=>{I.delete(e)}},phone:{countries:$,detectCountry:te,format:ae,toE164:ne,isValid:oe},email:{isValid:re}};var ge="/_/events",Fe=40,Ke=50;function ze(e){let t=null,o=W({prepare:async()=>{if(!t)try{t=await e.getToken()}catch(s){return e.onError?.(s instanceof Error?s:new Error(String(s))),"stop"}return{url:y(ge),headers:{Authorization:`Bearer ${t}`}}},onStatus:s=>(s===401&&(t=null),"retry"),onOpen:()=>{e.onConnect?.()},onLine:s=>{if(!s.startsWith("data: "))return;let l;try{l=JSON.parse(s.slice(6))}catch{return}if(l?.type==="grant_expired"){t=null;return}if(l?.type==="events_dropped"){e.onGap?.(typeof l.count=="number"?l.count:0);return}typeof l?.channel=="string"&&e.onEvent({id:l.id,channel:l.channel,data:l.data,ts:l.ts})}});o.start();let a=[],n=null,r=0,i=!1,d=!1,c=async()=>{if(n=null,i||a.length===0)return;if(!t||Date.now()<r){a=[];return}let s=a;a=[];try{let l=await fetch(y(ge),{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({events:s})});if(l.status===401){t=null;return}if(l.status===429){let p=parseInt(l.headers.get("Retry-After")??"",10);r=Date.now()+(Number.isFinite(p)&&p>0?p*1e3:1e3);return}l.status===403&&!d&&(d=!0,e.onError?.(new Error("events.publish refused: the grant does not carry publish capability for these channels \u2014 mint it with `events.grant(channels, { publish: [...] })`.")))}catch{}};return{close:()=>{i=!0,n&&(clearTimeout(n),n=null),a=[],o.stop()},get state(){let s=o.state;return s==="open"?"open":s==="stopped"?"closed":"connecting"},publish:(s,l)=>{if(!i){if(a.push({channels:s,data:l}),a.length>=Ke){n&&clearTimeout(n),c();return}n||(n=setTimeout(()=>{c()},Fe))}}}}var Ve={connect:ze};if(typeof window<"u"&&!J()&&globalThis.__MINDSTUDIO__)try{h()}catch{}export{g as MindStudioInterfaceError,fe as analytics,Ge as auth,Te as createAgentChatClient,he as createClient,Ve as events,Re as platform,pe as telemetry};
|
|
4
4
|
//# sourceMappingURL=index.js.map
|