@opengeni/sdk 1.1.0 → 1.2.0

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.
Files changed (51) hide show
  1. package/dist/adapters/next.js +2 -2
  2. package/dist/artifacts.js +5 -4
  3. package/dist/browser.js +3 -2
  4. package/dist/chat/index.js +6 -5
  5. package/dist/chat/index.js.map +1 -1
  6. package/dist/{chunk-E3KHK7FG.js → chunk-2NIR4WBR.js} +2 -2
  7. package/dist/{chunk-T6HNHCN2.js → chunk-2ULNDOLD.js} +2 -2
  8. package/dist/{chunk-ZBMS2HCV.js → chunk-2VPO6IQC.js} +2 -2
  9. package/dist/{chunk-BNZNLUD4.js → chunk-5AN2FLNC.js} +35 -2
  10. package/dist/chunk-5AN2FLNC.js.map +1 -0
  11. package/dist/{chunk-YH3W3HZZ.js → chunk-66AKEWV6.js} +2 -2
  12. package/dist/{chunk-ZKPY6YAJ.js → chunk-6Z5QRYHG.js} +12 -1
  13. package/dist/chunk-6Z5QRYHG.js.map +1 -0
  14. package/dist/{chunk-H6WMYN23.js → chunk-TZFJUYCT.js} +2 -2
  15. package/dist/chunk-VPVMLM7Q.js +15 -0
  16. package/dist/chunk-VPVMLM7Q.js.map +1 -0
  17. package/dist/{chunk-RLLUZFOW.js → chunk-WIYAB33K.js} +1 -1
  18. package/dist/chunk-WIYAB33K.js.map +1 -0
  19. package/dist/client.d.ts +12 -0
  20. package/dist/core.js +4 -3
  21. package/dist/document-authority.js +4 -3
  22. package/dist/editable-artifacts.js +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +9 -8
  25. package/dist/index.js.map +1 -1
  26. package/dist/insights-usage.d.ts +33 -0
  27. package/dist/insights-usage.js +7 -0
  28. package/dist/insights-usage.js.map +1 -0
  29. package/dist/model-display.d.ts +1 -1
  30. package/dist/model-display.js +3 -1
  31. package/dist/session-proxy.js +2 -2
  32. package/dist/site-browser-runtime.gen.d.ts +1 -1
  33. package/dist/site-document.js +1 -1
  34. package/dist/site-document.js.map +1 -1
  35. package/dist/site.js +4 -3
  36. package/dist/types.d.ts +16 -0
  37. package/package.json +7 -3
  38. package/src/client.ts +69 -0
  39. package/src/index.ts +2 -0
  40. package/src/insights-usage.ts +61 -0
  41. package/src/model-display.ts +1 -0
  42. package/src/site-browser-runtime.gen.ts +1 -1
  43. package/src/types.ts +39 -0
  44. package/dist/chunk-BNZNLUD4.js.map +0 -1
  45. package/dist/chunk-RLLUZFOW.js.map +0 -1
  46. package/dist/chunk-ZKPY6YAJ.js.map +0 -1
  47. /package/dist/{chunk-E3KHK7FG.js.map → chunk-2NIR4WBR.js.map} +0 -0
  48. /package/dist/{chunk-T6HNHCN2.js.map → chunk-2ULNDOLD.js.map} +0 -0
  49. /package/dist/{chunk-ZBMS2HCV.js.map → chunk-2VPO6IQC.js.map} +0 -0
  50. /package/dist/{chunk-YH3W3HZZ.js.map → chunk-66AKEWV6.js.map} +0 -0
  51. /package/dist/{chunk-H6WMYN23.js.map → chunk-TZFJUYCT.js.map} +0 -0
@@ -1 +1 @@
1
- export declare const SITE_BROWSER_RUNTIME = "(()=>{var Yt=Object.defineProperty;var Xt=(e)=>e;function Qt(e,t){this[e]=Xt.bind(null,t)}var Ie=(e,t)=>{for(var n in t)Yt(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Qt.bind(t,n)})};var V=(e,t)=>()=>(e&&(t=e(e=0)),t);function le(e){try{let t=JSON.parse(e);if(!t||typeof t!==\"object\"||Array.isArray(t))return null;let n=t,s=n.error&&typeof n.error===\"object\"&&!Array.isArray(n.error)?n.error:n;if(s.code!==\"allowance_exhausted\")return null;let r=s.details&&typeof s.details===\"object\"&&!Array.isArray(s.details)?s.details:s;if(r.scope!==\"workspace\"&&r.scope!==\"member\")return null;if(r.resetsAt!==null&&typeof r.resetsAt!==\"string\")return null;return{scope:r.scope,resetsAt:r.resetsAt,...typeof r.subjectId===\"string\"?{subjectId:r.subjectId}:{}}}catch{return null}}function Zt(e){if(!e)return null;try{let t=JSON.parse(e);if(!t||typeof t!==\"object\"||Array.isArray(t))return null;let n=t,s=n.error&&typeof n.error===\"object\"&&!Array.isArray(n.error)?n.error:n,r=ce(s.code),i=ce(s.message),o=Ae(s.requestId),c=typeof s.retryable===\"boolean\"?s.retryable:void 0,a=typeof s.outcomeUnknown===\"boolean\"?s.outcomeUnknown:void 0,d=en(s.details);if(!r&&!i&&!o&&c===void 0&&a===void 0&&!d)return null;return{code:r,message:i,requestId:o,retryable:c,outcomeUnknown:a,details:d}}catch{return null}}function en(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return;let t=Object.entries(e).slice(0,16),n={};for(let[s,r]of t){if(!/^[a-zA-Z][\\w.-]{0,63}$/.test(s))continue;if(typeof r===\"string\"){let i=ce(r);if(i!==void 0)n[s]=i}else if(typeof r===\"number\"||typeof r===\"boolean\"||r===null)n[s]=r}return Object.keys(n).length>0?n:void 0}function ce(e){if(typeof e!==\"string\")return;let t=new TextEncoder().encode(e);return t.byteLength<=512?e:new TextDecoder().decode(t.slice(0,512))}function tn(e){return e===408||e===409||e===425||e===429||e>=500}function Ae(e){if(typeof e!==\"string\"||e.length>128||!/^[\\w.:-]+$/.test(e))return;return e}function q(e){return e instanceof DOMException&&e.name===\"AbortError\"||e instanceof Error&&e.name===\"AbortError\"}function O(e){if(e instanceof m)return e.retryable;return e instanceof TypeError}var m,ue,de,X,pe,Q,A;var G=V(()=>{m=class m extends Error{status;code;retryable;correlationId;outcomeUnknown;body;details;constructor(e,t,n={}){let s=Zt(t),r=s?.requestId??Ae(n.correlationId),i=e>=502&&e<=504,o=n.mutation!==void 0,c=s?.message??(o?\"Request failed.\":t||\"(empty body)\"),a=n.displayMessage??(i&&o?s?.message??\"Opengeni is temporarily unavailable \u2014 retry.\":`OpenGeni API ${e}: ${c}`);super(r?`${a} Reference: ${r}.`:a);this.name=\"OpenGeniApiError\",this.status=e,this.code=n.code??s?.code??(i&&o?\"upstream_unavailable\":void 0),this.retryable=n.retryable??s?.retryable??tn(e),this.correlationId=r,this.outcomeUnknown=n.outcomeUnknown??s?.outcomeUnknown??(i&&!!n.mutation&&!s),this.body=!o||s?t:\"\",this.details=s?.details}};ue=class ue extends m{constructor(e){super(e.status,e.body,{code:\"OPENGENI_SETUP_REQUIRED\",retryable:!1,correlationId:e.correlationId,displayMessage:\"Private chats require organization_private_session_settings.enabled (migration 0323). An organization owner or admin can enable Only me chats in the web app under Organization settings > Security & data, or use updateOrganizationPrivateSessionSettings from @opengeni/sdk/organization-private-session-settings with enabled: true, the current expectedVersion and a stable operationId (PATCH /v1/organizations/:organizationId/private-session-settings; an organization key needs workspace:admin). If platform readiness is unavailable, ask the deployment operator to activate session tenancy first.\"});this.name=\"OpenGeniSetupError\"}};de=class de extends m{scope;resetsAt;subjectId;constructor(e,t,n={}){super(e,t,{...n,code:\"allowance_exhausted\",retryable:!1,outcomeUnknown:!1});this.name=\"OpenGeniAllowanceExhaustedError\";let s=le(t);this.scope=s?.scope??\"workspace\",this.resetsAt=s?.resetsAt??null,this.subjectId=s?.subjectId}};X=class X extends Error{code=\"secure_context_required\";retryable=!1;reason;constructor(e){super(e===\"insecure_context\"?\"Couldn\u2019t attach this file because Opengeni is open over HTTP. Attachments require a secure HTTPS connection. Open the secure site or configure HTTPS for this deployment.\":\"Couldn\u2019t attach this file because secure browser cryptography is unavailable. Attachments require HTTPS and Web Crypto support. Open a secure site in a supported browser or configure HTTPS for this deployment.\");this.name=\"OpenGeniSecureContextRequiredError\",this.reason=e}};pe=class pe extends m{};Q=class Q extends Error{expected;actual;constructor(e,t){super(`OpenGeni API contract mismatch: client expects ${e}, API serves ${t}`);this.name=\"OpenGeniApiContractMismatchError\",this.expected=e,this.actual=t}};A=class A extends Error{constructor(e){super(e);this.name=\"OpenGeniStreamError\"}}});var Oe={};Ie(Oe,{OpenGeniToolCallError:()=>ge,OpenGeniToolReapprovalRequiredError:()=>te,OpenGeniToolsClient:()=>ne});class ne{transport;constructor(e){this.transport=e}forWorkspace(e){let t=on(e,\"workspaceId\"),n=null,s=new Map,r=async(l={})=>{if(n&&!l.refresh)return n;let g=await this.transport.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(t)}/tools/catalog`,void 0,{},l.signal?{signal:l.signal}:{});return n=g,g},i=async(l,g,u)=>{if(u.approvalToken&&!u.operationId)throw TypeError(\"operationId is required when using an approval token\");let y=u.operationId??crypto.randomUUID(),w=await r({...u.refreshCatalog===void 0?{}:{refresh:u.refreshCatalog},...u.signal?{signal:u.signal}:{}}),f=async(h)=>{let S=l(h),x=u.approvalToken?s.get(u.approvalToken):void 0;if(x&&(x.operationId!==y||x.catalogDigest!==h.digest||!sn(x.identity,S)))throw new te(y,x.catalogDigest,h.digest,S);let J={operationId:y,catalogDigest:h.digest,identity:S,arguments:g,...u.approvalToken?{approvalToken:u.approvalToken}:{}},_;try{_=await this.transport.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(t)}/tools/calls`,J,{},u.signal?{signal:u.signal}:{})}catch(ke){if(ee(ke))n=null;else if(u.approvalToken)s.delete(u.approvalToken);throw ke}if(u.approvalToken)s.delete(u.approvalToken);if(_.catalogDigest!==h.digest)n=null;if(_.result.isError)throw new ge(_.result);return qe(h,S)?.outputSchema&&_.result.structuredContent!==void 0?_.result.structuredContent:_.result};try{return await f(w)}catch(h){if(!ee(h))throw h}let b=await r({refresh:!0,...u.signal?{signal:u.signal}:{}}),R=l(b);if(u.approvalToken&&b.digest!==w.digest)throw new te(y,w.digest,b.digest,R);return await f(b)},o=async(l,g={},u={})=>await i((y)=>xe(y,l),g,u),c=async(l,g={},u={})=>{let y=u.operationId??crypto.randomUUID(),w=async(R)=>{let h={operationId:y,catalogDigest:R.digest,identity:xe(R,l),arguments:g};try{let S=await this.transport.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(t)}/tools/approvals`,h,{},u.signal?{signal:u.signal}:{});return s.set(S.approvalToken,{operationId:S.operationId,catalogDigest:S.catalogDigest,identity:S.identity}),S}catch(S){if(ee(S))n=null;throw S}},f=await r(u.signal?{signal:u.signal}:{});try{return await w(f)}catch(R){if(!ee(R))throw R}let b=await r({refresh:!0,...u.signal?{signal:u.signal}:{}});return await w(b)},a=async(l,g={},u={})=>await i((y)=>rn(y,l).identity,g,u),d=(l)=>new Proxy(async(g={},u={})=>await a(l,g,u),{get:(g,u)=>{if(u===\"then\")return;if(typeof u!==\"string\")return;return d([...l,u])}});return new Proxy(Object.create(null),{get:(l,g)=>{if(g===\"then\")return;if(g===\"$catalog\")return r;if(g===\"$call\")return o;if(g===\"$approve\")return c;if(g===\"$declarations\")return async(u={})=>await this.transport.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(t)}/tools/declarations`,void 0,{},u.signal?{signal:u.signal}:{});if(typeof g!==\"string\")return;return d([g])}})}}function qe(e,t){return e.entries.find((n)=>n.identity.serverId===t.serverId&&n.identity.toolName===t.toolName)}function sn(e,t){return e.serverId===t.serverId&&e.toolName===t.toolName}function xe(e,t){let n=qe(e,t);if(!n)throw Error(`Tool is not present in the workspace catalog: ${t.serverId}/${t.toolName}`);return n.identity}function rn(e,t){let n=e.entries.find((s)=>s.codemodePath.length===t.length&&s.codemodePath.every((r,i)=>r===t[i]));if(!n)throw Error(`Tool is not present in the workspace catalog: ${t.join(\".\")}`);return n}function ee(e){return e instanceof m&&e.status===409&&e.details?.code===\"catalog_stale\"||typeof e===\"object\"&&e!==null&&\"code\"in e&&e.code===\"catalog_stale\"}function on(e,t){let n=e.trim();if(!n)throw TypeError(`${t} is required`);return n}var ge,te;var me=V(()=>{G();ge=class ge extends Error{result;code;retryable;outcomeUnknown;constructor(e){let t=e.structuredContent;super(typeof t?.error?.message===\"string\"?t.error.message:\"Opengeni tool call failed\");this.result=e;this.name=\"OpenGeniToolCallError\",this.code=typeof t?.error?.code===\"string\"?t.error.code:\"tool_error\",this.retryable=t?.error?.retryable===!0,this.outcomeUnknown=t?.error?.outcomeUnknown===!0}};te=class te extends Error{operationId;previousCatalogDigest;catalogDigest;identity;code=\"tool_reapproval_required\";retryable=!1;constructor(e,t,n,s){super(\"The workspace tool catalog changed after approval. Request a new approval for the refreshed tool identity and retry with the same operation ID.\");this.operationId=e;this.previousCatalogDigest=t;this.catalogDigest=n;this.identity=s;this.name=\"OpenGeniToolReapprovalRequiredError\"}}});function Fn(e,t){if(e.length<t.length)return!1;let n=e.length-t.length;return t.every((s,r)=>e[n+r]===s)}function Nn(e){for(let t of e.matchAll($n)){let n=t[2]??t[3];if(!n)continue;let s=n.replace(/([a-z0-9])([A-Z])/g,\"$1 $2\").replace(/([A-Z]+)([A-Z][a-z])/g,\"$1 $2\").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean),r=s.at(-1);if(r&&Ln.has(r))return!0;if(r&&Wn.some((i)=>r.endsWith(i)))return!0;if(zn.some((i)=>Fn(s,i)))return!0}return!1}function Jn(e){for(let t of e.matchAll(En))if(!_n.test(t[0]))return!0;return!1}function Vn(e){if(/[?:#]/u.test(e))return!1;let[t,...n]=e.split(\"/\");if(!t||n.length===0||n.some((s)=>!s))return!1;if(!Bn.has(t)||n.some((s)=>!/^[A-Z][A-Za-z0-9_-]*$/u.test(s)))return!1;return!0}function Hn(e){if(Mn.some((t)=>t.test(e)))return!0;for(let t of e.matchAll(Gn)){let n=t[0];if(n.toLowerCase().startsWith(\"www.\"))return!0;if(!/[/?#]/u.test(n))continue;let i=(n.split(/[/?#]/u,1)[0]??\"\").replace(/:\\d{1,5}$/u,\"\").split(\".\").at(-1)?.toLowerCase();if(i&&Un.has(i))continue;if(Vn(n))continue;return!0}return!1}function Xn(e){return e.normalize(\"NFKC\").replace(jn,\"\").replace(Yn,\"\")}function Qn(e){let t=Xn(e);if(Tn.some((n)=>n.test(t)))return!0;if(Jn(t))return!0;if(Hn(t))return!0;if(Dn.test(t))return!0;if(Nn(t))return!0;if(Kn.test(t))return!0;return!1}function Zn(e){if(ae===void 0)ae=typeof Intl.Segmenter===\"function\"?new Intl.Segmenter(void 0,{granularity:\"grapheme\"}):null;if(ae)return Array.from(ae.segment(e),(n)=>n.segment);let t=[];for(let n of e){let s=t.at(-1);if(s&&(/^[\\p{Mark}\\u{FE0E}\\u{FE0F}\\p{Emoji_Modifier}]$/u.test(n)||n===\"\u200D\"||s.endsWith(\"\u200D\")))t[t.length-1]=`${s}${n}`;else t.push(n)}return t}function es(e){let t=e.split(/\\s+/u),n=t.length>10?t.slice(0,10).join(\" \"):e,s=Zn(n);if(s.length<=80)return n;let r=s.slice(0,80).join(\"\"),i=r.search(/\\s+\\S*$/u);return(i>=16?r.slice(0,i):r).trimEnd()}function be(e){if(typeof e!==\"string\")return null;let t=e.slice(0,4096).replace(/[\\u0000-\\u001f\\u007f-\\u009f]+/gu,`\n`).split(/\\n+/u);for(let n of t){let s=n.trim();if(!s||Qn(s))continue;let r=es(s.replace(/\\s+/gu,\" \")).replace(/[\\s.!?,;:\\-\u2013\u2014]+$/u,\"\").trim();if(r)return r}return null}function xt(e){let t=typeof e===\"string\"?e.trim():\"\";return On.test(t)?`Conversation ${t.slice(0,13)}`:\"New conversation\"}function he(e){let t=e.title?.trim()??\"\";return e.titleSource!==\"user\"&&(!t||t===\"New conversation\")}function qt(e,t={}){let n=e.title?.trim()??\"\";if(e.titleSource===\"user\")return n||xt(e.id);if(n&&!he(e))return n;for(let s of t.metadataKeys??[]){let r=e.metadata?.[s];if(typeof r===\"string\"&&r.trim().length>0)return r.trim()}return be(e.initialMessage)??xt(e.id)}var On,ae,Tn,En,_n,Gn,Mn,Un,Bn,$n,Dn,Ln,Wn,zn,Kn,jn,Yn;var Ot=V(()=>{On=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,Tn=[/-----BEGIN [A-Z ]*PRIVATE KEY-----/iu,/\\bBearer\\s+[A-Za-z0-9._~+/=-]{8,}/iu,/\\b(?:sk-(?:proj-)?|gh[oprsu]_|github_pat_|glpat-|xox[baprs]-)[A-Za-z0-9_-]{8,}/iu,/\\bAKIA[0-9A-Z]{16}\\b/u,/\\bAIza[0-9A-Za-z_-]{20,}\\b/u,/\\beyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b/u,/[?&](?:access_token|api_key|apikey|password|secret|token)=[^\\s&#]+/iu],En=/\\b[a-z][a-z0-9+.-]*:\\S+/giu,_n=/^[a-z]:[\\\\/](?![\\\\/])[^:]*$/iu,Gn=/\\b(?:www\\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?(?::\\d{1,5})?(?:[/?#][^\\s]*)?/giu,Mn=[/\\blocalhost(?:(?::\\d{1,5})(?:[/?#][^\\s]*)?|[/?#][^\\s]*)/iu,/\\b(?:(?:25[0-5]|2[0-4]\\d|1?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1?\\d?\\d)(?:(?::\\d{1,5})(?:[/?#][^\\s]*)?|[/?#][^\\s]*)/u,/\\[(?=[0-9a-f:.]*:[0-9a-f:.]*\\])[0-9a-f:.]+\\](?:(?::\\d{1,5})(?:[/?#][^\\s]*)?|[/?#][^\\s]*)/iu],Un=new Set([\"css\",\"html\",\"js\",\"json\",\"jsx\",\"lock\",\"md\",\"sql\",\"toml\",\"ts\",\"tsx\",\"xml\",\"yaml\",\"yml\"]),Bn=new Set([\"ASP.NET\",\"AWS.SDK\",\"Microsoft.Extensions\",\"System.IO\"]),$n=/(?:^|[^A-Za-z0-9])(?:(['\"])([A-Za-z][A-Za-z0-9_. -]*)\\1|([A-Za-z][A-Za-z0-9_.-]*))\\s*[=:]\\s*[^\\s,;]+/gu,Dn=/\\b(?:api[ _-]?key|access[ _-]?token|auth[ _-]?token|credential|credentials|password|passwd|private[ _-]?key|secret|token)\\b\\s*[=:]\\s*[^\\s,;]+/iu,Ln=new Set([\"credential\",\"credentials\",\"password\",\"passwd\",\"secret\",\"token\"]),Wn=[\"apikey\",\"accesskey\",\"accesskeyid\",\"accesstoken\",\"authtoken\",\"credential\",\"credentials\",\"password\",\"passwd\",\"privatekey\",\"secret\",\"secretkey\",\"token\"],zn=[[\"api\",\"key\"],[\"access\",\"key\"],[\"access\",\"key\",\"id\"],[\"auth\",\"key\"],[\"private\",\"key\"],[\"secret\",\"key\"]];Kn=/\\b(?=[A-Za-z0-9_-]{32,}\\b)(?=[A-Za-z0-9_-]*[A-Za-z])(?=[A-Za-z0-9_-]*\\d)[A-Za-z0-9_-]+\\b/u,jn=/\\p{Default_Ignorable_Code_Point}+/gu,Yn=/\\\\+(?=[\"'])/gu});function Tt(e){let t=e.metadata._opengeniSiteOrigin,n=t&&typeof t.siteId===\"string\"&&/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/i.test(t.siteId)&&typeof t.title===\"string\"?{siteId:t.siteId,title:t.title}:null,s=e.metadata.scheduledTaskId;return{id:e.id,workspaceId:e.workspaceId,accountId:e.accountId,status:e.status,backgroundCommandActivity:e.backgroundCommandActivity,hasSchedules:e.hasSchedules,title:e.title,titleSource:e.titleSource,displayTitle:qt(e),renameSeed:he(e)?be(e.initialMessage)??\"\":e.title?.trim()??\"\",scheduledTaskId:typeof s===\"string\"&&s.length>0?s:null,siteOrigin:n,createdBy:e.createdBy,channelId:e.channelId,parentSessionId:e.parentSessionId,rootSessionId:e.rootSessionId,effectiveControl:e.effectiveControl,inputWait:e.inputWait,lastSequence:e.lastSequence,pinned:e.pinned??!1,pinnedAt:e.pinnedAt??null,pinVersion:e.pinVersion??0,unread:e.unread??!1,activelyWorking:e.activelyWorking??!1,attentionVersion:e.attentionVersion??0,archived:e.archived??!1,archivedAt:e.archivedAt??null,importedArchive:e.importedArchive,archiveVersion:e.archiveVersion??0,treeStats:e.treeStats,requiresActionSince:e.requiresActionSince,createdAt:e.createdAt,updatedAt:e.updatedAt}}var Et=V(()=>{Ot()});var _t={};Ie(_t,{sessionListEntry:()=>Tt});var Gt=V(()=>{Et()});class Ce extends Error{code=\"site_session_path_unsupported\";constructor(){super(\"Unsupported Site session API path\");this.name=\"SiteSessionPathError\"}}function H(e,t,n=\"GET\",s){let r=e.split(\"?\")[0];if(!(r===\"/v1/workspaces/site-host\"||r.startsWith(\"/v1/workspaces/site-host/\"))&&r!==\"/v1/config/client\"||/[%\\\\#\\u0000-\\u0020\\u007f]/u.test(r)||r.split(\"/\").some((d)=>d===\".\"||d===\"..\"))throw new Ce;let c=e.replace(\"/workspaces/site-host\",`/workspaces/${encodeURIComponent(t)}`),a=new URL(c,\"http://site.invalid\");if(a.searchParams.get(\"originSiteId\")===\"current\"&&t!==\"site-host\")return a.searchParams.set(\"originSiteId\",s??\"00000000-0000-0000-0000-000000000000\"),a.pathname+a.search;return c}var nn=\"opengeni.site.http\",Z=\"site-host\";async function Pe(e,t,n){let s=new Request(t,n),r=new URL(s.url),i=`${r.pathname}${r.search}`;H(i,Z,s.method);let o=new MessageChannel,c=crypto.randomUUID(),a=s.body?await s.text():void 0;return await new Promise((d,l)=>{let g,u=!1,y=()=>{u=!0,s.signal.removeEventListener(\"abort\",w),o.port1.close()},w=()=>{if(u)return;e.postMessage({type:\"opengeni.site.cancel\",version:2,requestId:c});let f=s.signal.reason??new DOMException(\"Cancelled\",\"AbortError\");g?.error(f),l(f),y()};if(o.port1.onmessage=(f)=>{let b=f.data;if(b.error){let R=Error(b.error);g?.error(R),l(R),y()}else if(b.status){let R=b.body?new ReadableStream({start(h){g=h},pull(){o.port1.postMessage(\"pull\")},cancel(){g=void 0,w()}}):null;if(d(new Response(R,{status:b.status,headers:b.headers})),!b.body)y()}else if(b.done)g?.close(),y();else if(b.chunk)g?.enqueue(b.chunk)},s.signal.aborted){w();return}s.signal.addEventListener(\"abort\",w,{once:!0}),e.postMessage({type:nn,requestId:c,path:i,method:s.method,headers:[...s.headers],...a===void 0?{}:{body:a}},[o.port2])})}me();G();G();async function*T(e){let t=e.getReader(),n=new TextDecoder,s=\"\",r,i,o=null,c=()=>{let d=o===null?null:{...r!==void 0?{id:r}:{},...i!==void 0?{event:i}:{},data:o.join(`\n`)};return r=void 0,i=void 0,o=null,d},a=(d)=>{if(d===\"\")return c();if(d.startsWith(\":\"))return null;let l=d.indexOf(\":\"),g=l===-1?d:d.slice(0,l),u=l===-1?\"\":d.slice(l+1);if(u.startsWith(\" \"))u=u.slice(1);if(g===\"data\")(o??=[]).push(u);else if(g===\"event\")i=u;else if(g===\"id\")r=u;return null};try{while(!0){let{done:d,value:l}=await t.read();if(d)break;s+=n.decode(l,{stream:!0});let g=s.indexOf(`\n`);while(g!==-1){let u=s.slice(0,g);if(s=s.slice(g+1),u.endsWith(\"\\r\"))u=u.slice(0,-1);let y=a(u);if(y)yield y;g=s.indexOf(`\n`)}}}finally{t.cancel().catch(()=>{});try{t.releaseLock()}catch{}}}var an=Symbol.for(\"@opengeni/sdk/session-event-stream-covered-through\");async function*Ee(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.after??0,g=0,u=r,y=!1;while(!0){if(n?.aborted)break;t.onStateChange?.(y||g>0?\"reconnecting\":\"connecting\");let w=l;try{let f=await e.openStream(l,n);y=!0,g=0,u=r;try{t.onOpen?.()}catch{}await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let b of T(U(f,a,n))){if(n?.aborted)return;let R=un(b.data);if(!R)continue;let h=dn(b.id,R.sequence);if(ln(R,h),h<=l)continue;if(R.sequence>l+1){for await(let S of cn(e,l,R.sequence-1))if(l=S.sequence,yield S,n?.aborted)return}l=h,yield R}if(!s)return;if(l===w)await Te(P(r,o),n);continue}catch(f){if(n?.aborted||q(f))return;if(!s||!O(f))throw f;if(g+=1,g>d)throw new A(`event stream gave up after ${d} consecutive failed reconnect attempts: ${f instanceof Error?f.message:String(f)}`)}await Te(P(u,o),n),u=Math.min(Math.max(u*2,r),i)}}async function M(e,t,n){if(!e)return;let s,r,i=new Promise((o,c)=>{if(s=setTimeout(()=>c(TypeError(`stream reconciliation timed out after ${t}ms`)),t),n)r=()=>c(new DOMException(\"Aborted\",\"AbortError\")),n.addEventListener(\"abort\",r,{once:!0})});try{await Promise.race([Promise.resolve().then(e),i])}finally{if(s!==void 0)clearTimeout(s);if(n&&r)n.removeEventListener(\"abort\",r)}}function P(e,t){if(e<=0||t<=0)return e;let n=Math.min(t,1),s=e*n;return Math.max(0,e-s+Math.random()*s*2)}function U(e,t,n){if(!Number.isSafeInteger(t)||t<=0)throw RangeError(\"stream heartbeat timeout must be a positive safe integer\");let s=e.getReader();return new ReadableStream({pull:async(r)=>{let i,o;try{let c=await Promise.race([s.read(),new Promise((a,d)=>{if(i=setTimeout(()=>d(TypeError(`event stream heartbeat timed out after ${t}ms`)),t),n)o=()=>d(new DOMException(\"Aborted\",\"AbortError\")),n.addEventListener(\"abort\",o,{once:!0})})]);if(c.done)r.close();else r.enqueue(c.value)}catch(c){s.cancel(c).catch(()=>{}),r.error(c)}finally{if(i!==void 0)clearTimeout(i);if(n&&o)n.removeEventListener(\"abort\",o)}},cancel:(r)=>{s.cancel(r).catch(()=>{})}})}async function*cn(e,t,n){let s=t;while(s<n){let i=(await e.listEvents(s,Math.min(500,n-s))).filter((o)=>o.sequence>s&&o.sequence<=n).sort((o,c)=>o.sequence-c.sequence);if(i.length===0)throw new A(`event replay backfill stalled: expected sequences ${s+1}..${n} but the replay endpoint returned none of them`);for(let o of i){if(o.sequence!==s+1)throw new A(`event replay backfill is missing sequence ${s+1} (replay endpoint skipped to ${o.sequence}); refusing to deliver with a gap`);s=o.sequence,yield o}}}function un(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!==\"object\"||t===null||typeof t.sequence!==\"number\"||typeof t.type!==\"string\"||typeof t.id!==\"string\")return null;return t}function dn(e,t){if(e===void 0||!/^\\d+$/.test(e))return t;let n=Number(e);return Number.isSafeInteger(n)&&n>=t?n:t}function ln(e,t){Object.defineProperty(e,an,{value:t,enumerable:!1,configurable:!1,writable:!1})}async function Te(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}var pn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|\\d+|[A-Za-z0-9_-]{20,})$/i;function gn(e){return e.split(\"/\").map((t)=>pn.test(t)?\":id\":t).join(\"/\")}function mn(e){let t=e.trim(),n=/^@(-?\\d+)$/.exec(t);if(n)return new Date(Number(n[1])*1000);let s=Date.parse(t);return Number.isNaN(s)?null:new Date(s)}function yn(e){let t=new Map;if(!e)return t;for(let n of e.matchAll(/<([^>]*)>\\s*((?:;\\s*[^;,]+)*)/g)){let s=/;\\s*rel=\"?([^\";,]+)\"?/i.exec(n[2]??\"\")?.[1];if(!s)continue;for(let r of s.toLowerCase().split(/\\s+/))if(!t.has(r))t.set(r,n[1])}return t}function fn(e,t,n){let s=n.get(\"deprecation\"),r=n.get(\"sunset\");if(!s&&!r)return null;let i=t;try{i=new URL(t,\"http://opengeni.invalid\").pathname}catch{}let o=r?Date.parse(r):Number.NaN,c=yn(n.get(\"link\"));return{method:e.toUpperCase(),route:gn(i),path:i,deprecatedAt:s?mn(s):null,sunset:Number.isNaN(o)?null:new Date(o),link:c.get(\"deprecation\")??c.get(\"sunset\")??null,successor:c.get(\"successor-version\")??null}}var _e=new Set;function Rn(e){let t=`${e.method} ${e.route}`;if(_e.has(t))return;_e.add(t);let n=e.sunset?` and will be removed after ${e.sunset.toISOString()}`:\"\",s=e.link?` Migration notes: ${e.link}.`:\"\";console.warn(`[@opengeni/sdk] ${t} is deprecated${n}.${s} Upgrade @opengeni/sdk, or pass onDeprecation to handle this notice.`)}function Ge(e,t){if(t===!1)return e;let n=t??Rn,s=new Set;return async(r,i)=>{let o=await e(r,i);try{let c=o.headers;if(c&&(c.get(\"deprecation\")||c.get(\"sunset\"))){let a=i?.method??(typeof Request<\"u\"&&r instanceof Request?r.method:\"GET\"),d=typeof r===\"string\"?r:r instanceof URL?r.href:r.url,l=fn(a,d,c);if(l){let g=`${l.method} ${l.route}`;if(!s.has(g))s.add(g),n(l)}}}catch{}return o}}G();async function*Ue(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.after??0,g=0,u=r,y=!1;for(;;){if(n?.aborted)return;t.onStateChange?.(y||g>0?\"reconnecting\":\"connecting\");let w=l;try{let f=await e.openStream(l,n);y=!0,g=0,u=r,await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let b of T(U(f,a,n))){if(n?.aborted)return;let R=bn(b.data);if(!R||R.sequence<=l)continue;l=R.sequence,yield R}if(!s)return;if(l===w)await Me(P(r,o),n);continue}catch(f){if(n?.aborted||q(f))return;if(!s||!O(f))throw f;if(g+=1,g>d)throw new A(`workspace control stream gave up after ${d} reconnect attempts: ${f instanceof Error?f.message:String(f)}`)}await Me(P(u,o),n),u=Math.min(Math.max(u*2,r),i)}}function bn(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!==\"object\"||t===null||t.type!==\"workspace.control.changed\"||typeof t.id!==\"string\"||typeof t.sequence!==\"number\")return null;return t}async function Me(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}G();async function*$e(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.after??0,g=0,u=r,y=!1;for(;;){if(n?.aborted)return;t.onStateChange?.(y||g>0?\"reconnecting\":\"connecting\");let w=l;try{let f=await e.openStream(l,n);y=!0,g=0,u=r,await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let b of T(U(f,a,n))){if(n?.aborted)return;let R=hn(b.data);if(!R||R.sequence<=l)continue;l=R.sequence,yield R}if(!s)return;if(l===w)await Be(P(r,o),n);continue}catch(f){if(n?.aborted||q(f))return;if(!s||!O(f))throw f;if(g+=1,g>d)throw new A(`workspace interaction stream gave up after ${d} reconnect attempts: ${f instanceof Error?f.message:String(f)}`)}await Be(P(u,o),n),u=Math.min(Math.max(u*2,r),i)}}function hn(e){let t;try{t=JSON.parse(e)}catch{return null}if(!wn(t)||t.type!==\"workspace.interaction.changed\"||typeof t.workspaceId!==\"string\"||typeof t.sequence!==\"number\"||!Number.isSafeInteger(t.sequence)||t.sequence<0||t.revision!==t.sequence||typeof t.occurredAt!==\"string\")return null;return t}function wn(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}async function Be(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}G();async function*Le(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.controlAfter??0,g=t.interactionAfter??0,u=0,y=r,w=!1;for(;;){if(n?.aborted)return;t.onStateChange?.(w||u>0?\"reconnecting\":\"connecting\");let f=`${l}:${g}`;try{let b=await e.openStream(l,g,n);w=!0,u=0,y=r,await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let R of T(U(b,a,n))){if(n?.aborted)return;let h=Sn(R.data);if(!h)continue;if(h.type===\"workspace.control.changed\"){if(h.sequence<=l)continue;l=h.sequence}else{if(h.sequence<=g)continue;g=h.sequence}yield h}if(!s)return;if(`${l}:${g}`===f)await De(P(r,o),n);continue}catch(b){if(n?.aborted||q(b))return;if(!s||!O(b))throw b;if(u+=1,u>d)throw new A(`workspace live stream gave up after ${d} reconnect attempts: ${b instanceof Error?b.message:String(b)}`)}await De(P(y,o),n),y=Math.min(Math.max(y*2,r),i)}}function Sn(e){let t;try{t=JSON.parse(e)}catch{return null}if(!vn(t)||typeof t.sequence!==\"number\")return null;if(t.type===\"workspace.control.changed\"&&typeof t.id===\"string\"&&Number.isSafeInteger(t.sequence))return t;if(t.type===\"workspace.interaction.changed\"&&typeof t.workspaceId===\"string\"&&Number.isSafeInteger(t.sequence)&&t.sequence>=0&&t.revision===t.sequence&&typeof t.occurredAt===\"string\")return t;return null}function vn(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}async function De(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}function We(e){return e.driverId===\"opengeni.cdp.ephemeral-context.v1\"?\"ephemeral_context\":\"private_profile\"}var ze=32768,kn=1e8;class ye{attachedBrowsers;authRuns;browsers;computers;identities;interventions;networkRoutes;siteAuthConnections;constructor(e){this.attachedBrowsers=new Ze(e),this.authRuns=new je(e),this.browsers=new st(e),this.computers=new ut(e),this.identities=new tt(e),this.interventions=new Xe(e),this.networkRoutes=new Je(e),this.siteAuthConnections=new He(e)}}class Je{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listNetworkRoutes(e,t)}route(e,t){return new Ve(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createNetworkRoute(e,t,n);return this.route(e,s.route.id)}}class Ve{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getNetworkRoute(this.workspaceId,this.id,e)}async update(e,t={}){return await this.transport.updateNetworkRoute(this.workspaceId,this.id,e,t)}}class He{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listSiteAuthConnections(e,t)}connection(e,t){return new Ke(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createSiteAuthConnection(e,t,n);return this.connection(e,s.connection.id)}}class Ke{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getSiteAuthConnection(this.workspaceId,this.id,e)}async update(e,t={}){return await this.transport.updateSiteAuthConnection(this.workspaceId,this.id,e,t)}}class je{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listAuthRuns(e,t)}async get(e,t,n={}){return await this.transport.getAuthRun(e,t,n)}run(e,t,n){return new fe(this.transport,e,t,n)}}class Ye{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async list(e={}){return await this.transport.listAuthRuns(this.workspaceId,{...e,browserSessionId:this.browserSessionId})}run(e){return new fe(this.transport,this.workspaceId,this.browserSessionId,e)}async start(e,t={}){let n=await this.transport.startBrowserAuthRun(this.workspaceId,this.browserSessionId,e,t);return this.run(n.run.id)}}class fe{transport;workspaceId;browserSessionId;id;constructor(e,t,n,s){this.transport=e;this.workspaceId=t;this.browserSessionId=n;this.id=s}async get(e={}){let t=await this.transport.getAuthRun(this.workspaceId,this.id,e);if(t.browserSessionId!==this.browserSessionId)throw Error(\"AuthRun belongs to another BrowserSession\");return t}async report(e,t={}){return await this.transport.reportBrowserAuthRun(this.workspaceId,this.browserSessionId,this.id,e,t)}async protectedFill(e,t={}){return await this.transport.protectedBrowserAuthFill(this.workspaceId,this.browserSessionId,this.id,e,t)}async advanceExternal(e,t={}){return await this.transport.advanceExternalBrowserAuthRun(this.workspaceId,this.browserSessionId,this.id,e,t)}async openExternalFlow(e,t={}){return await this.transport.openExternalBrowserAuthFlow(this.workspaceId,this.browserSessionId,this.id,e,t)}async verify(e,t={}){return await this.transport.verifyBrowserAuthRun(this.workspaceId,this.browserSessionId,this.id,e,t)}}class Xe{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listInteractionInterventions(e,t)}intervention(e,t){return new Qe(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createInteractionIntervention(e,t,n);return this.intervention(e,s.intervention.id)}}class Qe{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getInteractionIntervention(this.workspaceId,this.id,e)}async resolve(e,t={}){return await this.transport.resolveInteractionIntervention(this.workspaceId,this.id,e,t)}}class Ze{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listAttachedBrowsers(e,t)}device(e,t){return new et(this.transport,e,t)}}class et{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getAttachedBrowser(this.workspaceId,this.id,e)}}class tt{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listBrowserIdentities(e,t)}identity(e,t){return new nt(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createBrowserIdentity(e,t,n);return this.identity(e,s.identity.id)}}class nt{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getBrowserIdentity(this.workspaceId,this.id,e)}async revisions(e={}){return await this.transport.listBrowserRevisions(this.workspaceId,this.id,e)}async update(e,t={}){return await this.transport.updateBrowserIdentity(this.workspaceId,this.id,e,t)}}class st{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listBrowserSessions(e,t)}session(e,t){return new rt(this.transport,e,t)}async open(e,t,n={}){let s=await this.transport.createBrowserSession(e,t,n);return this.session(e,s.session.id)}async currentOrOpen(e){let t=e.signal?{signal:e.signal}:{},n=await this.list(e.workspaceId,t),s=Cn(n.sessions.filter((r)=>We(r)===(e.storageMode??\"private_profile\")),e.associationSessionId);if(s){let r=this.session(e.workspaceId,s.id);if(s.lifecycle===\"suspended\")await r.resume({operationId:e.operationId??crypto.randomUUID()},t);return r}return await this.open(e.workspaceId,{operationId:e.operationId??crypto.randomUUID(),sessionId:e.associationSessionId,...e.name!==void 0?{name:e.name}:{},...e.initialUrl!==void 0?{initialUrl:e.initialUrl}:{},...e.headless!==void 0?{headless:e.headless}:{},...e.storageMode!==void 0?{storageMode:e.storageMode}:{},...e.placement!==void 0?{placement:e.placement}:{},...e.identityId!==void 0?{identityId:e.identityId}:{},...e.baseRevisionId!==void 0?{baseRevisionId:e.baseRevisionId}:{},...e.networkRouteId!==void 0?{networkRouteId:e.networkRouteId}:{},...e.linkedComputerSessionId!==void 0?{linkedComputerSessionId:e.linkedComputerSessionId}:{}},t)}}class rt{transport;workspaceId;id;auth;clipboard;downloads;tabs;targets;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n;this.auth=new Ye(e,t,n),this.clipboard=new it(e,t,n),this.downloads=new ot(e,t,n),this.tabs=new ct(e,t,n),this.targets=this.tabs}async get(e={}){return await this.transport.getBrowserSession(this.workspaceId,this.id,e)}async observe(e,t={}){return await this.transport.observeBrowserTarget(this.workspaceId,this.id,e,t)}async targetState(e,t={}){return await this.transport.getBrowserTargetState(this.workspaceId,this.id,e,t)}async readDom(e,t,n={}){return await this.transport.readBrowserDom(this.workspaceId,this.id,e,t,n)}async capture(e,t={},n={}){return await this.transport.captureBrowserTarget(this.workspaceId,this.id,e,t,n)}async screenshot(e,t={},n={}){return await this.capture(e,n,t)}async act(e,t={}){return await this.transport.actInBrowser(this.workspaceId,this.id,e,t)}async receipt(e,t={}){return await this.transport.getBrowserActionReceipt(this.workspaceId,this.id,e,t)}async diagnostics(e,t={}){return await this.transport.listBrowserDiagnostics(this.workspaceId,this.id,e,t)}async attach(e,t={}){return await this.transport.attachBrowserSession(this.workspaceId,this.id,e,t)}async heartbeat(e={}){return await this.transport.heartbeatBrowserSession(this.workspaceId,this.id,e)}async publishRevision(e,t={}){return await this.transport.publishBrowserRevision(this.workspaceId,this.id,e,t)}async suspend(e={operationId:crypto.randomUUID()},t={}){return await this.transport.suspendBrowserSession(this.workspaceId,this.id,e,t)}async resume(e={operationId:crypto.randomUUID()},t={}){return await this.transport.resumeBrowserSession(this.workspaceId,this.id,e,t)}async end(e={operationId:crypto.randomUUID()},t={}){return await this.transport.endBrowserSession(this.workspaceId,this.id,e,t)}}class it{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async read(e={}){let t=await this.transport.readBrowserClipboard(this.workspaceId,this.browserSessionId,e);if(t.browserSessionId!==this.browserSessionId)throw Error(\"Browser clipboard belongs to another BrowserSession\");return t}}class ot{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async list(e={}){return await this.transport.listBrowserDownloads(this.workspaceId,this.browserSessionId,e)}download(e){return new at(this.transport,this.workspaceId,this.browserSessionId,e)}}class at{transport;workspaceId;browserSessionId;id;constructor(e,t,n,s){this.transport=e;this.workspaceId=t;this.browserSessionId=n;this.id=s}async get(e={}){let t=await this.transport.getBrowserDownload(this.workspaceId,this.browserSessionId,this.id,e);if(t.browserSessionId!==this.browserSessionId)throw Error(\"BrowserDownload belongs to another BrowserSession\");return t}async saveToWorkspace(e,t={}){let{operationId:n=crypto.randomUUID(),overwrite:s=!1,...r}=t,i=await this.transport.saveBrowserDownload(this.workspaceId,this.browserSessionId,this.id,{operationId:n,destinationPath:e,overwrite:s},r);if(i.download.id!==this.id||i.download.browserSessionId!==this.browserSessionId)throw Error(\"BrowserDownload save returned another resource\");return i}}class ct{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async list(e={}){return await this.transport.listBrowserTargets(this.workspaceId,this.browserSessionId,e)}async open(e,t={}){return await this.transport.openBrowserTarget(this.workspaceId,this.browserSessionId,e===void 0?{}:{url:e},t)}async select(e,t={}){return await this.transport.selectBrowserTarget(this.workspaceId,this.browserSessionId,e,t)}async close(e,t={}){return await this.transport.closeBrowserTarget(this.workspaceId,this.browserSessionId,e,t)}}class ut{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listComputerSessions(e,t)}session(e,t){return new dt(this.transport,e,t)}async open(e,t,n={}){let s=await this.transport.createComputerSession(e,t,n);return this.session(e,s.session.id)}async currentOrOpen(e){let t=e.signal?{signal:e.signal}:{},n=await this.list(e.workspaceId,t),s=An(n.sessions,e.associationSessionId);if(s)return this.session(e.workspaceId,s.id);return await this.open(e.workspaceId,{operationId:e.operationId??crypto.randomUUID(),sessionId:e.associationSessionId,...e.name!==void 0?{name:e.name}:{},...e.placement!==void 0?{placement:e.placement}:{}},t)}}class dt{transport;workspaceId;id;targets;apps;clipboard;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n;this.targets=new pt(e,t,n),this.apps=this.targets,this.clipboard=new lt(e,t,n)}async get(e={}){return await this.transport.getComputerSession(this.workspaceId,this.id,e)}async observe(e,t={}){return await this.transport.observeComputerTarget(this.workspaceId,this.id,e,t)}async capture(e,t={}){return await this.transport.captureComputerTarget(this.workspaceId,this.id,e,t)}async act(e,t={}){return await this.transport.actInComputer(this.workspaceId,this.id,e,t)}async receipt(e,t={}){return await this.transport.getComputerActionReceipt(this.workspaceId,this.id,e,t)}async attach(e,t={}){return await this.transport.attachComputerSession(this.workspaceId,this.id,e,t)}async inputPosture(e={}){if(!this.transport.getComputerInputPosture)throw Error(\"Computer input posture requires a current interaction transport.\");return await this.transport.getComputerInputPosture(this.workspaceId,this.id,e)}async heartbeat(e={}){return await this.transport.heartbeatComputerSession(this.workspaceId,this.id,e)}async end(e={operationId:crypto.randomUUID()},t={}){return await this.transport.endComputerSession(this.workspaceId,this.id,e,t)}}class lt{transport;workspaceId;computerSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.computerSessionId=n}async read(e={}){let t=await this.transport.readComputerClipboard(this.workspaceId,this.computerSessionId,e);if(t.computerSessionId!==this.computerSessionId)throw Error(\"Computer clipboard belongs to another ComputerSession\");return t}}class pt{transport;workspaceId;computerSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.computerSessionId=n}async list(e={}){return await this.transport.listComputerTargets(this.workspaceId,this.computerSessionId,e)}}function gt(e){if(!bt(e))throw Error(\"browser frame metadata is invalid\");let t=new Set([\"frameId\",\"browserSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"documentGeneration\",\"sequence\",\"mediaType\",\"width\",\"height\",\"deviceScaleFactor\",\"scrollX\",\"scrollY\",\"capturedAt\"]);if(Object.keys(e).some((i)=>!t.has(i)))throw Error(\"browser frame metadata contains unknown fields\");let n=[\"frameId\",\"browserSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"documentGeneration\",\"mediaType\",\"capturedAt\"];for(let i of n){let o=e[i],c=i===\"targetId\"?512:i===\"capturedAt\"?128:256;if(typeof o!==\"string\"||o.length<1||ft(o)>c)throw Error(\"browser frame metadata is invalid\")}let s=[\"sequence\",\"width\",\"height\",\"deviceScaleFactor\",\"scrollX\",\"scrollY\"];for(let i of s)if(typeof e[i]!==\"number\"||!Number.isFinite(e[i]))throw Error(\"browser frame metadata is invalid\");let r=e;if(!Number.isSafeInteger(r.sequence)||r.sequence<0||!Number.isSafeInteger(r.width)||!Number.isSafeInteger(r.height))throw Error(\"browser frame metadata integers are invalid\");if(yt(r.width,r.height),r.deviceScaleFactor<=0||r.deviceScaleFactor>16||Math.abs(r.scrollX)>1e9||Math.abs(r.scrollY)>1e9)throw Error(\"browser frame geometry metadata is invalid\");if(r.mediaType!==\"image/jpeg\"&&r.mediaType!==\"image/png\")throw Error(\"browser frame media type is invalid\");if(!Rt(r.browserSessionId))throw Error(\"browser frame session id is invalid\");if(!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u.test(r.controllerGeneration))throw Error(\"browser frame controller generation is invalid\");if(!Number.isFinite(new Date(r.capturedAt).valueOf()))throw Error(\"browser frame timestamp is invalid\");return r}function In(e){if(!bt(e))throw Error(\"computer frame metadata is invalid\");let t=new Set([\"frameId\",\"computerSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"sequence\",\"mediaType\",\"width\",\"height\",\"capturedAt\",\"sha256\"]);if(Object.keys(e).some((r)=>!t.has(r)))throw Error(\"computer frame metadata contains unknown fields\");let n=[\"frameId\",\"computerSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"mediaType\",\"capturedAt\",\"sha256\"];for(let r of n){let i=e[r],o=r===\"targetId\"?512:r===\"capturedAt\"?128:256;if(typeof i!==\"string\"||i.length<1||ft(i)>o)throw Error(\"computer frame metadata is invalid\")}let s=e;if(!Number.isSafeInteger(s.sequence)||s.sequence<0||!Number.isSafeInteger(s.width)||!Number.isSafeInteger(s.height))throw Error(\"computer frame metadata integers are invalid\");if(yt(s.width,s.height),s.mediaType!==\"image/jpeg\"&&s.mediaType!==\"image/png\")throw Error(\"computer frame media type is invalid\");if(!Rt(s.computerSessionId))throw Error(\"computer frame session id is invalid\");if(!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u.test(s.controllerGeneration))throw Error(\"computer frame controller generation is invalid\");if(!Number.isFinite(new Date(s.capturedAt).valueOf()))throw Error(\"computer frame timestamp is invalid\");if(!/^[0-9a-f]{64}$/u.test(s.sha256))throw Error(\"computer frame digest is invalid\");return s}function mt(e){if(!e||e.length>32768||!/^[A-Za-z0-9_-]+$/u.test(e))throw Error(\"computer frame metadata header is invalid\");let t=e.replace(/-/gu,\"+\").replace(/_/gu,\"/\"),n=t.padEnd(Math.ceil(t.length/4)*4,\"=\"),s;try{s=atob(n)}catch{throw Error(\"computer frame metadata header is invalid\")}let r=Uint8Array.from(s,(o)=>o.charCodeAt(0)),i;try{i=JSON.parse(new TextDecoder(\"utf-8\",{fatal:!0}).decode(r))}catch{throw Error(\"computer frame metadata header is invalid\")}return In(i)}function Cn(e,t){let n=e.filter((s)=>![\"ending\",\"ended\",\"failed\",\"lost\"].includes(s.lifecycle)&&s.associations.some((r)=>r.sessionId===t));return n.sort((s,r)=>Fe(r,t)-Fe(s,t)),n[0]??null}function An(e,t){let n=e.filter((s)=>[\"starting\",\"active\",\"restoring\"].includes(s.lifecycle)&&s.associations.some((r)=>r.sessionId===t));return n.sort((s,r)=>Ne(r,t)-Ne(s,t)),n[0]??null}function Fe(e,t){let n=e.associations.filter((r)=>r.sessionId===t).map((r)=>Date.parse(r.lastUsedAt)).filter(Number.isFinite).reduce((r,i)=>Math.max(r,i),0),s=Date.parse(e.lastUsedAt);return Math.max(n,Number.isFinite(s)?s:0)}function Ne(e,t){let n=e.associations.filter((r)=>r.sessionId===t).map((r)=>Date.parse(r.lastUsedAt)).filter(Number.isFinite).reduce((r,i)=>Math.max(r,i),0),s=Date.parse(e.lastUsedAt);return Math.max(n,Number.isFinite(s)?s:0)}function yt(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<1||t<1||e>ze||t>ze||e*t>kn)throw Error(\"browser image dimensions exceed their bounded envelope\")}function ft(e){return new TextEncoder().encode(e).byteLength}function Rt(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(e)}function bt(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}var L=\"2026-09-plugins-and-skills-v1\",Re=\"x-opengeni-api-contract\",se=\"x-opengeni-correlation-id\";var re=1048576,ht=33554432;var wt=536870912;var oe=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,St=/^[0-9a-f]{64}$/,vt=/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/,kt=/^\\/v1\\/workspaces\\/([0-9a-f-]+)\\/artifacts\\/([0-9a-f-]+)\\/content$/;function It(e,t){if(!B(e,xn))return null;let n=e;if(n.available!==!0||n.kind!==\"file\"||typeof n.artifactId!==\"string\"||!oe.test(n.artifactId)||typeof n.contentType!==\"string\"||!/^[a-z0-9][a-z0-9!#$&^_.+-]{0,62}\\/[a-z0-9][a-z0-9!#$&^_.+-]{0,62}$/.test(n.contentType)||!ie(n.originalBytes,1,26214399)||typeof n.sha256!==\"string\"||!St.test(n.sha256)||typeof n.retainedAt!==\"string\"||n.retainedAt.length>64||!vt.test(n.retainedAt)||!Number.isFinite(Date.parse(n.retainedAt))||!B(n.retention,At)||!B(n.retrieval,Pt))return null;let s=n.retention;if(s.policy!==\"workspace_file\"||s.expiresAt!==null)return null;let r=n.retrieval;if(r.method!==\"GET\"||r.acceptRanges!==\"bytes\"||r.maxRangeBytes!==1048576||typeof r.path!==\"string\"||r.path.length>256)return null;let i=kt.exec(r.path);if(!i||!oe.test(i[1]??\"\")||i[2]!==n.artifactId||t!==void 0&&i[1]!==t)return null;return e}function Ct(e,t){if(!B(e,Pn))return null;let n=e;if(n.available!==!0||n.kind!==\"generated_image\"||typeof n.artifactId!==\"string\"||!oe.test(n.artifactId)||![\"image/png\",\"image/jpeg\",\"image/webp\"].includes(String(n.contentType))||!ie(n.originalBytes,1,67108864)||typeof n.sha256!==\"string\"||!St.test(n.sha256)||typeof n.retainedAt!==\"string\"||n.retainedAt.length>64||!vt.test(n.retainedAt)||!Number.isFinite(Date.parse(n.retainedAt))||!B(n.dimensions,qn)||!B(n.retention,At)||!B(n.retrieval,Pt))return null;let s=n.dimensions;if(!ie(s.width,1,16384)||!ie(s.height,1,16384)||Number(s.width)*Number(s.height)>67108864)return null;let r=n.retention;if(r.policy!==\"workspace_file\"||r.expiresAt!==null)return null;let i=n.retrieval;if(i.method!==\"GET\"||i.acceptRanges!==\"bytes\"||i.maxRangeBytes!==1048576||typeof i.path!==\"string\"||i.path.length>256)return null;let o=kt.exec(i.path);if(!o||!oe.test(o[1]??\"\")||o[2]!==n.artifactId||t!==void 0&&o[1]!==t)return null;return e}var Pn=new Set([\"available\",\"artifactId\",\"kind\",\"contentType\",\"originalBytes\",\"sha256\",\"retainedAt\",\"dimensions\",\"retention\",\"retrieval\"]),xn=new Set([\"available\",\"artifactId\",\"kind\",\"contentType\",\"originalBytes\",\"sha256\",\"retainedAt\",\"retention\",\"retrieval\"]),qn=new Set([\"width\",\"height\"]),At=new Set([\"policy\",\"expiresAt\"]),Pt=new Set([\"method\",\"path\",\"acceptRanges\",\"maxRangeBytes\"]);function B(e,t){return e!==null&&typeof e===\"object\"&&!Array.isArray(e)&&Object.keys(e).length===t.size&&Object.keys(e).every((n)=>t.has(n))}function ie(e,t,n){return Number.isSafeInteger(e)&&Number(e)>=t&&Number(e)<=n}function we(e){let{limit:t,parentSessionId:n,scopeSubjectId:s}=e,r={};if(e.originSiteId)r.originSiteId=e.originSiteId;if(t!==void 0)r.limit=String(t);if(n!==void 0)r.parentSessionId=n??\"null\";if(s!==void 0)r.scopeSubjectId=s;return r}var ts=[\"originSiteId\",\"channelId\",\"createdBy\",\"updatedFrom\",\"updatedBefore\",\"createdFrom\",\"createdBefore\"],ns=[\"updatedFrom\",\"updatedBefore\",\"createdFrom\",\"createdBefore\",\"sortBy\",\"archiveStatus\"];function ss(e){return Boolean(e.needsYouOnly)||ts.some((t)=>e[t]!==void 0)}function D(e){return Error(`The connected Opengeni API does not support ${e}`)}function p(e,t){return`/v1/workspaces/${e}/sessions/${t}`}function rs(e){if(e.apiContract)return e.apiContract;return typeof window<\"u\"&&typeof document<\"u\"&&!e.apiKey?\"strict\":\"compatible\"}function Mt(e,t){let n,s,r=new Promise((i,o)=>{n=i,s=o});return{controller:new AbortController,consumers:0,generation:e,promise:r,resolve:n,reject:s,started:!1,listeners:new Set(t?[t]:[])}}function Ut(e){if(Object.prototype.hasOwnProperty.call(e,\"tools\"))throw TypeError(\"Message-level tools are not supported; update the session tool policy before sending.\")}function Bt(e){if(!(\"agentConfig\"in e)||!e.agentConfig?.machineTarget)return e;let{workingDir:t,...n}=e.agentConfig.machineTarget;if(t===void 0)return e;let s=t.trim();return{...e,agentConfig:{...e.agentConfig,machineTarget:{...n,...s?{workingDir:s}:{}}}}}function is(e){return{forWorkspace(t){let n=t.trim();if(!n)throw TypeError(\"workspaceId is required\");let s,r=()=>s??=Promise.resolve().then(() => (me(),Oe)).then(({OpenGeniToolsClient:o})=>new o(e).forWorkspace(n)),i=(o)=>new Proxy(async(...c)=>{let a=await r();for(let d of o)a=a[d];if(typeof a!==\"function\")throw TypeError(\"Opengeni tool path is not callable\");return await Reflect.apply(a,void 0,c)},{get:(c,a)=>{if(a===\"then\")return;if(typeof a!==\"string\")return;return i([...o,a])}});return new Proxy(Object.create(null),{get:(o,c)=>{if(c===\"then\")return;if(typeof c!==\"string\")return;return i([c])}})}}}class Se{externalActorHeader;serviceInitiatorHeader;serviceContextHeader;baseUrl;options;fetchImpl;sessionCommandTimeoutMs;apiContractStrict;active=new Map;generations=new Map;queued=new Map;interaction;tools;constructor(e){this.baseUrl=e.baseUrl.replace(/\\/+$/,\"\"),this.options=e,this.fetchImpl=Ge(e.fetch??((n,s)=>fetch(n,s)),e.onDeprecation);let t=e.sessionCommandTimeoutMs??15000;if(!Number.isFinite(t)||t<=0)throw RangeError(\"sessionCommandTimeoutMs must be a finite positive number\");this.sessionCommandTimeoutMs=t,this.apiContractStrict=rs(e)===\"strict\",this.interaction=new ye(this),this.tools=is(this)}async transcribeAudio(e,t){let n=crypto.randomUUID(),s=new FormData,r=us(t.mimeType),i=t.audio instanceof File?t.audio:t.audio instanceof Uint8Array?new File([Uint8Array.from(t.audio)],r,{type:t.mimeType}):new File([t.audio],r,{type:t.mimeType||t.audio.type});if(s.append(\"audio\",i,r),s.append(\"mimeType\",t.mimeType),t.durationSeconds!==void 0)s.append(\"durationSeconds\",String(t.durationSeconds));let o;try{o=await this.fetchImpl(this.url(`/v1/workspaces/${e}/transcriptions`),{method:\"POST\",headers:{...this.headers(n),Accept:\"application/json\"},body:s,...t.signal?{signal:t.signal}:{}})}catch(a){if(t.signal?.aborted)throw a;throw z(n)}if(I(o,this.apiContractStrict),!o.ok)throw await v(o,{method:\"POST\",correlationId:n});await j(o,{method:\"POST\",correlationId:n});let c;try{c=await o.json()}catch{throw new m(o.status,\"Invalid transcription response.\",{code:\"invalid_response\",mutation:!0,correlationId:n})}if(!os(c))throw new m(o.status,\"Invalid transcription response.\",{code:\"invalid_response\",mutation:!0,correlationId:n});return c}async createTranscriptionRecording(e,t){return K(await this.requestJson(\"POST\",`/v1/workspaces/${e}/transcription-recordings`,{recordingId:t.recordingId,mimeType:t.mimeType},{},t.signal?{signal:t.signal}:{}))}async getTranscriptionRecording(e,t,n={}){return K(await this.requestJson(\"GET\",`/v1/workspaces/${e}/transcription-recordings/${t}`,void 0,{},n.signal?{signal:n.signal}:{}))}async listTranscriptionRecordings(e,t={}){let n=await this.requestJson(\"GET\",`/v1/workspaces/${e}/transcription-recordings`,void 0,{},t.signal?{signal:t.signal}:{});if(!cs(n))throw new m(502,\"Invalid transcription recording list response.\",{code:\"invalid_response\"});return n}async uploadTranscriptionRecordingChunk(e,t,n,s){let r=crypto.randomUUID(),i;try{i=await this.fetchImpl(this.url(`/v1/workspaces/${e}/transcription-recordings/${t}/chunks/${n}`),{method:\"PUT\",headers:{...this.headers(r),Accept:\"application/json\",\"Content-Type\":s.mimeType,\"x-opengeni-chunk-sha256\":s.sha256,\"x-opengeni-chunk-start-milliseconds\":String(s.startMilliseconds),\"x-opengeni-chunk-duration-milliseconds\":String(s.durationMilliseconds)},body:s.audio instanceof Uint8Array?Uint8Array.from(s.audio):s.audio,...s.signal?{signal:s.signal}:{}})}catch(c){if(s.signal?.aborted)throw c;throw z(r)}if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:\"PUT\",correlationId:r});await j(i,{method:\"PUT\",correlationId:r});let o=await i.json().catch(()=>null);if(!as(o))throw new m(i.status,\"Invalid transcription chunk response.\",{code:\"invalid_response\",mutation:!0,correlationId:r});return o}async finalizeTranscriptionRecording(e,t,n){return K(await this.requestJson(\"POST\",`/v1/workspaces/${e}/transcription-recordings/${t}/finalize`,{chunkCount:n.chunkCount,totalBytes:n.totalBytes,totalDurationMilliseconds:n.totalDurationMilliseconds},{},n.signal?{signal:n.signal}:{}))}async processNextTranscriptionRecordingSegment(e,t,n={}){return K(await this.requestJson(\"POST\",`/v1/workspaces/${e}/transcription-recordings/${t}/process-next`,{},{},n.signal?{signal:n.signal}:{}))}async discardTranscriptionRecording(e,t,n={}){return K(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/transcription-recordings/${t}`,void 0,{},n.signal?{signal:n.signal}:{}))}async createSession(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(e)}/sessions`,t)}async getNewSessionDraft(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/new-session-draft`,void 0,{},t)}async saveNewSessionDraft(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/new-session-draft`,t)}async getWorkspaceCredentialProvider(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/credential-provider`)}async putWorkspaceCredentialProvider(e,t){return this.requestJson(\"PUT\",`/v1/workspaces/${e}/credential-provider`,t)}async deleteWorkspaceCredentialProvider(e){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/credential-provider`)}async listWorkspaceWebhooks(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/webhooks`)}async createWorkspaceWebhook(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/webhooks`,t)}async updateWorkspaceWebhook(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/webhooks/${t}`,n)}async deleteWorkspaceWebhook(e,t){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/webhooks/${t}`)}async listWorkspaceWebhookDeliveries(e,t,n={}){return this.requestJson(\"GET\",`/v1/workspaces/${e}/webhooks/${t}/deliveries`,void 0,n.limit!==void 0?{limit:String(n.limit)}:{})}async redeliverWorkspaceWebhookDelivery(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/webhooks/${t}/deliveries/${n}/redeliver`)}async listWorkspaceSandboxImages(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/sandbox-images`)}async createFeedback(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/feedback`,t)}async listOwnFeedback(e,t={}){let n=new URLSearchParams;if(t.sessionId)n.set(\"sessionId\",t.sessionId);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.includeTurns!==void 0)n.set(\"includeTurns\",String(t.includeTurns));return this.requestJson(\"GET\",`/v1/workspaces/${e}/feedback${n.size?`?${n}`:\"\"}`)}async getSession(e,t,n={}){let s=p(e,t);return await this.sharedRead(s,(r)=>this.requestJson(\"GET\",s,void 0,{},{signal:r}),n)}async getSessionModelContext(e,t){return await this.requestJson(\"GET\",`${p(e,t)}/model-context`)}async updateSession(e,t,n){return await this.requestJson(\"PATCH\",p(e,t),n)}async updateSessionVariableSets(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/variable-sets`,n)}async getSessionTenancyCreateCapabilities(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/session-tenancy/capabilities`)}async updateSessionVisibility(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/visibility`,n)}async forkSession(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/forks`,n)}async updateSessionToolPolicy(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/tool-policy`,n)}async updateSessionAgent(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/agent`,n)}async updateSessionMcpApprovalPolicy(e,t,n,s){return await this.requestJson(\"PATCH\",`${p(e,t)}/mcp-servers/${encodeURIComponent(n)}/approval-policy`,s)}async searchSessionMessages(e,t,n={}){return this.requestJson(\"GET\",`/v1/workspaces/${e}/session-message-search`,void 0,{query:t.query,...t.sessionId!==void 0?{sessionId:t.sessionId}:{},...t.groupBy!==void 0?{groupBy:t.groupBy}:{},...t.archiveStatus!==void 0?{archiveStatus:t.archiveStatus}:{},...t.limit!==void 0?{limit:String(t.limit)}:{},...t.cursor!==void 0?{cursor:t.cursor}:{}},n)}async getSessionMessagePreview(e,t,n,s={}){return this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/events/${encodeURIComponent(n.eventId)}/message-preview`,void 0,{sequence:String(n.sequence)},s)}async listSessions(e,t={}){if(t.search?.trim()||t.originSiteId){let n=await this.listSessionPage(e,t);return[...n.pinned,...n.sessions]}return await this.requestJson(\"GET\",`/v1/workspaces/${e}/sessions`,void 0,we(t))}async listSessionBackgroundCommands(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/background-commands`,void 0,{},n)}async cancelSessionBackgroundCommand(e,t,n){return await this.requestJson(\"DELETE\",`${p(e,t)}/background-commands/${n}`)}async listSessionPage(e,t={}){let n=await this.requestSessionPage(`/v1/workspaces/${e}/sessions`,t);if(\"projection\"in n)throw D(\"full session details\");return n}async listSessionSummaryPage(e,t={}){let n=await this.requestSessionPage(`/v1/workspaces/${e}/sessions`,t,!0);if(\"projection\"in n)return n;let{sessionListEntry:s}=await Promise.resolve().then(() => (Gt(),_t));return{...n,projection:\"summary\",pinned:n.pinned.map(s),sessions:n.sessions.map(s)}}async requestSessionPage(e,t,n=!1){let s=t.search?.trim(),r;try{let a={view:\"page\",...we(t)};if(n)a.projection=\"summary\";if(t.cursor!==void 0)a.cursor=t.cursor;if(s)a.search=s;if(t.channelId!==void 0)a.channelId=t.channelId??\"null\";if(t.createdBy)a.createdByKind=t.createdBy.kind,a.createdBySubjectId=t.createdBy.subjectId;for(let d of ns){let l=t[d];if(l)a[d]=l}if(t.pinsOnly)a.pinsOnly=\"true\";if(t.includeTotals)a.includeTotals=\"true\";if(t.needsYouOnly)a.needsYouOnly=\"true\";if(t.includePinned===!1)a.includePinned=\"false\";if(t.archivedOnly)a.archivedOnly=\"true\";r=await this.requestJson(\"GET\",e,void 0,a,{signal:t.signal})}catch(a){if(a instanceof m&&a.status===410)throw new pe(a.status,a.body,{...a.code?{code:a.code}:{},retryable:a.retryable,...a.correlationId?{correlationId:a.correlationId}:{},outcomeUnknown:a.outcomeUnknown,displayMessage:\"The session list changed \u2014 refresh and try again.\"});throw a}let i=r,o=Array.isArray(i),c=ss(t);if(t.sortBy!==void 0&&(o||i.sortBy!==t.sortBy)||t.archiveStatus!==void 0&&(o||i.archiveStatus!==t.archiveStatus))throw D(\"the requested session sorting/archive filter\");if(o){let a=t.includeTotals?\"complete session totals\":t.cursor?\"stable session-page cursors\":s?\"session search\":t.pinsOnly?\"pins-only session lists\":t.archivedOnly?\"archived session lists\":c?\"filtered session lists\":null;if(a)throw D(a);return{pinned:[],sessions:i,nextCursor:null}}if(t.includeTotals&&i.totals===void 0)throw D(\"complete session totals\");if(t.needsYouOnly&&i.needsYouOnly!==!0)throw D(\"attention session filtering\");if(c&&i.filtersApplied!==!0)throw D(\"filtered session lists\");if(t.originSiteId&&(!i.originSiteId||t.originSiteId!==\"current\"&&i.originSiteId!==t.originSiteId))throw D(\"Site-filtered session lists\");return i}async listAgentTopology(e,t={}){let n=t.query?.trim()||t.search?.trim();if(n&&t.subject)throw TypeError(\"listAgentTopology query cannot be combined with an exact subject\");let s=we(t);if(t.rootSessionId)s.rootSessionId=t.rootSessionId;if(t.cursor)s.cursor=t.cursor;if(n)s.query=n;if(t.statuses?.length)s.statuses=t.statuses.join(\",\");if(t.activeOnly!==void 0)s.activeOnly=t.activeOnly?\"true\":\"false\";if(t.recentHours!==void 0)s.recentHours=String(t.recentHours);if(t.subject)s.subjectNamespace=t.subject.namespace,s.subjectType=t.subject.type,s.subjectKey=t.subject.canonicalKey;if(t.claimLimit!==void 0)s.claimLimit=String(t.claimLimit);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/agent-topology`,void 0,s)}async updateSessionPin(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/pin`,n)}async updateSessionAttention(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/attention`,n)}async updateSessionArchive(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/archive`,n)}async deleteSession(e,t){return await this.requestJson(\"DELETE\",p(e,t))}async getSessionLineage(e,t,n={}){let s=`${p(e,t)}/lineage`;return await this.sharedRead(s,(r)=>this.requestJson(\"GET\",s,void 0,{},{signal:r}),n)}sharedRead(e,t,n={}){if(n.signal?.aborted)return Promise.reject(n.signal.reason??new DOMException(\"Request aborted\",\"AbortError\"));let s=this.active.get(e);if(s){if(!n.fresh)return this.observeRead(s,n.onRequestStart),this.consumeSharedRead(e,s,n.signal);let a=s.generation+1,d=this.queued.get(e);if(d&&d.generation>=a)return this.observeRead(d,n.onRequestStart),this.consumeSharedRead(e,d,n.signal);let l=d?.promise??s.promise;return this.queueRead(e,l,a,t,n)}let r=this.queued.get(e);if(r&&(!n.fresh||!r.started))return this.observeRead(r,n.onRequestStart),this.consumeSharedRead(e,r,n.signal);if(r)return this.queueRead(e,r.promise,r.generation+1,t,n);let i=(this.generations.get(e)??0)+1,o=Mt(i,n.onRequestStart),c=this.consumeSharedRead(e,o,n.signal);return this.launchRead(e,o,t),c}queueRead(e,t,n,s,r){let i=Mt(n,r.onRequestStart),o=this.consumeSharedRead(e,i,r.signal);this.queued.set(e,i);let c=()=>this.launchRead(e,i,s);t.then(c,c);let a=()=>{if(this.queued.get(e)!==i)return;if(this.queued.delete(e),!this.active.has(e))this.generations.delete(e)};return i.promise.then(a,a),o}launchRead(e,t,n){if(t.controller.signal.aborted)return;t.started=!0,this.generations.set(e,t.generation),this.active.set(e,t);try{t.stamp=this.options.beginSharedRead?.()}catch{}for(let i of t.listeners)try{i(t.stamp)}catch{}t.listeners.clear();let s=()=>{if(this.active.get(e)!==t)return;if(this.active.delete(e),!this.queued.has(e))this.generations.delete(e)},r;try{r=n(t.controller.signal)}catch(i){s(),t.reject(i);return}r.then((i)=>{s(),t.resolve(i)},(i)=>{s(),t.reject(i)})}consumeSharedRead(e,t,n){t.consumers+=1;let s=!1,r=()=>{if(s)return;if(s=!0,t.consumers-=1,!n?.aborted||t.consumers>0)return;let o=n.reason;if(t.controller.abort(o),this.active.get(e)===t)this.active.delete(e);if(this.queued.get(e)===t)this.queued.delete(e);if(!this.active.has(e)&&!this.queued.has(e))this.generations.delete(e);t.reject(o)};return n?.addEventListener(\"abort\",r,{once:!0}),W(t.promise,n).finally(()=>{n?.removeEventListener(\"abort\",r),r()})}observeRead(e,t){if(!t)return;if(!e.started){e.listeners.add(t);return}if(e.stamp===void 0)return;try{t(e.stamp)}catch{}}async negotiateCodexRealtimeWebrtc(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/webrtc`,n,{},{signal:s.signal})}async negotiateGatewayRealtime(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/gateway`,n,{},{signal:s.signal})}async negotiateXaiSubscriptionRealtime(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/supergrok`,n,{},{signal:s.signal})}async activateCodexRealtimeConnection(e,t,n,s,r,i={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/${n}/connections/${s}/activate`,r,{},{signal:i.signal})}async beginSessionRealtime(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/realtime`,n)}async heartbeatSessionRealtime(e,t,n,s){return await this.requestJson(\"PATCH\",`${p(e,t)}/realtime/${n}/heartbeat`,s)}async syncSessionRealtimeLedger(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/${n}/sync`,s)}async endSessionRealtime(e,t,n,s){return await this.requestJson(\"DELETE\",`${p(e,t)}/realtime/${n}`,s)}async listTurns(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/turns`,void 0,{...n.limit!==void 0?{limit:String(n.limit)}:{},...n.latestStarted?{latestStarted:\"1\"}:{}},{signal:n.signal})}async getLatestStartedTurn(e,t,n={}){return(await this.listTurns(e,t,{latestStarted:!0,signal:n.signal}))[0]??null}async listMachines(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/machines`,void 0,{...t.sessionId!==void 0?{sessionId:t.sessionId}:{}},{signal:t.signal})}async updateMachineAgent(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/machines/${t}/update`)}async updateMachineOperationPolicy(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/machines/${t}/operation-policy`,n)}async machineMetricsSeries(e,t,n={}){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/machines/${t}/metrics/series`,void 0,{...n.window!==void 0?{window:n.window}:{}})).samples}async removeEnrollment(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/${t}/revoke`,n)}async lookupDeviceEnrollment(e){return await this.requestJson(\"POST\",\"/v1/enrollments/device/lookup\",{userCode:e})}async approveDeviceEnrollment(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/device/approve`,{userCode:t.userCode,allowScreenControl:t.allowScreenControl??!1,...t.scope?{scope:t.scope}:{}})}async denyDeviceEnrollment(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/device/deny`,{userCode:t.userCode})}async mintEnrollToken(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/token`,{allowScreenControl:t.allowScreenControl??!1})}async swapActiveSandbox(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/active-sandbox`,n)}async listScheduledTasks(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks`,void 0,{...t.offset!==void 0?{offset:String(t.offset)}:{},...t.sessionId?{sessionId:t.sessionId}:{},...t.limit!==void 0?{limit:String(t.limit)}:{}})}async getScheduledTask(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks/${t}`)}async listScheduledTaskSlackChannels(e,t,n){let s=new URLSearchParams({connectionId:t});if(n)s.set(\"cursor\",n);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-task-slack-channels?${s}`)}async listEvents(e,t,n={}){return(await this.listEventPage(e,t,n)).events}async listEventPage(e,t,n={}){if(n.latest&&[\"includeTypes\",\"excludeTypes\",\"includeClasses\",\"excludeClasses\"].some((S)=>Object.prototype.hasOwnProperty.call(n,S)))throw TypeError(\"latest cannot be combined with event filters\");if(n.resultMode===\"compact\"&&!n.latest)throw TypeError(\"resultMode=compact requires latest\");let s=n.resultMode===\"compact\"?null:n,r=crypto.randomUUID(),i=await this.fetchImpl(this.url(`${p(e,t)}/events`,{...s?.after!==void 0?{after:String(s.after)}:{},...s?.before!==void 0?{before:String(s.before)}:{},...s?.limit!==void 0?{limit:String(s.limit)}:{},...s?.compact?{compact:\"1\"}:{},...n.mode?{mode:n.mode}:{},...s?.direction?{direction:s.direction}:{},...n.payloadMode?{payloadMode:n.payloadMode}:{},...n.resultMode?{resultMode:n.resultMode}:{},...s?.includeTypes?.length?{includeTypes:s.includeTypes.join(\",\")}:{},...s?.excludeTypes?.length?{excludeTypes:s.excludeTypes.join(\",\")}:{},...s?.includeClasses?.length?{includeClasses:s.includeClasses.join(\",\")}:{},...s?.excludeClasses?.length?{excludeClasses:s.excludeClasses.join(\",\")}:{},...n.latest?{latest:n.latest}:{}}),{method:\"GET\",headers:{...this.headers(r),Accept:\"application/json\"}});if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:\"GET\",correlationId:r});await j(i,{method:\"GET\",correlationId:r});let o=await i.json();if(n.resultMode===\"compact\")return o;let c=o,a=(S)=>{let x=i.headers.get(S);if(x===null)return null;let J=Number(x);return Number.isSafeInteger(J)&&J>=0?J:null},d=i.headers.get(\"X-OpenGeni-Event-Mode\")===\"forensic\"?\"forensic\":\"monitoring\",l=i.headers.get(\"X-OpenGeni-Event-Direction\")===\"after\"?\"after\":\"before\",g=i.headers.get(\"X-OpenGeni-Payload-Mode\"),u=g===\"none\"||g===\"full\"?g:\"summary\",y=a(\"X-OpenGeni-Covered-First\"),w=a(\"X-OpenGeni-Covered-Last\"),f=a(\"X-OpenGeni-Page-Bytes\")??new TextEncoder().encode(JSON.stringify(c)).byteLength,b=a(\"X-OpenGeni-Page-Max-Bytes\")??1048576,R=i.headers.get(\"X-OpenGeni-Truncated-By\"),h=R===\"count\"||R===\"bytes\"||R===\"http_bytes\"?R:null;return{events:c,mode:d,payloadMode:u,direction:l,bytes:f,maxBytes:b,truncated:i.headers.get(\"X-OpenGeni-Page-Truncated\")===\"true\",hasMore:i.headers.get(\"X-OpenGeni-Has-More\")===\"true\",truncatedBy:h,coveredSequence:y===null||w===null?null:{first:y,last:w},nextAfter:a(\"X-OpenGeni-Next-After\"),nextBefore:a(\"X-OpenGeni-Next-Before\"),forensicExact:i.headers.get(\"X-OpenGeni-Forensic-Exact\")===\"true\"}}async getLatestEventResult(e,t,n={latest:\"terminal\"}){return await this.listEventPage(e,t,{...n,resultMode:\"compact\"})}async sendEvent(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/events`,n)}async sendMessage(e,t,n){let s=typeof n===\"string\"?{text:n}:n;Ut(s);let{clientEventId:r,...i}=s;return await this.sendEvent(e,t,{type:\"user.message\",...r!==void 0?{clientEventId:r}:{},payload:i})}async pauseSession(e,t,n={}){return await this.controlSession(e,t,{action:\"pause\",clientEventId:n.clientEventId??crypto.randomUUID(),...n.reason?{reason:n.reason}:{},...n.expectedControlEtag?{expectedControlEtag:n.expectedControlEtag}:{}})}async sendApprovalDecision(e,t,n){let{clientEventId:s,...r}=n;return await this.sendEvent(e,t,{type:\"user.approvalDecision\",...s!==void 0?{clientEventId:s}:{},payload:r})}async listHumanInputRequests(e,t,n={}){return(await this.requestJson(\"GET\",`${p(e,t)}/human-input-requests`,void 0,n.status?{status:n.status}:void 0)).requests}async getHumanInputRequest(e,t,n){return await this.requestJson(\"GET\",`${p(e,t)}/human-input-requests/${n}`)}async submitHumanInputResponse(e,t,n,s,r={}){return await this.sendEvent(e,t,{type:\"user.humanInputResponse\",...r.clientEventId?{clientEventId:r.clientEventId}:{},payload:{requestId:n,response:s}})}streamEvents(e,t,n={}){return Ee(this.eventStreamTransport(e,t),n)}eventStreamTransport(e,t){return{openStream:async(n,s)=>await this.openEventStream(e,t,{after:n,...s?{signal:s}:{}}),listEvents:async(n,s)=>await this.listEvents(e,t,{after:n,limit:s})}}async openEventStream(e,t,n={}){let s=this.url(`${p(e,t)}/events/stream`,{after:String(n.after??0)}),r=crypto.randomUUID(),i=await this.fetchImpl(s,{method:\"GET\",headers:{...this.headers(r),Accept:\"text/event-stream\"},...n.signal?{signal:n.signal}:{}});if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:\"GET\",correlationId:r});if(!i.body)throw new m(i.status,\"SSE response did not include a readable body\");return i.body}async getQueue(e,t){let n=`${p(e,t)}/queue`;return await this.sharedRead(n,()=>this.requestSessionCommand(\"GET\",n))}async moveQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/move`,s)}async editQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/edit`,s)}async steerQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/steer`,s)}async deleteQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/delete`,s)}async getComposerDraft(e,t,n={}){return await this.requestSessionCommand(\"GET\",`${p(e,t)}/composer-draft`,void 0,n)}async saveComposerDraft(e,t,n){return await this.requestSessionCommand(\"PUT\",`${p(e,t)}/composer-draft`,n)}async submitComposerDraft(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/composer-draft/submit`,n)}async getSandboxRecovery(e,t){return this.requestJson(\"GET\",`${p(e,t)}/sandbox-recovery`)}async recoverSandbox(e,t,n){return this.requestSessionCommand(\"POST\",`${p(e,t)}/sandbox-recovery`,n)}async retrySession(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/retry`,n)}async controlSession(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/control`,n)}async resumeSession(e,t,n={}){return await this.controlSession(e,t,{action:\"resume\",clientEventId:n.clientEventId??crypto.randomUUID(),...n.reason?{reason:n.reason}:{},...n.expectedControlEtag?{expectedControlEtag:n.expectedControlEtag}:{}})}async cancelSession(e,t,n={}){return await this.controlSession(e,t,{action:\"cancel\",clientEventId:n.clientEventId??crypto.randomUUID(),...n.reason?{reason:n.reason}:{},...n.expectedControlEtag?{expectedControlEtag:n.expectedControlEtag}:{}})}async setWorkspacePauseTimer(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/pause-timer`,t)}async setWorkspaceInferenceState(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/inference-control`,t)}async listWorkspaceControlEvents(e,t={}){return(await this.listWorkspaceControlEventPage(e,t)).events}async listWorkspaceControlEventPage(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/control-events`,{...t.after!==void 0?{after:String(t.after)}:{},...t.limit!==void 0?{limit:String(t.limit)}:{}}),{method:\"GET\",headers:{...this.headers(n),Accept:\"application/json\"}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});await j(s,{method:\"GET\",correlationId:n});let r=await s.json(),i=s.headers.get(\"X-OpenGeni-Page-Bytes\"),o=s.headers.get(\"X-OpenGeni-Next-After\"),c=i===null?Number.NaN:Number(i),a=o===null?null:Number(o);return{events:r,bytes:Number.isSafeInteger(c)&&c>=0?c:new TextEncoder().encode(JSON.stringify(r)).byteLength,truncated:s.headers.get(\"X-OpenGeni-Page-Truncated\")===\"true\",nextAfter:a!==null&&Number.isSafeInteger(a)&&a>=0?a:null}}streamWorkspaceControlEvents(e,t={}){return Ue(this.workspaceControlStreamTransport(e),t)}streamWorkspaceLiveEvents(e,t={}){return Le(this.workspaceLiveStreamTransport(e),t)}workspaceLiveStreamTransport(e){return{openStream:async(t,n,s)=>await this.openWorkspaceLiveEventStream(e,{controlAfter:t,interactionAfter:n,...s?{signal:s}:{}})}}async openWorkspaceLiveEventStream(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/live-events/stream`,{controlAfter:String(t.controlAfter??0),interactionAfter:String(t.interactionAfter??0)}),{method:\"GET\",headers:{...this.headers(n),Accept:\"text/event-stream\"},...t.signal?{signal:t.signal}:{}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(!s.body)throw new m(s.status,\"SSE response did not include a readable body\");return s.body}workspaceControlStreamTransport(e){return{openStream:async(t,n)=>await this.openWorkspaceControlEventStream(e,{after:t,...n?{signal:n}:{}})}}async openWorkspaceControlEventStream(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/control-events/stream`,{after:String(t.after??0)}),{method:\"GET\",headers:{...this.headers(n),Accept:\"text/event-stream\"},...t.signal?{signal:t.signal}:{}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(!s.body)throw new m(s.status,\"SSE response did not include a readable body\");return s.body}async steerMessage(e,t,n){let s=typeof n===\"string\"?{text:n}:n;return Ut(s),await this.requestSessionCommand(\"POST\",`${p(e,t)}/steer`,s)}async getGoal(e,t,n={}){let s=`${p(e,t)}/goal`;return await this.sharedRead(s,(r)=>this.requestJson(\"GET\",s,void 0,{},{signal:r}),n)}async updateGoal(e,t,n){return await this.requestJson(\"PATCH\",`${p(e,t)}/goal`,n)}async listGoalRevisions(e,t){return await this.requestJson(\"GET\",`${p(e,t)}/goal/revisions`)}async listGoalRevisionPage(e,t,n={}){let s=new URLSearchParams;if(n.limit!==void 0)s.set(\"limit\",String(n.limit));if(n.before!==void 0)s.set(\"before\",n.before);let r=s.size>0?`?${s.toString()}`:\"\";return await this.requestJson(\"GET\",`${p(e,t)}/goal/revisions/page${r}`)}async rejectGoalRevision(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/goal/revisions/${n}/reject`,s)}async rollbackGoalRevision(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/goal/revisions/${n}/rollback`,s)}async applyGoalRevision(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/goal/revisions/${n}/apply`,s)}async deleteGoal(e,t){await this.requestVoid(\"DELETE\",`${p(e,t)}/goal`)}async pauseGoal(e,t,n={}){return await this.updateGoal(e,t,{status:\"paused\",...n.rationale!==void 0?{rationale:n.rationale}:{}})}async resumeGoal(e,t){return await this.updateGoal(e,t,{status:\"active\"})}async clearSessionContext(e,t){await this.requestVoid(\"POST\",`${p(e,t)}/context/clear`,{confirm:!0})}async compactSessionContext(e,t){return await this.requestJson(\"POST\",`${p(e,t)}/context/compact`,{})}async fsList(e,t,n={},s={}){return await this.requestJson(\"POST\",`${p(e,t)}/fs/list`,n,{},s)}async fsListBatch(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/fs/list-batch`,n,{},s)}async fsRead(e,t,n,s={}){return await this.requestJson(\"POST\",n.workspaceOnly?`${p(e,t)}/fs/read-workspace`:`${p(e,t)}/fs/read`,n,{},s)}async publishSandboxFileArtifact(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/artifacts/publish`,n,{},s)}async fsWrite(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/write`,n)}async fsDelete(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/delete`,n)}async fsMove(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/move`,n)}async fsMkdir(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/mkdir`,n)}async gitStatus(e,t,n={},s={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/status`,n,{},s)}async gitDiff(e,t,n={},s={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/diff`,n,{},s)}async gitReadBatch(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/read-batch`,n,{},s)}async gitLog(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/log`,n)}async gitShow(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/git/show`,n)}async getWorkspaceCapture(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/workspace/capture`,void 0,{},n)}async getWorkspaceCaptureFile(e,t,n,s,r={}){let i={path:n};if(s!==void 0)i.revision=String(s);return await this.requestJson(\"GET\",`${p(e,t)}/workspace/capture/file`,void 0,i,r)}async terminalExec(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/terminal/exec`,n)}async terminalPtyOpen(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/terminal/pty`,n)}async terminalPtyWrite(e,t,n){await this.requestVoid(\"POST\",`${p(e,t)}/terminal/pty/write`,n)}async terminalPtyResize(e,t,n){await this.requestVoid(\"POST\",`${p(e,t)}/terminal/pty/resize`,n)}async terminalPtyClose(e,t,n){await this.requestVoid(\"POST\",`${p(e,t)}/terminal/pty/close`,n)}async getStreamCapabilities(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/stream-capabilities`,void 0,{},n)}async acknowledgeStream(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/stream-capabilities/acknowledge`,n)}async attachViewer(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/viewers`,n)}async heartbeatViewer(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/viewers/${n}/heartbeat`,s)}async detachViewer(e,t,n){await this.requestVoid(\"DELETE\",`${p(e,t)}/viewers/${n}`)}streamWorkspaceInteractionRevisions(e,t={}){return $e(this.workspaceInteractionRevisionStreamTransport(e),t)}workspaceInteractionRevisionStreamTransport(e){return{openStream:async(t,n)=>await this.openWorkspaceInteractionRevisionStream(e,{after:t,...n?{signal:n}:{}})}}async openWorkspaceInteractionRevisionStream(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/interaction-events/stream`,{after:String(t.after??0)}),{method:\"GET\",headers:{...this.headers(n),Accept:\"text/event-stream\"},...t.signal?{signal:t.signal}:{}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(!s.body)throw new m(s.status,\"SSE response did not include a readable body\");return s.body}async listNetworkRoutes(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/network-routes`,void 0,t.includeArchived?{includeArchived:\"true\"}:{},t)}async getNetworkRoute(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/network-routes/${encodeURIComponent(t)}`,void 0,{},n)}async createNetworkRoute(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/network-routes`,t,{},n)}async updateNetworkRoute(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/network-routes/${encodeURIComponent(t)}`,n,{},s)}async listSiteAuthConnections(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/site-auth-connections`,void 0,t.includeArchived?{includeArchived:\"true\"}:{},t)}async getSiteAuthConnection(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/site-auth-connections/${encodeURIComponent(t)}`,void 0,{},n)}async createSiteAuthConnection(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/site-auth-connections`,t,{},n)}async updateSiteAuthConnection(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/site-auth-connections/${encodeURIComponent(t)}`,n,{},s)}async listAuthRuns(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/auth-runs`,void 0,{...t.browserSessionId?{browserSessionId:t.browserSessionId}:{},...t.siteAuthConnectionId?{siteAuthConnectionId:t.siteAuthConnectionId}:{},...t.includeSettled?{includeSettled:\"true\"}:{}},t)}async getAuthRun(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/auth-runs/${encodeURIComponent(t)}`,void 0,{},n)}async startBrowserAuthRun(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs`,n,{},s)}async reportBrowserAuthRun(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/report`,s,{},r)}async protectedBrowserAuthFill(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/protected-fill`,s,{},r)}async advanceExternalBrowserAuthRun(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/external-auth`,s,{},r)}async openExternalBrowserAuthFlow(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/external-auth/interactive`,s,{},r)}async verifyBrowserAuthRun(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/verify`,s,{},r)}async listInteractionInterventions(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/interaction-interventions`,void 0,{...t.resourceKind?{resourceKind:t.resourceKind}:{},...t.resourceId?{resourceId:t.resourceId}:{},...t.includeSettled?{includeSettled:\"true\"}:{}},t)}async getInteractionIntervention(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/interaction-interventions/${encodeURIComponent(t)}`,void 0,{},n)}async createInteractionIntervention(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/interaction-interventions`,t,{},n)}async resolveInteractionIntervention(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/interaction-interventions/${encodeURIComponent(t)}/resolve`,n,{},s)}async listAttachedBrowsers(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/attached-browsers`,void 0,t.includeDisconnected?{includeDisconnected:\"true\"}:{},t)}async getAttachedBrowser(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/attached-browsers/${encodeURIComponent(t)}`,void 0,{},n)}async listBrowserIdentities(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-identities`,void 0,t.includeArchived?{includeArchived:\"true\"}:{},t)}async getBrowserIdentity(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-identities/${encodeURIComponent(t)}`,void 0,{},n)}async createBrowserIdentity(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-identities`,t,{},n)}async updateBrowserIdentity(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/browser-identities/${encodeURIComponent(t)}`,n,{},s)}async listBrowserRevisions(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-identities/${encodeURIComponent(t)}/revisions`,void 0,{},n)}async listBrowserSessions(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions`,void 0,{},t)}async getBrowserSession(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}`,void 0,{},n)}async readBrowserClipboard(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/clipboard`,void 0,{},n)}async listBrowserDownloads(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/downloads`,void 0,{},n)}async getBrowserDownload(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/downloads/${encodeURIComponent(n)}`,void 0,{},s)}async saveBrowserDownload(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/downloads/${encodeURIComponent(n)}/save`,s,{},r)}async createBrowserSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions`,t,{},n)}async listBrowserTargets(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets`,void 0,{},n)}async openBrowserTarget(e,t,n={},s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets`,n,{},s)}async selectBrowserTarget(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/select`,{},{},s)}async captureBrowserTarget(e,t,n,s={},r={}){let i=new URLSearchParams;if(r.fullPage!==void 0){if(typeof r.fullPage!==\"boolean\")throw TypeError(\"browser screenshot fullPage must be a boolean\");i.set(\"fullPage\",String(r.fullPage))}if(r.format!==void 0){if(r.format!==\"jpeg\"&&r.format!==\"png\")throw TypeError(\"browser screenshot format must be jpeg or png\");i.set(\"format\",r.format)}if(r.quality!==void 0){if(!Number.isSafeInteger(r.quality)||r.quality<1||r.quality>100)throw RangeError(\"browser screenshot quality must be an integer from 1 to 100\");i.set(\"quality\",String(r.quality))}let o=i.size>0?`?${i}`:\"\",c=await this.requestResponse(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/screenshot${o}`,{},s),a=c.headers.get(\"content-type\")?.split(\";\",1)[0]?.trim().toLowerCase(),d=c.headers.get(\"x-opengeni-browser-frame\");if(a!==\"image/jpeg\"&&a!==\"image/png\"||!d||d.length>65536)throw await k(c,\"browser frame metadata is invalid\"),new m(502,\"browser frame metadata is invalid\");let l;try{l=gt(JSON.parse(atob(d.replace(/-/gu,\"+\").replace(/_/gu,\"/\"))))}catch{throw await k(c,\"browser frame metadata is invalid\"),new m(502,\"browser frame metadata is invalid\")}let g=await Y(c,25165824,null);if(l.browserSessionId!==t||l.targetId!==n||l.mediaType!==a)throw new m(502,\"browser frame evidence does not match its request\");return{...l,data:g}}async closeBrowserTarget(e,t,n,s={}){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}`,void 0,{},s)}async observeBrowserTarget(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/observation`,void 0,{},s)}async getBrowserTargetState(e,t,n,s={}){let r=await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/state`,void 0,{},s);if(r.browserSessionId!==t||r.targetId!==n)throw new m(502,\"browser target state belongs to another binding\");return r}async readBrowserDom(e,t,n,s,r={}){let i=await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/dom-read`,s,{},r);if(i.browserSessionId!==t||i.targetId!==n||i.kind!==s.kind||i.targetGeneration!==s.expectedTargetGeneration||i.documentGeneration!==s.expectedDocumentGeneration||i.frameId!==s.expectedFrameId)throw new m(502,\"browser DOM read belongs to another binding\");return i}async actInBrowser(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/actions`,n,{},s)}async getBrowserActionReceipt(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/operations/${encodeURIComponent(n)}`,void 0,{},s)}async listBrowserDiagnostics(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/diagnostics`,void 0,{...s.kinds?.length?{kinds:s.kinds.join(\",\")}:{},...s.after!==void 0?{after:String(s.after)}:{},...s.limit!==void 0?{limit:String(s.limit)}:{}},s.signal?{signal:s.signal}:{})}async attachBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/attachments`,n,{},s)}async heartbeatBrowserSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/heartbeat`,{},{},n)}async publishBrowserRevision(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/revisions`,n,{},s)}async suspendBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/suspend`,n,{},s)}async resumeBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/resume`,n,{},s)}async endBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/end`,n,{},s)}async listComputerSessions(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions`,void 0,{},t)}async getComputerSession(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}`,void 0,{},n)}async readComputerClipboard(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/clipboard`,void 0,{},n)}async getComputerInputPosture(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/input-posture`,void 0,{},n)}async createComputerSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions`,t,{},n)}async listComputerTargets(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/targets`,void 0,{},n)}async observeComputerTarget(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/observation`,void 0,{},s)}async captureComputerTarget(e,t,n,s={}){let r=await this.requestResponse(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/screenshot`,{},s),i=r.headers.get(\"content-type\")?.split(\";\",1)[0]?.trim().toLowerCase();if(i!==\"image/jpeg\"&&i!==\"image/png\")throw await k(r,\"computer frame media type is invalid\"),new m(502,\"computer frame media type is invalid\");let o=r.headers.get(\"x-opengeni-computer-frame\");if(!o||o.length>32768)throw await k(r,\"computer frame metadata is invalid\"),new m(502,\"computer frame metadata is invalid\");let c;try{c=mt(o)}catch{throw await k(r,\"computer frame metadata is invalid\"),new m(502,\"computer frame metadata is invalid\")}let a=await Y(r,262144,null);if(ms(c,{computerSessionId:t,targetId:n,mediaType:i,sha256:await Dt(a)}))throw new m(502,\"computer frame evidence does not match its request\");return{...c,data:a}}async actInComputer(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/actions`,n,{},s)}async getComputerActionReceipt(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/operations/${encodeURIComponent(n)}`,void 0,{},s)}async attachComputerSession(e,t,n,s={}){let r=await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/attachments`,n,{},s);if(r.stream.kind===\"direct_rfb\")return{...r,stream:{...r.stream,inputAllowed:r.stream.inputAllowed===!0}};return r}async heartbeatComputerSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/heartbeat`,{},{},n)}async endComputerSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/end`,n,{},s)}async getClientConfig(e={}){let t=await this.requestJson(\"GET\",\"/v1/config/client\",void 0,e.workspaceId===void 0?{}:{workspaceId:e.workspaceId},e);if(this.apiContractStrict&&t.apiContractRevision!==L)throw new Q(L,String(t.apiContractRevision||\"(missing)\"));return t}async getWorkspaceModelCatalog(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/model-catalog`,void 0,{},t)}async listWorkspaceGatewayCustomModels(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/gateway-custom-models`)}async createWorkspaceGatewayCustomModel(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/gateway-custom-models`,t)}async deleteWorkspaceGatewayCustomModel(e,t,n){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(t))throw TypeError(\"customModelId must be a UUID\");await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/gateway-custom-models/${encodeURIComponent(t)}`,n)}async listWorkspaceOpenRouterCustomModels(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/openrouter-custom-models`)}async createWorkspaceOpenRouterCustomModel(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/openrouter-custom-models`,t)}async deleteWorkspaceOpenRouterCustomModel(e,t,n){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(t))throw TypeError(\"customModelId must be a UUID\");await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/openrouter-custom-models/${encodeURIComponent(t)}`,n)}async getWorkspaceClaudeSubscriptionUsage(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/model-providers/claude_subscription/usage`)}async listClaudeSubscriptionAccounts(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/claude/accounts`)}async activateClaudeSubscriptionAccount(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/activate`,{})}async setClaudeSubscriptionRotationSettings(e,t){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/claude/settings`,t)}async setClaudeSubscriptionAccountAllocator(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/allocator`,n)}async renameClaudeSubscriptionAccount(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}`,{label:n})}async disconnectClaudeSubscriptionAccount(e,t){return this.requestJson(\"DELETE\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}`,{})}async getClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/usage`)}async refreshClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/usage/refresh`,{})}async listOrganizationClaudeSubscriptionAccounts(e){return this.requestJson(\"GET\",`/v1/organizations/${e}/claude/accounts`)}async activateOrganizationClaudeSubscriptionAccount(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/activate`,{})}async setOrganizationClaudeSubscriptionRotationSettings(e,t){return this.requestJson(\"PATCH\",`/v1/organizations/${e}/claude/settings`,t)}async setOrganizationClaudeSubscriptionAccountAllocator(e,t,n){return this.requestJson(\"PATCH\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/allocator`,n)}async renameOrganizationClaudeSubscriptionAccount(e,t,n){return this.requestJson(\"PATCH\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}`,{label:n})}async disconnectOrganizationClaudeSubscriptionAccount(e,t){return this.requestJson(\"DELETE\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}`,{})}async getOrganizationClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"GET\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/usage`)}async refreshOrganizationClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/usage/refresh`,{})}async connectClaudeSubscriptionSetupToken(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/claude/accounts/setup-token`,t)}async connectOrganizationClaudeSubscriptionSetupToken(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/claude/accounts/setup-token`,t)}async startWorkspaceClaudeSubscriptionOAuth(e,t={}){return this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/claude_subscription/oauth/start`,t)}async completeWorkspaceClaudeSubscriptionOAuth(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/claude_subscription/oauth/complete`,t)}async startOrganizationClaudeSubscriptionOAuth(e,t={}){return this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/claude_subscription/oauth/start`,t)}async completeOrganizationClaudeSubscriptionOAuth(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/claude_subscription/oauth/complete`,t)}async refreshWorkspaceClaudeSubscriptionUsage(e){return this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/claude_subscription/usage/refresh`,{})}async getOrganizationClaudeSubscriptionUsage(e){return this.requestJson(\"GET\",`/v1/organizations/${e}/model-providers/claude_subscription/usage`)}async refreshOrganizationClaudeSubscriptionUsage(e){return this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/claude_subscription/usage/refresh`,{})}async getOrganizationModelProviderConnection(e,t){return await this.requestJson(\"GET\",`/v1/organizations/${e}/model-providers/${t}`)}async upsertOrganizationModelProviderConnection(e,t,n){return await this.requestJson(\"PUT\",`/v1/organizations/${e}/model-providers/${t}`,n)}async revokeOrganizationModelProviderConnection(e,t,n){return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/model-providers/${t}`,n)}async listWorkspaceClaudeCustomModels(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/model-providers/${t}/custom-models`)}async createWorkspaceClaudeCustomModel(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/${t}/custom-models`,n)}async deleteWorkspaceClaudeCustomModel(e,t,n,s){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(n))throw TypeError(\"customModelId must be a UUID\");await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/model-providers/${t}/custom-models/${encodeURIComponent(n)}`,s)}async listOrganizationProviderCustomModels(e,t){return await this.requestJson(\"GET\",`/v1/organizations/${e}/model-providers/${t}/custom-models`)}async createOrganizationProviderCustomModel(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/${t}/custom-models`,n)}async deleteOrganizationProviderCustomModel(e,t,n,s){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(n))throw TypeError(\"customModelId must be a UUID\");return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/model-providers/${t}/custom-models/${encodeURIComponent(n)}`,s)}async getWorkspaceModelAccessPolicy(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/model-policy`)}async updateWorkspaceModelAccessPolicy(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/model-policy`,t)}async getWorkspaceRealtimeModelCatalog(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/realtime-model-catalog`,void 0,{},t)}async getAccessContext(){return await this.requestJson(\"GET\",\"/v1/access/me\")}async listOrganizationMemberships(){return await this.requestJson(\"GET\",\"/v1/organization-memberships\")}async listUserResourceAuthorities(e,t){let n=new URLSearchParams({scope:\"user\",resourceKind:t.resourceKind});if(t.cursor)n.set(\"cursor\",t.cursor);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));return await this.requestJson(\"GET\",`/v1/workspaces/${e}/user-resource-authorities?${n.toString()}`)}async revokeUserResourceGrant(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/user-resource-authorities/grants/${t}?scope=user`)}async createOrganization(e){return await this.requestJson(\"POST\",\"/v1/organizations\",e)}async createAdditionalOrganization(e){return await this.requestJson(\"POST\",\"/v1/organizations/additional\",e)}async listOrganizationInvitations(e={}){let t=new URLSearchParams;if(e.cursor)t.set(\"cursor\",e.cursor);if(e.limit!==void 0)t.set(\"limit\",String(e.limit));let n=t.size>0?`?${t.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/organization-invitations${n}`)}async listOrganizationInvitationsForOrganization(e,t={}){let n=new URLSearchParams;if(t.cursor)n.set(\"cursor\",t.cursor);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/organizations/${e}/invitations${s}`)}async createOrganizationInvitation(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/invitations`,t)}async acceptOrganizationInvitation(e,t){return await this.requestJson(\"POST\",`/v1/organization-invitations/${e}/accept`,t)}async revokeOrganizationInvitation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/invitations/${t}/revoke`,n)}async listOrganizationAdministrationMembers(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/members`)}async listOrganizationMembers(e){return await this.listOrganizationAdministrationMembers(e)}async getOrganizationAdministrationOverview(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/overview`)}async createOrganizationWorkspace(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/workspaces`,t)}async updateOrganizationWorkspace(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/workspaces/${t}`,n)}async updateOrganizationWorkspaceSettings(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/workspaces/${t}/settings`,n)}async deleteOrganizationWorkspace(e,t){await this.requestVoid(\"DELETE\",`/v1/organizations/${e}/workspaces/${t}`)}async putOrganizationWorkspaceMember(e,t,n,s){return await this.requestJson(\"PUT\",`/v1/organizations/${e}/workspaces/${t}/members/${n}`,s)}async revokeOrganizationWorkspaceMember(e,t,n,s){return await this.requestJson(\"POST\",`/v1/organizations/${e}/workspaces/${t}/members/${n}/revoke`,s)}async updateOrganizationName(e,t){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}`,t)}async updateOrganizationMember(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/members/${t}`,n)}async getOrganizationRetentionPolicy(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/retention-policy`)}async updateOrganizationRetentionPolicy(e,t){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/retention-policy`,t)}async getOrganizationRecovery(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/recovery`)}async configureOrganizationRecoveryPolicy(e,t){return await this.requestJson(\"PUT\",`/v1/organizations/${e}/recovery/policy`,t)}async acceptOrganizationRecoveryCustody(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/policy/accept`,t)}async disableOrganizationRecoveryPolicy(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/policy/disable`,t)}async startOrganizationRecoveryOperation(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations`,t)}async approveOrganizationRecoveryOperation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations/${t}/approve`,n)}async cancelOrganizationRecoveryOperation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations/${t}/cancel`,n)}async executeOrganizationRecoveryOperation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations/${t}/execute`,n)}async searchPublicSkills(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/skills/search?q=${encodeURIComponent(t)}`)}async listWorkspaces(){return await this.requestJson(\"GET\",\"/v1/workspaces\")}connectTransport(){let e=(t)=>`/v1/workspaces/${encodeURIComponent(t)}/connect`;return{catalog:(t,n)=>this.requestJson(\"GET\",`${e(t)}/catalog`,void 0,void 0,n),accounts:(t,n)=>this.requestJson(\"GET\",`${e(t)}/accounts`,void 0,void 0,n),pending:(t,n)=>this.requestJson(\"GET\",`${e(t)}/attempts`,void 0,void 0,n),begin:(t,n,s)=>this.requestJson(\"POST\",`${e(t)}/attempts`,n,void 0,s),get:(t,n,s)=>this.requestJson(\"GET\",`${e(t)}/attempts/${encodeURIComponent(n)}`,void 0,void 0,s),advance:(t,n,s,r)=>this.requestJson(\"POST\",`${e(t)}/attempts/${encodeURIComponent(n)}/advance`,s,void 0,r),cancel:(t,n,s,r)=>this.requestJson(\"POST\",`${e(t)}/attempts/${encodeURIComponent(n)}/cancel`,s,void 0,r),disconnect:async(t,n,s)=>{if(n.startsWith(\"social:\")){let o=n.slice(7);if(!/^[0-9a-f-]{36}$/i.test(o))throw Error(\"Invalid social account ID\");await this.disconnectSocialConnection(t,o);return}if(n.startsWith(\"lens-registration:\")){let o=n.slice(18);if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(o))throw Error(\"Invalid Lens registration ID\");await this.requestJson(\"DELETE\",`/v1/workspaces/${encodeURIComponent(t)}/pr-review/registrations/${o}`,void 0,void 0,s);return}if(n.startsWith(\"github-installation:\")){let o=n.slice(20);if(!/^[1-9][0-9]*$/.test(o)||!Number.isSafeInteger(Number(o)))throw Error(\"Invalid GitHub installation ID\");await this.requestJson(\"DELETE\",`/v1/workspaces/${encodeURIComponent(t)}/github/installations/${o}`,void 0,void 0,s);return}let r=s?.expectedVersion;if(r!==void 0&&(!Number.isSafeInteger(r)||r<1))throw Error(\"invalid expected connection version\");let i=r===void 0?\"\":`?expectedVersion=${r}`;await this.requestJson(\"DELETE\",`/v1/workspaces/${encodeURIComponent(t)}/connections/${encodeURIComponent(n)}${i}`,void 0,void 0,s)}}}async browseAtlassianSources(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/atlassian/${t}/browse`)}async saveAtlassianSources(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/atlassian/${t}/source`,n)}async setAtlassianLifecycle(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/connections/atlassian/${t}/lifecycle`,n)}async beginConnect(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/connect/attempts`,t)}async createWorkspace(e){return await this.requestJson(\"POST\",\"/v1/workspaces\",e)}async ensureWorkspace(e){return await this.requestJson(\"PUT\",\"/v1/workspaces/external\",e)}async getWorkspace(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}`)}async getWorkspaceState(e,t={}){let n=new URLSearchParams;if(t.attemptId)n.set(\"attemptId\",t.attemptId);let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${e}/workspace-state${s}`)}async exportWorkspaceState(e,t={}){let n=new URLSearchParams;if(t.attemptId)n.set(\"attemptId\",t.attemptId);let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${e}/workspace-state/export${s}`)}async updateWorkspace(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}`,t)}async listWorkspaceInstructionPolicies(e,t={}){let n=new URLSearchParams;if(t.kind!==void 0)n.set(\"kind\",t.kind);if(t.scope!==void 0)n.set(\"scope\",t.scope);if(t.roleKey!==void 0)n.set(\"roleKey\",t.roleKey);if(t.afterRevision!==void 0)n.set(\"afterRevision\",String(t.afterRevision));if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies${s?`?${s}`:\"\"}`)}async getWorkspaceLearningHistory(e,t={}){let n=new URLSearchParams;if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/learning${s?`?${s}`:\"\"}`)}async undoGovernedLearningActivation(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/learning/activations/${encodeURIComponent(t)}/undo`,n)}async getWorkspaceInstructionPolicyRevision(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies/${encodeURIComponent(t)}`)}async createWorkspaceInstructionPolicyDraft(e,t,n={}){return await this.requestSessionCommand(\"POST\",`/v1/workspaces/${e}/instruction-policies/drafts`,t,n)}async listWorkspaceInstructionPolicyOnboardingProposals(e,t={}){let n=new URLSearchParams;if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies/onboarding-proposals${s?`?${s}`:\"\"}`)}async createWorkspaceInstructionPolicyOnboardingProposal(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/instruction-policies/onboarding-proposals`,t)}async importLegacyWorkspaceInstructionPolicyDraft(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/instruction-policies/import-legacy`,t)}async diffWorkspaceInstructionPolicyRevisions(e,t){let n=new URLSearchParams({fromRevisionId:t.fromRevisionId,toRevisionId:t.toRevisionId});return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies/diff?${n}`)}async activateWorkspaceInstructionPolicyRevision(e,t,n,s={}){return await this.requestSessionCommand(\"POST\",`/v1/workspaces/${e}/instruction-policies/${encodeURIComponent(t)}/activate`,n,s)}async rollbackWorkspaceInstructionPolicyRevision(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/instruction-policies/rollback`,t)}async listCompanyProfile(e,t={}){let n=new URLSearchParams;if(t.afterRevision!==void 0)n.set(\"afterRevision\",String(t.afterRevision));if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile${s?`?${s}`:\"\"}`)}async getCompanyProfileRevision(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile/revisions/${encodeURIComponent(t)}`)}async getCompanyProfileAgentPolicy(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile/agent-policy`)}async updateCompanyProfileAgentPolicy(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/company-profile/agent-policy`,t)}async updateCompanyProfile(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/company-profile`,t)}async diffCompanyProfileRevisions(e,t){let n=new URLSearchParams(t);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile/diff?${n}`)}async activateCompanyProfileRevision(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/company-profile/revisions/${encodeURIComponent(t)}/activate`,n)}async rollbackCompanyProfile(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/company-profile/rollback`,t)}async listPreferenceRegistry(e,t={}){let n=new URLSearchParams;if(t.scope)n.set(\"scope\",t.scope);if(t.status)n.set(\"status\",t.status);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/preferences${s?`?${s}`:\"\"}`)}async getPreferenceRegistry(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}`)}async createPreferenceRegistryProposal(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/proposals`,t)}async activatePreferenceRegistryRevision(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/activate`,n)}async correctPreferenceRegistry(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/correct`,n)}async changePreferenceRegistryScope(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/scope`,n)}async deactivatePreferenceRegistry(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/deactivate`,n)}async supersedePreferenceRegistry(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/supersede`,n)}async rejectPreferenceRegistryProposal(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/reject`,n)}async getPreferenceRegistrySummary(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/preferences/summary`)}async getPreferenceRegistryFullContent(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/full-content`,{retrievalHandle:t})}async deleteWorkspace(e){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}`)}async listWorkspaceMembers(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/members`)).members}async listWorkspaceMemberCandidates(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/member-candidates`)).members}async addWorkspaceMember(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/members`,t)}async updateWorkspaceMember(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/members/${encodeURIComponent(t)}`,n)}async removeWorkspaceMember(e,t){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/members/${encodeURIComponent(t)}`)}async prepareSlackUserLinkAccess(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/slack/user-link-intents`,t)}async getSlackUserLinkAccess(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/slack/user-link-intents/${t}`)}async requestSlackUserLinkWorkspaceAccess(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/slack/user-link-intents/${t}/request-access`,n)}async cancelSlackUserLinkAccess(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/slack/user-link-intents/${t}/cancel`,n)}async listSlackUserLinkAccessRequests(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/members/access-requests/slack`)).requests}async approveSlackUserLinkAccessRequest(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/members/access-requests/slack/${t}/approve`,n)}async denySlackUserLinkAccessRequest(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/members/access-requests/slack/${t}/deny`,n)}async createScheduledTask(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks`,Bt(t))}async updateScheduledTask(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/scheduled-tasks/${t}`,Bt(n))}async pauseScheduledTask(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/pause`)}async resumeScheduledTask(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/resume`)}async triggerScheduledTask(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/trigger`,n.triggerId?{triggerId:n.triggerId}:void 0)}async deleteScheduledTask(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/scheduled-tasks/${t}`)}async listScheduledTaskRuns(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks/${t}/runs`,void 0,{...n.limit!==void 0?{limit:String(n.limit)}:{}})}async refreshScheduledTaskAccess(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/refresh-access`,n)}async listScheduledTaskAccessAttention(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks/attention`)).tasks}async listVariableSets(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/variable-sets`)}async resolveVariableSetAttachments(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/variable-sets/resolve-attachments`,t)}async createVariableSet(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/variable-sets`,t)}async getVariableSet(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/variable-sets/${t}`)}async getVariableSetVariable(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/variable-sets/${t}/variables/${encodeURIComponent(n)}`)}async updateVariableSet(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/variable-sets/${t}`,n)}async deleteVariableSet(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/variable-sets/${t}`)}async setVariableSetVariable(e,t,n,s){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/variable-sets/${t}/variables/${encodeURIComponent(n)}`,{value:s})}async deleteVariableSetVariable(e,t,n){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/variable-sets/${t}/variables/${encodeURIComponent(n)}`)}async listChannels(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/channels`)}async createChannel(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/channels`,t)}async updateChannel(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/channels/${t}`,n)}async reorderChannels(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/channels/order`,t)}async deleteChannel(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/channels/${t}`)}async updateSessionChannel(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/channel`,n)}async listRigs(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs`)}async createRig(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs`,t)}async getRig(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}`)}async updateRig(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/rigs/${t}`,n)}async deleteRig(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/rigs/${t}`)}async listRigVersions(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}/versions`)}async activateRigVersion(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/versions/${n}/activate`)}async listRigChanges(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}/changes`)}async proposeRigChange(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/changes`,n)}async getRigChange(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}/changes/${n}`)}async verifyRigChange(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/changes/${n}/verify`)}async promoteRigChange(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/changes/${n}/promote`)}async verifyRig(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/verify`)}async listEnvironments(e){return await this.listVariableSets(e)}async createEnvironment(e,t){return await this.createVariableSet(e,t)}async getEnvironment(e,t){return await this.getVariableSet(e,t)}async updateEnvironment(e,t,n){return await this.updateVariableSet(e,t,n)}async deleteEnvironment(e,t){await this.deleteVariableSet(e,t)}async setEnvironmentVariable(e,t,n,s){return await this.setVariableSetVariable(e,t,n,s)}async deleteEnvironmentVariable(e,t,n){await this.deleteVariableSetVariable(e,t,n)}async beginFileUpload(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/files/uploads`,t,{},n)}async completeFileUpload(e,t,n={}){return(await this.requestJson(\"POST\",`/v1/workspaces/${e}/files/uploads/${t}/complete`,void 0,{},n)).file}async uploadFile(e,t){if(t.timeoutMs!==void 0&&(!Number.isFinite(t.timeoutMs)||t.timeoutMs<=0))throw Error(\"File upload timeout must be a positive number\");ps();let n=async(d,l)=>{let g=new AbortController,u,y=new Promise((w,f)=>{u=setTimeout(()=>{g.abort(),f(Error(\"File upload timed out. Retry the upload.\"))},d)});try{return await Promise.race([l(g.signal),y])}finally{if(u!==void 0)clearTimeout(u)}},s=t.data instanceof Uint8Array?new Blob([t.data.slice()]):t.data instanceof ArrayBuffer?t.data.slice(0):t.data,r=typeof s===\"string\"?new TextEncoder().encode(s).byteLength:s instanceof Blob?s.size:s.byteLength,i=t.sha256??await gs(s),o=await n(30000,async(d)=>await this.beginFileUpload(e,{filename:t.filename,contentType:t.contentType,...t.scope?{scope:t.scope}:{},sizeBytes:r,sha256:i},{signal:d})),c=t.timeoutMs??Math.max(120000,Math.ceil(r/262144)*1000),a=await n(c,async(d)=>await this.fetchImpl(o.putUrl,{method:\"PUT\",credentials:\"omit\",headers:{...o.requiredHeaders},body:s,signal:d}));if(!a.ok)throw await v(a,{method:\"PUT\"});return await n(30000,async(d)=>await this.completeFileUpload(e,o.uploadId,{signal:d}))}async listFiles(e,t={}){let n=new URLSearchParams;if(t.scope)n.set(\"scope\",t.scope);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.cursor)n.set(\"cursor\",t.cursor);return this.requestJson(\"GET\",`/v1/workspaces/${e}/files${n.size?`?${n}`:\"\"}`)}async getFile(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/files/${t}${n.sessionId?`?sessionId=${encodeURIComponent(n.sessionId)}`:\"\"}`,void 0,{},n)}async getRetainedArtifact(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/artifacts/${t}`)}async getRetainedArtifactContent(e,t,n={}){return await this.getRetainedArtifactContentAtPath(`/v1/workspaces/${e}/artifacts/${t}/content`,n)}async getSessionRetainedArtifact(e,t,n){return await this.requestJson(\"GET\",`${p(e,t)}/artifacts/${n}`)}async getSessionRetainedArtifactContent(e,t,n,s={}){return await this.getRetainedArtifactContentAtPath(`${p(e,t)}/artifacts/${n}/content`,s)}async downloadRetainedArtifact(e,t,n={}){Lt(e,t);let s=await this.downloadRetainedArtifactBytes(t,n);return{artifact:t,bytes:s}}async createRetainedArtifactDownloadUrl(e,t,n={}){Lt(e,t);let s=await this.createFileDownloadUrl(e,t.artifactId,n);return zt(s),s}async downloadRetainedScreenshot(e,t,n,s={}){let r=await this.getSessionRetainedArtifact(e,t,n);if(!r.available)return{metadata:r,bytes:null};if(!((r.kind===\"computer_screenshot\"||r.kind===\"browser_screenshot\")&&[\"image/png\",\"image/jpeg\",\"image/webp\"].includes(r.contentType))||!r.dimensions||r.originalBytes<=0||r.originalBytes>ht)throw new m(502,\"retained screenshot metadata is invalid\");let o=await this.downloadRetainedArtifactBytes(r,s);return{metadata:r,bytes:o}}async downloadRetainedArtifactBytes(e,t){let n=t.maxRetries??2;if(!Number.isInteger(n)||n<0||n>3)throw RangeError(\"retained artifact maxRetries must be an integer from 0 to 3\");let s=new Uint8Array(e.originalBytes),r=Math.min(e.retrieval.maxRangeBytes,re);if(!Number.isSafeInteger(r)||r<=0)throw new m(502,\"retained artifact range metadata is invalid\");for(let i=0;i<s.byteLength;i+=r){t.signal?.throwIfAborted();let o=Math.min(i+r,s.byteLength)-1,c=null;for(let d=0;d<=n;d+=1)try{c=await this.getRetainedArtifactContentAtPath(e.retrieval.path,{range:`bytes=${i}-${o}`,...t.signal?{signal:t.signal}:{}});break}catch(l){if(t.signal?.throwIfAborted(),d>=n||l instanceof m&&l.status>=400&&l.status<500)throw l}if(!c)throw new m(502,\"retained artifact range retry exhausted\");let a=o-i+1;if(c.status!==206||c.contentType!==e.contentType||c.contentLength!==a||c.contentRange!==`bytes ${i}-${o}/${e.originalBytes}`)throw new m(502,\"retained artifact range response is invalid\");s.set(c.bytes,i)}if(await Dt(s)!==e.sha256)throw new m(502,\"retained artifact checksum mismatch\");return s}async getRetainedArtifactContentAtPath(e,t){if(t.range&&(t.range.length>128||/[^\\x20-\\x7e]/.test(t.range)))throw RangeError(\"retained artifact range must be at most 128 printable ASCII bytes\");let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(e),{method:\"GET\",headers:{...this.headers(n),Accept:\"application/octet-stream\",...t.range?{Range:t.range}:{}},...t.signal?{signal:t.signal}:{}});try{I(s,this.apiContractStrict)}catch(o){throw await k(s,\"retained artifact API contract mismatch\"),o}if(!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(s.status!==200&&s.status!==206)throw await k(s,\"unexpected retained artifact response status\"),new m(s.status,\"unexpected retained artifact response status\");if(s.headers.get(\"accept-ranges\")!==\"bytes\")throw await k(s,\"retained artifact response omitted byte-range support\"),new m(502,\"retained artifact response omitted byte-range support\");let r;try{r=fs(s.headers.get(\"content-length\"))}catch(o){throw await k(s,\"invalid retained artifact content-length\"),o}let i=await Y(s,re,r);return{bytes:i,status:s.status,contentType:s.headers.get(\"content-type\")??\"application/octet-stream\",contentLength:i.byteLength,contentRange:s.headers.get(\"content-range\"),acceptRanges:\"bytes\"}}async createFileDownloadUrl(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/files/${t}/download-url${n.sessionId?`?sessionId=${encodeURIComponent(n.sessionId)}`:\"\"}`,void 0,{},n)}async getVideoGenerationSettings(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/video-generation`,void 0,{},t)}async updateVideoGenerationPolicy(e,t,n={}){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/video-generation/policy`,t,{},n)}async getVideoGenerationOperation(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/video-generation/operations/${t}`,void 0,{},n)}async createVideoArtifactPlaybackSource(e,t,n={}){let s=await this.requestJson(\"POST\",`/v1/workspaces/${e}/artifacts/${t}/playback-source`,void 0,{},n);return ys(s,t),s}async createDocumentBase(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/document-bases`,t)}async getDocumentBase(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/document-bases/${t}`)}async addDocument(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/document-bases/${t}/documents`,n)}async listDocuments(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/document-bases/${t}/documents`)}async getDocumentOriginalFile(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/documents/${t}/original-file`)}async createKnowledgeDrop(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/drops`,t)}async moveDocument(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/documents/${t}/move`,n)}async deleteDocument(e,t,n){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/document-bases/${t}/documents/${n}`)}async listKnowledgeEntries(e,t={}){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/search`,t)}async getKnowledgeEntry(e,t,n={}){let s=new URLSearchParams;if(n.revisionId!==void 0)s.set(\"revisionId\",n.revisionId);if(n.view!==void 0)s.set(\"view\",n.view);let r=s.toString();return this.requestJson(\"GET\",`/v1/workspaces/${e}/knowledge/entries/${t}${r?`?${r}`:\"\"}`)}async createKnowledgeFileDownloadUrl(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${t}/file/download-url`,n?{revisionId:n}:{})}async saveKnowledgeEntry(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries`,t)}async reviewKnowledgeEntry(e,t){let{entryId:n,...s}=t;return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${n}/review`,s)}async listKnowledgeReviewBatches(e,t={}){let n=new URLSearchParams;for(let[s,r]of Object.entries(t))if(r!==void 0)n.set(s,String(r));return this.requestJson(\"GET\",`/v1/workspaces/${e}/knowledge/review-groups?${n}`)}async reviewKnowledgeEntries(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/review`,t)}async listKnowledgeEntryHistory(e,t,n){return this.requestJson(\"GET\",`/v1/workspaces/${e}/knowledge/entries/${t}/history${n?`?beforeRevision=${n}`:\"\"}`)}async restoreKnowledgeEntry(e,t){let{entryId:n,...s}=t;return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${n}/restore`,s)}async archiveKnowledgeEntry(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${t}/archive`,n)}async getAgentLearningSettings(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/agent-learning/read`,{scope:t,source:n})}async saveAgentLearningSettings(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/agent-learning`,t)}async listAgentLearningOverrides(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/agent-learning/overrides?scope=${t}`)}async reviewAgentInstruction(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/agent-learning/instructions/review`,t)}async listAgentInstructionReviews(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/agent-learning/instructions/reviews${t?`?cursor=${encodeURIComponent(t)}`:\"\"}`)}async updateWorkspaceSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/settings`,t)}async setWorkspaceDefaultRig(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/default-rig`,t)}async listCapabilities(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities`)}async createCapability(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities`,t)}async getConnectorToolPermissions(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/tool-permissions`,void 0,{},n)}async updateConnectorToolPermissions(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/tool-permissions`,n,{},s)}async enableCapability(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/enable`,n)}async disableCapability(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/disable`)}async listArtifactCatalog(e,t={}){let n=new URLSearchParams;for(let r of[\"sourceSessionId\",\"q\",\"kind\",\"sort\",\"status\",\"limit\",\"cursor\"])if(t[r]!==void 0)n.set(r,String(t[r]));let s=n.size?`?${n.toString()}`:\"\";return this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/artifact-catalog${s}`,void 0,void 0,t)}async updateArtifactPin(e,t,n,s,r={}){return this.requestJson(\"PUT\",`/v1/workspaces/${encodeURIComponent(e)}/artifact-catalog/${encodeURIComponent(t)}/${encodeURIComponent(n)}/pin`,{pinned:s},void 0,r)}async listWorkspaceArtifacts(e,t={}){let n=new URLSearchParams;if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.cursor)n.set(\"cursor\",t.cursor);if(t.status)n.set(\"status\",t.status);if(t.sourceSessionId)n.set(\"sourceSessionId\",t.sourceSessionId);let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts${s}`,void 0,void 0,t)}async getWorkspaceArtifact(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}`,void 0,void 0,n)}async getWorkspaceArtifactHtml(e,t,n){return(await this.requestResponse(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}/html`,{versionId:n.versionId},n)).text()}async rollbackWorkspaceArtifact(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}/rollback`,n,void 0,s)}async setWorkspaceArtifactStatus(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}/status`,n,void 0,s)}async discoverMcpCapabilities(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities/discovery/mcp-registry`,void 0,{...t.query!==void 0?{query:t.query}:{},...t.limit!==void 0?{limit:String(t.limit)}:{}})}async discoverPlugins(e,t={}){return this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities/discovery/plugins`,void 0,{...t.id?{id:t.id}:{},...t.query?{query:t.query}:{},...t.provider?{provider:t.provider}:{},...t.offset!==void 0?{offset:String(t.offset)}:{}})}async inspectMcpAuthentication(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities/discovery/mcp-auth`,{url:t})}async listApiIntegrations(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations`)}async listIntegrationDefinitions(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/definitions`)}async previewApiIntegration(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/preview`,t)}async startApiIntegrationOAuth(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/oauth/start`,t)}async installApiIntegration(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/install`,t)}async previewApiIntegrationUninstall(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/uninstall-preview`)}async uninstallApiIntegration(e,t,n,s){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}`,s)}async listIntegrationFacets(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets`)}async configureIntegrationFacet(e,t,n,s,r){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}`,r)}async browseGoogleDriveFacetSource(e,t,n,s,r={}){let i=new URLSearchParams;if(r.parentId)i.set(\"parentId\",r.parentId);if(r.pageToken)i.set(\"pageToken\",r.pageToken);let o=i.size>0?`?${i}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}/browse${o}`)}async saveGoogleDriveFacetSource(e,t,n,s,r){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}/source`,r)}async pauseIntegrationFacet(e,t,n,s,r){return await this.mutateIntegrationFacetLifecycle(e,t,n,s,\"pause\",r)}async resumeIntegrationFacet(e,t,n,s,r){return await this.mutateIntegrationFacetLifecycle(e,t,n,s,\"resume\",r)}async removeIntegrationFacet(e,t,n,s,r){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}`,r)}async mutateIntegrationFacetLifecycle(e,t,n,s,r,i){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}/${r}`,i)}async previewPlugin(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/plugins/preview`,t)}async getInstalledPluginDetails(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/plugins/details`,void 0,{pluginKey:t})}async listInstalledPlugins(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/plugins`)}async installPlugin(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/plugins/install`,t)}async previewPluginUninstall(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/plugins/${encodeURIComponent(t)}/uninstall-preview`)}async uninstallPlugin(e,t,n){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/plugins/${encodeURIComponent(t)}`,n)}async previewSkillImport(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/preview`,t)}async installSkill(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/install`,t)}async listInstalledSkills(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/skills`)}async listWorkspaceSkills(e,t={}){let n=new URLSearchParams;if(t.cursor!==void 0)n.set(\"cursor\",t.cursor);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.sessionId!==void 0)n.set(\"sessionId\",t.sessionId);let s=n.size?`?${n.toString()}`:\"\";return this.requestJson(\"GET\",`/v1/workspaces/${e}/skills/content${s}`)}async readWorkspaceSkill(e,t,n){let s=n?`?revisionId=${encodeURIComponent(n)}`:\"\";return this.requestJson(\"GET\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}${s}`)}async saveWorkspaceSkill(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/save`,t)}async removeWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/remove`,n)}async approveWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/approve`,n)}async restoreWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/restore`,n)}async rejectWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/reject`,n)}async installLibrarySkill(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/library/${encodeURIComponent(t)}/install`,n)}async previewSkillUninstall(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/skills/${encodeURIComponent(t)}/uninstall-preview`)}async uninstallSkill(e,t,n){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/skills/${encodeURIComponent(t)}`,n)}async listOwnConnectionAccounts(e,t={}){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/accounts`,void 0,t.includeInactive===!0?{includeInactive:\"true\"}:{})).connections}async listConnections(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections`)).connections}async personalGitHubStatus(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/github`)}async startPersonalGitHubOAuth(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/github/oauth/start`,t)}async reconnectPersonalGitHub(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/${t}/github/reconnect`,n)}async disconnectPersonalGitHub(e,t,n){return(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/connections/${t}`,n)).connection}async listPersonalGitHubRepositories(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/${t}/github/repositories`,void 0,{...n.cursor!==void 0?{cursor:String(n.cursor)}:{},...n.limit!==void 0?{limit:String(n.limit)}:{}})}async replacePersonalGitHubRepositorySelections(e,t,n){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/connections/${t}/github/repositories`,n)}async verifyPersonalGitHubRepositorySelections(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/${t}/github/repositories/verify`,n)}async listSlackInstallationBindings(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/slack-bot/bindings`)).bindings}async createConnection(e,t){return(await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections`,t)).connection}async installFikenConnection(e,t){return(await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/fiken/install`,t)).connection}async startFikenOAuth(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/fiken/oauth/start`,t)}async startOpenGeniSlackBotInstall(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/slack-bot/install`,t)}async listOpenGeniSlackReactionChannels(e,t,n){let s=new URLSearchParams({connectionId:t});if(n)s.set(\"cursor\",n);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/slack/reaction-channels?${s}`)}async listOpenGeniSlackChannelRoutes(e,t){let n=new URLSearchParams({connectionId:t});return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/slack/channel-routes?${n}`)}async updateOpenGeniSlackChannelRoutes(e,t){await this.requestJson(\"PUT\",`/v1/workspaces/${e}/integrations/slack/channel-routes`,t)}async updateConnection(e,t,n){return(await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/connections/${t}`,n)).connection}async deleteConnection(e,t){return(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/connections/${t}`)).connection}async disconnectGoogleDriveConnection(e,t,n){return(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/connections/${t}`,n)).connection}async transitionGoogleDriveLifecycle(e,t,n){return(await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/connections/google-drive/${t}/lifecycle`,n)).connection}async startConnectionOAuth(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/oauth/start`,t,{},n)}async startSocialOAuth(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/social/oauth/start`,t)}async listSocialConnections(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/social/connections`)}async disconnectSocialConnection(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/social/connections/${t}`)}catalogAssetUrl(e){return e?`${this.baseUrl}/v1/${e}`:null}async downloadCatalogAsset(e,t={}){if(!/^catalog-assets\\/[a-zA-Z0-9_./-]+$/.test(e)||e.split(\"/\").some((i)=>!i||i===\".\"||i===\"..\"))throw TypeError(\"A catalog asset path is required\");let n=await this.requestResponse(\"GET\",`/v1/${e}`,{},t),s=n.headers.get(\"content-type\")?.split(\";\")[0]??\"\";if(!s.startsWith(\"image/\"))throw await n.body?.cancel(),Error(\"The catalog asset is not an image\");let r=await Y(n,2000000,null);return new Blob([Uint8Array.from(r)],{type:s})}async getGitHubApp(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/github/app`,void 0,t.returnPath?{returnPath:t.returnPath}:void 0)}githubConnectUrl(e,t){return this.url(`/v1/workspaces/${e}/github/connect`,{state:t})}async listGitHubRepositories(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/github/repositories`)}async getGitHubActionPolicies(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/github/action-policies`)}async updateGitHubActionPolicy(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/github/action-policies`,t)}async syncGitHubRepositories(e){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/github/repositories/sync`)}async unlinkGitHubInstallation(e,t){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/github/installations/${t}`)}async createGitHubAppManifest(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/github/app-manifest`,t)}async listApiKeys(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/api-keys`)).apiKeys}async createApiKey(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/api-keys`,t)}async deleteApiKey(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/api-keys/${t}`)}async listOrganizationApiKeys(e){return(await this.requestJson(\"GET\",`/v1/organizations/${e}/api-keys`)).apiKeys}async createOrganizationApiKey(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/api-keys`,t)}async deleteOrganizationApiKey(e,t){return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/api-keys/${t}`)}async listOrganizationMcpConnections(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/mcp-connections`)}async updateOrganizationMcpConnection(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/mcp-connections/${t}`,n)}async deleteOrganizationMcpConnection(e,t){await this.requestVoid(\"DELETE\",`/v1/organizations/${e}/mcp-connections/${t}`)}async listOrganizationServiceAccounts(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/service-accounts`)}async getOrganizationServiceAccount(e,t){return await this.requestJson(\"GET\",`/v1/organizations/${e}/service-accounts/${t}`)}async createOrganizationServiceAccount(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/service-accounts`,t)}async updateOrganizationServiceAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/service-accounts/${t}`,n)}async deleteOrganizationServiceAccount(e,t){await this.requestVoid(\"DELETE\",`/v1/organizations/${e}/service-accounts/${t}`)}async getMcpConnectionRequest(e){return await this.requestJson(\"GET\",`/v1/mcp-connections/requests/${encodeURIComponent(e)}`)}async answerMcpConnectionRequest(e,t){return await this.requestJson(\"POST\",`/v1/mcp-connections/requests/${encodeURIComponent(e)}`,t)}async listOrganizationSessions(e,t={}){return await this.requestJson(\"GET\",`/v1/organizations/${e}/sessions`,void 0,{...t.limit===void 0?{}:{limit:String(t.limit)},...t.cursor===void 0?{}:{cursor:t.cursor},...t.scopeSubjectId?{scopeSubjectId:t.scopeSubjectId}:{},...t.status===void 0?{}:{status:t.status}},{signal:t.signal})}async*iterateOrganizationSessions(e,t={}){let n;do{let s=await this.listOrganizationSessions(e,{...t,...n===void 0?{}:{cursor:n}});for(let r of s.sessions)yield r;n=s.nextCursor??void 0}while(n!==void 0)}async getBilling(e={}){return await this.requestJson(\"GET\",\"/v1/billing\",void 0,{...e.accountId!==void 0?{accountId:e.accountId}:{}})}async getOrganizationUsageSummary(e,t={}){return await this.requestJson(\"GET\",\"/v1/billing/usage-summary\",void 0,{accountId:e.accountId,period:e.period??\"month\"},t)}async getOrganizationModelUsage(e,t={}){return await this.requestJson(\"GET\",\"/v1/billing/usage-models\",void 0,{accountId:e.accountId,period:e.period??\"month\",...e.afterWorkspaceId?{afterWorkspaceId:e.afterWorkspaceId}:{}},t)}async getOrganizationUsageWorkspacePage(e,t={}){return await this.requestJson(\"GET\",\"/v1/billing/usage-workspaces\",void 0,{accountId:e.accountId,period:e.period??\"month\",until:e.until,...e.afterWorkspaceId?{afterWorkspaceId:e.afterWorkspaceId}:{}},t)}async getBillingUsage(e={}){return await this.requestJson(\"GET\",\"/v1/billing/usage\",void 0,{...e.accountId!==void 0?{accountId:e.accountId}:{},...e.workspaceId!==void 0?{workspaceId:e.workspaceId}:{}})}async getWorkspaceInsights(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/insights`,void 0,{range:t.range??\"week\",...t.provider!==void 0?{provider:t.provider}:{},...t.model!==void 0?{model:t.model}:{},...t.rootSessionId!==void 0?{rootSessionId:t.rootSessionId}:{},...t.sessionId!==void 0?{sessionId:t.sessionId}:{}},{signal:t.signal})}async getBillingEntitlements(e={}){return await this.requestJson(\"GET\",\"/v1/billing/entitlements\",void 0,{...e.accountId!==void 0?{accountId:e.accountId}:{}})}async createBillingCheckout(e){return await this.requestJson(\"POST\",\"/v1/billing/checkout\",e)}async getBillingCheckout(e,t={}){return await this.requestJson(\"GET\",`/v1/billing/checkout/${encodeURIComponent(e)}`,void 0,{...t.accountId!==void 0?{accountId:t.accountId}:{}})}async createBillingPortalSession(e={}){return await this.requestJson(\"POST\",\"/v1/billing/portal\",e)}apiUrl(e){if(!e.startsWith(\"/\"))throw TypeError(\"API path must start with /\");return`${this.baseUrl}${e}`}withHeaders(e){let t={...e},n=this.options.headers,r=new this.constructor({...this.options,headers:()=>({...typeof n===\"function\"?n():n,...t})});if(this.externalActorHeader!==void 0)r.externalActorHeader=this.externalActorHeader;return r.serviceInitiatorHeader=this.serviceInitiatorHeader,r.serviceContextHeader=this.serviceContextHeader,r}async fetchApi(e,t={}){let n=typeof globalThis.location?.href===\"string\"?globalThis.location.href:void 0,s=new URL(this.baseUrl.endsWith(\"/\")?this.baseUrl:`${this.baseUrl}/`,n),r=new URL(e,s);if(r.origin!==s.origin||!`${r.pathname}/`.startsWith(s.pathname))throw TypeError(\"fetchApi only reaches this client's API base URL\");let i=new Headers(t.headers);for(let[o,c]of Object.entries(this.headers()))if(!i.has(o))i.set(o,c);return await this.fetchImpl(r.href,{...t,headers:i})}headers(e){let t=typeof this.options.headers===\"function\"?this.options.headers():this.options.headers,n={...this.options.apiKey?{Authorization:`Bearer ${this.options.apiKey}`}:{},...t,[Re]:L,...e?{[se]:e}:{}},s=Object.keys(n).map((o)=>o.toLowerCase()),r=this.externalActorHeader!==void 0||s.includes(\"x-opengeni-external-actor\"),i=this.serviceInitiatorHeader!==void 0||s.includes(\"x-opengeni-service-initiator\")||s.includes(\"x-opengeni-service-context\");if(r&&i)throw Error(\"asUser and asService attribution headers are mutually exclusive\");if(this.externalActorHeader){for(let o of Object.keys(n))if(o.toLowerCase()===\"x-opengeni-external-actor\")delete n[o];n[\"x-opengeni-external-actor\"]=this.externalActorHeader}if(this.serviceInitiatorHeader!==void 0){for(let o of Object.keys(n)){let c=o.toLowerCase();if(c===\"x-opengeni-service-initiator\"||c===\"x-opengeni-service-context\")delete n[o]}if(n[\"x-opengeni-service-initiator\"]=this.serviceInitiatorHeader,this.serviceContextHeader!==void 0)n[\"x-opengeni-service-context\"]=this.serviceContextHeader}return n}url(e,t={}){let n=new URLSearchParams(t).toString();return`${this.baseUrl}${e}${n?`?${n}`:\"\"}`}async codexStatus(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/status`)}async codexConnectStart(e){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/connect/start`)}async codexConnectPoll(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/connect/poll`,{state:t})}async codexUsage(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/usage`)}async codexAccountUsage(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/accounts/${t}/usage`)}async refreshCodexUsage(e){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/usage/refresh`)}async codexOverview(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/overview`)}async codexDisconnect(e){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/codex`)}async listCodexAccounts(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/accounts`)}async listSessionCodexAccounts(e,t){return await this.requestJson(\"GET\",`${p(e,t)}/codex-accounts`)}async activateCodexAccount(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/accounts/${t}/activate`)}async designateCodexAppsAccount(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/apps`,{accountId:t,expectedVersion:n})}async clearCodexAppsAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/codex/apps`,{expectedVersion:t})}async setCodexRotationSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/codex/settings`,t)}async setCodexAccountAllocator(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/codex/accounts/${t}/allocator`,n)}async disconnectCodexAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/codex/accounts/${t}`)}async renameCodexAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/codex/accounts/${t}`,{label:n})}async pinSessionCodexAccount(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/codex-account`,{target:n})}async getModelConnectionAccess(e){return await this.requestJson(\"GET\",`/v1/${e.scope}/${encodeURIComponent(e.scopeId)}/model-connections/${e.kind}/${encodeURIComponent(e.connectionId)}/access`)}async updateModelConnectionAccess(e,t){return await this.requestJson(\"PUT\",`/v1/${e.scope}/${encodeURIComponent(e.scopeId)}/model-connections/${e.kind}/${encodeURIComponent(e.connectionId)}/access`,t)}async listOrganizationSuperGrokAccounts(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/supergrok/accounts`)}async organizationSupergrokConnectStart(e){return await this.requestJson(\"POST\",`/v1/organizations/${e}/supergrok/connect/start`,{})}async organizationSupergrokConnectPoll(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/supergrok/connect/poll`,{state:t})}async activateOrganizationSuperGrokAccount(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/supergrok/accounts/${t}/activate`,{})}async setOrganizationSuperGrokRotationSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/supergrok/settings`,t)}async setOrganizationSuperGrokAccountAllocator(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/supergrok/accounts/${t}/allocator`,n)}async renameOrganizationSuperGrokAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/supergrok/accounts/${t}`,{label:n})}async disconnectOrganizationSuperGrokAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/supergrok/accounts/${t}`,{})}async supergrokStatus(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/supergrok/status`)}async supergrokConnectStart(e,t=\"workspace\"){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/supergrok/connect/start`,{scope:t})}async supergrokConnectPoll(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/supergrok/connect/poll`,{state:t})}async listSuperGrokAccounts(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/supergrok/accounts`)}async activateSuperGrokAccount(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/supergrok/accounts/${t}/activate`,{})}async setSuperGrokRotationSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/supergrok/settings`,t)}async setSuperGrokAccountAllocator(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/supergrok/accounts/${t}/allocator`,n)}async renameSuperGrokAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/supergrok/accounts/${t}`,{label:n})}async disconnectSuperGrokAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/supergrok/accounts/${t}`,{})}async requestSessionCommand(e,t,n,s={}){return await this.requestJson(e,t,n,{},{signal:s.signal,timeoutMs:s.timeoutMs??this.sessionCommandTimeoutMs})}async requestJson(e,t,n,s={},r={}){let i=crypto.randomUUID(),o=ds(r);try{if(o.signal?.aborted)throw o.signal.reason??new DOMException(\"Request aborted\",\"AbortError\");let c=this.headers(i),a;try{a=await W(this.fetchImpl(this.url(t,s),{method:e,headers:{...c,Accept:\"application/json\",...n!==void 0?{\"Content-Type\":\"application/json\"}:{}},...n!==void 0?{body:JSON.stringify(n)}:{},...o.signal?{signal:o.signal}:{}}),o.signal)}catch(d){if(r.signal?.aborted)throw d;if(F(e))throw z(i);throw d}I(a,this.apiContractStrict);try{if(!a.ok)throw await W(v(a,{method:e,correlationId:i}),o.signal);if(r.responseType===\"void\"){await W(k(a,\"discarding void API response\"),o.signal);return}return await W(j(a,{method:e,correlationId:i}),o.signal),await W(a.json(),o.signal)}catch(d){if(r.signal?.aborted)throw d;if(d instanceof m)throw d;if(F(e))throw z(i);throw d}}finally{o.dispose()}}async requestResponse(e,t,n={},s={}){let r=crypto.randomUUID(),i=this.headers(r),o;try{o=await this.fetchImpl(this.url(t,n),{method:e,headers:{...i,Accept:s.accept??\"application/octet-stream\"},...s.signal?{signal:s.signal}:{}})}catch(c){if(F(e))throw z(r);throw c}if(I(o,this.apiContractStrict),!o.ok)throw await v(o,{method:e,correlationId:r});return o}async requestVoid(e,t,n){let s=crypto.randomUUID(),r=this.headers(s),i;try{i=await this.fetchImpl(this.url(t),{method:e,headers:{...r,Accept:\"application/json\",...n!==void 0?{\"Content-Type\":\"application/json\"}:{}},...n!==void 0?{body:JSON.stringify(n)}:{}})}catch(o){if(F(e))throw z(s);throw o}if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:e,correlationId:s})}}function I(e,t){if(!t)return;let n=e.headers.get(Re);if(n&&n!==L)throw new Q(L,n)}function os(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e;return typeof t.text===\"string\"&&Array.isArray(t.languages)&&t.languages.every((n)=>typeof n===\"string\")}function as(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e;if(!ve({recording:t.recording,segments:[]}))return!1;if(!t.chunk||typeof t.chunk!==\"object\"||Array.isArray(t.chunk))return!1;let n=t.chunk;return typeof n.chunkNumber===\"number\"&&typeof n.byteLength===\"number\"&&typeof n.sha256===\"string\"&&typeof n.startMilliseconds===\"number\"&&typeof n.durationMilliseconds===\"number\"&&typeof n.deduplicated===\"boolean\"}function ve(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e;if(!t.recording||typeof t.recording!==\"object\"||Array.isArray(t.recording))return!1;let n=t.recording;return typeof n.id===\"string\"&&typeof n.workspaceId===\"string\"&&typeof n.mimeType===\"string\"&&typeof n.state===\"string\"&&typeof n.nextChunkNumber===\"number\"&&typeof n.chunkCount===\"number\"&&typeof n.totalBytes===\"number\"&&typeof n.totalDurationMilliseconds===\"number\"&&typeof n.segmentCount===\"number\"&&typeof n.completedSegmentCount===\"number\"&&(n.transcriptText===null||typeof n.transcriptText===\"string\")&&Array.isArray(n.languages)&&(n.errorCode===null||typeof n.errorCode===\"string\")&&typeof n.retryable===\"boolean\"&&typeof n.objectsCleaned===\"boolean\"&&typeof n.createdAt===\"string\"&&typeof n.updatedAt===\"string\"&&typeof n.expiresAt===\"string\"&&(t.retryAfterMilliseconds===void 0||typeof t.retryAfterMilliseconds===\"number\"&&Number.isInteger(t.retryAfterMilliseconds)&&t.retryAfterMilliseconds>0&&t.retryAfterMilliseconds<=60000)&&Array.isArray(t.segments)}function K(e){if(ve(e))return e;throw new m(502,\"Invalid transcription recording response.\",{code:\"invalid_response\"})}function cs(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e.recordings;return Array.isArray(t)&&t.length<=50&&t.every((n)=>ve({recording:n,segments:[]}))}function us(e){switch(e.trim().toLowerCase().split(\";\")[0]??\"audio/webm\"){case\"audio/mp4\":case\"audio/m4a\":return\"audio.mp4\";case\"audio/ogg\":return\"audio.ogg\";case\"audio/mpeg\":case\"audio/mp3\":return\"audio.mp3\";case\"audio/wav\":case\"audio/x-wav\":return\"audio.wav\";case\"audio/webm\":default:return\"audio.webm\"}}var $t=16384;function ds(e){let t=e.timeoutMs??0;if(t<=0)return{signal:e.signal,dispose:()=>{return}};let n=new AbortController,s=()=>n.abort(e.signal?.reason);if(e.signal?.aborted)s();else e.signal?.addEventListener(\"abort\",s,{once:!0});let r=setTimeout(()=>n.abort(new DOMException(\"Request timed out\",\"TimeoutError\")),t);return{signal:n.signal,dispose:()=>{clearTimeout(r),e.signal?.removeEventListener(\"abort\",s)}}}async function W(e,t){if(!t)return await e;if(t.aborted)throw t.reason??new DOMException(\"Request aborted\",\"AbortError\");return await new Promise((n,s)=>{let r=()=>{i(),s(t.reason??new DOMException(\"Request aborted\",\"AbortError\"))},i=()=>t.removeEventListener(\"abort\",r);t.addEventListener(\"abort\",r,{once:!0}),e.then((o)=>{i(),n(o)},(o)=>{i(),s(o)})})}async function v(e,t){let n=await ls(e),r=new((le(n))?de:m)(e.status,n,{correlationId:e.headers.get(se)??t.correlationId,mutation:F(t.method)});return r.status>=400&&r.status<500&&(r.code===\"SESSION_TENANCY_NOT_ACTIVATED\"||r.code===\"OPENGENI_SETUP_REQUIRED\")?new ue(r):r}async function j(e,t){if(Wt(e.headers.get(\"content-type\")))return;throw await k(e,\"unexpected non-JSON API response\"),new m(502,\"\",{code:\"upstream_unavailable\",retryable:!0,correlationId:e.headers.get(se)??t.correlationId,outcomeUnknown:F(t.method),displayMessage:\"Opengeni is temporarily unavailable \u2014 retry.\"})}async function ls(e){if(!Wt(e.headers.get(\"content-type\")))return await k(e,\"discarding API error body\"),\"\";if(Number(e.headers.get(\"content-length\"))>$t)return await k(e,\"discarding API error body\"),\"\";try{return new TextDecoder().decode(await Y(e,$t,null))}catch{return\"\"}}function Wt(e){return/^(application\\/json|[^;]+\\+json)\\s*(;|$)/i.test(e??\"\")}function F(e){return e!==\"GET\"&&e!==\"HEAD\"&&e!==\"OPTIONS\"}function z(e){return new m(0,\"\",{code:\"network_error\",retryable:!0,correlationId:e,outcomeUnknown:!0,mutation:!0,displayMessage:\"Opengeni could not confirm the request \u2014 reconcile before retrying.\"})}function ps(){let e=typeof window<\"u\"?window.isSecureContext:typeof globalThis.isSecureContext===\"boolean\"?globalThis.isSecureContext:void 0;if(e===void 0)return;if(!e)throw new X(\"insecure_context\");if(typeof globalThis.crypto>\"u\"||typeof globalThis.crypto.subtle?.digest!==\"function\")throw new X(\"web_crypto_unavailable\")}async function gs(e){let t=typeof e===\"string\"?new TextEncoder().encode(e):e instanceof Blob?new Uint8Array(await e.arrayBuffer()):new Uint8Array(e),n=await globalThis.crypto.subtle.digest(\"SHA-256\",t);return[...new Uint8Array(n)].map((s)=>s.toString(16).padStart(2,\"0\")).join(\"\")}async function Dt(e){let t=Uint8Array.from(e),n=await globalThis.crypto.subtle.digest(\"SHA-256\",t.buffer);return[...new Uint8Array(n)].map((s)=>s.toString(16).padStart(2,\"0\")).join(\"\")}function ms(e,t){if(e.computerSessionId!==t.computerSessionId)return\"frame_session_mismatch\";if(e.targetId!==t.targetId)return\"frame_target_mismatch\";if(e.mediaType!==t.mediaType)return\"frame_media_mismatch\";if(e.sha256!==t.sha256)return\"frame_digest_mismatch\";return null}async function k(e,t){await e.body?.cancel(t).catch(()=>{return})}function Lt(e,t){if(!Ct(t,e)&&!It(t,e))throw new m(502,\"retained workspace artifact receipt is invalid\")}function zt(e){if(!e||typeof e.url!==\"string\"||typeof e.expiresAt!==\"string\"||!Number.isFinite(Date.parse(e.expiresAt)))throw new m(502,\"retained artifact download URL is invalid\");let t;try{t=new URL(e.url)}catch{throw new m(502,\"retained artifact download URL is invalid\")}if(![\"http:\",\"https:\"].includes(t.protocol)||t.username||t.password)throw new m(502,\"retained artifact download URL is unsafe\")}function ys(e,t){if(!e||e.schemaVersion!==1||e.artifactId!==t||e.contentType!==\"video/mp4\"||e.acceptRanges!==\"bytes\"||!Number.isSafeInteger(e.sizeBytes)||e.sizeBytes<=0||e.sizeBytes>wt||!/^[0-9a-f]{64}$/.test(e.sha256))throw new m(502,\"generated-video playback source is invalid\");zt({url:e.url,expiresAt:e.expiresAt})}function fs(e){if(e===null)return null;if(!/^\\d+$/.test(e))throw new m(502,\"invalid retained artifact content-length\");let t=Number(e);if(!Number.isSafeInteger(t)||t>re)throw new m(502,\"retained artifact response exceeds the SDK byte limit\");return t}async function Y(e,t,n){if(!e.body){if(n!==null&&n!==0)throw new m(502,\"retained artifact response length mismatch\");return new Uint8Array}let s=e.body.getReader(),r=[],i=0;try{while(!0){let{done:a,value:d}=await s.read();if(a)break;if(i+=d.byteLength,i>t)throw await s.cancel(\"retained artifact response exceeded the SDK byte limit\").catch(()=>{return}),new m(502,\"retained artifact response exceeds the SDK byte limit\");r.push(d)}}finally{s.releaseLock()}if(n!==null&&i!==n)throw new m(502,\"retained artifact response length mismatch\");let o=new Uint8Array(i),c=0;for(let a of r)o.set(a,c),c+=a.byteLength;return o}var N=2,Rs=\"opengeni.site.connect\",Jt=\"opengeni.site.ready\",bs=\"opengeni.site.request\",hs=\"opengeni.site.response\",ws=\"opengeni.site.cancel\",Vt=\"__opengeniSiteBridgeBootstrapV2\",Ss=\"/__opengeni/site-tools\";class C extends Error{code;retryable;outcomeUnknown;constructor(e,t,n=!1,s=!1){super(t);this.code=e;this.retryable=n;this.outcomeUnknown=s;this.name=\"OpenGeniSiteBridgeError\"}}function Ht(e={}){let t=vs(e)?new Kt(e):new jt(e);return{client:new Se({baseUrl:\"https://site.opengeni.invalid\",fetch:(n,s)=>t.fetch(n,s)}),workspaceId:Z,tools:new ne(t).forWorkspace(\"site-host\"),close:()=>t.close()}}class Kt{fetchImpl;basePath;constructor(e){this.fetchImpl=e.fetch??globalThis.fetch.bind(globalThis);let t=e.localCodemodePath;this.basePath=(typeof t===\"string\"?t:Ss).replace(/\\/+$/u,\"\")}close(){}async fetch(e,t){let n=new Request(e,t),s=new URL(n.url),r=`${s.pathname}${s.search}`;return H(r,Z,n.method),this.fetchImpl(`${this.basePath}/sdk${r}`,{method:n.method,headers:n.headers,signal:n.signal,...n.body?{body:await n.text()}:{}})}async requestJson(e,t,n,s,r={}){let i=ks(e,t),o=await this.fetchImpl(`${this.basePath}${i}`,{method:e,...r.signal?{signal:r.signal}:{},...n===void 0?{}:{headers:{\"content-type\":\"application/json\"},body:JSON.stringify(n)}}),c=await o.json();if(o.ok)return c;let a=E(c)&&E(c.error)?c.error:{};throw new C(typeof a.code===\"string\"?a.code:\"local_codemode_error\",typeof a.message===\"string\"?a.message:`Local Site tool request failed with HTTP ${o.status}`,a.retryable===!0,a.outcomeUnknown===!0)}}function vs(e){if(e.localCodemodePath===!1||e.bootstrapPort)return!1;if(typeof e.localCodemodePath===\"string\")return!0;let t=e.siteWindow??globalThis.window;return Boolean(t&&t.parent===t)}function ks(e,t){if(e===\"GET\"&&t.endsWith(\"/tools/catalog\"))return\"/catalog\";if(e===\"GET\"&&t.endsWith(\"/tools/declarations\"))return\"/declarations\";if(e===\"POST\"&&t.endsWith(\"/tools/calls\"))return\"/calls\";throw new C(\"unsupported_request\",\"Unsupported Site tool request\")}function Is(e){return{...e.operationId===void 0?{}:{operationId:e.operationId},catalogDigest:e.catalogDigest,identity:e.identity,arguments:e.arguments}}class jt{options;bootstrap;port=null;connecting=null;closed=!1;constructor(e){this.options=e,this.bootstrap=Cs(e)}async fetch(e,t){return Pe(await this.connect(),e,t)}async requestJson(e,t,n,s,r={}){if(e===\"GET\"&&t.endsWith(\"/tools/catalog\"))return await this.request({method:\"catalog\"},r);if(e===\"GET\"&&t.endsWith(\"/tools/declarations\"))return await this.request({method:\"declarations\"},r);if(e===\"POST\"&&t.endsWith(\"/tools/calls\")){if(!E(n))throw TypeError(\"Site tool call payload is required\");return await this.request({method:\"call\",payload:Is(n)},r)}throw new C(\"unsupported_request\",\"Unsupported Site bridge request\")}close(){if(this.closed)return;this.closed=!0,this.bootstrap.close(),this.port?.close(),this.port=null}async request(e,t){let n=await this.connect(),s=crypto.randomUUID(),r=Nt(t.timeoutMs??this.options.requestTimeoutMs??120000,\"requestTimeoutMs\");return await new Promise((i,o)=>{let c=setTimeout(()=>{l(),Ft(n,s),o(e.method===\"call\"?new C(\"timeout\",\"Site tool request timed out after execution may have started\",!1,!0):new C(\"timeout\",\"Site tool request timed out\",!0))},r),a=()=>{l(),Ft(n,s),o(t.signal?.reason??new DOMException(\"Request aborted\",\"AbortError\"))},d=(g)=>{let u=g.data;if(!E(u)||u.type!==hs||u.version!==N||u.requestId!==s||typeof u.ok!==\"boolean\")return;if(l(),u.ok){i(u.value);return}let y=E(u.error)?u.error:{};o(new C(typeof y.code===\"string\"?y.code:\"bridge_error\",typeof y.message===\"string\"?y.message:\"Site tool request failed\",y.retryable===!0,y.outcomeUnknown===!0))},l=()=>{clearTimeout(c),t.signal?.removeEventListener(\"abort\",a),n.removeEventListener(\"message\",d)};if(t.signal?.aborted){a();return}t.signal?.addEventListener(\"abort\",a,{once:!0}),n.addEventListener(\"message\",d),n.postMessage({type:bs,version:N,requestId:s,...e})})}async connect(){if(this.closed)throw new C(\"closed\",\"Site bridge is closed\");if(this.port)return this.port;if(this.connecting)return await this.connecting;let e=(this.options.createMessageChannel??(()=>new MessageChannel))(),t=Nt(this.options.connectTimeoutMs??1e4,\"connectTimeoutMs\");return this.connecting=new Promise((n,s)=>{let r=!0,i=setTimeout(()=>{c(),e.port1.close(),s(new C(\"host_timeout\",\"Opengeni Site host did not respond\"))},t),o=(a)=>{let d=a.data;if(!E(d)||d.type!==Jt||d.version!==N)return;c(),this.port=e.port1,n(e.port1)},c=()=>{r=!1,clearTimeout(i),e.port1.removeEventListener(\"message\",o)};e.port1.addEventListener(\"message\",o),e.port1.start(),this.bootstrap.port().then((a)=>{if(!r)return;if(this.closed)throw new C(\"closed\",\"Site bridge is closed\");a.postMessage({type:Rs,version:N},[e.port2])}).catch((a)=>{c(),e.port1.close(),s(a)})}).finally(()=>{this.connecting=null}),await this.connecting}}function Cs(e){if(e.bootstrapPort)return{port:async()=>e.bootstrapPort,close:()=>e.bootstrapPort?.close()};let t=e.siteWindow??globalThis.window,n=e.parentWindow??t?.parent;if(!t||!n||n===t)return{port:async()=>{throw new C(\"host_unavailable\",\"Opengeni Site client must run inside a hosted iframe\")},close:()=>{return}};let s=As(t);if(s)return{port:async()=>s,close:()=>{return}};let r=null,i=null,o=(l)=>{if(l.source!==n||!xs(l.data)||l.ports.length!==1)return;a(),r=l.ports[0],r.start(),Ps(t,r),c?.(r)},c=null,a=()=>t.removeEventListener(\"message\",o),d=new Promise((l,g)=>{c=l,i=g,t.addEventListener(\"message\",o)});return d.catch(()=>{return}),{port:async()=>await d,close:()=>{a(),i?.(new C(\"closed\",\"Site bridge is closed\")),c=null,i=null}}}function As(e){let t=e[Vt];if(!E(t))return null;let n=t.port;return n&&typeof n.postMessage===\"function\"&&typeof n.addEventListener===\"function\"&&typeof n.start===\"function\"?n:null}function Ps(e,t){try{Object.defineProperty(e,Vt,{configurable:!0,value:{port:t}})}catch{}}function xs(e){return E(e)&&e.type===Jt&&e.version===N}function Ft(e,t){e.postMessage({type:ws,version:N,requestId:t})}function Nt(e,t){if(!Number.isFinite(e)||e<=0)throw RangeError(`${t} must be positive`);return e}function E(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}Object.defineProperty(globalThis,\"createOpenGeniSiteClient\",{configurable:!0,value:Ht});})();\n";
1
+ export declare const SITE_BROWSER_RUNTIME = "(()=>{var Xt=Object.defineProperty;var Qt=(e)=>e;function Zt(e,t){this[e]=Qt.bind(null,t)}var Ce=(e,t)=>{for(var n in t)Xt(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Zt.bind(t,n)})};var V=(e,t)=>()=>(e&&(t=e(e=0)),t);function pe(e){try{let t=JSON.parse(e);if(!t||typeof t!==\"object\"||Array.isArray(t))return null;let n=t,s=n.error&&typeof n.error===\"object\"&&!Array.isArray(n.error)?n.error:n;if(s.code!==\"allowance_exhausted\")return null;let r=s.details&&typeof s.details===\"object\"&&!Array.isArray(s.details)?s.details:s;if(r.scope!==\"workspace\"&&r.scope!==\"member\")return null;if(r.resetsAt!==null&&typeof r.resetsAt!==\"string\")return null;return{scope:r.scope,resetsAt:r.resetsAt,...typeof r.subjectId===\"string\"?{subjectId:r.subjectId}:{}}}catch{return null}}function en(e){if(!e)return null;try{let t=JSON.parse(e);if(!t||typeof t!==\"object\"||Array.isArray(t))return null;let n=t,s=n.error&&typeof n.error===\"object\"&&!Array.isArray(n.error)?n.error:n,r=ue(s.code),i=ue(s.message),o=Pe(s.requestId),c=typeof s.retryable===\"boolean\"?s.retryable:void 0,a=typeof s.outcomeUnknown===\"boolean\"?s.outcomeUnknown:void 0,d=tn(s.details);if(!r&&!i&&!o&&c===void 0&&a===void 0&&!d)return null;return{code:r,message:i,requestId:o,retryable:c,outcomeUnknown:a,details:d}}catch{return null}}function tn(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return;let t=Object.entries(e).slice(0,16),n={};for(let[s,r]of t){if(!/^[a-zA-Z][\\w.-]{0,63}$/.test(s))continue;if(typeof r===\"string\"){let i=ue(r);if(i!==void 0)n[s]=i}else if(typeof r===\"number\"||typeof r===\"boolean\"||r===null)n[s]=r}return Object.keys(n).length>0?n:void 0}function ue(e){if(typeof e!==\"string\")return;let t=new TextEncoder().encode(e);return t.byteLength<=512?e:new TextDecoder().decode(t.slice(0,512))}function nn(e){return e===408||e===409||e===425||e===429||e>=500}function Pe(e){if(typeof e!==\"string\"||e.length>128||!/^[\\w.:-]+$/.test(e))return;return e}function O(e){return e instanceof DOMException&&e.name===\"AbortError\"||e instanceof Error&&e.name===\"AbortError\"}function q(e){if(e instanceof m)return e.retryable;return e instanceof TypeError}var m,de,le,X,ge,Q,A;var G=V(()=>{m=class m extends Error{status;code;retryable;correlationId;outcomeUnknown;body;details;constructor(e,t,n={}){let s=en(t),r=s?.requestId??Pe(n.correlationId),i=e>=502&&e<=504,o=n.mutation!==void 0,c=s?.message??(o?\"Request failed.\":t||\"(empty body)\"),a=n.displayMessage??(i&&o?s?.message??\"Opengeni is temporarily unavailable \u2014 retry.\":`OpenGeni API ${e}: ${c}`);super(r?`${a} Reference: ${r}.`:a);this.name=\"OpenGeniApiError\",this.status=e,this.code=n.code??s?.code??(i&&o?\"upstream_unavailable\":void 0),this.retryable=n.retryable??s?.retryable??nn(e),this.correlationId=r,this.outcomeUnknown=n.outcomeUnknown??s?.outcomeUnknown??(i&&!!n.mutation&&!s),this.body=!o||s?t:\"\",this.details=s?.details}};de=class de extends m{constructor(e){super(e.status,e.body,{code:\"OPENGENI_SETUP_REQUIRED\",retryable:!1,correlationId:e.correlationId,displayMessage:\"Private chats require organization_private_session_settings.enabled (migration 0323). An organization owner or admin can enable Only me chats in the web app under Organization settings > Security & data, or use updateOrganizationPrivateSessionSettings from @opengeni/sdk/organization-private-session-settings with enabled: true, the current expectedVersion and a stable operationId (PATCH /v1/organizations/:organizationId/private-session-settings; an organization key needs workspace:admin). If platform readiness is unavailable, ask the deployment operator to activate session tenancy first.\"});this.name=\"OpenGeniSetupError\"}};le=class le extends m{scope;resetsAt;subjectId;constructor(e,t,n={}){super(e,t,{...n,code:\"allowance_exhausted\",retryable:!1,outcomeUnknown:!1});this.name=\"OpenGeniAllowanceExhaustedError\";let s=pe(t);this.scope=s?.scope??\"workspace\",this.resetsAt=s?.resetsAt??null,this.subjectId=s?.subjectId}};X=class X extends Error{code=\"secure_context_required\";retryable=!1;reason;constructor(e){super(e===\"insecure_context\"?\"Couldn\u2019t attach this file because Opengeni is open over HTTP. Attachments require a secure HTTPS connection. Open the secure site or configure HTTPS for this deployment.\":\"Couldn\u2019t attach this file because secure browser cryptography is unavailable. Attachments require HTTPS and Web Crypto support. Open a secure site in a supported browser or configure HTTPS for this deployment.\");this.name=\"OpenGeniSecureContextRequiredError\",this.reason=e}};ge=class ge extends m{};Q=class Q extends Error{expected;actual;constructor(e,t){super(`OpenGeni API contract mismatch: client expects ${e}, API serves ${t}`);this.name=\"OpenGeniApiContractMismatchError\",this.expected=e,this.actual=t}};A=class A extends Error{constructor(e){super(e);this.name=\"OpenGeniStreamError\"}}});var Te={};Ce(Te,{OpenGeniToolCallError:()=>me,OpenGeniToolReapprovalRequiredError:()=>te,OpenGeniToolsClient:()=>ne});class ne{transport;constructor(e){this.transport=e}forWorkspace(e){let t=an(e,\"workspaceId\"),n=null,s=new Map,r=async(l={})=>{if(n&&!l.refresh)return n;let g=await this.transport.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(t)}/tools/catalog`,void 0,{},l.signal?{signal:l.signal}:{});return n=g,g},i=async(l,g,u)=>{if(u.approvalToken&&!u.operationId)throw TypeError(\"operationId is required when using an approval token\");let y=u.operationId??crypto.randomUUID(),w=await r({...u.refreshCatalog===void 0?{}:{refresh:u.refreshCatalog},...u.signal?{signal:u.signal}:{}}),f=async(b)=>{let S=l(b),x=u.approvalToken?s.get(u.approvalToken):void 0;if(x&&(x.operationId!==y||x.catalogDigest!==b.digest||!rn(x.identity,S)))throw new te(y,x.catalogDigest,b.digest,S);let J={operationId:y,catalogDigest:b.digest,identity:S,arguments:g,...u.approvalToken?{approvalToken:u.approvalToken}:{}},_;try{_=await this.transport.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(t)}/tools/calls`,J,{},u.signal?{signal:u.signal}:{})}catch(Ie){if(ee(Ie))n=null;else if(u.approvalToken)s.delete(u.approvalToken);throw Ie}if(u.approvalToken)s.delete(u.approvalToken);if(_.catalogDigest!==b.digest)n=null;if(_.result.isError)throw new me(_.result);return qe(b,S)?.outputSchema&&_.result.structuredContent!==void 0?_.result.structuredContent:_.result};try{return await f(w)}catch(b){if(!ee(b))throw b}let h=await r({refresh:!0,...u.signal?{signal:u.signal}:{}}),R=l(h);if(u.approvalToken&&h.digest!==w.digest)throw new te(y,w.digest,h.digest,R);return await f(h)},o=async(l,g={},u={})=>await i((y)=>Oe(y,l),g,u),c=async(l,g={},u={})=>{let y=u.operationId??crypto.randomUUID(),w=async(R)=>{let b={operationId:y,catalogDigest:R.digest,identity:Oe(R,l),arguments:g};try{let S=await this.transport.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(t)}/tools/approvals`,b,{},u.signal?{signal:u.signal}:{});return s.set(S.approvalToken,{operationId:S.operationId,catalogDigest:S.catalogDigest,identity:S.identity}),S}catch(S){if(ee(S))n=null;throw S}},f=await r(u.signal?{signal:u.signal}:{});try{return await w(f)}catch(R){if(!ee(R))throw R}let h=await r({refresh:!0,...u.signal?{signal:u.signal}:{}});return await w(h)},a=async(l,g={},u={})=>await i((y)=>on(y,l).identity,g,u),d=(l)=>new Proxy(async(g={},u={})=>await a(l,g,u),{get:(g,u)=>{if(u===\"then\")return;if(typeof u!==\"string\")return;return d([...l,u])}});return new Proxy(Object.create(null),{get:(l,g)=>{if(g===\"then\")return;if(g===\"$catalog\")return r;if(g===\"$call\")return o;if(g===\"$approve\")return c;if(g===\"$declarations\")return async(u={})=>await this.transport.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(t)}/tools/declarations`,void 0,{},u.signal?{signal:u.signal}:{});if(typeof g!==\"string\")return;return d([g])}})}}function qe(e,t){return e.entries.find((n)=>n.identity.serverId===t.serverId&&n.identity.toolName===t.toolName)}function rn(e,t){return e.serverId===t.serverId&&e.toolName===t.toolName}function Oe(e,t){let n=qe(e,t);if(!n)throw Error(`Tool is not present in the workspace catalog: ${t.serverId}/${t.toolName}`);return n.identity}function on(e,t){let n=e.entries.find((s)=>s.codemodePath.length===t.length&&s.codemodePath.every((r,i)=>r===t[i]));if(!n)throw Error(`Tool is not present in the workspace catalog: ${t.join(\".\")}`);return n}function ee(e){return e instanceof m&&e.status===409&&e.details?.code===\"catalog_stale\"||typeof e===\"object\"&&e!==null&&\"code\"in e&&e.code===\"catalog_stale\"}function an(e,t){let n=e.trim();if(!n)throw TypeError(`${t} is required`);return n}var me,te;var ye=V(()=>{G();me=class me extends Error{result;code;retryable;outcomeUnknown;constructor(e){let t=e.structuredContent;super(typeof t?.error?.message===\"string\"?t.error.message:\"Opengeni tool call failed\");this.result=e;this.name=\"OpenGeniToolCallError\",this.code=typeof t?.error?.code===\"string\"?t.error.code:\"tool_error\",this.retryable=t?.error?.retryable===!0,this.outcomeUnknown=t?.error?.outcomeUnknown===!0}};te=class te extends Error{operationId;previousCatalogDigest;catalogDigest;identity;code=\"tool_reapproval_required\";retryable=!1;constructor(e,t,n,s){super(\"The workspace tool catalog changed after approval. Request a new approval for the refreshed tool identity and retry with the same operation ID.\");this.operationId=e;this.previousCatalogDigest=t;this.catalogDigest=n;this.identity=s;this.name=\"OpenGeniToolReapprovalRequiredError\"}}});function Nn(e,t){if(e.length<t.length)return!1;let n=e.length-t.length;return t.every((s,r)=>e[n+r]===s)}function Jn(e){for(let t of e.matchAll(Dn)){let n=t[2]??t[3];if(!n)continue;let s=n.replace(/([a-z0-9])([A-Z])/g,\"$1 $2\").replace(/([A-Z]+)([A-Z][a-z])/g,\"$1 $2\").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean),r=s.at(-1);if(r&&Wn.has(r))return!0;if(r&&zn.some((i)=>r.endsWith(i)))return!0;if(Fn.some((i)=>Nn(s,i)))return!0}return!1}function Vn(e){for(let t of e.matchAll(_n))if(!Gn.test(t[0]))return!0;return!1}function Hn(e){if(/[?:#]/u.test(e))return!1;let[t,...n]=e.split(\"/\");if(!t||n.length===0||n.some((s)=>!s))return!1;if(!Bn.has(t)||n.some((s)=>!/^[A-Z][A-Za-z0-9_-]*$/u.test(s)))return!1;return!0}function Kn(e){if(Un.some((t)=>t.test(e)))return!0;for(let t of e.matchAll(Mn)){let n=t[0];if(n.toLowerCase().startsWith(\"www.\"))return!0;if(!/[/?#]/u.test(n))continue;let i=(n.split(/[/?#]/u,1)[0]??\"\").replace(/:\\d{1,5}$/u,\"\").split(\".\").at(-1)?.toLowerCase();if(i&&$n.has(i))continue;if(Hn(n))continue;return!0}return!1}function Qn(e){return e.normalize(\"NFKC\").replace(Yn,\"\").replace(Xn,\"\")}function Zn(e){let t=Qn(e);if(En.some((n)=>n.test(t)))return!0;if(Vn(t))return!0;if(Kn(t))return!0;if(Ln.test(t))return!0;if(Jn(t))return!0;if(jn.test(t))return!0;return!1}function es(e){if(ce===void 0)ce=typeof Intl.Segmenter===\"function\"?new Intl.Segmenter(void 0,{granularity:\"grapheme\"}):null;if(ce)return Array.from(ce.segment(e),(n)=>n.segment);let t=[];for(let n of e){let s=t.at(-1);if(s&&(/^[\\p{Mark}\\u{FE0E}\\u{FE0F}\\p{Emoji_Modifier}]$/u.test(n)||n===\"\u200D\"||s.endsWith(\"\u200D\")))t[t.length-1]=`${s}${n}`;else t.push(n)}return t}function ts(e){let t=e.split(/\\s+/u),n=t.length>10?t.slice(0,10).join(\" \"):e,s=es(n);if(s.length<=80)return n;let r=s.slice(0,80).join(\"\"),i=r.search(/\\s+\\S*$/u);return(i>=16?r.slice(0,i):r).trimEnd()}function be(e){if(typeof e!==\"string\")return null;let t=e.slice(0,4096).replace(/[\\u0000-\\u001f\\u007f-\\u009f]+/gu,`\n`).split(/\\n+/u);for(let n of t){let s=n.trim();if(!s||Zn(s))continue;let r=ts(s.replace(/\\s+/gu,\" \")).replace(/[\\s.!?,;:\\-\u2013\u2014]+$/u,\"\").trim();if(r)return r}return null}function Ot(e){let t=typeof e===\"string\"?e.trim():\"\";return Tn.test(t)?`Conversation ${t.slice(0,13)}`:\"New conversation\"}function we(e){let t=e.title?.trim()??\"\";return e.titleSource!==\"user\"&&(!t||t===\"New conversation\")}function qt(e,t={}){let n=e.title?.trim()??\"\";if(e.titleSource===\"user\")return n||Ot(e.id);if(n&&!we(e))return n;for(let s of t.metadataKeys??[]){let r=e.metadata?.[s];if(typeof r===\"string\"&&r.trim().length>0)return r.trim()}return be(e.initialMessage)??Ot(e.id)}var Tn,ce,En,_n,Gn,Mn,Un,$n,Bn,Dn,Ln,Wn,zn,Fn,jn,Yn,Xn;var Tt=V(()=>{Tn=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,En=[/-----BEGIN [A-Z ]*PRIVATE KEY-----/iu,/\\bBearer\\s+[A-Za-z0-9._~+/=-]{8,}/iu,/\\b(?:sk-(?:proj-)?|gh[oprsu]_|github_pat_|glpat-|xox[baprs]-)[A-Za-z0-9_-]{8,}/iu,/\\bAKIA[0-9A-Z]{16}\\b/u,/\\bAIza[0-9A-Za-z_-]{20,}\\b/u,/\\beyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b/u,/[?&](?:access_token|api_key|apikey|password|secret|token)=[^\\s&#]+/iu],_n=/\\b[a-z][a-z0-9+.-]*:\\S+/giu,Gn=/^[a-z]:[\\\\/](?![\\\\/])[^:]*$/iu,Mn=/\\b(?:www\\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?(?::\\d{1,5})?(?:[/?#][^\\s]*)?/giu,Un=[/\\blocalhost(?:(?::\\d{1,5})(?:[/?#][^\\s]*)?|[/?#][^\\s]*)/iu,/\\b(?:(?:25[0-5]|2[0-4]\\d|1?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1?\\d?\\d)(?:(?::\\d{1,5})(?:[/?#][^\\s]*)?|[/?#][^\\s]*)/u,/\\[(?=[0-9a-f:.]*:[0-9a-f:.]*\\])[0-9a-f:.]+\\](?:(?::\\d{1,5})(?:[/?#][^\\s]*)?|[/?#][^\\s]*)/iu],$n=new Set([\"css\",\"html\",\"js\",\"json\",\"jsx\",\"lock\",\"md\",\"sql\",\"toml\",\"ts\",\"tsx\",\"xml\",\"yaml\",\"yml\"]),Bn=new Set([\"ASP.NET\",\"AWS.SDK\",\"Microsoft.Extensions\",\"System.IO\"]),Dn=/(?:^|[^A-Za-z0-9])(?:(['\"])([A-Za-z][A-Za-z0-9_. -]*)\\1|([A-Za-z][A-Za-z0-9_.-]*))\\s*[=:]\\s*[^\\s,;]+/gu,Ln=/\\b(?:api[ _-]?key|access[ _-]?token|auth[ _-]?token|credential|credentials|password|passwd|private[ _-]?key|secret|token)\\b\\s*[=:]\\s*[^\\s,;]+/iu,Wn=new Set([\"credential\",\"credentials\",\"password\",\"passwd\",\"secret\",\"token\"]),zn=[\"apikey\",\"accesskey\",\"accesskeyid\",\"accesstoken\",\"authtoken\",\"credential\",\"credentials\",\"password\",\"passwd\",\"privatekey\",\"secret\",\"secretkey\",\"token\"],Fn=[[\"api\",\"key\"],[\"access\",\"key\"],[\"access\",\"key\",\"id\"],[\"auth\",\"key\"],[\"private\",\"key\"],[\"secret\",\"key\"]];jn=/\\b(?=[A-Za-z0-9_-]{32,}\\b)(?=[A-Za-z0-9_-]*[A-Za-z])(?=[A-Za-z0-9_-]*\\d)[A-Za-z0-9_-]+\\b/u,Yn=/\\p{Default_Ignorable_Code_Point}+/gu,Xn=/\\\\+(?=[\"'])/gu});function Et(e){let t=e.metadata._opengeniSiteOrigin,n=t&&typeof t.siteId===\"string\"&&/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/i.test(t.siteId)&&typeof t.title===\"string\"?{siteId:t.siteId,title:t.title}:null,s=e.metadata.scheduledTaskId;return{id:e.id,workspaceId:e.workspaceId,accountId:e.accountId,status:e.status,backgroundCommandActivity:e.backgroundCommandActivity,hasSchedules:e.hasSchedules,title:e.title,titleSource:e.titleSource,displayTitle:qt(e),renameSeed:we(e)?be(e.initialMessage)??\"\":e.title?.trim()??\"\",scheduledTaskId:typeof s===\"string\"&&s.length>0?s:null,siteOrigin:n,createdBy:e.createdBy,channelId:e.channelId,parentSessionId:e.parentSessionId,rootSessionId:e.rootSessionId,effectiveControl:e.effectiveControl,inputWait:e.inputWait,lastSequence:e.lastSequence,pinned:e.pinned??!1,pinnedAt:e.pinnedAt??null,pinVersion:e.pinVersion??0,unread:e.unread??!1,activelyWorking:e.activelyWorking??!1,attentionVersion:e.attentionVersion??0,archived:e.archived??!1,archivedAt:e.archivedAt??null,importedArchive:e.importedArchive,archiveVersion:e.archiveVersion??0,treeStats:e.treeStats,requiresActionSince:e.requiresActionSince,createdAt:e.createdAt,updatedAt:e.updatedAt}}var _t=V(()=>{Tt()});var Gt={};Ce(Gt,{sessionListEntry:()=>Et});var Mt=V(()=>{_t()});class Ae extends Error{code=\"site_session_path_unsupported\";constructor(){super(\"Unsupported Site session API path\");this.name=\"SiteSessionPathError\"}}function H(e,t,n=\"GET\",s){let r=e.split(\"?\")[0];if(!(r===\"/v1/workspaces/site-host\"||r.startsWith(\"/v1/workspaces/site-host/\"))&&r!==\"/v1/config/client\"||/[%\\\\#\\u0000-\\u0020\\u007f]/u.test(r)||r.split(\"/\").some((d)=>d===\".\"||d===\"..\"))throw new Ae;let c=e.replace(\"/workspaces/site-host\",`/workspaces/${encodeURIComponent(t)}`),a=new URL(c,\"http://site.invalid\");if(a.searchParams.get(\"originSiteId\")===\"current\"&&t!==\"site-host\")return a.searchParams.set(\"originSiteId\",s??\"00000000-0000-0000-0000-000000000000\"),a.pathname+a.search;return c}var sn=\"opengeni.site.http\",Z=\"site-host\";async function xe(e,t,n){let s=new Request(t,n),r=new URL(s.url),i=`${r.pathname}${r.search}`;H(i,Z,s.method);let o=new MessageChannel,c=crypto.randomUUID(),a=s.body?await s.text():void 0;return await new Promise((d,l)=>{let g,u=!1,y=()=>{u=!0,s.signal.removeEventListener(\"abort\",w),o.port1.close()},w=()=>{if(u)return;e.postMessage({type:\"opengeni.site.cancel\",version:2,requestId:c});let f=s.signal.reason??new DOMException(\"Cancelled\",\"AbortError\");g?.error(f),l(f),y()};if(o.port1.onmessage=(f)=>{let h=f.data;if(h.error){let R=Error(h.error);g?.error(R),l(R),y()}else if(h.status){let R=h.body?new ReadableStream({start(b){g=b},pull(){o.port1.postMessage(\"pull\")},cancel(){g=void 0,w()}}):null;if(d(new Response(R,{status:h.status,headers:h.headers})),!h.body)y()}else if(h.done)g?.close(),y();else if(h.chunk)g?.enqueue(h.chunk)},s.signal.aborted){w();return}s.signal.addEventListener(\"abort\",w,{once:!0}),e.postMessage({type:sn,requestId:c,path:i,method:s.method,headers:[...s.headers],...a===void 0?{}:{body:a}},[o.port2])})}ye();function se(e){let t=new URLSearchParams;for(let[s,r]of Object.entries(e)){if(r===void 0)continue;for(let i of Array.isArray(r)?r:[r])t.append(s,String(i))}let n=t.toString();return n?`?${n}`:\"\"}G();G();async function*T(e){let t=e.getReader(),n=new TextDecoder,s=\"\",r,i,o=null,c=()=>{let d=o===null?null:{...r!==void 0?{id:r}:{},...i!==void 0?{event:i}:{},data:o.join(`\n`)};return r=void 0,i=void 0,o=null,d},a=(d)=>{if(d===\"\")return c();if(d.startsWith(\":\"))return null;let l=d.indexOf(\":\"),g=l===-1?d:d.slice(0,l),u=l===-1?\"\":d.slice(l+1);if(u.startsWith(\" \"))u=u.slice(1);if(g===\"data\")(o??=[]).push(u);else if(g===\"event\")i=u;else if(g===\"id\")r=u;return null};try{while(!0){let{done:d,value:l}=await t.read();if(d)break;s+=n.decode(l,{stream:!0});let g=s.indexOf(`\n`);while(g!==-1){let u=s.slice(0,g);if(s=s.slice(g+1),u.endsWith(\"\\r\"))u=u.slice(0,-1);let y=a(u);if(y)yield y;g=s.indexOf(`\n`)}}}finally{t.cancel().catch(()=>{});try{t.releaseLock()}catch{}}}var cn=Symbol.for(\"@opengeni/sdk/session-event-stream-covered-through\");async function*_e(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.after??0,g=0,u=r,y=!1;while(!0){if(n?.aborted)break;t.onStateChange?.(y||g>0?\"reconnecting\":\"connecting\");let w=l;try{let f=await e.openStream(l,n);y=!0,g=0,u=r;try{t.onOpen?.()}catch{}await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let h of T(U(f,a,n))){if(n?.aborted)return;let R=dn(h.data);if(!R)continue;let b=ln(h.id,R.sequence);if(pn(R,b),b<=l)continue;if(R.sequence>l+1){for await(let S of un(e,l,R.sequence-1))if(l=S.sequence,yield S,n?.aborted)return}l=b,yield R}if(!s)return;if(l===w)await Ee(P(r,o),n);continue}catch(f){if(n?.aborted||O(f))return;if(!s||!q(f))throw f;if(g+=1,g>d)throw new A(`event stream gave up after ${d} consecutive failed reconnect attempts: ${f instanceof Error?f.message:String(f)}`)}await Ee(P(u,o),n),u=Math.min(Math.max(u*2,r),i)}}async function M(e,t,n){if(!e)return;let s,r,i=new Promise((o,c)=>{if(s=setTimeout(()=>c(TypeError(`stream reconciliation timed out after ${t}ms`)),t),n)r=()=>c(new DOMException(\"Aborted\",\"AbortError\")),n.addEventListener(\"abort\",r,{once:!0})});try{await Promise.race([Promise.resolve().then(e),i])}finally{if(s!==void 0)clearTimeout(s);if(n&&r)n.removeEventListener(\"abort\",r)}}function P(e,t){if(e<=0||t<=0)return e;let n=Math.min(t,1),s=e*n;return Math.max(0,e-s+Math.random()*s*2)}function U(e,t,n){if(!Number.isSafeInteger(t)||t<=0)throw RangeError(\"stream heartbeat timeout must be a positive safe integer\");let s=e.getReader();return new ReadableStream({pull:async(r)=>{let i,o;try{let c=await Promise.race([s.read(),new Promise((a,d)=>{if(i=setTimeout(()=>d(TypeError(`event stream heartbeat timed out after ${t}ms`)),t),n)o=()=>d(new DOMException(\"Aborted\",\"AbortError\")),n.addEventListener(\"abort\",o,{once:!0})})]);if(c.done)r.close();else r.enqueue(c.value)}catch(c){s.cancel(c).catch(()=>{}),r.error(c)}finally{if(i!==void 0)clearTimeout(i);if(n&&o)n.removeEventListener(\"abort\",o)}},cancel:(r)=>{s.cancel(r).catch(()=>{})}})}async function*un(e,t,n){let s=t;while(s<n){let i=(await e.listEvents(s,Math.min(500,n-s))).filter((o)=>o.sequence>s&&o.sequence<=n).sort((o,c)=>o.sequence-c.sequence);if(i.length===0)throw new A(`event replay backfill stalled: expected sequences ${s+1}..${n} but the replay endpoint returned none of them`);for(let o of i){if(o.sequence!==s+1)throw new A(`event replay backfill is missing sequence ${s+1} (replay endpoint skipped to ${o.sequence}); refusing to deliver with a gap`);s=o.sequence,yield o}}}function dn(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!==\"object\"||t===null||typeof t.sequence!==\"number\"||typeof t.type!==\"string\"||typeof t.id!==\"string\")return null;return t}function ln(e,t){if(e===void 0||!/^\\d+$/.test(e))return t;let n=Number(e);return Number.isSafeInteger(n)&&n>=t?n:t}function pn(e,t){Object.defineProperty(e,cn,{value:t,enumerable:!1,configurable:!1,writable:!1})}async function Ee(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}var gn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|\\d+|[A-Za-z0-9_-]{20,})$/i;function mn(e){return e.split(\"/\").map((t)=>gn.test(t)?\":id\":t).join(\"/\")}function yn(e){let t=e.trim(),n=/^@(-?\\d+)$/.exec(t);if(n)return new Date(Number(n[1])*1000);let s=Date.parse(t);return Number.isNaN(s)?null:new Date(s)}function fn(e){let t=new Map;if(!e)return t;for(let n of e.matchAll(/<([^>]*)>\\s*((?:;\\s*[^;,]+)*)/g)){let s=/;\\s*rel=\"?([^\";,]+)\"?/i.exec(n[2]??\"\")?.[1];if(!s)continue;for(let r of s.toLowerCase().split(/\\s+/))if(!t.has(r))t.set(r,n[1])}return t}function Rn(e,t,n){let s=n.get(\"deprecation\"),r=n.get(\"sunset\");if(!s&&!r)return null;let i=t;try{i=new URL(t,\"http://opengeni.invalid\").pathname}catch{}let o=r?Date.parse(r):Number.NaN,c=fn(n.get(\"link\"));return{method:e.toUpperCase(),route:mn(i),path:i,deprecatedAt:s?yn(s):null,sunset:Number.isNaN(o)?null:new Date(o),link:c.get(\"deprecation\")??c.get(\"sunset\")??null,successor:c.get(\"successor-version\")??null}}var Ge=new Set;function hn(e){let t=`${e.method} ${e.route}`;if(Ge.has(t))return;Ge.add(t);let n=e.sunset?` and will be removed after ${e.sunset.toISOString()}`:\"\",s=e.link?` Migration notes: ${e.link}.`:\"\";console.warn(`[@opengeni/sdk] ${t} is deprecated${n}.${s} Upgrade @opengeni/sdk, or pass onDeprecation to handle this notice.`)}function Me(e,t){if(t===!1)return e;let n=t??hn,s=new Set;return async(r,i)=>{let o=await e(r,i);try{let c=o.headers;if(c&&(c.get(\"deprecation\")||c.get(\"sunset\"))){let a=i?.method??(typeof Request<\"u\"&&r instanceof Request?r.method:\"GET\"),d=typeof r===\"string\"?r:r instanceof URL?r.href:r.url,l=Rn(a,d,c);if(l){let g=`${l.method} ${l.route}`;if(!s.has(g))s.add(g),n(l)}}}catch{}return o}}G();async function*$e(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.after??0,g=0,u=r,y=!1;for(;;){if(n?.aborted)return;t.onStateChange?.(y||g>0?\"reconnecting\":\"connecting\");let w=l;try{let f=await e.openStream(l,n);y=!0,g=0,u=r,await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let h of T(U(f,a,n))){if(n?.aborted)return;let R=bn(h.data);if(!R||R.sequence<=l)continue;l=R.sequence,yield R}if(!s)return;if(l===w)await Ue(P(r,o),n);continue}catch(f){if(n?.aborted||O(f))return;if(!s||!q(f))throw f;if(g+=1,g>d)throw new A(`workspace control stream gave up after ${d} reconnect attempts: ${f instanceof Error?f.message:String(f)}`)}await Ue(P(u,o),n),u=Math.min(Math.max(u*2,r),i)}}function bn(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!==\"object\"||t===null||t.type!==\"workspace.control.changed\"||typeof t.id!==\"string\"||typeof t.sequence!==\"number\")return null;return t}async function Ue(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}G();async function*De(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.after??0,g=0,u=r,y=!1;for(;;){if(n?.aborted)return;t.onStateChange?.(y||g>0?\"reconnecting\":\"connecting\");let w=l;try{let f=await e.openStream(l,n);y=!0,g=0,u=r,await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let h of T(U(f,a,n))){if(n?.aborted)return;let R=wn(h.data);if(!R||R.sequence<=l)continue;l=R.sequence,yield R}if(!s)return;if(l===w)await Be(P(r,o),n);continue}catch(f){if(n?.aborted||O(f))return;if(!s||!q(f))throw f;if(g+=1,g>d)throw new A(`workspace interaction stream gave up after ${d} reconnect attempts: ${f instanceof Error?f.message:String(f)}`)}await Be(P(u,o),n),u=Math.min(Math.max(u*2,r),i)}}function wn(e){let t;try{t=JSON.parse(e)}catch{return null}if(!Sn(t)||t.type!==\"workspace.interaction.changed\"||typeof t.workspaceId!==\"string\"||typeof t.sequence!==\"number\"||!Number.isSafeInteger(t.sequence)||t.sequence<0||t.revision!==t.sequence||typeof t.occurredAt!==\"string\")return null;return t}function Sn(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}async function Be(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}G();async function*We(e,t={}){let n=t.signal,s=t.reconnect??!0,r=t.reconnectDelayMs??500,i=t.maxReconnectDelayMs??1e4,o=t.reconnectJitterRatio??0.2,c=t.beforeLiveTimeoutMs??15000,a=t.heartbeatTimeoutMs??45000,d=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,l=t.controlAfter??0,g=t.interactionAfter??0,u=0,y=r,w=!1;for(;;){if(n?.aborted)return;t.onStateChange?.(w||u>0?\"reconnecting\":\"connecting\");let f=`${l}:${g}`;try{let h=await e.openStream(l,g,n);w=!0,u=0,y=r,await M(t.beforeLive,c,n),t.onStateChange?.(\"live\");for await(let R of T(U(h,a,n))){if(n?.aborted)return;let b=vn(R.data);if(!b)continue;if(b.type===\"workspace.control.changed\"){if(b.sequence<=l)continue;l=b.sequence}else{if(b.sequence<=g)continue;g=b.sequence}yield b}if(!s)return;if(`${l}:${g}`===f)await Le(P(r,o),n);continue}catch(h){if(n?.aborted||O(h))return;if(!s||!q(h))throw h;if(u+=1,u>d)throw new A(`workspace live stream gave up after ${d} reconnect attempts: ${h instanceof Error?h.message:String(h)}`)}await Le(P(y,o),n),y=Math.min(Math.max(y*2,r),i)}}function vn(e){let t;try{t=JSON.parse(e)}catch{return null}if(!kn(t)||typeof t.sequence!==\"number\")return null;if(t.type===\"workspace.control.changed\"&&typeof t.id===\"string\"&&Number.isSafeInteger(t.sequence))return t;if(t.type===\"workspace.interaction.changed\"&&typeof t.workspaceId===\"string\"&&Number.isSafeInteger(t.sequence)&&t.sequence>=0&&t.revision===t.sequence&&typeof t.occurredAt===\"string\")return t;return null}function kn(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}async function Le(e,t){if(t?.aborted||e<=0)return;await new Promise((n)=>{let s=setTimeout(r,e);function r(){clearTimeout(s),t?.removeEventListener(\"abort\",r),n()}t?.addEventListener(\"abort\",r,{once:!0})})}function ze(e){return e.driverId===\"opengeni.cdp.ephemeral-context.v1\"?\"ephemeral_context\":\"private_profile\"}var Fe=32768,In=1e8;class fe{attachedBrowsers;authRuns;browsers;computers;identities;interventions;networkRoutes;siteAuthConnections;constructor(e){this.attachedBrowsers=new et(e),this.authRuns=new Ye(e),this.browsers=new rt(e),this.computers=new dt(e),this.identities=new nt(e),this.interventions=new Qe(e),this.networkRoutes=new Ve(e),this.siteAuthConnections=new Ke(e)}}class Ve{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listNetworkRoutes(e,t)}route(e,t){return new He(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createNetworkRoute(e,t,n);return this.route(e,s.route.id)}}class He{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getNetworkRoute(this.workspaceId,this.id,e)}async update(e,t={}){return await this.transport.updateNetworkRoute(this.workspaceId,this.id,e,t)}}class Ke{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listSiteAuthConnections(e,t)}connection(e,t){return new je(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createSiteAuthConnection(e,t,n);return this.connection(e,s.connection.id)}}class je{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getSiteAuthConnection(this.workspaceId,this.id,e)}async update(e,t={}){return await this.transport.updateSiteAuthConnection(this.workspaceId,this.id,e,t)}}class Ye{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listAuthRuns(e,t)}async get(e,t,n={}){return await this.transport.getAuthRun(e,t,n)}run(e,t,n){return new Re(this.transport,e,t,n)}}class Xe{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async list(e={}){return await this.transport.listAuthRuns(this.workspaceId,{...e,browserSessionId:this.browserSessionId})}run(e){return new Re(this.transport,this.workspaceId,this.browserSessionId,e)}async start(e,t={}){let n=await this.transport.startBrowserAuthRun(this.workspaceId,this.browserSessionId,e,t);return this.run(n.run.id)}}class Re{transport;workspaceId;browserSessionId;id;constructor(e,t,n,s){this.transport=e;this.workspaceId=t;this.browserSessionId=n;this.id=s}async get(e={}){let t=await this.transport.getAuthRun(this.workspaceId,this.id,e);if(t.browserSessionId!==this.browserSessionId)throw Error(\"AuthRun belongs to another BrowserSession\");return t}async report(e,t={}){return await this.transport.reportBrowserAuthRun(this.workspaceId,this.browserSessionId,this.id,e,t)}async protectedFill(e,t={}){return await this.transport.protectedBrowserAuthFill(this.workspaceId,this.browserSessionId,this.id,e,t)}async advanceExternal(e,t={}){return await this.transport.advanceExternalBrowserAuthRun(this.workspaceId,this.browserSessionId,this.id,e,t)}async openExternalFlow(e,t={}){return await this.transport.openExternalBrowserAuthFlow(this.workspaceId,this.browserSessionId,this.id,e,t)}async verify(e,t={}){return await this.transport.verifyBrowserAuthRun(this.workspaceId,this.browserSessionId,this.id,e,t)}}class Qe{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listInteractionInterventions(e,t)}intervention(e,t){return new Ze(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createInteractionIntervention(e,t,n);return this.intervention(e,s.intervention.id)}}class Ze{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getInteractionIntervention(this.workspaceId,this.id,e)}async resolve(e,t={}){return await this.transport.resolveInteractionIntervention(this.workspaceId,this.id,e,t)}}class et{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listAttachedBrowsers(e,t)}device(e,t){return new tt(this.transport,e,t)}}class tt{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getAttachedBrowser(this.workspaceId,this.id,e)}}class nt{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listBrowserIdentities(e,t)}identity(e,t){return new st(this.transport,e,t)}async create(e,t,n={}){let s=await this.transport.createBrowserIdentity(e,t,n);return this.identity(e,s.identity.id)}}class st{transport;workspaceId;id;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n}async get(e={}){return await this.transport.getBrowserIdentity(this.workspaceId,this.id,e)}async revisions(e={}){return await this.transport.listBrowserRevisions(this.workspaceId,this.id,e)}async update(e,t={}){return await this.transport.updateBrowserIdentity(this.workspaceId,this.id,e,t)}}class rt{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listBrowserSessions(e,t)}session(e,t){return new it(this.transport,e,t)}async open(e,t,n={}){let s=await this.transport.createBrowserSession(e,t,n);return this.session(e,s.session.id)}async currentOrOpen(e){let t=e.signal?{signal:e.signal}:{},n=await this.list(e.workspaceId,t),s=An(n.sessions.filter((r)=>ze(r)===(e.storageMode??\"private_profile\")),e.associationSessionId);if(s){let r=this.session(e.workspaceId,s.id);if(s.lifecycle===\"suspended\")await r.resume({operationId:e.operationId??crypto.randomUUID()},t);return r}return await this.open(e.workspaceId,{operationId:e.operationId??crypto.randomUUID(),sessionId:e.associationSessionId,...e.name!==void 0?{name:e.name}:{},...e.initialUrl!==void 0?{initialUrl:e.initialUrl}:{},...e.headless!==void 0?{headless:e.headless}:{},...e.storageMode!==void 0?{storageMode:e.storageMode}:{},...e.placement!==void 0?{placement:e.placement}:{},...e.identityId!==void 0?{identityId:e.identityId}:{},...e.baseRevisionId!==void 0?{baseRevisionId:e.baseRevisionId}:{},...e.networkRouteId!==void 0?{networkRouteId:e.networkRouteId}:{},...e.linkedComputerSessionId!==void 0?{linkedComputerSessionId:e.linkedComputerSessionId}:{}},t)}}class it{transport;workspaceId;id;auth;clipboard;downloads;tabs;targets;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n;this.auth=new Xe(e,t,n),this.clipboard=new ot(e,t,n),this.downloads=new at(e,t,n),this.tabs=new ut(e,t,n),this.targets=this.tabs}async get(e={}){return await this.transport.getBrowserSession(this.workspaceId,this.id,e)}async observe(e,t={}){return await this.transport.observeBrowserTarget(this.workspaceId,this.id,e,t)}async targetState(e,t={}){return await this.transport.getBrowserTargetState(this.workspaceId,this.id,e,t)}async readDom(e,t,n={}){return await this.transport.readBrowserDom(this.workspaceId,this.id,e,t,n)}async capture(e,t={},n={}){return await this.transport.captureBrowserTarget(this.workspaceId,this.id,e,t,n)}async screenshot(e,t={},n={}){return await this.capture(e,n,t)}async act(e,t={}){return await this.transport.actInBrowser(this.workspaceId,this.id,e,t)}async receipt(e,t={}){return await this.transport.getBrowserActionReceipt(this.workspaceId,this.id,e,t)}async diagnostics(e,t={}){return await this.transport.listBrowserDiagnostics(this.workspaceId,this.id,e,t)}async attach(e,t={}){return await this.transport.attachBrowserSession(this.workspaceId,this.id,e,t)}async heartbeat(e={}){return await this.transport.heartbeatBrowserSession(this.workspaceId,this.id,e)}async publishRevision(e,t={}){return await this.transport.publishBrowserRevision(this.workspaceId,this.id,e,t)}async suspend(e={operationId:crypto.randomUUID()},t={}){return await this.transport.suspendBrowserSession(this.workspaceId,this.id,e,t)}async resume(e={operationId:crypto.randomUUID()},t={}){return await this.transport.resumeBrowserSession(this.workspaceId,this.id,e,t)}async end(e={operationId:crypto.randomUUID()},t={}){return await this.transport.endBrowserSession(this.workspaceId,this.id,e,t)}}class ot{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async read(e={}){let t=await this.transport.readBrowserClipboard(this.workspaceId,this.browserSessionId,e);if(t.browserSessionId!==this.browserSessionId)throw Error(\"Browser clipboard belongs to another BrowserSession\");return t}}class at{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async list(e={}){return await this.transport.listBrowserDownloads(this.workspaceId,this.browserSessionId,e)}download(e){return new ct(this.transport,this.workspaceId,this.browserSessionId,e)}}class ct{transport;workspaceId;browserSessionId;id;constructor(e,t,n,s){this.transport=e;this.workspaceId=t;this.browserSessionId=n;this.id=s}async get(e={}){let t=await this.transport.getBrowserDownload(this.workspaceId,this.browserSessionId,this.id,e);if(t.browserSessionId!==this.browserSessionId)throw Error(\"BrowserDownload belongs to another BrowserSession\");return t}async saveToWorkspace(e,t={}){let{operationId:n=crypto.randomUUID(),overwrite:s=!1,...r}=t,i=await this.transport.saveBrowserDownload(this.workspaceId,this.browserSessionId,this.id,{operationId:n,destinationPath:e,overwrite:s},r);if(i.download.id!==this.id||i.download.browserSessionId!==this.browserSessionId)throw Error(\"BrowserDownload save returned another resource\");return i}}class ut{transport;workspaceId;browserSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.browserSessionId=n}async list(e={}){return await this.transport.listBrowserTargets(this.workspaceId,this.browserSessionId,e)}async open(e,t={}){return await this.transport.openBrowserTarget(this.workspaceId,this.browserSessionId,e===void 0?{}:{url:e},t)}async select(e,t={}){return await this.transport.selectBrowserTarget(this.workspaceId,this.browserSessionId,e,t)}async close(e,t={}){return await this.transport.closeBrowserTarget(this.workspaceId,this.browserSessionId,e,t)}}class dt{transport;constructor(e){this.transport=e}async list(e,t={}){return await this.transport.listComputerSessions(e,t)}session(e,t){return new lt(this.transport,e,t)}async open(e,t,n={}){let s=await this.transport.createComputerSession(e,t,n);return this.session(e,s.session.id)}async currentOrOpen(e){let t=e.signal?{signal:e.signal}:{},n=await this.list(e.workspaceId,t),s=Pn(n.sessions,e.associationSessionId);if(s)return this.session(e.workspaceId,s.id);return await this.open(e.workspaceId,{operationId:e.operationId??crypto.randomUUID(),sessionId:e.associationSessionId,...e.name!==void 0?{name:e.name}:{},...e.placement!==void 0?{placement:e.placement}:{}},t)}}class lt{transport;workspaceId;id;targets;apps;clipboard;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.id=n;this.targets=new gt(e,t,n),this.apps=this.targets,this.clipboard=new pt(e,t,n)}async get(e={}){return await this.transport.getComputerSession(this.workspaceId,this.id,e)}async observe(e,t={}){return await this.transport.observeComputerTarget(this.workspaceId,this.id,e,t)}async capture(e,t={}){return await this.transport.captureComputerTarget(this.workspaceId,this.id,e,t)}async act(e,t={}){return await this.transport.actInComputer(this.workspaceId,this.id,e,t)}async receipt(e,t={}){return await this.transport.getComputerActionReceipt(this.workspaceId,this.id,e,t)}async attach(e,t={}){return await this.transport.attachComputerSession(this.workspaceId,this.id,e,t)}async inputPosture(e={}){if(!this.transport.getComputerInputPosture)throw Error(\"Computer input posture requires a current interaction transport.\");return await this.transport.getComputerInputPosture(this.workspaceId,this.id,e)}async heartbeat(e={}){return await this.transport.heartbeatComputerSession(this.workspaceId,this.id,e)}async end(e={operationId:crypto.randomUUID()},t={}){return await this.transport.endComputerSession(this.workspaceId,this.id,e,t)}}class pt{transport;workspaceId;computerSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.computerSessionId=n}async read(e={}){let t=await this.transport.readComputerClipboard(this.workspaceId,this.computerSessionId,e);if(t.computerSessionId!==this.computerSessionId)throw Error(\"Computer clipboard belongs to another ComputerSession\");return t}}class gt{transport;workspaceId;computerSessionId;constructor(e,t,n){this.transport=e;this.workspaceId=t;this.computerSessionId=n}async list(e={}){return await this.transport.listComputerTargets(this.workspaceId,this.computerSessionId,e)}}function mt(e){if(!bt(e))throw Error(\"browser frame metadata is invalid\");let t=new Set([\"frameId\",\"browserSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"documentGeneration\",\"sequence\",\"mediaType\",\"width\",\"height\",\"deviceScaleFactor\",\"scrollX\",\"scrollY\",\"capturedAt\"]);if(Object.keys(e).some((i)=>!t.has(i)))throw Error(\"browser frame metadata contains unknown fields\");let n=[\"frameId\",\"browserSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"documentGeneration\",\"mediaType\",\"capturedAt\"];for(let i of n){let o=e[i],c=i===\"targetId\"?512:i===\"capturedAt\"?128:256;if(typeof o!==\"string\"||o.length<1||Rt(o)>c)throw Error(\"browser frame metadata is invalid\")}let s=[\"sequence\",\"width\",\"height\",\"deviceScaleFactor\",\"scrollX\",\"scrollY\"];for(let i of s)if(typeof e[i]!==\"number\"||!Number.isFinite(e[i]))throw Error(\"browser frame metadata is invalid\");let r=e;if(!Number.isSafeInteger(r.sequence)||r.sequence<0||!Number.isSafeInteger(r.width)||!Number.isSafeInteger(r.height))throw Error(\"browser frame metadata integers are invalid\");if(ft(r.width,r.height),r.deviceScaleFactor<=0||r.deviceScaleFactor>16||Math.abs(r.scrollX)>1e9||Math.abs(r.scrollY)>1e9)throw Error(\"browser frame geometry metadata is invalid\");if(r.mediaType!==\"image/jpeg\"&&r.mediaType!==\"image/png\")throw Error(\"browser frame media type is invalid\");if(!ht(r.browserSessionId))throw Error(\"browser frame session id is invalid\");if(!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u.test(r.controllerGeneration))throw Error(\"browser frame controller generation is invalid\");if(!Number.isFinite(new Date(r.capturedAt).valueOf()))throw Error(\"browser frame timestamp is invalid\");return r}function Cn(e){if(!bt(e))throw Error(\"computer frame metadata is invalid\");let t=new Set([\"frameId\",\"computerSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"sequence\",\"mediaType\",\"width\",\"height\",\"capturedAt\",\"sha256\"]);if(Object.keys(e).some((r)=>!t.has(r)))throw Error(\"computer frame metadata contains unknown fields\");let n=[\"frameId\",\"computerSessionId\",\"controllerGeneration\",\"targetId\",\"targetGeneration\",\"mediaType\",\"capturedAt\",\"sha256\"];for(let r of n){let i=e[r],o=r===\"targetId\"?512:r===\"capturedAt\"?128:256;if(typeof i!==\"string\"||i.length<1||Rt(i)>o)throw Error(\"computer frame metadata is invalid\")}let s=e;if(!Number.isSafeInteger(s.sequence)||s.sequence<0||!Number.isSafeInteger(s.width)||!Number.isSafeInteger(s.height))throw Error(\"computer frame metadata integers are invalid\");if(ft(s.width,s.height),s.mediaType!==\"image/jpeg\"&&s.mediaType!==\"image/png\")throw Error(\"computer frame media type is invalid\");if(!ht(s.computerSessionId))throw Error(\"computer frame session id is invalid\");if(!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u.test(s.controllerGeneration))throw Error(\"computer frame controller generation is invalid\");if(!Number.isFinite(new Date(s.capturedAt).valueOf()))throw Error(\"computer frame timestamp is invalid\");if(!/^[0-9a-f]{64}$/u.test(s.sha256))throw Error(\"computer frame digest is invalid\");return s}function yt(e){if(!e||e.length>32768||!/^[A-Za-z0-9_-]+$/u.test(e))throw Error(\"computer frame metadata header is invalid\");let t=e.replace(/-/gu,\"+\").replace(/_/gu,\"/\"),n=t.padEnd(Math.ceil(t.length/4)*4,\"=\"),s;try{s=atob(n)}catch{throw Error(\"computer frame metadata header is invalid\")}let r=Uint8Array.from(s,(o)=>o.charCodeAt(0)),i;try{i=JSON.parse(new TextDecoder(\"utf-8\",{fatal:!0}).decode(r))}catch{throw Error(\"computer frame metadata header is invalid\")}return Cn(i)}function An(e,t){let n=e.filter((s)=>![\"ending\",\"ended\",\"failed\",\"lost\"].includes(s.lifecycle)&&s.associations.some((r)=>r.sessionId===t));return n.sort((s,r)=>Ne(r,t)-Ne(s,t)),n[0]??null}function Pn(e,t){let n=e.filter((s)=>[\"starting\",\"active\",\"restoring\"].includes(s.lifecycle)&&s.associations.some((r)=>r.sessionId===t));return n.sort((s,r)=>Je(r,t)-Je(s,t)),n[0]??null}function Ne(e,t){let n=e.associations.filter((r)=>r.sessionId===t).map((r)=>Date.parse(r.lastUsedAt)).filter(Number.isFinite).reduce((r,i)=>Math.max(r,i),0),s=Date.parse(e.lastUsedAt);return Math.max(n,Number.isFinite(s)?s:0)}function Je(e,t){let n=e.associations.filter((r)=>r.sessionId===t).map((r)=>Date.parse(r.lastUsedAt)).filter(Number.isFinite).reduce((r,i)=>Math.max(r,i),0),s=Date.parse(e.lastUsedAt);return Math.max(n,Number.isFinite(s)?s:0)}function ft(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<1||t<1||e>Fe||t>Fe||e*t>In)throw Error(\"browser image dimensions exceed their bounded envelope\")}function Rt(e){return new TextEncoder().encode(e).byteLength}function ht(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(e)}function bt(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}var L=\"2026-09-plugins-and-skills-v1\",he=\"x-opengeni-api-contract\",re=\"x-opengeni-correlation-id\";var ie=1048576,wt=33554432;var St=536870912;var ae=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,vt=/^[0-9a-f]{64}$/,kt=/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/,It=/^\\/v1\\/workspaces\\/([0-9a-f-]+)\\/artifacts\\/([0-9a-f-]+)\\/content$/;function Ct(e,t){if(!B(e,On))return null;let n=e;if(n.available!==!0||n.kind!==\"file\"||typeof n.artifactId!==\"string\"||!ae.test(n.artifactId)||typeof n.contentType!==\"string\"||!/^[a-z0-9][a-z0-9!#$&^_.+-]{0,62}\\/[a-z0-9][a-z0-9!#$&^_.+-]{0,62}$/.test(n.contentType)||!oe(n.originalBytes,1,26214399)||typeof n.sha256!==\"string\"||!vt.test(n.sha256)||typeof n.retainedAt!==\"string\"||n.retainedAt.length>64||!kt.test(n.retainedAt)||!Number.isFinite(Date.parse(n.retainedAt))||!B(n.retention,Pt)||!B(n.retrieval,xt))return null;let s=n.retention;if(s.policy!==\"workspace_file\"||s.expiresAt!==null)return null;let r=n.retrieval;if(r.method!==\"GET\"||r.acceptRanges!==\"bytes\"||r.maxRangeBytes!==1048576||typeof r.path!==\"string\"||r.path.length>256)return null;let i=It.exec(r.path);if(!i||!ae.test(i[1]??\"\")||i[2]!==n.artifactId||t!==void 0&&i[1]!==t)return null;return e}function At(e,t){if(!B(e,xn))return null;let n=e;if(n.available!==!0||n.kind!==\"generated_image\"||typeof n.artifactId!==\"string\"||!ae.test(n.artifactId)||![\"image/png\",\"image/jpeg\",\"image/webp\"].includes(String(n.contentType))||!oe(n.originalBytes,1,67108864)||typeof n.sha256!==\"string\"||!vt.test(n.sha256)||typeof n.retainedAt!==\"string\"||n.retainedAt.length>64||!kt.test(n.retainedAt)||!Number.isFinite(Date.parse(n.retainedAt))||!B(n.dimensions,qn)||!B(n.retention,Pt)||!B(n.retrieval,xt))return null;let s=n.dimensions;if(!oe(s.width,1,16384)||!oe(s.height,1,16384)||Number(s.width)*Number(s.height)>67108864)return null;let r=n.retention;if(r.policy!==\"workspace_file\"||r.expiresAt!==null)return null;let i=n.retrieval;if(i.method!==\"GET\"||i.acceptRanges!==\"bytes\"||i.maxRangeBytes!==1048576||typeof i.path!==\"string\"||i.path.length>256)return null;let o=It.exec(i.path);if(!o||!ae.test(o[1]??\"\")||o[2]!==n.artifactId||t!==void 0&&o[1]!==t)return null;return e}var xn=new Set([\"available\",\"artifactId\",\"kind\",\"contentType\",\"originalBytes\",\"sha256\",\"retainedAt\",\"dimensions\",\"retention\",\"retrieval\"]),On=new Set([\"available\",\"artifactId\",\"kind\",\"contentType\",\"originalBytes\",\"sha256\",\"retainedAt\",\"retention\",\"retrieval\"]),qn=new Set([\"width\",\"height\"]),Pt=new Set([\"policy\",\"expiresAt\"]),xt=new Set([\"method\",\"path\",\"acceptRanges\",\"maxRangeBytes\"]);function B(e,t){return e!==null&&typeof e===\"object\"&&!Array.isArray(e)&&Object.keys(e).length===t.size&&Object.keys(e).every((n)=>t.has(n))}function oe(e,t,n){return Number.isSafeInteger(e)&&Number(e)>=t&&Number(e)<=n}function Se(e){let{limit:t,parentSessionId:n,scopeSubjectId:s}=e,r={};if(e.originSiteId)r.originSiteId=e.originSiteId;if(t!==void 0)r.limit=String(t);if(n!==void 0)r.parentSessionId=n??\"null\";if(s!==void 0)r.scopeSubjectId=s;return r}var ns=[\"originSiteId\",\"channelId\",\"createdBy\",\"updatedFrom\",\"updatedBefore\",\"createdFrom\",\"createdBefore\"],ss=[\"updatedFrom\",\"updatedBefore\",\"createdFrom\",\"createdBefore\",\"sortBy\",\"archiveStatus\"];function rs(e){return Boolean(e.needsYouOnly)||ns.some((t)=>e[t]!==void 0)}function D(e){return Error(`The connected Opengeni API does not support ${e}`)}function p(e,t){return`/v1/workspaces/${e}/sessions/${t}`}function is(e){if(e.apiContract)return e.apiContract;return typeof window<\"u\"&&typeof document<\"u\"&&!e.apiKey?\"strict\":\"compatible\"}function Ut(e,t){let n,s,r=new Promise((i,o)=>{n=i,s=o});return{controller:new AbortController,consumers:0,generation:e,promise:r,resolve:n,reject:s,started:!1,listeners:new Set(t?[t]:[])}}function $t(e){if(Object.prototype.hasOwnProperty.call(e,\"tools\"))throw TypeError(\"Message-level tools are not supported; update the session tool policy before sending.\")}function Bt(e){if(!(\"agentConfig\"in e)||!e.agentConfig?.machineTarget)return e;let{workingDir:t,...n}=e.agentConfig.machineTarget;if(t===void 0)return e;let s=t.trim();return{...e,agentConfig:{...e.agentConfig,machineTarget:{...n,...s?{workingDir:s}:{}}}}}function os(e){return{forWorkspace(t){let n=t.trim();if(!n)throw TypeError(\"workspaceId is required\");let s,r=()=>s??=Promise.resolve().then(() => (ye(),Te)).then(({OpenGeniToolsClient:o})=>new o(e).forWorkspace(n)),i=(o)=>new Proxy(async(...c)=>{let a=await r();for(let d of o)a=a[d];if(typeof a!==\"function\")throw TypeError(\"Opengeni tool path is not callable\");return await Reflect.apply(a,void 0,c)},{get:(c,a)=>{if(a===\"then\")return;if(typeof a!==\"string\")return;return i([...o,a])}});return new Proxy(Object.create(null),{get:(o,c)=>{if(c===\"then\")return;if(typeof c!==\"string\")return;return i([c])}})}}}class ve{externalActorHeader;serviceInitiatorHeader;serviceContextHeader;baseUrl;options;fetchImpl;sessionCommandTimeoutMs;apiContractStrict;active=new Map;generations=new Map;queued=new Map;interaction;tools;constructor(e){this.baseUrl=e.baseUrl.replace(/\\/+$/,\"\"),this.options=e,this.fetchImpl=Me(e.fetch??((n,s)=>fetch(n,s)),e.onDeprecation);let t=e.sessionCommandTimeoutMs??15000;if(!Number.isFinite(t)||t<=0)throw RangeError(\"sessionCommandTimeoutMs must be a finite positive number\");this.sessionCommandTimeoutMs=t,this.apiContractStrict=is(e)===\"strict\",this.interaction=new fe(this),this.tools=os(this)}async transcribeAudio(e,t){let n=crypto.randomUUID(),s=new FormData,r=ds(t.mimeType),i=t.audio instanceof File?t.audio:t.audio instanceof Uint8Array?new File([Uint8Array.from(t.audio)],r,{type:t.mimeType}):new File([t.audio],r,{type:t.mimeType||t.audio.type});if(s.append(\"audio\",i,r),s.append(\"mimeType\",t.mimeType),t.durationSeconds!==void 0)s.append(\"durationSeconds\",String(t.durationSeconds));let o;try{o=await this.fetchImpl(this.url(`/v1/workspaces/${e}/transcriptions`),{method:\"POST\",headers:{...this.headers(n),Accept:\"application/json\"},body:s,...t.signal?{signal:t.signal}:{}})}catch(a){if(t.signal?.aborted)throw a;throw z(n)}if(I(o,this.apiContractStrict),!o.ok)throw await v(o,{method:\"POST\",correlationId:n});await j(o,{method:\"POST\",correlationId:n});let c;try{c=await o.json()}catch{throw new m(o.status,\"Invalid transcription response.\",{code:\"invalid_response\",mutation:!0,correlationId:n})}if(!as(c))throw new m(o.status,\"Invalid transcription response.\",{code:\"invalid_response\",mutation:!0,correlationId:n});return c}async createTranscriptionRecording(e,t){return K(await this.requestJson(\"POST\",`/v1/workspaces/${e}/transcription-recordings`,{recordingId:t.recordingId,mimeType:t.mimeType},{},t.signal?{signal:t.signal}:{}))}async getTranscriptionRecording(e,t,n={}){return K(await this.requestJson(\"GET\",`/v1/workspaces/${e}/transcription-recordings/${t}`,void 0,{},n.signal?{signal:n.signal}:{}))}async listTranscriptionRecordings(e,t={}){let n=await this.requestJson(\"GET\",`/v1/workspaces/${e}/transcription-recordings`,void 0,{},t.signal?{signal:t.signal}:{});if(!us(n))throw new m(502,\"Invalid transcription recording list response.\",{code:\"invalid_response\"});return n}async uploadTranscriptionRecordingChunk(e,t,n,s){let r=crypto.randomUUID(),i;try{i=await this.fetchImpl(this.url(`/v1/workspaces/${e}/transcription-recordings/${t}/chunks/${n}`),{method:\"PUT\",headers:{...this.headers(r),Accept:\"application/json\",\"Content-Type\":s.mimeType,\"x-opengeni-chunk-sha256\":s.sha256,\"x-opengeni-chunk-start-milliseconds\":String(s.startMilliseconds),\"x-opengeni-chunk-duration-milliseconds\":String(s.durationMilliseconds)},body:s.audio instanceof Uint8Array?Uint8Array.from(s.audio):s.audio,...s.signal?{signal:s.signal}:{}})}catch(c){if(s.signal?.aborted)throw c;throw z(r)}if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:\"PUT\",correlationId:r});await j(i,{method:\"PUT\",correlationId:r});let o=await i.json().catch(()=>null);if(!cs(o))throw new m(i.status,\"Invalid transcription chunk response.\",{code:\"invalid_response\",mutation:!0,correlationId:r});return o}async finalizeTranscriptionRecording(e,t,n){return K(await this.requestJson(\"POST\",`/v1/workspaces/${e}/transcription-recordings/${t}/finalize`,{chunkCount:n.chunkCount,totalBytes:n.totalBytes,totalDurationMilliseconds:n.totalDurationMilliseconds},{},n.signal?{signal:n.signal}:{}))}async processNextTranscriptionRecordingSegment(e,t,n={}){return K(await this.requestJson(\"POST\",`/v1/workspaces/${e}/transcription-recordings/${t}/process-next`,{},{},n.signal?{signal:n.signal}:{}))}async discardTranscriptionRecording(e,t,n={}){return K(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/transcription-recordings/${t}`,void 0,{},n.signal?{signal:n.signal}:{}))}async createSession(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(e)}/sessions`,t)}async getNewSessionDraft(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/new-session-draft`,void 0,{},t)}async saveNewSessionDraft(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/new-session-draft`,t)}async getWorkspaceCredentialProvider(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/credential-provider`)}async putWorkspaceCredentialProvider(e,t){return this.requestJson(\"PUT\",`/v1/workspaces/${e}/credential-provider`,t)}async deleteWorkspaceCredentialProvider(e){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/credential-provider`)}async listWorkspaceWebhooks(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/webhooks`)}async createWorkspaceWebhook(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/webhooks`,t)}async updateWorkspaceWebhook(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/webhooks/${t}`,n)}async deleteWorkspaceWebhook(e,t){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/webhooks/${t}`)}async listWorkspaceWebhookDeliveries(e,t,n={}){return this.requestJson(\"GET\",`/v1/workspaces/${e}/webhooks/${t}/deliveries`,void 0,n.limit!==void 0?{limit:String(n.limit)}:{})}async redeliverWorkspaceWebhookDelivery(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/webhooks/${t}/deliveries/${n}/redeliver`)}async listWorkspaceSandboxImages(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/sandbox-images`)}async createFeedback(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/feedback`,t)}async listOwnFeedback(e,t={}){let n=new URLSearchParams;if(t.sessionId)n.set(\"sessionId\",t.sessionId);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.includeTurns!==void 0)n.set(\"includeTurns\",String(t.includeTurns));return this.requestJson(\"GET\",`/v1/workspaces/${e}/feedback${n.size?`?${n}`:\"\"}`)}async getSession(e,t,n={}){let s=p(e,t);return await this.sharedRead(s,(r)=>this.requestJson(\"GET\",s,void 0,{},{signal:r}),n)}async getSessionModelContext(e,t){return await this.requestJson(\"GET\",`${p(e,t)}/model-context`)}async updateSession(e,t,n){return await this.requestJson(\"PATCH\",p(e,t),n)}async updateSessionVariableSets(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/variable-sets`,n)}async getSessionTenancyCreateCapabilities(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/session-tenancy/capabilities`)}async updateSessionVisibility(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/visibility`,n)}async forkSession(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/forks`,n)}async updateSessionToolPolicy(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/tool-policy`,n)}async updateSessionAgent(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/agent`,n)}async updateSessionMcpApprovalPolicy(e,t,n,s){return await this.requestJson(\"PATCH\",`${p(e,t)}/mcp-servers/${encodeURIComponent(n)}/approval-policy`,s)}async searchSessionMessages(e,t,n={}){return this.requestJson(\"GET\",`/v1/workspaces/${e}/session-message-search`,void 0,{query:t.query,...t.sessionId!==void 0?{sessionId:t.sessionId}:{},...t.groupBy!==void 0?{groupBy:t.groupBy}:{},...t.archiveStatus!==void 0?{archiveStatus:t.archiveStatus}:{},...t.limit!==void 0?{limit:String(t.limit)}:{},...t.cursor!==void 0?{cursor:t.cursor}:{}},n)}async getSessionMessagePreview(e,t,n,s={}){return this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/events/${encodeURIComponent(n.eventId)}/message-preview`,void 0,{sequence:String(n.sequence)},s)}async listSessions(e,t={}){if(t.search?.trim()||t.originSiteId){let n=await this.listSessionPage(e,t);return[...n.pinned,...n.sessions]}return await this.requestJson(\"GET\",`/v1/workspaces/${e}/sessions`,void 0,Se(t))}async listSessionBackgroundCommands(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/background-commands`,void 0,{},n)}async cancelSessionBackgroundCommand(e,t,n){return await this.requestJson(\"DELETE\",`${p(e,t)}/background-commands/${n}`)}async listSessionPage(e,t={}){let n=await this.requestSessionPage(`/v1/workspaces/${e}/sessions`,t);if(\"projection\"in n)throw D(\"full session details\");return n}async listSessionSummaryPage(e,t={}){let n=await this.requestSessionPage(`/v1/workspaces/${e}/sessions`,t,!0);if(\"projection\"in n)return n;let{sessionListEntry:s}=await Promise.resolve().then(() => (Mt(),Gt));return{...n,projection:\"summary\",pinned:n.pinned.map(s),sessions:n.sessions.map(s)}}async requestSessionPage(e,t,n=!1){let s=t.search?.trim(),r;try{let a={view:\"page\",...Se(t)};if(n)a.projection=\"summary\";if(t.cursor!==void 0)a.cursor=t.cursor;if(s)a.search=s;if(t.channelId!==void 0)a.channelId=t.channelId??\"null\";if(t.createdBy)a.createdByKind=t.createdBy.kind,a.createdBySubjectId=t.createdBy.subjectId;for(let d of ss){let l=t[d];if(l)a[d]=l}if(t.pinsOnly)a.pinsOnly=\"true\";if(t.includeTotals)a.includeTotals=\"true\";if(t.needsYouOnly)a.needsYouOnly=\"true\";if(t.includePinned===!1)a.includePinned=\"false\";if(t.archivedOnly)a.archivedOnly=\"true\";r=await this.requestJson(\"GET\",e,void 0,a,{signal:t.signal})}catch(a){if(a instanceof m&&a.status===410)throw new ge(a.status,a.body,{...a.code?{code:a.code}:{},retryable:a.retryable,...a.correlationId?{correlationId:a.correlationId}:{},outcomeUnknown:a.outcomeUnknown,displayMessage:\"The session list changed \u2014 refresh and try again.\"});throw a}let i=r,o=Array.isArray(i),c=rs(t);if(t.sortBy!==void 0&&(o||i.sortBy!==t.sortBy)||t.archiveStatus!==void 0&&(o||i.archiveStatus!==t.archiveStatus))throw D(\"the requested session sorting/archive filter\");if(o){let a=t.includeTotals?\"complete session totals\":t.cursor?\"stable session-page cursors\":s?\"session search\":t.pinsOnly?\"pins-only session lists\":t.archivedOnly?\"archived session lists\":c?\"filtered session lists\":null;if(a)throw D(a);return{pinned:[],sessions:i,nextCursor:null}}if(t.includeTotals&&i.totals===void 0)throw D(\"complete session totals\");if(t.needsYouOnly&&i.needsYouOnly!==!0)throw D(\"attention session filtering\");if(c&&i.filtersApplied!==!0)throw D(\"filtered session lists\");if(t.originSiteId&&(!i.originSiteId||t.originSiteId!==\"current\"&&i.originSiteId!==t.originSiteId))throw D(\"Site-filtered session lists\");return i}async listAgentTopology(e,t={}){let n=t.query?.trim()||t.search?.trim();if(n&&t.subject)throw TypeError(\"listAgentTopology query cannot be combined with an exact subject\");let s=Se(t);if(t.rootSessionId)s.rootSessionId=t.rootSessionId;if(t.cursor)s.cursor=t.cursor;if(n)s.query=n;if(t.statuses?.length)s.statuses=t.statuses.join(\",\");if(t.activeOnly!==void 0)s.activeOnly=t.activeOnly?\"true\":\"false\";if(t.recentHours!==void 0)s.recentHours=String(t.recentHours);if(t.subject)s.subjectNamespace=t.subject.namespace,s.subjectType=t.subject.type,s.subjectKey=t.subject.canonicalKey;if(t.claimLimit!==void 0)s.claimLimit=String(t.claimLimit);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/agent-topology`,void 0,s)}async updateSessionPin(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/pin`,n)}async updateSessionAttention(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/attention`,n)}async updateSessionArchive(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/archive`,n)}async deleteSession(e,t){return await this.requestJson(\"DELETE\",p(e,t))}async getSessionLineage(e,t,n={}){let s=`${p(e,t)}/lineage`;return await this.sharedRead(s,(r)=>this.requestJson(\"GET\",s,void 0,{},{signal:r}),n)}sharedRead(e,t,n={}){if(n.signal?.aborted)return Promise.reject(n.signal.reason??new DOMException(\"Request aborted\",\"AbortError\"));let s=this.active.get(e);if(s){if(!n.fresh)return this.observeRead(s,n.onRequestStart),this.consumeSharedRead(e,s,n.signal);let a=s.generation+1,d=this.queued.get(e);if(d&&d.generation>=a)return this.observeRead(d,n.onRequestStart),this.consumeSharedRead(e,d,n.signal);let l=d?.promise??s.promise;return this.queueRead(e,l,a,t,n)}let r=this.queued.get(e);if(r&&(!n.fresh||!r.started))return this.observeRead(r,n.onRequestStart),this.consumeSharedRead(e,r,n.signal);if(r)return this.queueRead(e,r.promise,r.generation+1,t,n);let i=(this.generations.get(e)??0)+1,o=Ut(i,n.onRequestStart),c=this.consumeSharedRead(e,o,n.signal);return this.launchRead(e,o,t),c}queueRead(e,t,n,s,r){let i=Ut(n,r.onRequestStart),o=this.consumeSharedRead(e,i,r.signal);this.queued.set(e,i);let c=()=>this.launchRead(e,i,s);t.then(c,c);let a=()=>{if(this.queued.get(e)!==i)return;if(this.queued.delete(e),!this.active.has(e))this.generations.delete(e)};return i.promise.then(a,a),o}launchRead(e,t,n){if(t.controller.signal.aborted)return;t.started=!0,this.generations.set(e,t.generation),this.active.set(e,t);try{t.stamp=this.options.beginSharedRead?.()}catch{}for(let i of t.listeners)try{i(t.stamp)}catch{}t.listeners.clear();let s=()=>{if(this.active.get(e)!==t)return;if(this.active.delete(e),!this.queued.has(e))this.generations.delete(e)},r;try{r=n(t.controller.signal)}catch(i){s(),t.reject(i);return}r.then((i)=>{s(),t.resolve(i)},(i)=>{s(),t.reject(i)})}consumeSharedRead(e,t,n){t.consumers+=1;let s=!1,r=()=>{if(s)return;if(s=!0,t.consumers-=1,!n?.aborted||t.consumers>0)return;let o=n.reason;if(t.controller.abort(o),this.active.get(e)===t)this.active.delete(e);if(this.queued.get(e)===t)this.queued.delete(e);if(!this.active.has(e)&&!this.queued.has(e))this.generations.delete(e);t.reject(o)};return n?.addEventListener(\"abort\",r,{once:!0}),W(t.promise,n).finally(()=>{n?.removeEventListener(\"abort\",r),r()})}observeRead(e,t){if(!t)return;if(!e.started){e.listeners.add(t);return}if(e.stamp===void 0)return;try{t(e.stamp)}catch{}}async negotiateCodexRealtimeWebrtc(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/webrtc`,n,{},{signal:s.signal})}async negotiateGatewayRealtime(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/gateway`,n,{},{signal:s.signal})}async negotiateXaiSubscriptionRealtime(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/supergrok`,n,{},{signal:s.signal})}async activateCodexRealtimeConnection(e,t,n,s,r,i={}){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/${n}/connections/${s}/activate`,r,{},{signal:i.signal})}async beginSessionRealtime(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/realtime`,n)}async heartbeatSessionRealtime(e,t,n,s){return await this.requestJson(\"PATCH\",`${p(e,t)}/realtime/${n}/heartbeat`,s)}async syncSessionRealtimeLedger(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/realtime/${n}/sync`,s)}async endSessionRealtime(e,t,n,s){return await this.requestJson(\"DELETE\",`${p(e,t)}/realtime/${n}`,s)}async listTurns(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/turns`,void 0,{...n.limit!==void 0?{limit:String(n.limit)}:{},...n.latestStarted?{latestStarted:\"1\"}:{}},{signal:n.signal})}async getLatestStartedTurn(e,t,n={}){return(await this.listTurns(e,t,{latestStarted:!0,signal:n.signal}))[0]??null}async listMachines(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/machines`,void 0,{...t.sessionId!==void 0?{sessionId:t.sessionId}:{}},{signal:t.signal})}async updateMachineAgent(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/machines/${t}/update`)}async updateMachineOperationPolicy(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/machines/${t}/operation-policy`,n)}async machineMetricsSeries(e,t,n={}){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/machines/${t}/metrics/series`,void 0,{...n.window!==void 0?{window:n.window}:{}})).samples}async removeEnrollment(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/${t}/revoke`,n)}async lookupDeviceEnrollment(e){return await this.requestJson(\"POST\",\"/v1/enrollments/device/lookup\",{userCode:e})}async approveDeviceEnrollment(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/device/approve`,{userCode:t.userCode,allowScreenControl:t.allowScreenControl??!1,...t.scope?{scope:t.scope}:{}})}async denyDeviceEnrollment(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/device/deny`,{userCode:t.userCode})}async mintEnrollToken(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/enrollments/token`,{allowScreenControl:t.allowScreenControl??!1})}async swapActiveSandbox(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/active-sandbox`,n)}async listScheduledTasks(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks`,void 0,{...t.offset!==void 0?{offset:String(t.offset)}:{},...t.sessionId?{sessionId:t.sessionId}:{},...t.limit!==void 0?{limit:String(t.limit)}:{}})}async getScheduledTask(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks/${t}`)}async listScheduledTaskSlackChannels(e,t,n){let s=new URLSearchParams({connectionId:t});if(n)s.set(\"cursor\",n);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-task-slack-channels?${s}`)}async listEvents(e,t,n={}){return(await this.listEventPage(e,t,n)).events}async listEventPage(e,t,n={}){if(n.latest&&[\"includeTypes\",\"excludeTypes\",\"includeClasses\",\"excludeClasses\"].some((S)=>Object.prototype.hasOwnProperty.call(n,S)))throw TypeError(\"latest cannot be combined with event filters\");if(n.resultMode===\"compact\"&&!n.latest)throw TypeError(\"resultMode=compact requires latest\");let s=n.resultMode===\"compact\"?null:n,r=crypto.randomUUID(),i=await this.fetchImpl(this.url(`${p(e,t)}/events`,{...s?.after!==void 0?{after:String(s.after)}:{},...s?.before!==void 0?{before:String(s.before)}:{},...s?.limit!==void 0?{limit:String(s.limit)}:{},...s?.compact?{compact:\"1\"}:{},...n.mode?{mode:n.mode}:{},...s?.direction?{direction:s.direction}:{},...n.payloadMode?{payloadMode:n.payloadMode}:{},...n.resultMode?{resultMode:n.resultMode}:{},...s?.includeTypes?.length?{includeTypes:s.includeTypes.join(\",\")}:{},...s?.excludeTypes?.length?{excludeTypes:s.excludeTypes.join(\",\")}:{},...s?.includeClasses?.length?{includeClasses:s.includeClasses.join(\",\")}:{},...s?.excludeClasses?.length?{excludeClasses:s.excludeClasses.join(\",\")}:{},...n.latest?{latest:n.latest}:{}}),{method:\"GET\",headers:{...this.headers(r),Accept:\"application/json\"}});if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:\"GET\",correlationId:r});await j(i,{method:\"GET\",correlationId:r});let o=await i.json();if(n.resultMode===\"compact\")return o;let c=o,a=(S)=>{let x=i.headers.get(S);if(x===null)return null;let J=Number(x);return Number.isSafeInteger(J)&&J>=0?J:null},d=i.headers.get(\"X-OpenGeni-Event-Mode\")===\"forensic\"?\"forensic\":\"monitoring\",l=i.headers.get(\"X-OpenGeni-Event-Direction\")===\"after\"?\"after\":\"before\",g=i.headers.get(\"X-OpenGeni-Payload-Mode\"),u=g===\"none\"||g===\"full\"?g:\"summary\",y=a(\"X-OpenGeni-Covered-First\"),w=a(\"X-OpenGeni-Covered-Last\"),f=a(\"X-OpenGeni-Page-Bytes\")??new TextEncoder().encode(JSON.stringify(c)).byteLength,h=a(\"X-OpenGeni-Page-Max-Bytes\")??1048576,R=i.headers.get(\"X-OpenGeni-Truncated-By\"),b=R===\"count\"||R===\"bytes\"||R===\"http_bytes\"?R:null;return{events:c,mode:d,payloadMode:u,direction:l,bytes:f,maxBytes:h,truncated:i.headers.get(\"X-OpenGeni-Page-Truncated\")===\"true\",hasMore:i.headers.get(\"X-OpenGeni-Has-More\")===\"true\",truncatedBy:b,coveredSequence:y===null||w===null?null:{first:y,last:w},nextAfter:a(\"X-OpenGeni-Next-After\"),nextBefore:a(\"X-OpenGeni-Next-Before\"),forensicExact:i.headers.get(\"X-OpenGeni-Forensic-Exact\")===\"true\"}}async getLatestEventResult(e,t,n={latest:\"terminal\"}){return await this.listEventPage(e,t,{...n,resultMode:\"compact\"})}async sendEvent(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/events`,n)}async sendMessage(e,t,n){let s=typeof n===\"string\"?{text:n}:n;$t(s);let{clientEventId:r,...i}=s;return await this.sendEvent(e,t,{type:\"user.message\",...r!==void 0?{clientEventId:r}:{},payload:i})}async pauseSession(e,t,n={}){return await this.controlSession(e,t,{action:\"pause\",clientEventId:n.clientEventId??crypto.randomUUID(),...n.reason?{reason:n.reason}:{},...n.expectedControlEtag?{expectedControlEtag:n.expectedControlEtag}:{}})}async sendApprovalDecision(e,t,n){let{clientEventId:s,...r}=n;return await this.sendEvent(e,t,{type:\"user.approvalDecision\",...s!==void 0?{clientEventId:s}:{},payload:r})}async listHumanInputRequests(e,t,n={}){return(await this.requestJson(\"GET\",`${p(e,t)}/human-input-requests`,void 0,n.status?{status:n.status}:void 0)).requests}async getHumanInputRequest(e,t,n){return await this.requestJson(\"GET\",`${p(e,t)}/human-input-requests/${n}`)}async submitHumanInputResponse(e,t,n,s,r={}){return await this.sendEvent(e,t,{type:\"user.humanInputResponse\",...r.clientEventId?{clientEventId:r.clientEventId}:{},payload:{requestId:n,response:s}})}streamEvents(e,t,n={}){return _e(this.eventStreamTransport(e,t),n)}eventStreamTransport(e,t){return{openStream:async(n,s)=>await this.openEventStream(e,t,{after:n,...s?{signal:s}:{}}),listEvents:async(n,s)=>await this.listEvents(e,t,{after:n,limit:s})}}async openEventStream(e,t,n={}){let s=this.url(`${p(e,t)}/events/stream`,{after:String(n.after??0)}),r=crypto.randomUUID(),i=await this.fetchImpl(s,{method:\"GET\",headers:{...this.headers(r),Accept:\"text/event-stream\"},...n.signal?{signal:n.signal}:{}});if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:\"GET\",correlationId:r});if(!i.body)throw new m(i.status,\"SSE response did not include a readable body\");return i.body}async getQueue(e,t){let n=`${p(e,t)}/queue`;return await this.sharedRead(n,()=>this.requestSessionCommand(\"GET\",n))}async moveQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/move`,s)}async editQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/edit`,s)}async steerQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/steer`,s)}async deleteQueueItem(e,t,n,s){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/queue/${n}/delete`,s)}async getComposerDraft(e,t,n={}){return await this.requestSessionCommand(\"GET\",`${p(e,t)}/composer-draft`,void 0,n)}async saveComposerDraft(e,t,n){return await this.requestSessionCommand(\"PUT\",`${p(e,t)}/composer-draft`,n)}async submitComposerDraft(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/composer-draft/submit`,n)}async getSandboxRecovery(e,t){return this.requestJson(\"GET\",`${p(e,t)}/sandbox-recovery`)}async recoverSandbox(e,t,n){return this.requestSessionCommand(\"POST\",`${p(e,t)}/sandbox-recovery`,n)}async retrySession(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/retry`,n)}async controlSession(e,t,n){return await this.requestSessionCommand(\"POST\",`${p(e,t)}/control`,n)}async resumeSession(e,t,n={}){return await this.controlSession(e,t,{action:\"resume\",clientEventId:n.clientEventId??crypto.randomUUID(),...n.reason?{reason:n.reason}:{},...n.expectedControlEtag?{expectedControlEtag:n.expectedControlEtag}:{}})}async cancelSession(e,t,n={}){return await this.controlSession(e,t,{action:\"cancel\",clientEventId:n.clientEventId??crypto.randomUUID(),...n.reason?{reason:n.reason}:{},...n.expectedControlEtag?{expectedControlEtag:n.expectedControlEtag}:{}})}async setWorkspacePauseTimer(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/pause-timer`,t)}async setWorkspaceInferenceState(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/inference-control`,t)}async listWorkspaceControlEvents(e,t={}){return(await this.listWorkspaceControlEventPage(e,t)).events}async listWorkspaceControlEventPage(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/control-events`,{...t.after!==void 0?{after:String(t.after)}:{},...t.limit!==void 0?{limit:String(t.limit)}:{}}),{method:\"GET\",headers:{...this.headers(n),Accept:\"application/json\"}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});await j(s,{method:\"GET\",correlationId:n});let r=await s.json(),i=s.headers.get(\"X-OpenGeni-Page-Bytes\"),o=s.headers.get(\"X-OpenGeni-Next-After\"),c=i===null?Number.NaN:Number(i),a=o===null?null:Number(o);return{events:r,bytes:Number.isSafeInteger(c)&&c>=0?c:new TextEncoder().encode(JSON.stringify(r)).byteLength,truncated:s.headers.get(\"X-OpenGeni-Page-Truncated\")===\"true\",nextAfter:a!==null&&Number.isSafeInteger(a)&&a>=0?a:null}}streamWorkspaceControlEvents(e,t={}){return $e(this.workspaceControlStreamTransport(e),t)}streamWorkspaceLiveEvents(e,t={}){return We(this.workspaceLiveStreamTransport(e),t)}workspaceLiveStreamTransport(e){return{openStream:async(t,n,s)=>await this.openWorkspaceLiveEventStream(e,{controlAfter:t,interactionAfter:n,...s?{signal:s}:{}})}}async openWorkspaceLiveEventStream(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/live-events/stream`,{controlAfter:String(t.controlAfter??0),interactionAfter:String(t.interactionAfter??0)}),{method:\"GET\",headers:{...this.headers(n),Accept:\"text/event-stream\"},...t.signal?{signal:t.signal}:{}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(!s.body)throw new m(s.status,\"SSE response did not include a readable body\");return s.body}workspaceControlStreamTransport(e){return{openStream:async(t,n)=>await this.openWorkspaceControlEventStream(e,{after:t,...n?{signal:n}:{}})}}async openWorkspaceControlEventStream(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/control-events/stream`,{after:String(t.after??0)}),{method:\"GET\",headers:{...this.headers(n),Accept:\"text/event-stream\"},...t.signal?{signal:t.signal}:{}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(!s.body)throw new m(s.status,\"SSE response did not include a readable body\");return s.body}async steerMessage(e,t,n){let s=typeof n===\"string\"?{text:n}:n;return $t(s),await this.requestSessionCommand(\"POST\",`${p(e,t)}/steer`,s)}async getGoal(e,t,n={}){let s=`${p(e,t)}/goal`;return await this.sharedRead(s,(r)=>this.requestJson(\"GET\",s,void 0,{},{signal:r}),n)}async updateGoal(e,t,n){return await this.requestJson(\"PATCH\",`${p(e,t)}/goal`,n)}async listGoalRevisions(e,t){return await this.requestJson(\"GET\",`${p(e,t)}/goal/revisions`)}async listGoalRevisionPage(e,t,n={}){let s=new URLSearchParams;if(n.limit!==void 0)s.set(\"limit\",String(n.limit));if(n.before!==void 0)s.set(\"before\",n.before);let r=s.size>0?`?${s.toString()}`:\"\";return await this.requestJson(\"GET\",`${p(e,t)}/goal/revisions/page${r}`)}async rejectGoalRevision(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/goal/revisions/${n}/reject`,s)}async rollbackGoalRevision(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/goal/revisions/${n}/rollback`,s)}async applyGoalRevision(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/goal/revisions/${n}/apply`,s)}async deleteGoal(e,t){await this.requestVoid(\"DELETE\",`${p(e,t)}/goal`)}async pauseGoal(e,t,n={}){return await this.updateGoal(e,t,{status:\"paused\",...n.rationale!==void 0?{rationale:n.rationale}:{}})}async resumeGoal(e,t){return await this.updateGoal(e,t,{status:\"active\"})}async clearSessionContext(e,t){await this.requestVoid(\"POST\",`${p(e,t)}/context/clear`,{confirm:!0})}async compactSessionContext(e,t){return await this.requestJson(\"POST\",`${p(e,t)}/context/compact`,{})}async fsList(e,t,n={},s={}){return await this.requestJson(\"POST\",`${p(e,t)}/fs/list`,n,{},s)}async fsListBatch(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/fs/list-batch`,n,{},s)}async fsRead(e,t,n,s={}){return await this.requestJson(\"POST\",n.workspaceOnly?`${p(e,t)}/fs/read-workspace`:`${p(e,t)}/fs/read`,n,{},s)}async publishSandboxFileArtifact(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/artifacts/publish`,n,{},s)}async fsWrite(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/write`,n)}async fsDelete(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/delete`,n)}async fsMove(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/move`,n)}async fsMkdir(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/fs/mkdir`,n)}async gitStatus(e,t,n={},s={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/status`,n,{},s)}async gitDiff(e,t,n={},s={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/diff`,n,{},s)}async gitReadBatch(e,t,n,s={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/read-batch`,n,{},s)}async gitLog(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/git/log`,n)}async gitShow(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/git/show`,n)}async getWorkspaceCapture(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/workspace/capture`,void 0,{},n)}async getWorkspaceCaptureFile(e,t,n,s,r={}){let i={path:n};if(s!==void 0)i.revision=String(s);return await this.requestJson(\"GET\",`${p(e,t)}/workspace/capture/file`,void 0,i,r)}async terminalExec(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/terminal/exec`,n)}async terminalPtyOpen(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/terminal/pty`,n)}async terminalPtyWrite(e,t,n){await this.requestVoid(\"POST\",`${p(e,t)}/terminal/pty/write`,n)}async terminalPtyResize(e,t,n){await this.requestVoid(\"POST\",`${p(e,t)}/terminal/pty/resize`,n)}async terminalPtyClose(e,t,n){await this.requestVoid(\"POST\",`${p(e,t)}/terminal/pty/close`,n)}async getStreamCapabilities(e,t,n={}){return await this.requestJson(\"GET\",`${p(e,t)}/stream-capabilities`,void 0,{},n)}async acknowledgeStream(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/stream-capabilities/acknowledge`,n)}async attachViewer(e,t,n={}){return await this.requestJson(\"POST\",`${p(e,t)}/viewers`,n)}async heartbeatViewer(e,t,n,s){return await this.requestJson(\"POST\",`${p(e,t)}/viewers/${n}/heartbeat`,s)}async detachViewer(e,t,n){await this.requestVoid(\"DELETE\",`${p(e,t)}/viewers/${n}`)}streamWorkspaceInteractionRevisions(e,t={}){return De(this.workspaceInteractionRevisionStreamTransport(e),t)}workspaceInteractionRevisionStreamTransport(e){return{openStream:async(t,n)=>await this.openWorkspaceInteractionRevisionStream(e,{after:t,...n?{signal:n}:{}})}}async openWorkspaceInteractionRevisionStream(e,t={}){let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(`/v1/workspaces/${e}/interaction-events/stream`,{after:String(t.after??0)}),{method:\"GET\",headers:{...this.headers(n),Accept:\"text/event-stream\"},...t.signal?{signal:t.signal}:{}});if(I(s,this.apiContractStrict),!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(!s.body)throw new m(s.status,\"SSE response did not include a readable body\");return s.body}async listNetworkRoutes(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/network-routes`,void 0,t.includeArchived?{includeArchived:\"true\"}:{},t)}async getNetworkRoute(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/network-routes/${encodeURIComponent(t)}`,void 0,{},n)}async createNetworkRoute(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/network-routes`,t,{},n)}async updateNetworkRoute(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/network-routes/${encodeURIComponent(t)}`,n,{},s)}async listSiteAuthConnections(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/site-auth-connections`,void 0,t.includeArchived?{includeArchived:\"true\"}:{},t)}async getSiteAuthConnection(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/site-auth-connections/${encodeURIComponent(t)}`,void 0,{},n)}async createSiteAuthConnection(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/site-auth-connections`,t,{},n)}async updateSiteAuthConnection(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/site-auth-connections/${encodeURIComponent(t)}`,n,{},s)}async listAuthRuns(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/auth-runs`,void 0,{...t.browserSessionId?{browserSessionId:t.browserSessionId}:{},...t.siteAuthConnectionId?{siteAuthConnectionId:t.siteAuthConnectionId}:{},...t.includeSettled?{includeSettled:\"true\"}:{}},t)}async getAuthRun(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/auth-runs/${encodeURIComponent(t)}`,void 0,{},n)}async startBrowserAuthRun(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs`,n,{},s)}async reportBrowserAuthRun(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/report`,s,{},r)}async protectedBrowserAuthFill(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/protected-fill`,s,{},r)}async advanceExternalBrowserAuthRun(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/external-auth`,s,{},r)}async openExternalBrowserAuthFlow(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/external-auth/interactive`,s,{},r)}async verifyBrowserAuthRun(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/auth-runs/${encodeURIComponent(n)}/verify`,s,{},r)}async listInteractionInterventions(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/interaction-interventions`,void 0,{...t.resourceKind?{resourceKind:t.resourceKind}:{},...t.resourceId?{resourceId:t.resourceId}:{},...t.includeSettled?{includeSettled:\"true\"}:{}},t)}async getInteractionIntervention(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/interaction-interventions/${encodeURIComponent(t)}`,void 0,{},n)}async createInteractionIntervention(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/interaction-interventions`,t,{},n)}async resolveInteractionIntervention(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/interaction-interventions/${encodeURIComponent(t)}/resolve`,n,{},s)}async listAttachedBrowsers(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/attached-browsers`,void 0,t.includeDisconnected?{includeDisconnected:\"true\"}:{},t)}async getAttachedBrowser(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/attached-browsers/${encodeURIComponent(t)}`,void 0,{},n)}async listBrowserIdentities(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-identities`,void 0,t.includeArchived?{includeArchived:\"true\"}:{},t)}async getBrowserIdentity(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-identities/${encodeURIComponent(t)}`,void 0,{},n)}async createBrowserIdentity(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-identities`,t,{},n)}async updateBrowserIdentity(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/browser-identities/${encodeURIComponent(t)}`,n,{},s)}async listBrowserRevisions(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-identities/${encodeURIComponent(t)}/revisions`,void 0,{},n)}async listBrowserSessions(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions`,void 0,{},t)}async getBrowserSession(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}`,void 0,{},n)}async readBrowserClipboard(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/clipboard`,void 0,{},n)}async listBrowserDownloads(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/downloads`,void 0,{},n)}async getBrowserDownload(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/downloads/${encodeURIComponent(n)}`,void 0,{},s)}async saveBrowserDownload(e,t,n,s,r={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/downloads/${encodeURIComponent(n)}/save`,s,{},r)}async createBrowserSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions`,t,{},n)}async listBrowserTargets(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets`,void 0,{},n)}async openBrowserTarget(e,t,n={},s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets`,n,{},s)}async selectBrowserTarget(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/select`,{},{},s)}async captureBrowserTarget(e,t,n,s={},r={}){let i=new URLSearchParams;if(r.fullPage!==void 0){if(typeof r.fullPage!==\"boolean\")throw TypeError(\"browser screenshot fullPage must be a boolean\");i.set(\"fullPage\",String(r.fullPage))}if(r.format!==void 0){if(r.format!==\"jpeg\"&&r.format!==\"png\")throw TypeError(\"browser screenshot format must be jpeg or png\");i.set(\"format\",r.format)}if(r.quality!==void 0){if(!Number.isSafeInteger(r.quality)||r.quality<1||r.quality>100)throw RangeError(\"browser screenshot quality must be an integer from 1 to 100\");i.set(\"quality\",String(r.quality))}let o=i.size>0?`?${i}`:\"\",c=await this.requestResponse(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/screenshot${o}`,{},s),a=c.headers.get(\"content-type\")?.split(\";\",1)[0]?.trim().toLowerCase(),d=c.headers.get(\"x-opengeni-browser-frame\");if(a!==\"image/jpeg\"&&a!==\"image/png\"||!d||d.length>65536)throw await k(c,\"browser frame metadata is invalid\"),new m(502,\"browser frame metadata is invalid\");let l;try{l=mt(JSON.parse(atob(d.replace(/-/gu,\"+\").replace(/_/gu,\"/\"))))}catch{throw await k(c,\"browser frame metadata is invalid\"),new m(502,\"browser frame metadata is invalid\")}let g=await Y(c,25165824,null);if(l.browserSessionId!==t||l.targetId!==n||l.mediaType!==a)throw new m(502,\"browser frame evidence does not match its request\");return{...l,data:g}}async closeBrowserTarget(e,t,n,s={}){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}`,void 0,{},s)}async observeBrowserTarget(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/observation`,void 0,{},s)}async getBrowserTargetState(e,t,n,s={}){let r=await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/state`,void 0,{},s);if(r.browserSessionId!==t||r.targetId!==n)throw new m(502,\"browser target state belongs to another binding\");return r}async readBrowserDom(e,t,n,s,r={}){let i=await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/dom-read`,s,{},r);if(i.browserSessionId!==t||i.targetId!==n||i.kind!==s.kind||i.targetGeneration!==s.expectedTargetGeneration||i.documentGeneration!==s.expectedDocumentGeneration||i.frameId!==s.expectedFrameId)throw new m(502,\"browser DOM read belongs to another binding\");return i}async actInBrowser(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/actions`,n,{},s)}async getBrowserActionReceipt(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/operations/${encodeURIComponent(n)}`,void 0,{},s)}async listBrowserDiagnostics(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/diagnostics`,void 0,{...s.kinds?.length?{kinds:s.kinds.join(\",\")}:{},...s.after!==void 0?{after:String(s.after)}:{},...s.limit!==void 0?{limit:String(s.limit)}:{}},s.signal?{signal:s.signal}:{})}async attachBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/attachments`,n,{},s)}async heartbeatBrowserSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/heartbeat`,{},{},n)}async publishBrowserRevision(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/revisions`,n,{},s)}async suspendBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/suspend`,n,{},s)}async resumeBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/resume`,n,{},s)}async endBrowserSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/browser-sessions/${encodeURIComponent(t)}/end`,n,{},s)}async listComputerSessions(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions`,void 0,{},t)}async getComputerSession(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}`,void 0,{},n)}async readComputerClipboard(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/clipboard`,void 0,{},n)}async getComputerInputPosture(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/input-posture`,void 0,{},n)}async createComputerSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions`,t,{},n)}async listComputerTargets(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/targets`,void 0,{},n)}async observeComputerTarget(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/observation`,void 0,{},s)}async captureComputerTarget(e,t,n,s={}){let r=await this.requestResponse(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/targets/${encodeURIComponent(n)}/screenshot`,{},s),i=r.headers.get(\"content-type\")?.split(\";\",1)[0]?.trim().toLowerCase();if(i!==\"image/jpeg\"&&i!==\"image/png\")throw await k(r,\"computer frame media type is invalid\"),new m(502,\"computer frame media type is invalid\");let o=r.headers.get(\"x-opengeni-computer-frame\");if(!o||o.length>32768)throw await k(r,\"computer frame metadata is invalid\"),new m(502,\"computer frame metadata is invalid\");let c;try{c=yt(o)}catch{throw await k(r,\"computer frame metadata is invalid\"),new m(502,\"computer frame metadata is invalid\")}let a=await Y(r,262144,null);if(ys(c,{computerSessionId:t,targetId:n,mediaType:i,sha256:await Lt(a)}))throw new m(502,\"computer frame evidence does not match its request\");return{...c,data:a}}async actInComputer(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/actions`,n,{},s)}async getComputerActionReceipt(e,t,n,s={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/operations/${encodeURIComponent(n)}`,void 0,{},s)}async attachComputerSession(e,t,n,s={}){let r=await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/attachments`,n,{},s);if(r.stream.kind===\"direct_rfb\")return{...r,stream:{...r.stream,inputAllowed:r.stream.inputAllowed===!0}};return r}async heartbeatComputerSession(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/heartbeat`,{},{},n)}async endComputerSession(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/computer-sessions/${encodeURIComponent(t)}/end`,n,{},s)}async getClientConfig(e={}){let t=await this.requestJson(\"GET\",\"/v1/config/client\",void 0,e.workspaceId===void 0?{}:{workspaceId:e.workspaceId},e);if(this.apiContractStrict&&t.apiContractRevision!==L)throw new Q(L,String(t.apiContractRevision||\"(missing)\"));return t}async getWorkspaceModelCatalog(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/model-catalog`,void 0,{},t)}async listWorkspaceGatewayCustomModels(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/gateway-custom-models`)}async createWorkspaceGatewayCustomModel(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/gateway-custom-models`,t)}async deleteWorkspaceGatewayCustomModel(e,t,n){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(t))throw TypeError(\"customModelId must be a UUID\");await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/gateway-custom-models/${encodeURIComponent(t)}`,n)}async listWorkspaceOpenRouterCustomModels(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/openrouter-custom-models`)}async createWorkspaceOpenRouterCustomModel(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/openrouter-custom-models`,t)}async deleteWorkspaceOpenRouterCustomModel(e,t,n){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(t))throw TypeError(\"customModelId must be a UUID\");await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/openrouter-custom-models/${encodeURIComponent(t)}`,n)}async getWorkspaceClaudeSubscriptionUsage(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/model-providers/claude_subscription/usage`)}async listClaudeSubscriptionAccounts(e){return this.requestJson(\"GET\",`/v1/workspaces/${e}/claude/accounts`)}async activateClaudeSubscriptionAccount(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/activate`,{})}async setClaudeSubscriptionRotationSettings(e,t){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/claude/settings`,t)}async setClaudeSubscriptionAccountAllocator(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/allocator`,n)}async renameClaudeSubscriptionAccount(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}`,{label:n})}async disconnectClaudeSubscriptionAccount(e,t){return this.requestJson(\"DELETE\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}`,{})}async getClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/usage`)}async refreshClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/claude/accounts/${encodeURIComponent(t)}/usage/refresh`,{})}async listOrganizationClaudeSubscriptionAccounts(e){return this.requestJson(\"GET\",`/v1/organizations/${e}/claude/accounts`)}async activateOrganizationClaudeSubscriptionAccount(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/activate`,{})}async setOrganizationClaudeSubscriptionRotationSettings(e,t){return this.requestJson(\"PATCH\",`/v1/organizations/${e}/claude/settings`,t)}async setOrganizationClaudeSubscriptionAccountAllocator(e,t,n){return this.requestJson(\"PATCH\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/allocator`,n)}async renameOrganizationClaudeSubscriptionAccount(e,t,n){return this.requestJson(\"PATCH\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}`,{label:n})}async disconnectOrganizationClaudeSubscriptionAccount(e,t){return this.requestJson(\"DELETE\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}`,{})}async getOrganizationClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"GET\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/usage`)}async refreshOrganizationClaudeSubscriptionAccountUsage(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/claude/accounts/${encodeURIComponent(t)}/usage/refresh`,{})}async connectClaudeSubscriptionSetupToken(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/claude/accounts/setup-token`,t)}async connectOrganizationClaudeSubscriptionSetupToken(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/claude/accounts/setup-token`,t)}async startWorkspaceClaudeSubscriptionOAuth(e,t={}){return this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/claude_subscription/oauth/start`,t)}async completeWorkspaceClaudeSubscriptionOAuth(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/claude_subscription/oauth/complete`,t)}async startOrganizationClaudeSubscriptionOAuth(e,t={}){return this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/claude_subscription/oauth/start`,t)}async completeOrganizationClaudeSubscriptionOAuth(e,t){return this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/claude_subscription/oauth/complete`,t)}async refreshWorkspaceClaudeSubscriptionUsage(e){return this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/claude_subscription/usage/refresh`,{})}async getOrganizationClaudeSubscriptionUsage(e){return this.requestJson(\"GET\",`/v1/organizations/${e}/model-providers/claude_subscription/usage`)}async refreshOrganizationClaudeSubscriptionUsage(e){return this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/claude_subscription/usage/refresh`,{})}async getOrganizationModelProviderConnection(e,t){return await this.requestJson(\"GET\",`/v1/organizations/${e}/model-providers/${t}`)}async upsertOrganizationModelProviderConnection(e,t,n){return await this.requestJson(\"PUT\",`/v1/organizations/${e}/model-providers/${t}`,n)}async revokeOrganizationModelProviderConnection(e,t,n){return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/model-providers/${t}`,n)}async listWorkspaceClaudeCustomModels(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/model-providers/${t}/custom-models`)}async createWorkspaceClaudeCustomModel(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/model-providers/${t}/custom-models`,n)}async deleteWorkspaceClaudeCustomModel(e,t,n,s){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(n))throw TypeError(\"customModelId must be a UUID\");await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/model-providers/${t}/custom-models/${encodeURIComponent(n)}`,s)}async listOrganizationProviderCustomModels(e,t){return await this.requestJson(\"GET\",`/v1/organizations/${e}/model-providers/${t}/custom-models`)}async createOrganizationProviderCustomModel(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/model-providers/${t}/custom-models`,n)}async deleteOrganizationProviderCustomModel(e,t,n,s){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(n))throw TypeError(\"customModelId must be a UUID\");return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/model-providers/${t}/custom-models/${encodeURIComponent(n)}`,s)}async getWorkspaceModelAccessPolicy(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/model-policy`)}async updateWorkspaceModelAccessPolicy(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/model-policy`,t)}async getWorkspaceRealtimeModelCatalog(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/realtime-model-catalog`,void 0,{},t)}async getAccessContext(){return await this.requestJson(\"GET\",\"/v1/access/me\")}async listOrganizationMemberships(){return await this.requestJson(\"GET\",\"/v1/organization-memberships\")}async listUserResourceAuthorities(e,t){let n=new URLSearchParams({scope:\"user\",resourceKind:t.resourceKind});if(t.cursor)n.set(\"cursor\",t.cursor);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));return await this.requestJson(\"GET\",`/v1/workspaces/${e}/user-resource-authorities?${n.toString()}`)}async revokeUserResourceGrant(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/user-resource-authorities/grants/${t}?scope=user`)}async createOrganization(e){return await this.requestJson(\"POST\",\"/v1/organizations\",e)}async createAdditionalOrganization(e){return await this.requestJson(\"POST\",\"/v1/organizations/additional\",e)}async listOrganizationInvitations(e={}){let t=new URLSearchParams;if(e.cursor)t.set(\"cursor\",e.cursor);if(e.limit!==void 0)t.set(\"limit\",String(e.limit));let n=t.size>0?`?${t.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/organization-invitations${n}`)}async listOrganizationInvitationsForOrganization(e,t={}){let n=new URLSearchParams;if(t.cursor)n.set(\"cursor\",t.cursor);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/organizations/${e}/invitations${s}`)}async createOrganizationInvitation(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/invitations`,t)}async acceptOrganizationInvitation(e,t){return await this.requestJson(\"POST\",`/v1/organization-invitations/${e}/accept`,t)}async revokeOrganizationInvitation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/invitations/${t}/revoke`,n)}async listOrganizationAdministrationMembers(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/members`)}async listOrganizationMembers(e){return await this.listOrganizationAdministrationMembers(e)}async getOrganizationAdministrationOverview(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/overview`)}async createOrganizationWorkspace(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/workspaces`,t)}async updateOrganizationWorkspace(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/workspaces/${t}`,n)}async updateOrganizationWorkspaceSettings(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/workspaces/${t}/settings`,n)}async deleteOrganizationWorkspace(e,t){await this.requestVoid(\"DELETE\",`/v1/organizations/${e}/workspaces/${t}`)}async putOrganizationWorkspaceMember(e,t,n,s){return await this.requestJson(\"PUT\",`/v1/organizations/${e}/workspaces/${t}/members/${n}`,s)}async revokeOrganizationWorkspaceMember(e,t,n,s){return await this.requestJson(\"POST\",`/v1/organizations/${e}/workspaces/${t}/members/${n}/revoke`,s)}async updateOrganizationName(e,t){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}`,t)}async updateOrganizationMember(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/members/${t}`,n)}async getOrganizationRetentionPolicy(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/retention-policy`)}async updateOrganizationRetentionPolicy(e,t){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/retention-policy`,t)}async getOrganizationRecovery(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/recovery`)}async configureOrganizationRecoveryPolicy(e,t){return await this.requestJson(\"PUT\",`/v1/organizations/${e}/recovery/policy`,t)}async acceptOrganizationRecoveryCustody(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/policy/accept`,t)}async disableOrganizationRecoveryPolicy(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/policy/disable`,t)}async startOrganizationRecoveryOperation(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations`,t)}async approveOrganizationRecoveryOperation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations/${t}/approve`,n)}async cancelOrganizationRecoveryOperation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations/${t}/cancel`,n)}async executeOrganizationRecoveryOperation(e,t,n){return await this.requestJson(\"POST\",`/v1/organizations/${e}/recovery/operations/${t}/execute`,n)}async searchPublicSkills(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/skills/search?q=${encodeURIComponent(t)}`)}async listWorkspaces(){return await this.requestJson(\"GET\",\"/v1/workspaces\")}connectTransport(){let e=(t)=>`/v1/workspaces/${encodeURIComponent(t)}/connect`;return{catalog:(t,n)=>this.requestJson(\"GET\",`${e(t)}/catalog`,void 0,void 0,n),accounts:(t,n)=>this.requestJson(\"GET\",`${e(t)}/accounts`,void 0,void 0,n),pending:(t,n)=>this.requestJson(\"GET\",`${e(t)}/attempts`,void 0,void 0,n),begin:(t,n,s)=>this.requestJson(\"POST\",`${e(t)}/attempts`,n,void 0,s),get:(t,n,s)=>this.requestJson(\"GET\",`${e(t)}/attempts/${encodeURIComponent(n)}`,void 0,void 0,s),advance:(t,n,s,r)=>this.requestJson(\"POST\",`${e(t)}/attempts/${encodeURIComponent(n)}/advance`,s,void 0,r),cancel:(t,n,s,r)=>this.requestJson(\"POST\",`${e(t)}/attempts/${encodeURIComponent(n)}/cancel`,s,void 0,r),disconnect:async(t,n,s)=>{if(n.startsWith(\"social:\")){let o=n.slice(7);if(!/^[0-9a-f-]{36}$/i.test(o))throw Error(\"Invalid social account ID\");await this.disconnectSocialConnection(t,o);return}if(n.startsWith(\"lens-registration:\")){let o=n.slice(18);if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(o))throw Error(\"Invalid Lens registration ID\");await this.requestJson(\"DELETE\",`/v1/workspaces/${encodeURIComponent(t)}/pr-review/registrations/${o}`,void 0,void 0,s);return}if(n.startsWith(\"github-installation:\")){let o=n.slice(20);if(!/^[1-9][0-9]*$/.test(o)||!Number.isSafeInteger(Number(o)))throw Error(\"Invalid GitHub installation ID\");await this.requestJson(\"DELETE\",`/v1/workspaces/${encodeURIComponent(t)}/github/installations/${o}`,void 0,void 0,s);return}let r=s?.expectedVersion;if(r!==void 0&&(!Number.isSafeInteger(r)||r<1))throw Error(\"invalid expected connection version\");let i=r===void 0?\"\":`?expectedVersion=${r}`;await this.requestJson(\"DELETE\",`/v1/workspaces/${encodeURIComponent(t)}/connections/${encodeURIComponent(n)}${i}`,void 0,void 0,s)}}}async browseAtlassianSources(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/atlassian/${t}/browse`)}async saveAtlassianSources(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/atlassian/${t}/source`,n)}async setAtlassianLifecycle(e,t,n){return this.requestJson(\"PATCH\",`/v1/workspaces/${e}/connections/atlassian/${t}/lifecycle`,n)}async beginConnect(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/connect/attempts`,t)}async createWorkspace(e){return await this.requestJson(\"POST\",\"/v1/workspaces\",e)}async ensureWorkspace(e){return await this.requestJson(\"PUT\",\"/v1/workspaces/external\",e)}async getWorkspace(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}`)}async getWorkspaceState(e,t={}){let n=new URLSearchParams;if(t.attemptId)n.set(\"attemptId\",t.attemptId);let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${e}/workspace-state${s}`)}async exportWorkspaceState(e,t={}){let n=new URLSearchParams;if(t.attemptId)n.set(\"attemptId\",t.attemptId);let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${e}/workspace-state/export${s}`)}async updateWorkspace(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}`,t)}async listWorkspaceInstructionPolicies(e,t={}){let n=new URLSearchParams;if(t.kind!==void 0)n.set(\"kind\",t.kind);if(t.scope!==void 0)n.set(\"scope\",t.scope);if(t.roleKey!==void 0)n.set(\"roleKey\",t.roleKey);if(t.afterRevision!==void 0)n.set(\"afterRevision\",String(t.afterRevision));if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies${s?`?${s}`:\"\"}`)}async getWorkspaceLearningHistory(e,t={}){let n=new URLSearchParams;if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/learning${s?`?${s}`:\"\"}`)}async undoGovernedLearningActivation(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/learning/activations/${encodeURIComponent(t)}/undo`,n)}async getWorkspaceInstructionPolicyRevision(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies/${encodeURIComponent(t)}`)}async createWorkspaceInstructionPolicyDraft(e,t,n={}){return await this.requestSessionCommand(\"POST\",`/v1/workspaces/${e}/instruction-policies/drafts`,t,n)}async listWorkspaceInstructionPolicyOnboardingProposals(e,t={}){let n=new URLSearchParams;if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies/onboarding-proposals${s?`?${s}`:\"\"}`)}async createWorkspaceInstructionPolicyOnboardingProposal(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/instruction-policies/onboarding-proposals`,t)}async importLegacyWorkspaceInstructionPolicyDraft(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/instruction-policies/import-legacy`,t)}async diffWorkspaceInstructionPolicyRevisions(e,t){let n=new URLSearchParams({fromRevisionId:t.fromRevisionId,toRevisionId:t.toRevisionId});return await this.requestJson(\"GET\",`/v1/workspaces/${e}/instruction-policies/diff?${n}`)}async activateWorkspaceInstructionPolicyRevision(e,t,n,s={}){return await this.requestSessionCommand(\"POST\",`/v1/workspaces/${e}/instruction-policies/${encodeURIComponent(t)}/activate`,n,s)}async rollbackWorkspaceInstructionPolicyRevision(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/instruction-policies/rollback`,t)}async listCompanyProfile(e,t={}){let n=new URLSearchParams;if(t.afterRevision!==void 0)n.set(\"afterRevision\",String(t.afterRevision));if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile${s?`?${s}`:\"\"}`)}async getCompanyProfileRevision(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile/revisions/${encodeURIComponent(t)}`)}async getCompanyProfileAgentPolicy(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile/agent-policy`)}async updateCompanyProfileAgentPolicy(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/company-profile/agent-policy`,t)}async updateCompanyProfile(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/company-profile`,t)}async diffCompanyProfileRevisions(e,t){let n=new URLSearchParams(t);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/company-profile/diff?${n}`)}async activateCompanyProfileRevision(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/company-profile/revisions/${encodeURIComponent(t)}/activate`,n)}async rollbackCompanyProfile(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/company-profile/rollback`,t)}async listPreferenceRegistry(e,t={}){let n=new URLSearchParams;if(t.scope)n.set(\"scope\",t.scope);if(t.status)n.set(\"status\",t.status);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));let s=n.toString();return await this.requestJson(\"GET\",`/v1/workspaces/${e}/preferences${s?`?${s}`:\"\"}`)}async getPreferenceRegistry(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}`)}async createPreferenceRegistryProposal(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/proposals`,t)}async activatePreferenceRegistryRevision(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/activate`,n)}async correctPreferenceRegistry(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/correct`,n)}async changePreferenceRegistryScope(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/scope`,n)}async deactivatePreferenceRegistry(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/deactivate`,n)}async supersedePreferenceRegistry(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/supersede`,n)}async rejectPreferenceRegistryProposal(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/${encodeURIComponent(t)}/reject`,n)}async getPreferenceRegistrySummary(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/preferences/summary`)}async getPreferenceRegistryFullContent(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/preferences/full-content`,{retrievalHandle:t})}async deleteWorkspace(e){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}`)}async listWorkspaceMembers(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/members`)).members}async listWorkspaceMemberCandidates(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/member-candidates`)).members}async addWorkspaceMember(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/members`,t)}async updateWorkspaceMember(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/members/${encodeURIComponent(t)}`,n)}async removeWorkspaceMember(e,t){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/members/${encodeURIComponent(t)}`)}async prepareSlackUserLinkAccess(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/slack/user-link-intents`,t)}async getSlackUserLinkAccess(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/slack/user-link-intents/${t}`)}async requestSlackUserLinkWorkspaceAccess(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/slack/user-link-intents/${t}/request-access`,n)}async cancelSlackUserLinkAccess(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/slack/user-link-intents/${t}/cancel`,n)}async listSlackUserLinkAccessRequests(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/members/access-requests/slack`)).requests}async approveSlackUserLinkAccessRequest(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/members/access-requests/slack/${t}/approve`,n)}async denySlackUserLinkAccessRequest(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/members/access-requests/slack/${t}/deny`,n)}async createScheduledTask(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks`,Bt(t))}async updateScheduledTask(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/scheduled-tasks/${t}`,Bt(n))}async pauseScheduledTask(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/pause`)}async resumeScheduledTask(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/resume`)}async triggerScheduledTask(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/trigger`,n.triggerId?{triggerId:n.triggerId}:void 0)}async deleteScheduledTask(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/scheduled-tasks/${t}`)}async listScheduledTaskRuns(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks/${t}/runs`,void 0,{...n.limit!==void 0?{limit:String(n.limit)}:{}})}async refreshScheduledTaskAccess(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/scheduled-tasks/${t}/refresh-access`,n)}async listScheduledTaskAccessAttention(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/scheduled-tasks/attention`)).tasks}async listVariableSets(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/variable-sets`)}async resolveVariableSetAttachments(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/variable-sets/resolve-attachments`,t)}async createVariableSet(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/variable-sets`,t)}async getVariableSet(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/variable-sets/${t}`)}async getVariableSetVariable(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/variable-sets/${t}/variables/${encodeURIComponent(n)}`)}async updateVariableSet(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/variable-sets/${t}`,n)}async deleteVariableSet(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/variable-sets/${t}`)}async setVariableSetVariable(e,t,n,s){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/variable-sets/${t}/variables/${encodeURIComponent(n)}`,{value:s})}async deleteVariableSetVariable(e,t,n){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/variable-sets/${t}/variables/${encodeURIComponent(n)}`)}async listChannels(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/channels`)}async createChannel(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/channels`,t)}async updateChannel(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/channels/${t}`,n)}async reorderChannels(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/channels/order`,t)}async deleteChannel(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/channels/${t}`)}async updateSessionChannel(e,t,n){return await this.requestJson(\"PUT\",`${p(e,t)}/channel`,n)}async listRigs(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs`)}async createRig(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs`,t)}async getRig(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}`)}async updateRig(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/rigs/${t}`,n)}async deleteRig(e,t){await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/rigs/${t}`)}async listRigVersions(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}/versions`)}async activateRigVersion(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/versions/${n}/activate`)}async listRigChanges(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}/changes`)}async proposeRigChange(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/changes`,n)}async getRigChange(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/rigs/${t}/changes/${n}`)}async verifyRigChange(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/changes/${n}/verify`)}async promoteRigChange(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/changes/${n}/promote`)}async verifyRig(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/rigs/${t}/verify`)}async listEnvironments(e){return await this.listVariableSets(e)}async createEnvironment(e,t){return await this.createVariableSet(e,t)}async getEnvironment(e,t){return await this.getVariableSet(e,t)}async updateEnvironment(e,t,n){return await this.updateVariableSet(e,t,n)}async deleteEnvironment(e,t){await this.deleteVariableSet(e,t)}async setEnvironmentVariable(e,t,n,s){return await this.setVariableSetVariable(e,t,n,s)}async deleteEnvironmentVariable(e,t,n){await this.deleteVariableSetVariable(e,t,n)}async beginFileUpload(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/files/uploads`,t,{},n)}async completeFileUpload(e,t,n={}){return(await this.requestJson(\"POST\",`/v1/workspaces/${e}/files/uploads/${t}/complete`,void 0,{},n)).file}async uploadFile(e,t){if(t.timeoutMs!==void 0&&(!Number.isFinite(t.timeoutMs)||t.timeoutMs<=0))throw Error(\"File upload timeout must be a positive number\");gs();let n=async(d,l)=>{let g=new AbortController,u,y=new Promise((w,f)=>{u=setTimeout(()=>{g.abort(),f(Error(\"File upload timed out. Retry the upload.\"))},d)});try{return await Promise.race([l(g.signal),y])}finally{if(u!==void 0)clearTimeout(u)}},s=t.data instanceof Uint8Array?new Blob([t.data.slice()]):t.data instanceof ArrayBuffer?t.data.slice(0):t.data,r=typeof s===\"string\"?new TextEncoder().encode(s).byteLength:s instanceof Blob?s.size:s.byteLength,i=t.sha256??await ms(s),o=await n(30000,async(d)=>await this.beginFileUpload(e,{filename:t.filename,contentType:t.contentType,...t.scope?{scope:t.scope}:{},sizeBytes:r,sha256:i},{signal:d})),c=t.timeoutMs??Math.max(120000,Math.ceil(r/262144)*1000),a=await n(c,async(d)=>await this.fetchImpl(o.putUrl,{method:\"PUT\",credentials:\"omit\",headers:{...o.requiredHeaders},body:s,signal:d}));if(!a.ok)throw await v(a,{method:\"PUT\"});return await n(30000,async(d)=>await this.completeFileUpload(e,o.uploadId,{signal:d}))}async listFiles(e,t={}){let n=new URLSearchParams;if(t.scope)n.set(\"scope\",t.scope);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.cursor)n.set(\"cursor\",t.cursor);return this.requestJson(\"GET\",`/v1/workspaces/${e}/files${n.size?`?${n}`:\"\"}`)}async getFile(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/files/${t}${n.sessionId?`?sessionId=${encodeURIComponent(n.sessionId)}`:\"\"}`,void 0,{},n)}async getRetainedArtifact(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/artifacts/${t}`)}async getRetainedArtifactContent(e,t,n={}){return await this.getRetainedArtifactContentAtPath(`/v1/workspaces/${e}/artifacts/${t}/content`,n)}async getSessionRetainedArtifact(e,t,n){return await this.requestJson(\"GET\",`${p(e,t)}/artifacts/${n}`)}async getSessionRetainedArtifactContent(e,t,n,s={}){return await this.getRetainedArtifactContentAtPath(`${p(e,t)}/artifacts/${n}/content`,s)}async downloadRetainedArtifact(e,t,n={}){Wt(e,t);let s=await this.downloadRetainedArtifactBytes(t,n);return{artifact:t,bytes:s}}async createRetainedArtifactDownloadUrl(e,t,n={}){Wt(e,t);let s=await this.createFileDownloadUrl(e,t.artifactId,n);return Ft(s),s}async downloadRetainedScreenshot(e,t,n,s={}){let r=await this.getSessionRetainedArtifact(e,t,n);if(!r.available)return{metadata:r,bytes:null};if(!((r.kind===\"computer_screenshot\"||r.kind===\"browser_screenshot\")&&[\"image/png\",\"image/jpeg\",\"image/webp\"].includes(r.contentType))||!r.dimensions||r.originalBytes<=0||r.originalBytes>wt)throw new m(502,\"retained screenshot metadata is invalid\");let o=await this.downloadRetainedArtifactBytes(r,s);return{metadata:r,bytes:o}}async downloadRetainedArtifactBytes(e,t){let n=t.maxRetries??2;if(!Number.isInteger(n)||n<0||n>3)throw RangeError(\"retained artifact maxRetries must be an integer from 0 to 3\");let s=new Uint8Array(e.originalBytes),r=Math.min(e.retrieval.maxRangeBytes,ie);if(!Number.isSafeInteger(r)||r<=0)throw new m(502,\"retained artifact range metadata is invalid\");for(let i=0;i<s.byteLength;i+=r){t.signal?.throwIfAborted();let o=Math.min(i+r,s.byteLength)-1,c=null;for(let d=0;d<=n;d+=1)try{c=await this.getRetainedArtifactContentAtPath(e.retrieval.path,{range:`bytes=${i}-${o}`,...t.signal?{signal:t.signal}:{}});break}catch(l){if(t.signal?.throwIfAborted(),d>=n||l instanceof m&&l.status>=400&&l.status<500)throw l}if(!c)throw new m(502,\"retained artifact range retry exhausted\");let a=o-i+1;if(c.status!==206||c.contentType!==e.contentType||c.contentLength!==a||c.contentRange!==`bytes ${i}-${o}/${e.originalBytes}`)throw new m(502,\"retained artifact range response is invalid\");s.set(c.bytes,i)}if(await Lt(s)!==e.sha256)throw new m(502,\"retained artifact checksum mismatch\");return s}async getRetainedArtifactContentAtPath(e,t){if(t.range&&(t.range.length>128||/[^\\x20-\\x7e]/.test(t.range)))throw RangeError(\"retained artifact range must be at most 128 printable ASCII bytes\");let n=crypto.randomUUID(),s=await this.fetchImpl(this.url(e),{method:\"GET\",headers:{...this.headers(n),Accept:\"application/octet-stream\",...t.range?{Range:t.range}:{}},...t.signal?{signal:t.signal}:{}});try{I(s,this.apiContractStrict)}catch(o){throw await k(s,\"retained artifact API contract mismatch\"),o}if(!s.ok)throw await v(s,{method:\"GET\",correlationId:n});if(s.status!==200&&s.status!==206)throw await k(s,\"unexpected retained artifact response status\"),new m(s.status,\"unexpected retained artifact response status\");if(s.headers.get(\"accept-ranges\")!==\"bytes\")throw await k(s,\"retained artifact response omitted byte-range support\"),new m(502,\"retained artifact response omitted byte-range support\");let r;try{r=Rs(s.headers.get(\"content-length\"))}catch(o){throw await k(s,\"invalid retained artifact content-length\"),o}let i=await Y(s,ie,r);return{bytes:i,status:s.status,contentType:s.headers.get(\"content-type\")??\"application/octet-stream\",contentLength:i.byteLength,contentRange:s.headers.get(\"content-range\"),acceptRanges:\"bytes\"}}async createFileDownloadUrl(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/files/${t}/download-url${n.sessionId?`?sessionId=${encodeURIComponent(n.sessionId)}`:\"\"}`,void 0,{},n)}async getVideoGenerationSettings(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/video-generation`,void 0,{},t)}async updateVideoGenerationPolicy(e,t,n={}){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/video-generation/policy`,t,{},n)}async getVideoGenerationOperation(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/video-generation/operations/${t}`,void 0,{},n)}async createVideoArtifactPlaybackSource(e,t,n={}){let s=await this.requestJson(\"POST\",`/v1/workspaces/${e}/artifacts/${t}/playback-source`,void 0,{},n);return fs(s,t),s}async createDocumentBase(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/document-bases`,t)}async getDocumentBase(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/document-bases/${t}`)}async addDocument(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/document-bases/${t}/documents`,n)}async listDocuments(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/document-bases/${t}/documents`)}async getDocumentOriginalFile(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/documents/${t}/original-file`)}async createKnowledgeDrop(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/drops`,t)}async moveDocument(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/documents/${t}/move`,n)}async deleteDocument(e,t,n){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/document-bases/${t}/documents/${n}`)}async listKnowledgeEntries(e,t={}){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/search`,t)}async getKnowledgeEntry(e,t,n={}){let s=new URLSearchParams;if(n.revisionId!==void 0)s.set(\"revisionId\",n.revisionId);if(n.view!==void 0)s.set(\"view\",n.view);let r=s.toString();return this.requestJson(\"GET\",`/v1/workspaces/${e}/knowledge/entries/${t}${r?`?${r}`:\"\"}`)}async createKnowledgeFileDownloadUrl(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${t}/file/download-url`,n?{revisionId:n}:{})}async saveKnowledgeEntry(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries`,t)}async reviewKnowledgeEntry(e,t){let{entryId:n,...s}=t;return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${n}/review`,s)}async listKnowledgeReviewBatches(e,t={}){let n=new URLSearchParams;for(let[s,r]of Object.entries(t))if(r!==void 0)n.set(s,String(r));return this.requestJson(\"GET\",`/v1/workspaces/${e}/knowledge/review-groups?${n}`)}async reviewKnowledgeEntries(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/review`,t)}async listKnowledgeEntryHistory(e,t,n){return this.requestJson(\"GET\",`/v1/workspaces/${e}/knowledge/entries/${t}/history${n?`?beforeRevision=${n}`:\"\"}`)}async restoreKnowledgeEntry(e,t){let{entryId:n,...s}=t;return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${n}/restore`,s)}async archiveKnowledgeEntry(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/knowledge/entries/${t}/archive`,n)}async getAgentLearningSettings(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/agent-learning/read`,{scope:t,source:n})}async saveAgentLearningSettings(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/agent-learning`,t)}async listAgentLearningOverrides(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/agent-learning/overrides?scope=${t}`)}async reviewAgentInstruction(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/agent-learning/instructions/review`,t)}async listAgentInstructionReviews(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/agent-learning/instructions/reviews${t?`?cursor=${encodeURIComponent(t)}`:\"\"}`)}async updateWorkspaceSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/settings`,t)}async setWorkspaceDefaultRig(e,t){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/default-rig`,t)}async listCapabilities(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities`)}async createCapability(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities`,t)}async getConnectorToolPermissions(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/tool-permissions`,void 0,{},n)}async updateConnectorToolPermissions(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/tool-permissions`,n,{},s)}async enableCapability(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/enable`,n)}async disableCapability(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities/${encodeURIComponent(t)}/disable`)}async listArtifactCatalog(e,t={}){let n=new URLSearchParams;for(let r of[\"sourceSessionId\",\"q\",\"kind\",\"sort\",\"status\",\"limit\",\"cursor\"])if(t[r]!==void 0)n.set(r,String(t[r]));let s=n.size?`?${n.toString()}`:\"\";return this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/artifact-catalog${s}`,void 0,void 0,t)}async updateArtifactPin(e,t,n,s,r={}){return this.requestJson(\"PUT\",`/v1/workspaces/${encodeURIComponent(e)}/artifact-catalog/${encodeURIComponent(t)}/${encodeURIComponent(n)}/pin`,{pinned:s},void 0,r)}async listWorkspaceArtifacts(e,t={}){let n=new URLSearchParams;if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.cursor)n.set(\"cursor\",t.cursor);if(t.status)n.set(\"status\",t.status);if(t.sourceSessionId)n.set(\"sourceSessionId\",t.sourceSessionId);let s=n.size>0?`?${n.toString()}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts${s}`,void 0,void 0,t)}async getWorkspaceArtifact(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}`,void 0,void 0,n)}async getWorkspaceArtifactHtml(e,t,n){return(await this.requestResponse(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}/html`,{versionId:n.versionId},n)).text()}async rollbackWorkspaceArtifact(e,t,n,s={}){return await this.requestJson(\"POST\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}/rollback`,n,void 0,s)}async setWorkspaceArtifactStatus(e,t,n,s={}){return await this.requestJson(\"PATCH\",`/v1/workspaces/${encodeURIComponent(e)}/published-artifacts/${encodeURIComponent(t)}/status`,n,void 0,s)}async discoverMcpCapabilities(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities/discovery/mcp-registry`,void 0,{...t.query!==void 0?{query:t.query}:{},...t.limit!==void 0?{limit:String(t.limit)}:{}})}async discoverPlugins(e,t={}){return this.requestJson(\"GET\",`/v1/workspaces/${e}/capabilities/discovery/plugins`,void 0,{...t.id?{id:t.id}:{},...t.query?{query:t.query}:{},...t.provider?{provider:t.provider}:{},...t.offset!==void 0?{offset:String(t.offset)}:{}})}async inspectMcpAuthentication(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/capabilities/discovery/mcp-auth`,{url:t})}async listApiIntegrations(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations`)}async listIntegrationDefinitions(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/definitions`)}async previewApiIntegration(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/preview`,t)}async startApiIntegrationOAuth(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/oauth/start`,t)}async installApiIntegration(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/install`,t)}async previewApiIntegrationUninstall(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/uninstall-preview`)}async uninstallApiIntegration(e,t,n,s){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}`,s)}async listIntegrationFacets(e,t,n){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets`)}async configureIntegrationFacet(e,t,n,s,r){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}`,r)}async browseGoogleDriveFacetSource(e,t,n,s,r={}){let i=new URLSearchParams;if(r.parentId)i.set(\"parentId\",r.parentId);if(r.pageToken)i.set(\"pageToken\",r.pageToken);let o=i.size>0?`?${i}`:\"\";return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}/browse${o}`)}async saveGoogleDriveFacetSource(e,t,n,s,r){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}/source`,r)}async pauseIntegrationFacet(e,t,n,s,r){return await this.mutateIntegrationFacetLifecycle(e,t,n,s,\"pause\",r)}async resumeIntegrationFacet(e,t,n,s,r){return await this.mutateIntegrationFacetLifecycle(e,t,n,s,\"resume\",r)}async removeIntegrationFacet(e,t,n,s,r){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}`,r)}async mutateIntegrationFacetLifecycle(e,t,n,s,r,i){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/integrations/${encodeURIComponent(t)}/instances/${encodeURIComponent(n)}/facets/${encodeURIComponent(s)}/${r}`,i)}async previewPlugin(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/plugins/preview`,t)}async getInstalledPluginDetails(e,t){return this.requestJson(\"GET\",`/v1/workspaces/${e}/plugins/details`,void 0,{pluginKey:t})}async listInstalledPlugins(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/plugins`)}async installPlugin(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/plugins/install`,t)}async previewPluginUninstall(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/plugins/${encodeURIComponent(t)}/uninstall-preview`)}async uninstallPlugin(e,t,n){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/plugins/${encodeURIComponent(t)}`,n)}async previewSkillImport(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/preview`,t)}async installSkill(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/install`,t)}async listInstalledSkills(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/skills`)}async listWorkspaceSkills(e,t={}){let n=new URLSearchParams;if(t.cursor!==void 0)n.set(\"cursor\",t.cursor);if(t.limit!==void 0)n.set(\"limit\",String(t.limit));if(t.sessionId!==void 0)n.set(\"sessionId\",t.sessionId);let s=n.size?`?${n.toString()}`:\"\";return this.requestJson(\"GET\",`/v1/workspaces/${e}/skills/content${s}`)}async readWorkspaceSkill(e,t,n){let s=n?`?revisionId=${encodeURIComponent(n)}`:\"\";return this.requestJson(\"GET\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}${s}`)}async saveWorkspaceSkill(e,t){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/save`,t)}async removeWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/remove`,n)}async approveWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/approve`,n)}async restoreWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/restore`,n)}async rejectWorkspaceSkill(e,t,n){return this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/content/${encodeURIComponent(t)}/reject`,n)}async installLibrarySkill(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/skills/library/${encodeURIComponent(t)}/install`,n)}async previewSkillUninstall(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/skills/${encodeURIComponent(t)}/uninstall-preview`)}async uninstallSkill(e,t,n){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/skills/${encodeURIComponent(t)}`,n)}async listOwnConnectionAccounts(e,t={}){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/accounts`,void 0,t.includeInactive===!0?{includeInactive:\"true\"}:{})).connections}async listConnections(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections`)).connections}async personalGitHubStatus(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/github`)}async startPersonalGitHubOAuth(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/github/oauth/start`,t)}async reconnectPersonalGitHub(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/${t}/github/reconnect`,n)}async disconnectPersonalGitHub(e,t,n){return(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/connections/${t}`,n)).connection}async listPersonalGitHubRepositories(e,t,n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/${t}/github/repositories`,void 0,{...n.cursor!==void 0?{cursor:String(n.cursor)}:{},...n.limit!==void 0?{limit:String(n.limit)}:{}})}async replacePersonalGitHubRepositorySelections(e,t,n){return await this.requestJson(\"PUT\",`/v1/workspaces/${e}/connections/${t}/github/repositories`,n)}async verifyPersonalGitHubRepositorySelections(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/${t}/github/repositories/verify`,n)}async listSlackInstallationBindings(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/connections/slack-bot/bindings`)).bindings}async createConnection(e,t){return(await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections`,t)).connection}async installFikenConnection(e,t){return(await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/fiken/install`,t)).connection}async startFikenOAuth(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/fiken/oauth/start`,t)}async startOpenGeniSlackBotInstall(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/slack-bot/install`,t)}async listOpenGeniSlackReactionChannels(e,t,n){let s=new URLSearchParams({connectionId:t});if(n)s.set(\"cursor\",n);return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/slack/reaction-channels?${s}`)}async listOpenGeniSlackChannelRoutes(e,t){let n=new URLSearchParams({connectionId:t});return await this.requestJson(\"GET\",`/v1/workspaces/${e}/integrations/slack/channel-routes?${n}`)}async updateOpenGeniSlackChannelRoutes(e,t){await this.requestJson(\"PUT\",`/v1/workspaces/${e}/integrations/slack/channel-routes`,t)}async updateConnection(e,t,n){return(await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/connections/${t}`,n)).connection}async deleteConnection(e,t){return(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/connections/${t}`)).connection}async disconnectGoogleDriveConnection(e,t,n){return(await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/connections/${t}`,n)).connection}async transitionGoogleDriveLifecycle(e,t,n){return(await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/connections/google-drive/${t}/lifecycle`,n)).connection}async startConnectionOAuth(e,t,n={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/connections/oauth/start`,t,{},n)}async startSocialOAuth(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/social/oauth/start`,t)}async listSocialConnections(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/social/connections`)}async disconnectSocialConnection(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/social/connections/${t}`)}catalogAssetUrl(e){return e?`${this.baseUrl}/v1/${e}`:null}async downloadCatalogAsset(e,t={}){if(!/^catalog-assets\\/[a-zA-Z0-9_./-]+$/.test(e)||e.split(\"/\").some((i)=>!i||i===\".\"||i===\"..\"))throw TypeError(\"A catalog asset path is required\");let n=await this.requestResponse(\"GET\",`/v1/${e}`,{},t),s=n.headers.get(\"content-type\")?.split(\";\")[0]??\"\";if(!s.startsWith(\"image/\"))throw await n.body?.cancel(),Error(\"The catalog asset is not an image\");let r=await Y(n,2000000,null);return new Blob([Uint8Array.from(r)],{type:s})}async getGitHubApp(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/github/app`,void 0,t.returnPath?{returnPath:t.returnPath}:void 0)}githubConnectUrl(e,t){return this.url(`/v1/workspaces/${e}/github/connect`,{state:t})}async listGitHubRepositories(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/github/repositories`)}async getGitHubActionPolicies(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/github/action-policies`)}async updateGitHubActionPolicy(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/github/action-policies`,t)}async syncGitHubRepositories(e){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/github/repositories/sync`)}async unlinkGitHubInstallation(e,t){await this.requestVoid(\"DELETE\",`/v1/workspaces/${e}/github/installations/${t}`)}async createGitHubAppManifest(e,t={}){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/github/app-manifest`,t)}async listApiKeys(e){return(await this.requestJson(\"GET\",`/v1/workspaces/${e}/api-keys`)).apiKeys}async createApiKey(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/api-keys`,t)}async deleteApiKey(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/api-keys/${t}`)}async listOrganizationApiKeys(e){return(await this.requestJson(\"GET\",`/v1/organizations/${e}/api-keys`)).apiKeys}async createOrganizationApiKey(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/api-keys`,t)}async deleteOrganizationApiKey(e,t){return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/api-keys/${t}`)}async listOrganizationMcpConnections(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/mcp-connections`)}async updateOrganizationMcpConnection(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/mcp-connections/${t}`,n)}async deleteOrganizationMcpConnection(e,t){await this.requestVoid(\"DELETE\",`/v1/organizations/${e}/mcp-connections/${t}`)}async listOrganizationServiceAccounts(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/service-accounts`)}async getOrganizationServiceAccount(e,t){return await this.requestJson(\"GET\",`/v1/organizations/${e}/service-accounts/${t}`)}async createOrganizationServiceAccount(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/service-accounts`,t)}async updateOrganizationServiceAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/service-accounts/${t}`,n)}async deleteOrganizationServiceAccount(e,t){await this.requestVoid(\"DELETE\",`/v1/organizations/${e}/service-accounts/${t}`)}async getMcpConnectionRequest(e){return await this.requestJson(\"GET\",`/v1/mcp-connections/requests/${encodeURIComponent(e)}`)}async answerMcpConnectionRequest(e,t){return await this.requestJson(\"POST\",`/v1/mcp-connections/requests/${encodeURIComponent(e)}`,t)}async listOrganizationSessions(e,t={}){return await this.requestJson(\"GET\",`/v1/organizations/${e}/sessions`,void 0,{...t.limit===void 0?{}:{limit:String(t.limit)},...t.cursor===void 0?{}:{cursor:t.cursor},...t.scopeSubjectId?{scopeSubjectId:t.scopeSubjectId}:{},...t.status===void 0?{}:{status:t.status}},{signal:t.signal})}async*iterateOrganizationSessions(e,t={}){let n;do{let s=await this.listOrganizationSessions(e,{...t,...n===void 0?{}:{cursor:n}});for(let r of s.sessions)yield r;n=s.nextCursor??void 0}while(n!==void 0)}async getBilling(e={}){return await this.requestJson(\"GET\",\"/v1/billing\",void 0,{...e.accountId!==void 0?{accountId:e.accountId}:{}})}async getOrganizationUsageSummary(e,t={}){return await this.requestJson(\"GET\",\"/v1/billing/usage-summary\",void 0,{accountId:e.accountId,period:e.period??\"month\"},t)}async getOrganizationModelUsage(e,t={}){return await this.requestJson(\"GET\",\"/v1/billing/usage-models\",void 0,{accountId:e.accountId,period:e.period??\"month\",...e.afterWorkspaceId?{afterWorkspaceId:e.afterWorkspaceId}:{}},t)}async getOrganizationUsageWorkspacePage(e,t={}){return await this.requestJson(\"GET\",\"/v1/billing/usage-workspaces\",void 0,{accountId:e.accountId,period:e.period??\"month\",until:e.until,...e.afterWorkspaceId?{afterWorkspaceId:e.afterWorkspaceId}:{}},t)}async getBillingUsage(e={}){return await this.requestJson(\"GET\",\"/v1/billing/usage\",void 0,{...e.accountId!==void 0?{accountId:e.accountId}:{},...e.workspaceId!==void 0?{workspaceId:e.workspaceId}:{}})}async getWorkspaceInsights(e,t={}){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/insights`,void 0,{range:t.range??\"week\",...t.provider!==void 0?{provider:t.provider}:{},...t.model!==void 0?{model:t.model}:{},...t.rootSessionId!==void 0?{rootSessionId:t.rootSessionId}:{},...t.sessionId!==void 0?{sessionId:t.sessionId}:{}},{signal:t.signal})}async getWorkspaceInsightsUsage(e,t={},n={}){return await this.requestJson(\"GET\",`/v1/workspaces/${encodeURIComponent(e)}/insights/usage${se(t)}`,void 0,{},n)}async getOrganizationInsightsUsage(e,t={},n={}){return await this.requestJson(\"GET\",`/v1/organizations/${encodeURIComponent(e)}/insights/usage${se(t)}`,void 0,{},n)}async listInsightsCalls(e,t={},n={}){let s=e.kind===\"workspace\"?`/v1/workspaces/${encodeURIComponent(e.workspaceId)}/insights/calls`:`/v1/organizations/${encodeURIComponent(e.accountId)}/insights/calls`;return await this.requestJson(\"GET\",`${s}${se(t)}`,void 0,{},n)}async getBillingEntitlements(e={}){return await this.requestJson(\"GET\",\"/v1/billing/entitlements\",void 0,{...e.accountId!==void 0?{accountId:e.accountId}:{}})}async createBillingCheckout(e){return await this.requestJson(\"POST\",\"/v1/billing/checkout\",e)}async getBillingCheckout(e,t={}){return await this.requestJson(\"GET\",`/v1/billing/checkout/${encodeURIComponent(e)}`,void 0,{...t.accountId!==void 0?{accountId:t.accountId}:{}})}async createBillingPortalSession(e={}){return await this.requestJson(\"POST\",\"/v1/billing/portal\",e)}apiUrl(e){if(!e.startsWith(\"/\"))throw TypeError(\"API path must start with /\");return`${this.baseUrl}${e}`}withHeaders(e){let t={...e},n=this.options.headers,r=new this.constructor({...this.options,headers:()=>({...typeof n===\"function\"?n():n,...t})});if(this.externalActorHeader!==void 0)r.externalActorHeader=this.externalActorHeader;return r.serviceInitiatorHeader=this.serviceInitiatorHeader,r.serviceContextHeader=this.serviceContextHeader,r}async fetchApi(e,t={}){let n=typeof globalThis.location?.href===\"string\"?globalThis.location.href:void 0,s=new URL(this.baseUrl.endsWith(\"/\")?this.baseUrl:`${this.baseUrl}/`,n),r=new URL(e,s);if(r.origin!==s.origin||!`${r.pathname}/`.startsWith(s.pathname))throw TypeError(\"fetchApi only reaches this client's API base URL\");let i=new Headers(t.headers);for(let[o,c]of Object.entries(this.headers()))if(!i.has(o))i.set(o,c);return await this.fetchImpl(r.href,{...t,headers:i})}headers(e){let t=typeof this.options.headers===\"function\"?this.options.headers():this.options.headers,n={...this.options.apiKey?{Authorization:`Bearer ${this.options.apiKey}`}:{},...t,[he]:L,...e?{[re]:e}:{}},s=Object.keys(n).map((o)=>o.toLowerCase()),r=this.externalActorHeader!==void 0||s.includes(\"x-opengeni-external-actor\"),i=this.serviceInitiatorHeader!==void 0||s.includes(\"x-opengeni-service-initiator\")||s.includes(\"x-opengeni-service-context\");if(r&&i)throw Error(\"asUser and asService attribution headers are mutually exclusive\");if(this.externalActorHeader){for(let o of Object.keys(n))if(o.toLowerCase()===\"x-opengeni-external-actor\")delete n[o];n[\"x-opengeni-external-actor\"]=this.externalActorHeader}if(this.serviceInitiatorHeader!==void 0){for(let o of Object.keys(n)){let c=o.toLowerCase();if(c===\"x-opengeni-service-initiator\"||c===\"x-opengeni-service-context\")delete n[o]}if(n[\"x-opengeni-service-initiator\"]=this.serviceInitiatorHeader,this.serviceContextHeader!==void 0)n[\"x-opengeni-service-context\"]=this.serviceContextHeader}return n}url(e,t={}){let n=new URLSearchParams(t).toString();return`${this.baseUrl}${e}${n?`?${n}`:\"\"}`}async codexStatus(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/status`)}async codexConnectStart(e){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/connect/start`)}async codexConnectPoll(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/connect/poll`,{state:t})}async codexUsage(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/usage`)}async codexAccountUsage(e,t){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/accounts/${t}/usage`)}async refreshCodexUsage(e){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/usage/refresh`)}async codexOverview(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/overview`)}async codexDisconnect(e){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/codex`)}async listCodexAccounts(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/codex/accounts`)}async listSessionCodexAccounts(e,t){return await this.requestJson(\"GET\",`${p(e,t)}/codex-accounts`)}async activateCodexAccount(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/accounts/${t}/activate`)}async designateCodexAppsAccount(e,t,n){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/codex/apps`,{accountId:t,expectedVersion:n})}async clearCodexAppsAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/codex/apps`,{expectedVersion:t})}async setCodexRotationSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/codex/settings`,t)}async setCodexAccountAllocator(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/codex/accounts/${t}/allocator`,n)}async disconnectCodexAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/codex/accounts/${t}`)}async renameCodexAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/codex/accounts/${t}`,{label:n})}async pinSessionCodexAccount(e,t,n){return await this.requestJson(\"POST\",`${p(e,t)}/codex-account`,{target:n})}async getModelConnectionAccess(e){return await this.requestJson(\"GET\",`/v1/${e.scope}/${encodeURIComponent(e.scopeId)}/model-connections/${e.kind}/${encodeURIComponent(e.connectionId)}/access`)}async updateModelConnectionAccess(e,t){return await this.requestJson(\"PUT\",`/v1/${e.scope}/${encodeURIComponent(e.scopeId)}/model-connections/${e.kind}/${encodeURIComponent(e.connectionId)}/access`,t)}async listOrganizationSuperGrokAccounts(e){return await this.requestJson(\"GET\",`/v1/organizations/${e}/supergrok/accounts`)}async organizationSupergrokConnectStart(e){return await this.requestJson(\"POST\",`/v1/organizations/${e}/supergrok/connect/start`,{})}async organizationSupergrokConnectPoll(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/supergrok/connect/poll`,{state:t})}async activateOrganizationSuperGrokAccount(e,t){return await this.requestJson(\"POST\",`/v1/organizations/${e}/supergrok/accounts/${t}/activate`,{})}async setOrganizationSuperGrokRotationSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/supergrok/settings`,t)}async setOrganizationSuperGrokAccountAllocator(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/supergrok/accounts/${t}/allocator`,n)}async renameOrganizationSuperGrokAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/organizations/${e}/supergrok/accounts/${t}`,{label:n})}async disconnectOrganizationSuperGrokAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/organizations/${e}/supergrok/accounts/${t}`,{})}async supergrokStatus(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/supergrok/status`)}async supergrokConnectStart(e,t=\"workspace\"){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/supergrok/connect/start`,{scope:t})}async supergrokConnectPoll(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/supergrok/connect/poll`,{state:t})}async listSuperGrokAccounts(e){return await this.requestJson(\"GET\",`/v1/workspaces/${e}/supergrok/accounts`)}async activateSuperGrokAccount(e,t){return await this.requestJson(\"POST\",`/v1/workspaces/${e}/supergrok/accounts/${t}/activate`,{})}async setSuperGrokRotationSettings(e,t){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/supergrok/settings`,t)}async setSuperGrokAccountAllocator(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/supergrok/accounts/${t}/allocator`,n)}async renameSuperGrokAccount(e,t,n){return await this.requestJson(\"PATCH\",`/v1/workspaces/${e}/supergrok/accounts/${t}`,{label:n})}async disconnectSuperGrokAccount(e,t){return await this.requestJson(\"DELETE\",`/v1/workspaces/${e}/supergrok/accounts/${t}`,{})}async requestSessionCommand(e,t,n,s={}){return await this.requestJson(e,t,n,{},{signal:s.signal,timeoutMs:s.timeoutMs??this.sessionCommandTimeoutMs})}async requestJson(e,t,n,s={},r={}){let i=crypto.randomUUID(),o=ls(r);try{if(o.signal?.aborted)throw o.signal.reason??new DOMException(\"Request aborted\",\"AbortError\");let c=this.headers(i),a;try{a=await W(this.fetchImpl(this.url(t,s),{method:e,headers:{...c,Accept:\"application/json\",...n!==void 0?{\"Content-Type\":\"application/json\"}:{}},...n!==void 0?{body:JSON.stringify(n)}:{},...o.signal?{signal:o.signal}:{}}),o.signal)}catch(d){if(r.signal?.aborted)throw d;if(F(e))throw z(i);throw d}I(a,this.apiContractStrict);try{if(!a.ok)throw await W(v(a,{method:e,correlationId:i}),o.signal);if(r.responseType===\"void\"){await W(k(a,\"discarding void API response\"),o.signal);return}return await W(j(a,{method:e,correlationId:i}),o.signal),await W(a.json(),o.signal)}catch(d){if(r.signal?.aborted)throw d;if(d instanceof m)throw d;if(F(e))throw z(i);throw d}}finally{o.dispose()}}async requestResponse(e,t,n={},s={}){let r=crypto.randomUUID(),i=this.headers(r),o;try{o=await this.fetchImpl(this.url(t,n),{method:e,headers:{...i,Accept:s.accept??\"application/octet-stream\"},...s.signal?{signal:s.signal}:{}})}catch(c){if(F(e))throw z(r);throw c}if(I(o,this.apiContractStrict),!o.ok)throw await v(o,{method:e,correlationId:r});return o}async requestVoid(e,t,n){let s=crypto.randomUUID(),r=this.headers(s),i;try{i=await this.fetchImpl(this.url(t),{method:e,headers:{...r,Accept:\"application/json\",...n!==void 0?{\"Content-Type\":\"application/json\"}:{}},...n!==void 0?{body:JSON.stringify(n)}:{}})}catch(o){if(F(e))throw z(s);throw o}if(I(i,this.apiContractStrict),!i.ok)throw await v(i,{method:e,correlationId:s})}}function I(e,t){if(!t)return;let n=e.headers.get(he);if(n&&n!==L)throw new Q(L,n)}function as(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e;return typeof t.text===\"string\"&&Array.isArray(t.languages)&&t.languages.every((n)=>typeof n===\"string\")}function cs(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e;if(!ke({recording:t.recording,segments:[]}))return!1;if(!t.chunk||typeof t.chunk!==\"object\"||Array.isArray(t.chunk))return!1;let n=t.chunk;return typeof n.chunkNumber===\"number\"&&typeof n.byteLength===\"number\"&&typeof n.sha256===\"string\"&&typeof n.startMilliseconds===\"number\"&&typeof n.durationMilliseconds===\"number\"&&typeof n.deduplicated===\"boolean\"}function ke(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e;if(!t.recording||typeof t.recording!==\"object\"||Array.isArray(t.recording))return!1;let n=t.recording;return typeof n.id===\"string\"&&typeof n.workspaceId===\"string\"&&typeof n.mimeType===\"string\"&&typeof n.state===\"string\"&&typeof n.nextChunkNumber===\"number\"&&typeof n.chunkCount===\"number\"&&typeof n.totalBytes===\"number\"&&typeof n.totalDurationMilliseconds===\"number\"&&typeof n.segmentCount===\"number\"&&typeof n.completedSegmentCount===\"number\"&&(n.transcriptText===null||typeof n.transcriptText===\"string\")&&Array.isArray(n.languages)&&(n.errorCode===null||typeof n.errorCode===\"string\")&&typeof n.retryable===\"boolean\"&&typeof n.objectsCleaned===\"boolean\"&&typeof n.createdAt===\"string\"&&typeof n.updatedAt===\"string\"&&typeof n.expiresAt===\"string\"&&(t.retryAfterMilliseconds===void 0||typeof t.retryAfterMilliseconds===\"number\"&&Number.isInteger(t.retryAfterMilliseconds)&&t.retryAfterMilliseconds>0&&t.retryAfterMilliseconds<=60000)&&Array.isArray(t.segments)}function K(e){if(ke(e))return e;throw new m(502,\"Invalid transcription recording response.\",{code:\"invalid_response\"})}function us(e){if(!e||typeof e!==\"object\"||Array.isArray(e))return!1;let t=e.recordings;return Array.isArray(t)&&t.length<=50&&t.every((n)=>ke({recording:n,segments:[]}))}function ds(e){switch(e.trim().toLowerCase().split(\";\")[0]??\"audio/webm\"){case\"audio/mp4\":case\"audio/m4a\":return\"audio.mp4\";case\"audio/ogg\":return\"audio.ogg\";case\"audio/mpeg\":case\"audio/mp3\":return\"audio.mp3\";case\"audio/wav\":case\"audio/x-wav\":return\"audio.wav\";case\"audio/webm\":default:return\"audio.webm\"}}var Dt=16384;function ls(e){let t=e.timeoutMs??0;if(t<=0)return{signal:e.signal,dispose:()=>{return}};let n=new AbortController,s=()=>n.abort(e.signal?.reason);if(e.signal?.aborted)s();else e.signal?.addEventListener(\"abort\",s,{once:!0});let r=setTimeout(()=>n.abort(new DOMException(\"Request timed out\",\"TimeoutError\")),t);return{signal:n.signal,dispose:()=>{clearTimeout(r),e.signal?.removeEventListener(\"abort\",s)}}}async function W(e,t){if(!t)return await e;if(t.aborted)throw t.reason??new DOMException(\"Request aborted\",\"AbortError\");return await new Promise((n,s)=>{let r=()=>{i(),s(t.reason??new DOMException(\"Request aborted\",\"AbortError\"))},i=()=>t.removeEventListener(\"abort\",r);t.addEventListener(\"abort\",r,{once:!0}),e.then((o)=>{i(),n(o)},(o)=>{i(),s(o)})})}async function v(e,t){let n=await ps(e),r=new((pe(n))?le:m)(e.status,n,{correlationId:e.headers.get(re)??t.correlationId,mutation:F(t.method)});return r.status>=400&&r.status<500&&(r.code===\"SESSION_TENANCY_NOT_ACTIVATED\"||r.code===\"OPENGENI_SETUP_REQUIRED\")?new de(r):r}async function j(e,t){if(zt(e.headers.get(\"content-type\")))return;throw await k(e,\"unexpected non-JSON API response\"),new m(502,\"\",{code:\"upstream_unavailable\",retryable:!0,correlationId:e.headers.get(re)??t.correlationId,outcomeUnknown:F(t.method),displayMessage:\"Opengeni is temporarily unavailable \u2014 retry.\"})}async function ps(e){if(!zt(e.headers.get(\"content-type\")))return await k(e,\"discarding API error body\"),\"\";if(Number(e.headers.get(\"content-length\"))>Dt)return await k(e,\"discarding API error body\"),\"\";try{return new TextDecoder().decode(await Y(e,Dt,null))}catch{return\"\"}}function zt(e){return/^(application\\/json|[^;]+\\+json)\\s*(;|$)/i.test(e??\"\")}function F(e){return e!==\"GET\"&&e!==\"HEAD\"&&e!==\"OPTIONS\"}function z(e){return new m(0,\"\",{code:\"network_error\",retryable:!0,correlationId:e,outcomeUnknown:!0,mutation:!0,displayMessage:\"Opengeni could not confirm the request \u2014 reconcile before retrying.\"})}function gs(){let e=typeof window<\"u\"?window.isSecureContext:typeof globalThis.isSecureContext===\"boolean\"?globalThis.isSecureContext:void 0;if(e===void 0)return;if(!e)throw new X(\"insecure_context\");if(typeof globalThis.crypto>\"u\"||typeof globalThis.crypto.subtle?.digest!==\"function\")throw new X(\"web_crypto_unavailable\")}async function ms(e){let t=typeof e===\"string\"?new TextEncoder().encode(e):e instanceof Blob?new Uint8Array(await e.arrayBuffer()):new Uint8Array(e),n=await globalThis.crypto.subtle.digest(\"SHA-256\",t);return[...new Uint8Array(n)].map((s)=>s.toString(16).padStart(2,\"0\")).join(\"\")}async function Lt(e){let t=Uint8Array.from(e),n=await globalThis.crypto.subtle.digest(\"SHA-256\",t.buffer);return[...new Uint8Array(n)].map((s)=>s.toString(16).padStart(2,\"0\")).join(\"\")}function ys(e,t){if(e.computerSessionId!==t.computerSessionId)return\"frame_session_mismatch\";if(e.targetId!==t.targetId)return\"frame_target_mismatch\";if(e.mediaType!==t.mediaType)return\"frame_media_mismatch\";if(e.sha256!==t.sha256)return\"frame_digest_mismatch\";return null}async function k(e,t){await e.body?.cancel(t).catch(()=>{return})}function Wt(e,t){if(!At(t,e)&&!Ct(t,e))throw new m(502,\"retained workspace artifact receipt is invalid\")}function Ft(e){if(!e||typeof e.url!==\"string\"||typeof e.expiresAt!==\"string\"||!Number.isFinite(Date.parse(e.expiresAt)))throw new m(502,\"retained artifact download URL is invalid\");let t;try{t=new URL(e.url)}catch{throw new m(502,\"retained artifact download URL is invalid\")}if(![\"http:\",\"https:\"].includes(t.protocol)||t.username||t.password)throw new m(502,\"retained artifact download URL is unsafe\")}function fs(e,t){if(!e||e.schemaVersion!==1||e.artifactId!==t||e.contentType!==\"video/mp4\"||e.acceptRanges!==\"bytes\"||!Number.isSafeInteger(e.sizeBytes)||e.sizeBytes<=0||e.sizeBytes>St||!/^[0-9a-f]{64}$/.test(e.sha256))throw new m(502,\"generated-video playback source is invalid\");Ft({url:e.url,expiresAt:e.expiresAt})}function Rs(e){if(e===null)return null;if(!/^\\d+$/.test(e))throw new m(502,\"invalid retained artifact content-length\");let t=Number(e);if(!Number.isSafeInteger(t)||t>ie)throw new m(502,\"retained artifact response exceeds the SDK byte limit\");return t}async function Y(e,t,n){if(!e.body){if(n!==null&&n!==0)throw new m(502,\"retained artifact response length mismatch\");return new Uint8Array}let s=e.body.getReader(),r=[],i=0;try{while(!0){let{done:a,value:d}=await s.read();if(a)break;if(i+=d.byteLength,i>t)throw await s.cancel(\"retained artifact response exceeded the SDK byte limit\").catch(()=>{return}),new m(502,\"retained artifact response exceeds the SDK byte limit\");r.push(d)}}finally{s.releaseLock()}if(n!==null&&i!==n)throw new m(502,\"retained artifact response length mismatch\");let o=new Uint8Array(i),c=0;for(let a of r)o.set(a,c),c+=a.byteLength;return o}var N=2,hs=\"opengeni.site.connect\",Vt=\"opengeni.site.ready\",bs=\"opengeni.site.request\",ws=\"opengeni.site.response\",Ss=\"opengeni.site.cancel\",Ht=\"__opengeniSiteBridgeBootstrapV2\",vs=\"/__opengeni/site-tools\";class C extends Error{code;retryable;outcomeUnknown;constructor(e,t,n=!1,s=!1){super(t);this.code=e;this.retryable=n;this.outcomeUnknown=s;this.name=\"OpenGeniSiteBridgeError\"}}function Kt(e={}){let t=ks(e)?new jt(e):new Yt(e);return{client:new ve({baseUrl:\"https://site.opengeni.invalid\",fetch:(n,s)=>t.fetch(n,s)}),workspaceId:Z,tools:new ne(t).forWorkspace(\"site-host\"),close:()=>t.close()}}class jt{fetchImpl;basePath;constructor(e){this.fetchImpl=e.fetch??globalThis.fetch.bind(globalThis);let t=e.localCodemodePath;this.basePath=(typeof t===\"string\"?t:vs).replace(/\\/+$/u,\"\")}close(){}async fetch(e,t){let n=new Request(e,t),s=new URL(n.url),r=`${s.pathname}${s.search}`;return H(r,Z,n.method),this.fetchImpl(`${this.basePath}/sdk${r}`,{method:n.method,headers:n.headers,signal:n.signal,...n.body?{body:await n.text()}:{}})}async requestJson(e,t,n,s,r={}){let i=Is(e,t),o=await this.fetchImpl(`${this.basePath}${i}`,{method:e,...r.signal?{signal:r.signal}:{},...n===void 0?{}:{headers:{\"content-type\":\"application/json\"},body:JSON.stringify(n)}}),c=await o.json();if(o.ok)return c;let a=E(c)&&E(c.error)?c.error:{};throw new C(typeof a.code===\"string\"?a.code:\"local_codemode_error\",typeof a.message===\"string\"?a.message:`Local Site tool request failed with HTTP ${o.status}`,a.retryable===!0,a.outcomeUnknown===!0)}}function ks(e){if(e.localCodemodePath===!1||e.bootstrapPort)return!1;if(typeof e.localCodemodePath===\"string\")return!0;let t=e.siteWindow??globalThis.window;return Boolean(t&&t.parent===t)}function Is(e,t){if(e===\"GET\"&&t.endsWith(\"/tools/catalog\"))return\"/catalog\";if(e===\"GET\"&&t.endsWith(\"/tools/declarations\"))return\"/declarations\";if(e===\"POST\"&&t.endsWith(\"/tools/calls\"))return\"/calls\";throw new C(\"unsupported_request\",\"Unsupported Site tool request\")}function Cs(e){return{...e.operationId===void 0?{}:{operationId:e.operationId},catalogDigest:e.catalogDigest,identity:e.identity,arguments:e.arguments}}class Yt{options;bootstrap;port=null;connecting=null;closed=!1;constructor(e){this.options=e,this.bootstrap=As(e)}async fetch(e,t){return xe(await this.connect(),e,t)}async requestJson(e,t,n,s,r={}){if(e===\"GET\"&&t.endsWith(\"/tools/catalog\"))return await this.request({method:\"catalog\"},r);if(e===\"GET\"&&t.endsWith(\"/tools/declarations\"))return await this.request({method:\"declarations\"},r);if(e===\"POST\"&&t.endsWith(\"/tools/calls\")){if(!E(n))throw TypeError(\"Site tool call payload is required\");return await this.request({method:\"call\",payload:Cs(n)},r)}throw new C(\"unsupported_request\",\"Unsupported Site bridge request\")}close(){if(this.closed)return;this.closed=!0,this.bootstrap.close(),this.port?.close(),this.port=null}async request(e,t){let n=await this.connect(),s=crypto.randomUUID(),r=Jt(t.timeoutMs??this.options.requestTimeoutMs??120000,\"requestTimeoutMs\");return await new Promise((i,o)=>{let c=setTimeout(()=>{l(),Nt(n,s),o(e.method===\"call\"?new C(\"timeout\",\"Site tool request timed out after execution may have started\",!1,!0):new C(\"timeout\",\"Site tool request timed out\",!0))},r),a=()=>{l(),Nt(n,s),o(t.signal?.reason??new DOMException(\"Request aborted\",\"AbortError\"))},d=(g)=>{let u=g.data;if(!E(u)||u.type!==ws||u.version!==N||u.requestId!==s||typeof u.ok!==\"boolean\")return;if(l(),u.ok){i(u.value);return}let y=E(u.error)?u.error:{};o(new C(typeof y.code===\"string\"?y.code:\"bridge_error\",typeof y.message===\"string\"?y.message:\"Site tool request failed\",y.retryable===!0,y.outcomeUnknown===!0))},l=()=>{clearTimeout(c),t.signal?.removeEventListener(\"abort\",a),n.removeEventListener(\"message\",d)};if(t.signal?.aborted){a();return}t.signal?.addEventListener(\"abort\",a,{once:!0}),n.addEventListener(\"message\",d),n.postMessage({type:bs,version:N,requestId:s,...e})})}async connect(){if(this.closed)throw new C(\"closed\",\"Site bridge is closed\");if(this.port)return this.port;if(this.connecting)return await this.connecting;let e=(this.options.createMessageChannel??(()=>new MessageChannel))(),t=Jt(this.options.connectTimeoutMs??1e4,\"connectTimeoutMs\");return this.connecting=new Promise((n,s)=>{let r=!0,i=setTimeout(()=>{c(),e.port1.close(),s(new C(\"host_timeout\",\"Opengeni Site host did not respond\"))},t),o=(a)=>{let d=a.data;if(!E(d)||d.type!==Vt||d.version!==N)return;c(),this.port=e.port1,n(e.port1)},c=()=>{r=!1,clearTimeout(i),e.port1.removeEventListener(\"message\",o)};e.port1.addEventListener(\"message\",o),e.port1.start(),this.bootstrap.port().then((a)=>{if(!r)return;if(this.closed)throw new C(\"closed\",\"Site bridge is closed\");a.postMessage({type:hs,version:N},[e.port2])}).catch((a)=>{c(),e.port1.close(),s(a)})}).finally(()=>{this.connecting=null}),await this.connecting}}function As(e){if(e.bootstrapPort)return{port:async()=>e.bootstrapPort,close:()=>e.bootstrapPort?.close()};let t=e.siteWindow??globalThis.window,n=e.parentWindow??t?.parent;if(!t||!n||n===t)return{port:async()=>{throw new C(\"host_unavailable\",\"Opengeni Site client must run inside a hosted iframe\")},close:()=>{return}};let s=Ps(t);if(s)return{port:async()=>s,close:()=>{return}};let r=null,i=null,o=(l)=>{if(l.source!==n||!Os(l.data)||l.ports.length!==1)return;a(),r=l.ports[0],r.start(),xs(t,r),c?.(r)},c=null,a=()=>t.removeEventListener(\"message\",o),d=new Promise((l,g)=>{c=l,i=g,t.addEventListener(\"message\",o)});return d.catch(()=>{return}),{port:async()=>await d,close:()=>{a(),i?.(new C(\"closed\",\"Site bridge is closed\")),c=null,i=null}}}function Ps(e){let t=e[Ht];if(!E(t))return null;let n=t.port;return n&&typeof n.postMessage===\"function\"&&typeof n.addEventListener===\"function\"&&typeof n.start===\"function\"?n:null}function xs(e,t){try{Object.defineProperty(e,Ht,{configurable:!0,value:{port:t}})}catch{}}function Os(e){return E(e)&&e.type===Vt&&e.version===N}function Nt(e,t){e.postMessage({type:Ss,version:N,requestId:t})}function Jt(e,t){if(!Number.isFinite(e)||e<=0)throw RangeError(`${t} must be positive`);return e}function E(e){return typeof e===\"object\"&&e!==null&&!Array.isArray(e)}Object.defineProperty(globalThis,\"createOpenGeniSiteClient\",{configurable:!0,value:Kt});})();\n";