@ottocode/web-sdk 0.1.291 → 0.1.292

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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gCAAgC,sBAAsB,CAAC;AAEpE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBzD;AAaD,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,SAAS,CAenE;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED,wBAAgB,sBAAsB,SAUrC;AAgBD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,eAAO,MAAM,YAAY,QAAsB,CAAC;AAEhD,eAAO,MAAM,MAAM;;CAElB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gCAAgC,sBAAsB,CAAC;AAEpE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBzD;AAcD,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,SAAS,CAenE;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAc1D;AAED,wBAAgB,sBAAsB,SAUrC;AAgBD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,eAAO,MAAM,YAAY,QAAsB,CAAC;AAEhD,eAAO,MAAM,MAAM;;CAElB,CAAC"}
package/dist/lib/index.js CHANGED
@@ -17,6 +17,68 @@ import {
17
17
  // src/lib/api-client/utils.ts
18
18
  import { client } from "@ottocode/api";
19
19
 
20
+ // src/lib/platform.ts
21
+ function getPlatformWindow() {
22
+ if (typeof window === "undefined")
23
+ return null;
24
+ return window;
25
+ }
26
+ function openPlatformUrl(url) {
27
+ const win = getPlatformWindow();
28
+ if (!win?.OTTO_OPEN_URL)
29
+ return false;
30
+ win.OTTO_OPEN_URL(url);
31
+ return true;
32
+ }
33
+ function showPlatformNotification(notification) {
34
+ const win = getPlatformWindow();
35
+ if (!win?.OTTO_SHOW_NOTIFICATION)
36
+ return false;
37
+ win.OTTO_SHOW_NOTIFICATION(notification);
38
+ return true;
39
+ }
40
+ function listPlatformSystemFonts() {
41
+ const win = getPlatformWindow();
42
+ if (!win?.OTTO_LIST_SYSTEM_FONTS)
43
+ return null;
44
+ return win.OTTO_LIST_SYSTEM_FONTS();
45
+ }
46
+ function notifyPlatformFontFamilyChanged(fontFamily) {
47
+ const win = getPlatformWindow();
48
+ if (!win?.OTTO_SET_DESKTOP_FONT)
49
+ return false;
50
+ win.OTTO_SET_DESKTOP_FONT(fontFamily);
51
+ return true;
52
+ }
53
+ function openPlatformSession(sessionId) {
54
+ const win = getPlatformWindow();
55
+ if (!win?.OTTO_OPEN_SESSION)
56
+ return false;
57
+ win.OTTO_OPEN_SESSION(sessionId);
58
+ return true;
59
+ }
60
+ function getPlatformWindowFocused() {
61
+ const win = getPlatformWindow();
62
+ if (!win?.OTTO_IS_WINDOW_FOCUSED)
63
+ return null;
64
+ return win.OTTO_IS_WINDOW_FOCUSED();
65
+ }
66
+ function hasPlatformOpenUrl() {
67
+ return !!getPlatformWindow()?.OTTO_OPEN_URL;
68
+ }
69
+ function hasPlatformSystemFonts() {
70
+ return !!getPlatformWindow()?.OTTO_LIST_SYSTEM_FONTS;
71
+ }
72
+ function isPlatformDesktop() {
73
+ if (typeof window === "undefined")
74
+ return false;
75
+ try {
76
+ return "__TAURI__" in window || "__TAURI_INTERNALS__" in window || "__TAURI_METADATA__" in window;
77
+ } catch {
78
+ return false;
79
+ }
80
+ }
81
+
20
82
  // src/lib/config.ts
21
83
  var RUNTIME_API_BASE_URL_STORAGE_KEY = "otto-api-base-url";
22
84
  function normalizeApiBaseUrl(value) {
@@ -40,6 +102,8 @@ function normalizeApiBaseUrl(value) {
40
102
  function getStoredApiBaseUrl() {
41
103
  if (typeof window === "undefined")
42
104
  return;
105
+ if (isPlatformDesktop())
106
+ return;
43
107
  try {
44
108
  return window.localStorage.getItem(RUNTIME_API_BASE_URL_STORAGE_KEY) ?? undefined;
45
109
  } catch {
@@ -71,9 +135,11 @@ function setRuntimeApiBaseUrl(value) {
71
135
  if (typeof window !== "undefined") {
72
136
  const win = window;
73
137
  win.OTTO_SERVER_URL = baseUrl;
74
- try {
75
- window.localStorage.setItem(RUNTIME_API_BASE_URL_STORAGE_KEY, baseUrl);
76
- } catch {}
138
+ if (!isPlatformDesktop()) {
139
+ try {
140
+ window.localStorage.setItem(RUNTIME_API_BASE_URL_STORAGE_KEY, baseUrl);
141
+ } catch {}
142
+ }
77
143
  }
78
144
  return baseUrl;
79
145
  }
@@ -1316,67 +1382,6 @@ class SSEClient {
1316
1382
  }
1317
1383
  }
1318
1384
  }
1319
- // src/lib/platform.ts
1320
- function getPlatformWindow() {
1321
- if (typeof window === "undefined")
1322
- return null;
1323
- return window;
1324
- }
1325
- function openPlatformUrl(url) {
1326
- const win = getPlatformWindow();
1327
- if (!win?.OTTO_OPEN_URL)
1328
- return false;
1329
- win.OTTO_OPEN_URL(url);
1330
- return true;
1331
- }
1332
- function showPlatformNotification(notification) {
1333
- const win = getPlatformWindow();
1334
- if (!win?.OTTO_SHOW_NOTIFICATION)
1335
- return false;
1336
- win.OTTO_SHOW_NOTIFICATION(notification);
1337
- return true;
1338
- }
1339
- function listPlatformSystemFonts() {
1340
- const win = getPlatformWindow();
1341
- if (!win?.OTTO_LIST_SYSTEM_FONTS)
1342
- return null;
1343
- return win.OTTO_LIST_SYSTEM_FONTS();
1344
- }
1345
- function notifyPlatformFontFamilyChanged(fontFamily) {
1346
- const win = getPlatformWindow();
1347
- if (!win?.OTTO_SET_DESKTOP_FONT)
1348
- return false;
1349
- win.OTTO_SET_DESKTOP_FONT(fontFamily);
1350
- return true;
1351
- }
1352
- function openPlatformSession(sessionId) {
1353
- const win = getPlatformWindow();
1354
- if (!win?.OTTO_OPEN_SESSION)
1355
- return false;
1356
- win.OTTO_OPEN_SESSION(sessionId);
1357
- return true;
1358
- }
1359
- function getPlatformWindowFocused() {
1360
- const win = getPlatformWindow();
1361
- if (!win?.OTTO_IS_WINDOW_FOCUSED)
1362
- return null;
1363
- return win.OTTO_IS_WINDOW_FOCUSED();
1364
- }
1365
- function hasPlatformOpenUrl() {
1366
- return !!getPlatformWindow()?.OTTO_OPEN_URL;
1367
- }
1368
- function hasPlatformSystemFonts() {
1369
- return !!getPlatformWindow()?.OTTO_LIST_SYSTEM_FONTS;
1370
- }
1371
- function isPlatformDesktop() {
1372
- if (typeof window === "undefined")
1373
- return false;
1374
- try {
1375
- return "__TAURI__" in window || "__TAURI_INTERNALS__" in window || "__TAURI_METADATA__" in window;
1376
- } catch {
1377
- return false;
1378
- }
1379
- }
1380
1385
  export {
1381
1386
  showPlatformNotification,
1382
1387
  setRuntimeApiBaseUrl,
@@ -1401,4 +1406,4 @@ export {
1401
1406
  API_BASE_URL
1402
1407
  };
1403
1408
 
1404
- //# debugId=B412760816CE69DF64756E2164756E21
1409
+ //# debugId=1DA9515879014FE464756E2164756E21
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/lib/api-client/sessions.ts", "../src/lib/api-client/utils.ts", "../src/lib/config.ts", "../src/lib/api-client/git.ts", "../src/lib/api-client/config.ts", "../src/lib/api-client/files.ts", "../src/lib/api-client/branches.ts", "../src/lib/api-client/approval.ts", "../src/lib/api-client/ottorouter.ts", "../src/lib/api-client/auth.ts", "../src/lib/api-client/skills.ts", "../src/lib/api-client/usage.ts", "../src/lib/api-client/dictation.ts", "../src/lib/api-client/index.ts", "../src/lib/sse-client.ts", "../src/lib/platform.ts"],
3
+ "sources": ["../src/lib/api-client/sessions.ts", "../src/lib/api-client/utils.ts", "../src/lib/platform.ts", "../src/lib/config.ts", "../src/lib/api-client/git.ts", "../src/lib/api-client/config.ts", "../src/lib/api-client/files.ts", "../src/lib/api-client/branches.ts", "../src/lib/api-client/approval.ts", "../src/lib/api-client/ottorouter.ts", "../src/lib/api-client/auth.ts", "../src/lib/api-client/skills.ts", "../src/lib/api-client/usage.ts", "../src/lib/api-client/dictation.ts", "../src/lib/api-client/index.ts", "../src/lib/sse-client.ts"],
4
4
  "sourcesContent": [
5
5
  "import {\n\tcreateSession as apiCreateSession,\n\tlistSessions as apiListSessions,\n\tlistMessages as apiListMessages,\n\tcreateMessage as apiCreateMessage,\n\tabortSession as apiAbortSession,\n\tdeleteSession as apiDeleteSession,\n\tmarkSessionViewed as apiMarkSessionViewed,\n\tupdateSession as apiUpdateSession,\n\tgetSessionQueue as apiGetSessionQueue,\n\tremoveFromQueue as apiRemoveFromQueue,\n\tretryMessage as apiRetryMessage,\n\tbuildSessionStreamUrl,\n\ttype Session as ApiSession,\n\ttype CreateSessionData,\n\ttype CreateMessageData,\n} from '@ottocode/api';\nimport type {\n\tSession,\n\tMessage,\n\tCreateSessionRequest,\n\tSendMessageRequest,\n\tSendMessageResponse,\n\tUpdateSessionRequest,\n\tSessionsPage,\n} from '../../types/api';\nimport {\n\textractErrorMessage,\n\tconvertSession,\n\tconvertMessage,\n\tgetBaseUrl,\n} from './utils';\n\nexport const sessionsMixin = {\n\tasync getSessions(): Promise<Session[]> {\n\t\tconst page = await this.getSessionsPage({ limit: 200 });\n\t\treturn page.items;\n\t},\n\n\tasync getSessionsPage(\n\t\tparams: { limit?: number; offset?: number } = {},\n\t): Promise<SessionsPage> {\n\t\tconst { limit = 50, offset = 0 } = params;\n\t\tconst response = await apiListSessions({\n\t\t\tquery: { limit, offset },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\tconst data = response.data;\n\t\treturn {\n\t\t\titems: (data?.items ?? []).map((s) => convertSession(s as ApiSession)),\n\t\t\thasMore: data?.hasMore ?? false,\n\t\t\tnextOffset: data?.nextOffset ?? null,\n\t\t};\n\t},\n\n\tasync createSession(data: CreateSessionRequest): Promise<Session> {\n\t\tconst response = await apiCreateSession({\n\t\t\tbody: data as CreateSessionData['body'],\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\tif (!response.data) throw new Error('No data returned from create session');\n\t\treturn convertSession(response.data);\n\t},\n\n\tasync updateSession(\n\t\tsessionId: string,\n\t\tdata: UpdateSessionRequest,\n\t): Promise<Session> {\n\t\tconst response = await apiUpdateSession({\n\t\t\tpath: { sessionId },\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: data as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn convertSession(response.data as ApiSession);\n\t},\n\n\tasync markSessionViewed(sessionId: string): Promise<Session> {\n\t\tconst response = await apiMarkSessionViewed({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn convertSession(response.data as ApiSession);\n\t},\n\n\tasync deleteSession(sessionId: string): Promise<{ success: boolean }> {\n\t\tconst response = await apiDeleteSession({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as { success: boolean };\n\t},\n\n\tasync createHandoff(sessionId: string): Promise<{\n\t\tsession: Session;\n\t\tsessionId: string;\n\t\tsourceSessionId: string;\n\t\tmessage: string;\n\t}> {\n\t\tconst response = await fetch(\n\t\t\t`${getBaseUrl()}/v1/sessions/${encodeURIComponent(sessionId)}/handoff`,\n\t\t\t{ method: 'POST' },\n\t\t);\n\t\tconst data = await response.json().catch(() => null);\n\t\tif (!response.ok) throw new Error(extractErrorMessage(data));\n\t\tif (!data?.session || !data?.sessionId) {\n\t\t\tthrow new Error('No data returned from handoff');\n\t\t}\n\t\treturn {\n\t\t\tsession: convertSession(data.session as ApiSession),\n\t\t\tsessionId: String(data.sessionId),\n\t\t\tsourceSessionId: String(data.sourceSessionId),\n\t\t\tmessage: String(data.message ?? ''),\n\t\t};\n\t},\n\n\tasync abortSession(sessionId: string): Promise<{ success: boolean }> {\n\t\tconst response = await apiAbortSession({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as { success: boolean };\n\t},\n\n\tasync abortMessage(\n\t\tsessionId: string,\n\t\t_messageId: string,\n\t): Promise<{ success: boolean; wasRunning: boolean; messageId: string }> {\n\t\tconst response = await apiAbortSession({\n\t\t\tpath: { sessionId },\n\t\t});\n\t\tif (response.error) throw new Error('Failed to abort message');\n\t\treturn response.data as {\n\t\t\tsuccess: boolean;\n\t\t\twasRunning: boolean;\n\t\t\tmessageId: string;\n\t\t};\n\t},\n\n\tasync getQueueState(sessionId: string): Promise<{\n\t\tcurrentMessageId: string | null;\n\t\tqueuedMessages: Array<{ messageId: string; position: number }>;\n\t\tisRunning: boolean;\n\t}> {\n\t\tconst response = await apiGetSessionQueue({ path: { sessionId } });\n\t\tif (response.error) throw new Error('Failed to get queue state');\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync removeFromQueue(\n\t\tsessionId: string,\n\t\tmessageId: string,\n\t): Promise<{\n\t\tsuccess: boolean;\n\t\tremoved: boolean;\n\t\twasQueued?: boolean;\n\t\twasRunning?: boolean;\n\t}> {\n\t\tconst response = await apiRemoveFromQueue({\n\t\t\tpath: { sessionId, messageId },\n\t\t});\n\t\tif (response.error) throw new Error('Failed to remove from queue');\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync sendQueuedMessageNow(\n\t\tsessionId: string,\n\t\tmessageId: string,\n\t): Promise<{\n\t\tsuccess: boolean;\n\t\tpromoted: boolean;\n\t\twasQueued?: boolean;\n\t\twasRunning?: boolean;\n\t\tpreemptedMessageId?: string | null;\n\t}> {\n\t\tconst response = await fetch(\n\t\t\t`${getBaseUrl()}/v1/sessions/${encodeURIComponent(sessionId)}/queue/${encodeURIComponent(messageId)}/send-now`,\n\t\t\t{ method: 'POST' },\n\t\t);\n\t\tconst data = await response.json().catch(() => null);\n\t\tif (!response.ok) throw new Error(extractErrorMessage(data));\n\t\treturn data as {\n\t\t\tsuccess: boolean;\n\t\t\tpromoted: boolean;\n\t\t\twasQueued?: boolean;\n\t\t\twasRunning?: boolean;\n\t\t\tpreemptedMessageId?: string | null;\n\t\t};\n\t},\n\n\tasync getMessages(sessionId: string): Promise<Message[]> {\n\t\tconst response = await apiListMessages({ path: { id: sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn (response.data || []).map(convertMessage);\n\t},\n\n\tasync sendMessage(\n\t\tsessionId: string,\n\t\tdata: SendMessageRequest,\n\t): Promise<SendMessageResponse> {\n\t\tconst response = await apiCreateMessage({\n\t\t\tpath: { id: sessionId },\n\t\t\tbody: data as CreateMessageData['body'],\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as SendMessageResponse;\n\t},\n\n\tgetStreamUrl(sessionId: string): string {\n\t\treturn buildSessionStreamUrl({ baseUrl: getBaseUrl(), sessionId });\n\t},\n\n\tasync retryMessage(\n\t\tsessionId: string,\n\t\tmessageId: string,\n\t): Promise<{ success: boolean; messageId: string }> {\n\t\tconst response = await apiRetryMessage({\n\t\t\tpath: { sessionId, messageId },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n};\n",
6
6
  "import { client } from '@ottocode/api';\nimport type {\n\tSession as ApiSession,\n\tMessage as ApiMessage,\n} from '@ottocode/api';\nimport {\n\tgetRuntimeApiBaseUrl,\n\tsetRuntimeApiBaseUrl as persistRuntimeApiBaseUrl,\n} from '../config';\nimport type { Session, Message } from '../../types/api';\n\nfunction getClientAdapter(): 'fetch' | undefined {\n\tif (typeof window !== 'undefined' && typeof window.fetch === 'function') {\n\t\treturn 'fetch';\n\t}\n\treturn undefined;\n}\n\nexport function extractErrorMessage(error: unknown): string {\n\tif (!error) return 'Unknown error';\n\tif (typeof error === 'string') return error;\n\tif (error && typeof error === 'object') {\n\t\tconst errObj = error as Record<string, unknown>;\n\t\tif (errObj.error && typeof errObj.error === 'object') {\n\t\t\tconst innerError = errObj.error as Record<string, unknown>;\n\t\t\tif (typeof innerError.message === 'string') return innerError.message;\n\t\t}\n\t\tif (typeof errObj.error === 'string') return errObj.error;\n\t\tif (typeof errObj.message === 'string') return errObj.message;\n\t\ttry {\n\t\t\treturn JSON.stringify(error);\n\t\t} catch {\n\t\t\treturn 'Error occurred (unable to parse)';\n\t\t}\n\t}\n\treturn 'Unknown error';\n}\n\nexport function configureApiClient() {\n\tconst baseURL = getRuntimeApiBaseUrl();\n\tclient.setConfig({\n\t\tbaseURL,\n\t\tadapter: getClientAdapter(),\n\t});\n}\n\nconfigureApiClient();\n\nexport function getBaseUrl(): string {\n\treturn getRuntimeApiBaseUrl();\n}\n\nexport function setRuntimeApiBaseUrl(value: string): string {\n\tconst baseUrl = persistRuntimeApiBaseUrl(value);\n\tconfigureApiClient();\n\treturn baseUrl;\n}\n\nexport function convertSession(apiSession: ApiSession): Session {\n\treturn {\n\t\t...apiSession,\n\t\ttitle: apiSession.title ?? null,\n\t\tcreatedAt:\n\t\t\ttypeof apiSession.createdAt === 'string'\n\t\t\t\t? new Date(apiSession.createdAt).getTime()\n\t\t\t\t: apiSession.createdAt,\n\t\tlastActiveAt:\n\t\t\ttypeof apiSession.lastActiveAt === 'string'\n\t\t\t\t? new Date(apiSession.lastActiveAt).getTime()\n\t\t\t\t: apiSession.lastActiveAt,\n\t\tlastViewedAt:\n\t\t\ttypeof apiSession.lastViewedAt === 'string'\n\t\t\t\t? new Date(apiSession.lastViewedAt).getTime()\n\t\t\t\t: apiSession.lastViewedAt,\n\t} as Session;\n}\n\nexport function convertMessage(apiMessage: ApiMessage): Message {\n\treturn {\n\t\t...apiMessage,\n\t\tcreatedAt:\n\t\t\ttypeof apiMessage.createdAt === 'string'\n\t\t\t\t? new Date(apiMessage.createdAt).getTime()\n\t\t\t\t: apiMessage.createdAt,\n\t\tcompletedAt: apiMessage.completedAt\n\t\t\t? typeof apiMessage.completedAt === 'string'\n\t\t\t\t? new Date(apiMessage.completedAt).getTime()\n\t\t\t\t: apiMessage.completedAt\n\t\t\t: null,\n\t} as Message;\n}\n",
7
- "// Extend Window interface to include custom properties\ninterface OttoWindow extends Window {\n\t__OTTO_API_URL__?: string;\n\tOTTO_SERVER_URL?: string;\n}\n\nexport const RUNTIME_API_BASE_URL_STORAGE_KEY = 'otto-api-base-url';\n\nexport function normalizeApiBaseUrl(value: string): string {\n\tconst trimmed = value.trim();\n\tif (!trimmed) {\n\t\tthrow new Error('Enter an otto tunnel URL.');\n\t}\n\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(trimmed);\n\t} catch {\n\t\tthrow new Error('Enter a valid URL, including http:// or https://.');\n\t}\n\n\tif (url.protocol !== 'http:' && url.protocol !== 'https:') {\n\t\tthrow new Error('Tunnel URL must start with http:// or https://.');\n\t}\n\n\turl.hash = '';\n\turl.pathname = url.pathname.replace(/\\/+$/, '') || '';\n\treturn url.toString().replace(/\\/+$/, '');\n}\n\nfunction getStoredApiBaseUrl(): string | undefined {\n\tif (typeof window === 'undefined') return undefined;\n\ttry {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(RUNTIME_API_BASE_URL_STORAGE_KEY) ?? undefined\n\t\t);\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function getConfiguredRuntimeApiBaseUrl(): string | undefined {\n\tif (typeof window === 'undefined') return undefined;\n\n\tconst params = new URLSearchParams(window.location.search);\n\tconst urlParam = params.get('url');\n\tif (urlParam) return normalizeApiBaseUrl(urlParam);\n\n\tconst win = window as OttoWindow;\n\tif (win.OTTO_SERVER_URL) return normalizeApiBaseUrl(win.OTTO_SERVER_URL);\n\tif (win.__OTTO_API_URL__) return normalizeApiBaseUrl(win.__OTTO_API_URL__);\n\n\tconst storedUrl = getStoredApiBaseUrl();\n\tif (storedUrl) return normalizeApiBaseUrl(storedUrl);\n\n\treturn undefined;\n}\n\nexport function hasConfiguredRuntimeApiBaseUrl(): boolean {\n\treturn Boolean(getConfiguredRuntimeApiBaseUrl());\n}\n\nexport function setRuntimeApiBaseUrl(value: string): string {\n\tconst baseUrl = normalizeApiBaseUrl(value);\n\tif (typeof window !== 'undefined') {\n\t\tconst win = window as OttoWindow;\n\t\twin.OTTO_SERVER_URL = baseUrl;\n\t\ttry {\n\t\t\twindow.localStorage.setItem(RUNTIME_API_BASE_URL_STORAGE_KEY, baseUrl);\n\t\t} catch {\n\t\t\t// Ignore storage errors; the in-memory URL still works for this page load.\n\t\t}\n\t}\n\treturn baseUrl;\n}\n\nexport function clearRuntimeApiBaseUrl() {\n\tif (typeof window === 'undefined') return;\n\tconst win = window as OttoWindow;\n\tdelete win.OTTO_SERVER_URL;\n\tdelete win.__OTTO_API_URL__;\n\ttry {\n\t\twindow.localStorage.removeItem(RUNTIME_API_BASE_URL_STORAGE_KEY);\n\t} catch {\n\t\t// Ignore storage errors.\n\t}\n}\n\n// This function will execute at runtime in the browser\nfunction computeApiBaseUrl(): string {\n\tconst runtimeUrl = getConfiguredRuntimeApiBaseUrl();\n\tif (runtimeUrl) {\n\t\treturn runtimeUrl;\n\t}\n\n\tconst envUrl = import.meta.env?.VITE_API_BASE_URL;\n\tif (envUrl) return normalizeApiBaseUrl(envUrl);\n\n\t// Fallback for standalone dev\n\treturn 'http://localhost:9100';\n}\n\nexport function getRuntimeApiBaseUrl(): string {\n\treturn computeApiBaseUrl();\n}\n\nexport const API_BASE_URL = computeApiBaseUrl();\n\nexport const config = {\n\tapiBaseUrl: API_BASE_URL,\n};\n",
7
+ "export interface OttoPlatformNotification {\n\tid: string;\n\ttitle: string;\n\tbody?: string;\n\tsessionId?: string;\n}\n\ninterface OttoPlatformWindow extends Window {\n\tOTTO_OPEN_URL?: (url: string) => void | Promise<void>;\n\tOTTO_SHOW_NOTIFICATION?: (\n\t\tnotification: OttoPlatformNotification,\n\t) => void | Promise<void>;\n\tOTTO_LIST_SYSTEM_FONTS?: () => Promise<string[]>;\n\tOTTO_SET_DESKTOP_FONT?: (fontFamily: string) => void | Promise<void>;\n\tOTTO_OPEN_SESSION?: (sessionId: string) => void | Promise<void>;\n\tOTTO_IS_WINDOW_FOCUSED?: () => boolean;\n}\n\nfunction getPlatformWindow(): OttoPlatformWindow | null {\n\tif (typeof window === 'undefined') return null;\n\treturn window as OttoPlatformWindow;\n}\n\nexport function openPlatformUrl(url: string): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_OPEN_URL) return false;\n\tvoid win.OTTO_OPEN_URL(url);\n\treturn true;\n}\n\nexport function showPlatformNotification(\n\tnotification: OttoPlatformNotification,\n): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_SHOW_NOTIFICATION) return false;\n\tvoid win.OTTO_SHOW_NOTIFICATION(notification);\n\treturn true;\n}\n\nexport function listPlatformSystemFonts(): Promise<string[]> | null {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_LIST_SYSTEM_FONTS) return null;\n\treturn win.OTTO_LIST_SYSTEM_FONTS();\n}\n\nexport function notifyPlatformFontFamilyChanged(fontFamily: string): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_SET_DESKTOP_FONT) return false;\n\tvoid win.OTTO_SET_DESKTOP_FONT(fontFamily);\n\treturn true;\n}\n\nexport function openPlatformSession(sessionId: string): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_OPEN_SESSION) return false;\n\tvoid win.OTTO_OPEN_SESSION(sessionId);\n\treturn true;\n}\n\nexport function getPlatformWindowFocused(): boolean | null {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_IS_WINDOW_FOCUSED) return null;\n\treturn win.OTTO_IS_WINDOW_FOCUSED();\n}\n\nexport function hasPlatformOpenUrl(): boolean {\n\treturn !!getPlatformWindow()?.OTTO_OPEN_URL;\n}\n\nexport function hasPlatformSystemFonts(): boolean {\n\treturn !!getPlatformWindow()?.OTTO_LIST_SYSTEM_FONTS;\n}\n\nexport function isPlatformDesktop(): boolean {\n\tif (typeof window === 'undefined') return false;\n\ttry {\n\t\treturn (\n\t\t\t'__TAURI__' in window ||\n\t\t\t'__TAURI_INTERNALS__' in window ||\n\t\t\t'__TAURI_METADATA__' in window\n\t\t);\n\t} catch {\n\t\treturn false;\n\t}\n}\n",
8
+ "import { isPlatformDesktop } from './platform';\n\n// Extend Window interface to include custom properties\ninterface OttoWindow extends Window {\n\t__OTTO_API_URL__?: string;\n\tOTTO_SERVER_URL?: string;\n}\n\nexport const RUNTIME_API_BASE_URL_STORAGE_KEY = 'otto-api-base-url';\n\nexport function normalizeApiBaseUrl(value: string): string {\n\tconst trimmed = value.trim();\n\tif (!trimmed) {\n\t\tthrow new Error('Enter an otto tunnel URL.');\n\t}\n\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(trimmed);\n\t} catch {\n\t\tthrow new Error('Enter a valid URL, including http:// or https://.');\n\t}\n\n\tif (url.protocol !== 'http:' && url.protocol !== 'https:') {\n\t\tthrow new Error('Tunnel URL must start with http:// or https://.');\n\t}\n\n\turl.hash = '';\n\turl.pathname = url.pathname.replace(/\\/+$/, '') || '';\n\treturn url.toString().replace(/\\/+$/, '');\n}\n\nfunction getStoredApiBaseUrl(): string | undefined {\n\tif (typeof window === 'undefined') return undefined;\n\tif (isPlatformDesktop()) return undefined;\n\ttry {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(RUNTIME_API_BASE_URL_STORAGE_KEY) ?? undefined\n\t\t);\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function getConfiguredRuntimeApiBaseUrl(): string | undefined {\n\tif (typeof window === 'undefined') return undefined;\n\n\tconst params = new URLSearchParams(window.location.search);\n\tconst urlParam = params.get('url');\n\tif (urlParam) return normalizeApiBaseUrl(urlParam);\n\n\tconst win = window as OttoWindow;\n\tif (win.OTTO_SERVER_URL) return normalizeApiBaseUrl(win.OTTO_SERVER_URL);\n\tif (win.__OTTO_API_URL__) return normalizeApiBaseUrl(win.__OTTO_API_URL__);\n\n\tconst storedUrl = getStoredApiBaseUrl();\n\tif (storedUrl) return normalizeApiBaseUrl(storedUrl);\n\n\treturn undefined;\n}\n\nexport function hasConfiguredRuntimeApiBaseUrl(): boolean {\n\treturn Boolean(getConfiguredRuntimeApiBaseUrl());\n}\n\nexport function setRuntimeApiBaseUrl(value: string): string {\n\tconst baseUrl = normalizeApiBaseUrl(value);\n\tif (typeof window !== 'undefined') {\n\t\tconst win = window as OttoWindow;\n\t\twin.OTTO_SERVER_URL = baseUrl;\n\t\tif (!isPlatformDesktop()) {\n\t\t\ttry {\n\t\t\t\twindow.localStorage.setItem(RUNTIME_API_BASE_URL_STORAGE_KEY, baseUrl);\n\t\t\t} catch {\n\t\t\t\t// Ignore storage errors; the in-memory URL still works for this page load.\n\t\t\t}\n\t\t}\n\t}\n\treturn baseUrl;\n}\n\nexport function clearRuntimeApiBaseUrl() {\n\tif (typeof window === 'undefined') return;\n\tconst win = window as OttoWindow;\n\tdelete win.OTTO_SERVER_URL;\n\tdelete win.__OTTO_API_URL__;\n\ttry {\n\t\twindow.localStorage.removeItem(RUNTIME_API_BASE_URL_STORAGE_KEY);\n\t} catch {\n\t\t// Ignore storage errors.\n\t}\n}\n\n// This function will execute at runtime in the browser\nfunction computeApiBaseUrl(): string {\n\tconst runtimeUrl = getConfiguredRuntimeApiBaseUrl();\n\tif (runtimeUrl) {\n\t\treturn runtimeUrl;\n\t}\n\n\tconst envUrl = import.meta.env?.VITE_API_BASE_URL;\n\tif (envUrl) return normalizeApiBaseUrl(envUrl);\n\n\t// Fallback for standalone dev\n\treturn 'http://localhost:9100';\n}\n\nexport function getRuntimeApiBaseUrl(): string {\n\treturn computeApiBaseUrl();\n}\n\nexport const API_BASE_URL = computeApiBaseUrl();\n\nexport const config = {\n\tapiBaseUrl: API_BASE_URL,\n};\n",
8
9
  "import {\n\tgetGitStatus as apiGetGitStatus,\n\tgetGitDiff as apiGetGitDiff,\n\tgetGitBranch as apiGetGitBranch,\n\tstageFiles as apiStageFiles,\n\tunstageFiles as apiUnstageFiles,\n\trestoreFiles as apiRestoreFiles,\n\tdeleteFiles as apiDeleteFiles,\n\tcommitChanges as apiCommitChanges,\n\tgenerateCommitMessage as apiGenerateCommitMessage,\n\tpushCommits as apiPushCommits,\n\tpullChanges as apiPullChanges,\n\tperformGitRebaseAction as apiPerformGitRebaseAction,\n\tinitGitRepo as apiInitGitRepo,\n\tgetGitRemotes as apiGetGitRemotes,\n\taddGitRemote as apiAddGitRemote,\n\tremoveGitRemote as apiRemoveGitRemote,\n\tlistGitBranches as apiListGitBranches,\n\tcheckoutGitBranch as apiCheckoutGitBranch,\n\tcreateGitBranch as apiCreateGitBranch,\n} from '@ottocode/api';\nimport type {\n\tGitStatusResponse,\n\tGitDiffResponse,\n\tGitStageResponse,\n\tGitUnstageResponse,\n\tGitCommitResponse,\n\tGitGenerateCommitMessageResponse,\n\tGitBranchInfo,\n\tGitPushResponse,\n\tGitPullResponse,\n\tGitRebaseActionResponse,\n\tGitRemoteInfo,\n\tGitBranchListResponse,\n} from '../../types/api';\nimport { extractErrorMessage } from './utils';\n\nexport const gitMixin = {\n\tasync initGitRepo(): Promise<{ initialized: boolean; path: string }> {\n\t\tconst response = await apiInitGitRepo({\n\t\t\tbody: {},\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data;\n\t},\n\n\tasync getGitStatus(): Promise<GitStatusResponse> {\n\t\tconst response = await apiGetGitStatus();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitStatusResponse;\n\t},\n\n\tasync getGitDiff(\n\t\tfile: string,\n\t\tstaged: boolean = false,\n\t): Promise<GitDiffResponse> {\n\t\tconst response = await apiGetGitDiff({\n\t\t\tquery: { file, staged: staged ? 'true' : 'false' },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitDiffResponse;\n\t},\n\n\tasync getGitDiffFullFile(\n\t\tfile: string,\n\t\tstaged = false,\n\t): Promise<GitDiffResponse> {\n\t\tconst response = await apiGetGitDiff({\n\t\t\tquery: {\n\t\t\t\tfile,\n\t\t\t\tstaged: staged ? 'true' : 'false',\n\t\t\t\tfullFile: 'true',\n\t\t\t},\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitDiffResponse;\n\t},\n\n\tasync generateCommitMessage(\n\t\tsessionId?: string,\n\t): Promise<GitGenerateCommitMessageResponse> {\n\t\tconst response = await apiGenerateCommitMessage({\n\t\t\tbody: sessionId ? { sessionId } : {},\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitGenerateCommitMessageResponse;\n\t},\n\n\tasync stageFiles(files: string[]): Promise<GitStageResponse> {\n\t\tconst response = await apiStageFiles({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { files } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitStageResponse;\n\t},\n\n\tasync unstageFiles(files: string[]): Promise<GitUnstageResponse> {\n\t\tconst response = await apiUnstageFiles({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { files } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitUnstageResponse;\n\t},\n\n\tasync restoreFiles(files: string[]): Promise<{ restored: string[] }> {\n\t\tconst response = await apiRestoreFiles({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { files } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as { restored: string[] };\n\t},\n\n\tasync deleteFiles(files: string[]): Promise<{ deleted: string[] }> {\n\t\tconst response = await apiDeleteFiles({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { files } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as { deleted: string[] };\n\t},\n\n\tasync commitChanges(message: string): Promise<GitCommitResponse> {\n\t\tconst response = await apiCommitChanges({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { message } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitCommitResponse;\n\t},\n\n\tasync getGitBranch(): Promise<GitBranchInfo> {\n\t\tconst response = await apiGetGitBranch();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitBranchInfo;\n\t},\n\n\tasync pushCommits(): Promise<GitPushResponse> {\n\t\tconst response = await apiPushCommits({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: {} as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitPushResponse;\n\t},\n\n\tasync pullChanges(): Promise<GitPullResponse> {\n\t\tconst response = await apiPullChanges({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: {} as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitPullResponse;\n\t},\n\n\tasync performRebaseAction(\n\t\taction: 'continue' | 'abort' | 'skip',\n\t): Promise<GitRebaseActionResponse> {\n\t\tconst response = await apiPerformGitRebaseAction({\n\t\t\tbody: { action },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitRebaseActionResponse;\n\t},\n\n\tasync getRemotes(): Promise<GitRemoteInfo[]> {\n\t\tconst response = await apiGetGitRemotes();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data?.remotes as GitRemoteInfo[];\n\t},\n\n\tasync addRemote(\n\t\tname: string,\n\t\turl: string,\n\t): Promise<{ name: string; url: string }> {\n\t\tconst response = await apiAddGitRemote({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { name, url } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as { name: string; url: string };\n\t},\n\n\tasync removeRemote(name: string): Promise<{ removed: string }> {\n\t\tconst response = await apiRemoveGitRemote({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { name } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as { removed: string };\n\t},\n\n\tasync listGitBranches(): Promise<GitBranchListResponse> {\n\t\tconst response = await apiListGitBranches();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as GitBranchListResponse;\n\t},\n\n\tasync checkoutBranch(branch: string): Promise<{ branch: string }> {\n\t\tconst response = await apiCheckoutGitBranch({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { branch } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as { branch: string };\n\t},\n\n\tasync createGitBranch(\n\t\tname: string,\n\t\toptions?: { startPoint?: string; checkout?: boolean },\n\t): Promise<{ branch: string; checkedOut: boolean }> {\n\t\tconst response = await apiCreateGitBranch({\n\t\t\tbody: {\n\t\t\t\tname,\n\t\t\t\t...(options?.startPoint ? { startPoint: options.startPoint } : {}),\n\t\t\t\t...(options?.checkout !== undefined\n\t\t\t\t\t? { checkout: options.checkout }\n\t\t\t\t\t: {}),\n\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\t} as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn (response.data as any)?.data as {\n\t\t\tbranch: string;\n\t\t\tcheckedOut: boolean;\n\t\t};\n\t},\n};\n",
9
10
  "import {\n\tgetConfig as apiGetConfig,\n\tgetProviderModels as apiGetProviderModels,\n\tgetAllModels as apiGetAllModels,\n\tdiscoverProviderModels as apiDiscoverProviderModels,\n\tupdateDefaults as apiUpdateDefaults,\n\tupdateProviderSettings as apiUpdateProviderSettings,\n\tdeleteProviderSettings as apiDeleteProviderSettings,\n} from '@ottocode/api';\nimport type { AllModelsResponse } from '../../types/api';\nimport { extractErrorMessage } from './utils';\n\ntype ProviderCompatibility =\n\t| 'openai'\n\t| 'anthropic'\n\t| 'google'\n\t| 'openrouter'\n\t| 'ollama'\n\t| 'openai-compatible';\n\nexport type DiscoveredProviderModel = {\n\tid: string;\n\tlabel: string;\n\ttoolCall?: boolean;\n\treasoningText?: boolean;\n\tvision?: boolean;\n\tattachment?: boolean;\n\tcontextWindow?: number;\n\tmaxOutputTokens?: number;\n};\n\nexport const configMixin = {\n\tasync getConfig(): Promise<{\n\t\tagents: string[];\n\t\tproviders: string[];\n\t\tdefaults: {\n\t\t\tagent: string;\n\t\t\tprovider: string;\n\t\t\tmodel: string;\n\t\t\ttoolApproval?: 'auto' | 'dangerous' | 'all' | 'yolo';\n\t\t\tguidedMode?: boolean;\n\t\t\treasoningText?: boolean;\n\t\t\treasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';\n\t\t\ttheme?: 'light' | 'dark';\n\t\t\tvimMode?: boolean;\n\t\t\tcompactThread?: boolean;\n\t\t\tfontFamily?: string;\n\t\t\tsmartEdges?: boolean;\n\t\t\treleaseToSend?: boolean;\n\t\t\tfullWidthContent?: boolean;\n\t\t\tautoCompactThresholdTokens?: number | null;\n\t\t};\n\t}> {\n\t\tconst response = await apiGetConfig();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync getModels(providerId: string): Promise<{\n\t\tmodels: Array<{\n\t\t\tid: string;\n\t\t\tlabel: string;\n\t\t\ttoolCall?: boolean;\n\t\t\treasoningText?: boolean;\n\t\t\tvision?: boolean;\n\t\t\tattachment?: boolean;\n\t\t\tfree?: boolean;\n\t\t\tcontextWindow?: number;\n\t\t\tmaxOutputTokens?: number;\n\t\t\tavailable?: boolean;\n\t\t\tunavailableReason?: string;\n\t\t}>;\n\t\tdefault: string;\n\t\tallowAnyModel?: boolean;\n\t\tdynamicModels?: boolean;\n\t\tlabel?: string;\n\t}> {\n\t\tconst response = await apiGetProviderModels({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tpath: { provider: providerId as any },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync getAllModels(): Promise<AllModelsResponse> {\n\t\tconst response = await apiGetAllModels();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as AllModelsResponse;\n\t},\n\n\tasync discoverProviderModels(data: {\n\t\tcompatibility: ProviderCompatibility;\n\t\tbaseURL: string;\n\t\tapiKey?: string;\n\t}): Promise<{\n\t\tbaseURL?: string;\n\t\tmodels: DiscoveredProviderModel[];\n\t\tunsupported?: boolean;\n\t\tmessage?: string;\n\t}> {\n\t\tconst response = await apiDiscoverProviderModels({\n\t\t\tbody: data,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as {\n\t\t\tbaseURL?: string;\n\t\t\tmodels: DiscoveredProviderModel[];\n\t\t\tunsupported?: boolean;\n\t\t\tmessage?: string;\n\t\t};\n\t},\n\n\tasync updateProviderSettings(\n\t\tprovider: string,\n\t\tdata: {\n\t\t\tenabled?: boolean;\n\t\t\tcustom?: boolean;\n\t\t\tlabel?: string;\n\t\t\tcompatibility?: ProviderCompatibility;\n\t\t\tbaseURL?: string | null;\n\t\t\tapiKey?: string | null;\n\t\t\tmodels?: string[];\n\t\t\tallowAnyModel?: boolean;\n\t\t},\n\t): Promise<{ success: boolean; provider: string }> {\n\t\tconst response = await apiUpdateProviderSettings({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tpath: { provider: provider as any },\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: data as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync deleteProviderSettings(\n\t\tprovider: string,\n\t): Promise<{ success: boolean; provider: string }> {\n\t\tconst response = await apiDeleteProviderSettings({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tpath: { provider: provider as any },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync updateDefaults(data: {\n\t\tagent?: string;\n\t\tprovider?: string;\n\t\tmodel?: string;\n\t\ttoolApproval?: 'auto' | 'dangerous' | 'all' | 'yolo';\n\t\tguidedMode?: boolean;\n\t\treasoningText?: boolean;\n\t\treasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';\n\t\ttheme?: 'light' | 'dark';\n\t\tvimMode?: boolean;\n\t\tcompactThread?: boolean;\n\t\tfontFamily?: string;\n\t\tsmartEdges?: boolean;\n\t\treleaseToSend?: boolean;\n\t\tfullWidthContent?: boolean;\n\t\tautoCompactThresholdTokens?: number | null;\n\t\tscope?: 'global' | 'local';\n\t}): Promise<{\n\t\tsuccess: boolean;\n\t\tdefaults: {\n\t\t\tagent: string;\n\t\t\tprovider: string;\n\t\t\tmodel: string;\n\t\t\ttoolApproval?: 'auto' | 'dangerous' | 'all' | 'yolo';\n\t\t\tguidedMode?: boolean;\n\t\t\treasoningText?: boolean;\n\t\t\treasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';\n\t\t\ttheme?: 'light' | 'dark';\n\t\t\tvimMode?: boolean;\n\t\t\tcompactThread?: boolean;\n\t\t\tfontFamily?: string;\n\t\t\tsmartEdges?: boolean;\n\t\t\treleaseToSend?: boolean;\n\t\t\tfullWidthContent?: boolean;\n\t\t\tautoCompactThresholdTokens?: number | null;\n\t\t};\n\t}> {\n\t\tconst response = await apiUpdateDefaults({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: data as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n};\n",
10
11
  "import {\n\tlistFiles as apiListFiles,\n\tsearchFiles as apiSearchFiles,\n\tgetFileTree as apiGetFileTree,\n\treadFile as apiReadFile,\n\tgetSessionFiles as apiGetSessionFiles,\n} from '@ottocode/api';\nimport type { SessionFilesResponse } from '../../types/api';\nimport { extractErrorMessage } from './utils';\n\nexport const filesMixin = {\n\tasync listFiles() {\n\t\tconst response = await apiListFiles();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as {\n\t\t\tfiles: string[];\n\t\t\tignoredFiles?: string[];\n\t\t\tchangedFiles: Array<{ path: string; status: string }>;\n\t\t\ttruncated: boolean;\n\t\t};\n\t},\n\n\tasync searchFiles(query = '') {\n\t\tconst response = await apiSearchFiles({ query: { q: query } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as {\n\t\t\tfiles: string[];\n\t\t\tignoredFiles?: string[];\n\t\t\tchangedFiles: Array<{ path: string; status: string }>;\n\t\t\ttruncated: boolean;\n\t\t};\n\t},\n\n\tasync getFileTree(dirPath = '.'): Promise<{\n\t\titems: Array<{\n\t\t\tname: string;\n\t\t\tpath: string;\n\t\t\ttype: 'file' | 'directory';\n\t\t\tgitignored?: boolean;\n\t\t\tvendor?: boolean;\n\t\t\tsearchable?: boolean;\n\t\t}>;\n\t\tpath: string;\n\t\ttruncated: boolean;\n\t}> {\n\t\tconst response = await apiGetFileTree({\n\t\t\tquery: { path: dirPath },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync readFileContent(filePath: string): Promise<{\n\t\tcontent: string;\n\t\tpath: string;\n\t\textension: string;\n\t\tlineCount: number;\n\t}> {\n\t\tconst response = await apiReadFile({\n\t\t\tquery: { path: filePath },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\t// biome-ignore lint/suspicious/noExplicitAny: API response structure\n\t\treturn response.data as any;\n\t},\n\n\tasync getSessionFiles(sessionId: string): Promise<SessionFilesResponse> {\n\t\tconst response = await apiGetSessionFiles({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as SessionFilesResponse;\n\t},\n};\n",
@@ -16,10 +17,9 @@
16
17
  "import {\n\tgetUsageStats as apiGetUsageStats,\n\tgetGlobalUsageStats as apiGetGlobalUsageStats,\n\ttype UsageStats,\n\ttype UsageProviderAgg,\n\ttype UsageModelAgg,\n\ttype UsageDailyAgg,\n\ttype UsageProjectInfo,\n\ttype UsageProjectUnavailable,\n\ttype UsageProjectsBreakdown,\n\ttype UsageTotals,\n} from '@ottocode/api';\nimport { extractErrorMessage } from './utils';\n\nexport type {\n\tUsageStats,\n\tUsageProviderAgg,\n\tUsageModelAgg,\n\tUsageDailyAgg,\n\tUsageProjectInfo,\n\tUsageProjectUnavailable,\n\tUsageProjectsBreakdown,\n\tUsageTotals,\n};\n\nexport type UsageAuthBucket = 'oauth' | 'api' | 'subscription';\n\nexport const usageMixin = {\n\tasync getUsageStats(): Promise<UsageStats> {\n\t\tconst { data, error } = await apiGetUsageStats();\n\t\tif (error) throw new Error(extractErrorMessage(error));\n\t\tif (!data) throw new Error('Empty response from /v1/usage/stats');\n\t\treturn data;\n\t},\n\tasync getGlobalUsageStats(): Promise<UsageStats> {\n\t\tconst { data, error } = await apiGetGlobalUsageStats();\n\t\tif (error) throw new Error(extractErrorMessage(error));\n\t\tif (!data) throw new Error('Empty response from /v1/usage/stats/global');\n\t\treturn data;\n\t},\n};\n",
17
18
  "import {\n\tgetDictationStatus as apiGetDictationStatus,\n\tinstallDictationModel as apiInstallDictationModel,\n\tlistDictationModels as apiListDictationModels,\n\tremoveDictationModel as apiRemoveDictationModel,\n\tcreateDictationSession as apiCreateDictationSession,\n} from '@ottocode/api';\nimport { extractErrorMessage, getBaseUrl } from './utils';\n\nexport type DictationModelInstallStatus =\n\t| 'idle'\n\t| 'installing'\n\t| 'verifying'\n\t| 'installed'\n\t| 'error';\n\nexport interface DictationModelState {\n\tid: string;\n\tlabel: string;\n\tlanguage: 'en' | 'multi';\n\tsizeBytes: number;\n\turl: string;\n\tsha256: string;\n\trecommended?: boolean;\n\tinstalled: boolean;\n\tinstalling: boolean;\n\tinstalledSizeBytes: number;\n\tinstallStatus: DictationModelInstallStatus;\n\tprogressBytes: number;\n\ttotalBytes: number;\n\terror?: string;\n\terrorCode?: string;\n}\n\nexport interface DictationStatusResponse {\n\tavailable: boolean;\n\tengine: string;\n\tengineInstalled: boolean;\n\tdefaultModel: string;\n\tformat?: {\n\t\tencoding?: string;\n\t\tsampleRate?: number;\n\t\tchannels?: number;\n\t};\n\tmodels: DictationModelState[];\n}\n\nexport interface DictationModelsResponse {\n\tmodels: DictationModelState[];\n}\n\nexport interface InstallDictationModelInput {\n\tmodel: string;\n\tforce?: boolean;\n}\n\nexport interface InstallDictationModelResponse {\n\tmodel: DictationModelState;\n}\n\nexport interface RemoveDictationModelResponse {\n\tremoved: boolean;\n\tmodel: DictationModelState;\n}\n\nexport interface DictationModelInstallEvent {\n\ttype: 'model';\n\tmodel: DictationModelState;\n}\n\nexport interface CreateDictationSessionInput {\n\tmodel?: string;\n\tlanguage?: string;\n}\n\nexport interface CreateDictationSessionResponse {\n\tid: string;\n\twsUrl: string;\n\tmodel: string;\n\tmodelInstalled: boolean;\n\tformat: {\n\t\tencoding: string;\n\t\tsampleRate: number;\n\t\tchannels: number;\n\t};\n}\n\nfunction coerceModelState(value: unknown): DictationModelState {\n\treturn value as DictationModelState;\n}\n\nfunction coerceModels(value: unknown): DictationModelState[] {\n\treturn Array.isArray(value) ? value.map(coerceModelState) : [];\n}\n\nfunction buildInstallEventsUrl(model: string): string {\n\tconst baseUrl = getBaseUrl().replace(/\\/+$/, '');\n\treturn `${baseUrl}/v1/dictation/models/${encodeURIComponent(model)}/install/events`;\n}\n\nexport const dictationMixin = {\n\tasync getDictationStatus(): Promise<DictationStatusResponse> {\n\t\tconst response = await apiGetDictationStatus();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\tconst data = response.data as Omit<DictationStatusResponse, 'models'> & {\n\t\t\tmodels?: unknown;\n\t\t};\n\t\treturn {\n\t\t\t...data,\n\t\t\tmodels: coerceModels(data.models),\n\t\t};\n\t},\n\n\tasync listDictationModels(): Promise<DictationModelsResponse> {\n\t\tconst response = await apiListDictationModels();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\tconst data = response.data as { models?: unknown };\n\t\treturn { models: coerceModels(data.models) };\n\t},\n\n\tasync installDictationModel({\n\t\tmodel,\n\t\tforce,\n\t}: InstallDictationModelInput): Promise<InstallDictationModelResponse> {\n\t\tconst response = await apiInstallDictationModel({\n\t\t\tpath: { model },\n\t\t\tbody: { force },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\tconst data = response.data as { model: unknown };\n\t\treturn { model: coerceModelState(data.model) };\n\t},\n\n\tasync removeDictationModel(\n\t\tmodel: string,\n\t): Promise<RemoveDictationModelResponse> {\n\t\tconst response = await apiRemoveDictationModel({ path: { model } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\tconst data = response.data as { removed: boolean; model: unknown };\n\t\treturn {\n\t\t\tremoved: data.removed,\n\t\t\tmodel: coerceModelState(data.model),\n\t\t};\n\t},\n\n\tasync createDictationSession(\n\t\tinput: CreateDictationSessionInput = {},\n\t): Promise<CreateDictationSessionResponse> {\n\t\tconst response = await apiCreateDictationSession({ body: input });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as CreateDictationSessionResponse;\n\t},\n\n\tgetDictationModelInstallEventsUrl: buildInstallEventsUrl,\n};\n",
18
19
  "import { sessionsMixin } from './sessions';\nimport { gitMixin } from './git';\nimport { configMixin } from './config';\nimport { filesMixin } from './files';\nimport { branchesMixin } from './branches';\nimport { approvalMixin } from './approval';\nimport { ottorouterMixin } from './ottorouter';\nimport { authMixin } from './auth';\nimport { skillsMixin } from './skills';\nimport { usageMixin } from './usage';\nimport { dictationMixin } from './dictation';\n\nexport { configureApiClient } from './utils';\nexport type {\n\tCreateDictationSessionInput,\n\tCreateDictationSessionResponse,\n\tDictationModelInstallEvent,\n\tDictationModelInstallStatus,\n\tDictationModelState,\n\tDictationModelsResponse,\n\tDictationStatusResponse,\n\tInstallDictationModelInput,\n\tInstallDictationModelResponse,\n\tRemoveDictationModelResponse,\n} from './dictation';\n\nclass ApiClient {\n\tgetSessions = sessionsMixin.getSessions;\n\tgetSessionsPage = sessionsMixin.getSessionsPage;\n\tcreateSession = sessionsMixin.createSession;\n\tupdateSession = sessionsMixin.updateSession;\n\tmarkSessionViewed = sessionsMixin.markSessionViewed;\n\tdeleteSession = sessionsMixin.deleteSession;\n\tcreateHandoff = sessionsMixin.createHandoff;\n\tabortSession = sessionsMixin.abortSession;\n\tabortMessage = sessionsMixin.abortMessage;\n\tgetQueueState = sessionsMixin.getQueueState;\n\tremoveFromQueue = sessionsMixin.removeFromQueue;\n\tsendQueuedMessageNow = sessionsMixin.sendQueuedMessageNow;\n\tgetMessages = sessionsMixin.getMessages;\n\tsendMessage = sessionsMixin.sendMessage;\n\tgetStreamUrl = sessionsMixin.getStreamUrl;\n\tretryMessage = sessionsMixin.retryMessage;\n\n\tinitGitRepo = gitMixin.initGitRepo;\n\tgetGitStatus = gitMixin.getGitStatus;\n\tgetGitDiff = gitMixin.getGitDiff;\n\tgetGitDiffFullFile = gitMixin.getGitDiffFullFile;\n\tgenerateCommitMessage = gitMixin.generateCommitMessage;\n\tstageFiles = gitMixin.stageFiles;\n\tunstageFiles = gitMixin.unstageFiles;\n\trestoreFiles = gitMixin.restoreFiles;\n\tdeleteFiles = gitMixin.deleteFiles;\n\tcommitChanges = gitMixin.commitChanges;\n\tgetGitBranch = gitMixin.getGitBranch;\n\tpushCommits = gitMixin.pushCommits;\n\tpullChanges = gitMixin.pullChanges;\n\tperformRebaseAction = gitMixin.performRebaseAction;\n\tgetRemotes = gitMixin.getRemotes;\n\taddRemote = gitMixin.addRemote;\n\tremoveRemote = gitMixin.removeRemote;\n\tlistGitBranches = gitMixin.listGitBranches;\n\tcheckoutBranch = gitMixin.checkoutBranch;\n\tcreateGitBranch = gitMixin.createGitBranch;\n\n\tgetConfig = configMixin.getConfig;\n\tgetModels = configMixin.getModels;\n\tgetAllModels = configMixin.getAllModels;\n\tdiscoverProviderModels = configMixin.discoverProviderModels;\n\tupdateProviderSettings = configMixin.updateProviderSettings;\n\tdeleteProviderSettings = configMixin.deleteProviderSettings;\n\tupdateDefaults = configMixin.updateDefaults;\n\n\tlistFiles = filesMixin.listFiles;\n\tsearchFiles = filesMixin.searchFiles;\n\tgetFileTree = filesMixin.getFileTree;\n\treadFileContent = filesMixin.readFileContent;\n\tgetSessionFiles = filesMixin.getSessionFiles;\n\n\tcreateBranch = branchesMixin.createBranch;\n\tlistBranches = branchesMixin.listBranches;\n\tgetParentSession = branchesMixin.getParentSession;\n\tgetShareStatus = branchesMixin.getShareStatus;\n\tshareSession = branchesMixin.shareSession;\n\tsyncSession = branchesMixin.syncSession;\n\n\tapproveToolCall = approvalMixin.approveToolCall;\n\tgetPendingApprovals = approvalMixin.getPendingApprovals;\n\n\tgetOttoRouterBalance = ottorouterMixin.getOttoRouterBalance;\n\tgetOttoRouterWallet = ottorouterMixin.getOttoRouterWallet;\n\tgetOttoRouterUsdcBalance = ottorouterMixin.getOttoRouterUsdcBalance;\n\tgetPolarTopupEstimate = ottorouterMixin.getPolarTopupEstimate;\n\tcreatePolarCheckout = ottorouterMixin.createPolarCheckout;\n\tselectTopupMethod = ottorouterMixin.selectTopupMethod;\n\tcancelTopup = ottorouterMixin.cancelTopup;\n\tgetPendingTopup = ottorouterMixin.getPendingTopup;\n\tgetPolarTopupStatus = ottorouterMixin.getPolarTopupStatus;\n\tgetRazorpayTopupEstimate = ottorouterMixin.getRazorpayTopupEstimate;\n\tcreateRazorpayOrder = ottorouterMixin.createRazorpayOrder;\n\tverifyRazorpayPayment = ottorouterMixin.verifyRazorpayPayment;\n\n\tgetAuthStatus = authMixin.getAuthStatus;\n\tsetupOttoRouterWallet = authMixin.setupOttoRouterWallet;\n\timportOttoRouterWallet = authMixin.importOttoRouterWallet;\n\texportOttoRouterWallet = authMixin.exportOttoRouterWallet;\n\taddProvider = authMixin.addProvider;\n\tremoveProvider = authMixin.removeProvider;\n\tcompleteOnboarding = authMixin.completeOnboarding;\n\tgetOAuthStartUrl = authMixin.getOAuthStartUrl;\n\tgetOAuthUrl = authMixin.getOAuthUrl;\n\texchangeOAuthCode = authMixin.exchangeOAuthCode;\n\tstartOpenAIDeviceFlow = authMixin.startOpenAIDeviceFlow;\n\tpollOpenAIDeviceFlow = authMixin.pollOpenAIDeviceFlow;\n\tstartCopilotDeviceFlow = authMixin.startCopilotDeviceFlow;\n\tpollCopilotDeviceFlow = authMixin.pollCopilotDeviceFlow;\n\tgetCopilotAuthMethods = authMixin.getCopilotAuthMethods;\n\tsaveCopilotToken = authMixin.saveCopilotToken;\n\timportCopilotTokenFromGh = authMixin.importCopilotTokenFromGh;\n\tgetCopilotDiagnostics = authMixin.getCopilotDiagnostics;\n\tgetProviderUsage = authMixin.getProviderUsage;\n\n\tlistSkills = skillsMixin.listSkills;\n\tgetSkill = skillsMixin.getSkill;\n\tgetSkillFiles = skillsMixin.getSkillFiles;\n\tgetSkillFileContent = skillsMixin.getSkillFileContent;\n\tgetSkillsConfig = skillsMixin.getSkillsConfig;\n\tupdateSkillsConfig = skillsMixin.updateSkillsConfig;\n\n\tgetUsageStats = usageMixin.getUsageStats;\n\tgetGlobalUsageStats = usageMixin.getGlobalUsageStats;\n\n\tgetDictationStatus = dictationMixin.getDictationStatus;\n\tlistDictationModels = dictationMixin.listDictationModels;\n\tinstallDictationModel = dictationMixin.installDictationModel;\n\tremoveDictationModel = dictationMixin.removeDictationModel;\n\tcreateDictationSession = dictationMixin.createDictationSession;\n\tgetDictationModelInstallEventsUrl =\n\t\tdictationMixin.getDictationModelInstallEventsUrl;\n}\n\nexport const apiClient = new ApiClient();\n",
19
- "import type { SSEEvent } from '../types/api';\n\nexport type SSEEventHandler = (event: SSEEvent) => void;\n\nexport class SSEClient {\n\tprivate abortController: AbortController | null = null;\n\tprivate handlers: Map<string, Set<SSEEventHandler>> = new Map();\n\tprivate running = false;\n\n\tasync connect(url: string) {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t}\n\n\t\tthis.abortController = new AbortController();\n\t\tthis.running = true;\n\n\t\tconst isTunnel = !url.includes('localhost') && !url.includes('127.0.0.1');\n\n\t\ttry {\n\t\t\tconst response = await fetch(url, {\n\t\t\t\tmethod: isTunnel ? 'POST' : 'GET',\n\t\t\t\theaders: { Accept: 'text/event-stream' },\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconsole.error('[SSE] Connection failed:', response.status);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst reader = response.body?.getReader();\n\t\t\tif (!reader) {\n\t\t\t\tconsole.error('[SSE] No response body');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst decoder = new TextDecoder();\n\t\t\tlet buffer = '';\n\n\t\t\twhile (this.running) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\n\t\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\t\tlet idx = buffer.indexOf('\\n\\n');\n\n\t\t\t\twhile (idx !== -1) {\n\t\t\t\t\tconst raw = buffer.slice(0, idx);\n\t\t\t\t\tbuffer = buffer.slice(idx + 2);\n\t\t\t\t\tconst lines = raw.split('\\n');\n\n\t\t\t\t\tlet eventType = 'message';\n\t\t\t\t\tlet data = '';\n\n\t\t\t\t\tfor (const line of lines) {\n\t\t\t\t\t\tif (line.startsWith('event: ')) {\n\t\t\t\t\t\t\teventType = line.slice(7).trim();\n\t\t\t\t\t\t} else if (line.startsWith('data: ')) {\n\t\t\t\t\t\t\tdata += (data ? '\\n' : '') + line.slice(6);\n\t\t\t\t\t\t} else if (line.startsWith(':')) {\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst payload = JSON.parse(data);\n\t\t\t\t\t\t\tthis.emit({ type: eventType, payload });\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(`[SSE] Failed to parse ${eventType}:`, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tidx = buffer.indexOf('\\n\\n');\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === 'AbortError') {\n\t\t\t} else if (\n\t\t\t\terror instanceof TypeError &&\n\t\t\t\terror.message === 'Load failed'\n\t\t\t) {\n\t\t\t} else {\n\t\t\t\tconsole.error('[SSE] Connection error:', error);\n\t\t\t}\n\t\t}\n\t}\n\n\tdisconnect() {\n\t\tthis.running = false;\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = null;\n\t\t}\n\t}\n\n\ton(eventType: string, handler: SSEEventHandler) {\n\t\tif (!this.handlers.has(eventType)) {\n\t\t\tthis.handlers.set(eventType, new Set());\n\t\t}\n\t\tthis.handlers.get(eventType)?.add(handler);\n\n\t\treturn () => {\n\t\t\tthis.off(eventType, handler);\n\t\t};\n\t}\n\n\toff(eventType: string, handler: SSEEventHandler) {\n\t\tconst handlers = this.handlers.get(eventType);\n\t\tif (handlers) {\n\t\t\thandlers.delete(handler);\n\t\t\tif (handlers.size === 0) {\n\t\t\t\tthis.handlers.delete(eventType);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate emit(event: SSEEvent) {\n\t\tconst handlers = this.handlers.get(event.type);\n\t\tif (handlers) {\n\t\t\tfor (const handler of handlers) {\n\t\t\t\thandler(event);\n\t\t\t}\n\t\t}\n\n\t\tconst allHandlers = this.handlers.get('*');\n\t\tif (allHandlers) {\n\t\t\tfor (const handler of allHandlers) {\n\t\t\t\thandler(event);\n\t\t\t}\n\t\t}\n\t}\n}\n",
20
- "export interface OttoPlatformNotification {\n\tid: string;\n\ttitle: string;\n\tbody?: string;\n\tsessionId?: string;\n}\n\ninterface OttoPlatformWindow extends Window {\n\tOTTO_OPEN_URL?: (url: string) => void | Promise<void>;\n\tOTTO_SHOW_NOTIFICATION?: (\n\t\tnotification: OttoPlatformNotification,\n\t) => void | Promise<void>;\n\tOTTO_LIST_SYSTEM_FONTS?: () => Promise<string[]>;\n\tOTTO_SET_DESKTOP_FONT?: (fontFamily: string) => void | Promise<void>;\n\tOTTO_OPEN_SESSION?: (sessionId: string) => void | Promise<void>;\n\tOTTO_IS_WINDOW_FOCUSED?: () => boolean;\n}\n\nfunction getPlatformWindow(): OttoPlatformWindow | null {\n\tif (typeof window === 'undefined') return null;\n\treturn window as OttoPlatformWindow;\n}\n\nexport function openPlatformUrl(url: string): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_OPEN_URL) return false;\n\tvoid win.OTTO_OPEN_URL(url);\n\treturn true;\n}\n\nexport function showPlatformNotification(\n\tnotification: OttoPlatformNotification,\n): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_SHOW_NOTIFICATION) return false;\n\tvoid win.OTTO_SHOW_NOTIFICATION(notification);\n\treturn true;\n}\n\nexport function listPlatformSystemFonts(): Promise<string[]> | null {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_LIST_SYSTEM_FONTS) return null;\n\treturn win.OTTO_LIST_SYSTEM_FONTS();\n}\n\nexport function notifyPlatformFontFamilyChanged(fontFamily: string): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_SET_DESKTOP_FONT) return false;\n\tvoid win.OTTO_SET_DESKTOP_FONT(fontFamily);\n\treturn true;\n}\n\nexport function openPlatformSession(sessionId: string): boolean {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_OPEN_SESSION) return false;\n\tvoid win.OTTO_OPEN_SESSION(sessionId);\n\treturn true;\n}\n\nexport function getPlatformWindowFocused(): boolean | null {\n\tconst win = getPlatformWindow();\n\tif (!win?.OTTO_IS_WINDOW_FOCUSED) return null;\n\treturn win.OTTO_IS_WINDOW_FOCUSED();\n}\n\nexport function hasPlatformOpenUrl(): boolean {\n\treturn !!getPlatformWindow()?.OTTO_OPEN_URL;\n}\n\nexport function hasPlatformSystemFonts(): boolean {\n\treturn !!getPlatformWindow()?.OTTO_LIST_SYSTEM_FONTS;\n}\n\nexport function isPlatformDesktop(): boolean {\n\tif (typeof window === 'undefined') return false;\n\ttry {\n\t\treturn (\n\t\t\t'__TAURI__' in window ||\n\t\t\t'__TAURI_INTERNALS__' in window ||\n\t\t\t'__TAURI_METADATA__' in window\n\t\t);\n\t} catch {\n\t\treturn false;\n\t}\n}\n"
20
+ "import type { SSEEvent } from '../types/api';\n\nexport type SSEEventHandler = (event: SSEEvent) => void;\n\nexport class SSEClient {\n\tprivate abortController: AbortController | null = null;\n\tprivate handlers: Map<string, Set<SSEEventHandler>> = new Map();\n\tprivate running = false;\n\n\tasync connect(url: string) {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t}\n\n\t\tthis.abortController = new AbortController();\n\t\tthis.running = true;\n\n\t\tconst isTunnel = !url.includes('localhost') && !url.includes('127.0.0.1');\n\n\t\ttry {\n\t\t\tconst response = await fetch(url, {\n\t\t\t\tmethod: isTunnel ? 'POST' : 'GET',\n\t\t\t\theaders: { Accept: 'text/event-stream' },\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconsole.error('[SSE] Connection failed:', response.status);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst reader = response.body?.getReader();\n\t\t\tif (!reader) {\n\t\t\t\tconsole.error('[SSE] No response body');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst decoder = new TextDecoder();\n\t\t\tlet buffer = '';\n\n\t\t\twhile (this.running) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\n\t\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\t\tlet idx = buffer.indexOf('\\n\\n');\n\n\t\t\t\twhile (idx !== -1) {\n\t\t\t\t\tconst raw = buffer.slice(0, idx);\n\t\t\t\t\tbuffer = buffer.slice(idx + 2);\n\t\t\t\t\tconst lines = raw.split('\\n');\n\n\t\t\t\t\tlet eventType = 'message';\n\t\t\t\t\tlet data = '';\n\n\t\t\t\t\tfor (const line of lines) {\n\t\t\t\t\t\tif (line.startsWith('event: ')) {\n\t\t\t\t\t\t\teventType = line.slice(7).trim();\n\t\t\t\t\t\t} else if (line.startsWith('data: ')) {\n\t\t\t\t\t\t\tdata += (data ? '\\n' : '') + line.slice(6);\n\t\t\t\t\t\t} else if (line.startsWith(':')) {\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst payload = JSON.parse(data);\n\t\t\t\t\t\t\tthis.emit({ type: eventType, payload });\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(`[SSE] Failed to parse ${eventType}:`, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tidx = buffer.indexOf('\\n\\n');\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === 'AbortError') {\n\t\t\t} else if (\n\t\t\t\terror instanceof TypeError &&\n\t\t\t\terror.message === 'Load failed'\n\t\t\t) {\n\t\t\t} else {\n\t\t\t\tconsole.error('[SSE] Connection error:', error);\n\t\t\t}\n\t\t}\n\t}\n\n\tdisconnect() {\n\t\tthis.running = false;\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = null;\n\t\t}\n\t}\n\n\ton(eventType: string, handler: SSEEventHandler) {\n\t\tif (!this.handlers.has(eventType)) {\n\t\t\tthis.handlers.set(eventType, new Set());\n\t\t}\n\t\tthis.handlers.get(eventType)?.add(handler);\n\n\t\treturn () => {\n\t\t\tthis.off(eventType, handler);\n\t\t};\n\t}\n\n\toff(eventType: string, handler: SSEEventHandler) {\n\t\tconst handlers = this.handlers.get(eventType);\n\t\tif (handlers) {\n\t\t\thandlers.delete(handler);\n\t\t\tif (handlers.size === 0) {\n\t\t\t\tthis.handlers.delete(eventType);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate emit(event: SSEEvent) {\n\t\tconst handlers = this.handlers.get(event.type);\n\t\tif (handlers) {\n\t\t\tfor (const handler of handlers) {\n\t\t\t\thandler(event);\n\t\t\t}\n\t\t}\n\n\t\tconst allHandlers = this.handlers.get('*');\n\t\tif (allHandlers) {\n\t\t\tfor (const handler of allHandlers) {\n\t\t\t\thandler(event);\n\t\t\t}\n\t\t}\n\t}\n}\n"
21
21
  ],
22
- "mappings": "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",
23
- "debugId": "B412760816CE69DF64756E2164756E21",
22
+ "mappings": ";AAAA;AAAA,mBACC;AAAA,kBACA;AAAA,kBACA;AAAA,mBACA;AAAA,kBACA;AAAA,mBACA;AAAA,uBACA;AAAA,mBACA;AAAA,qBACA;AAAA,qBACA;AAAA,kBACA;AAAA;AAAA;;;ACXD;;;ACkBA,SAAS,iBAAiB,GAA8B;AAAA,EACvD,IAAI,OAAO,WAAW;AAAA,IAAa,OAAO;AAAA,EAC1C,OAAO;AAAA;AAGD,SAAS,eAAe,CAAC,KAAsB;AAAA,EACrD,MAAM,MAAM,kBAAkB;AAAA,EAC9B,IAAI,CAAC,KAAK;AAAA,IAAe,OAAO;AAAA,EAC3B,IAAI,cAAc,GAAG;AAAA,EAC1B,OAAO;AAAA;AAGD,SAAS,wBAAwB,CACvC,cACU;AAAA,EACV,MAAM,MAAM,kBAAkB;AAAA,EAC9B,IAAI,CAAC,KAAK;AAAA,IAAwB,OAAO;AAAA,EACpC,IAAI,uBAAuB,YAAY;AAAA,EAC5C,OAAO;AAAA;AAGD,SAAS,uBAAuB,GAA6B;AAAA,EACnE,MAAM,MAAM,kBAAkB;AAAA,EAC9B,IAAI,CAAC,KAAK;AAAA,IAAwB,OAAO;AAAA,EACzC,OAAO,IAAI,uBAAuB;AAAA;AAG5B,SAAS,+BAA+B,CAAC,YAA6B;AAAA,EAC5E,MAAM,MAAM,kBAAkB;AAAA,EAC9B,IAAI,CAAC,KAAK;AAAA,IAAuB,OAAO;AAAA,EACnC,IAAI,sBAAsB,UAAU;AAAA,EACzC,OAAO;AAAA;AAGD,SAAS,mBAAmB,CAAC,WAA4B;AAAA,EAC/D,MAAM,MAAM,kBAAkB;AAAA,EAC9B,IAAI,CAAC,KAAK;AAAA,IAAmB,OAAO;AAAA,EAC/B,IAAI,kBAAkB,SAAS;AAAA,EACpC,OAAO;AAAA;AAGD,SAAS,wBAAwB,GAAmB;AAAA,EAC1D,MAAM,MAAM,kBAAkB;AAAA,EAC9B,IAAI,CAAC,KAAK;AAAA,IAAwB,OAAO;AAAA,EACzC,OAAO,IAAI,uBAAuB;AAAA;AAG5B,SAAS,kBAAkB,GAAY;AAAA,EAC7C,OAAO,CAAC,CAAC,kBAAkB,GAAG;AAAA;AAGxB,SAAS,sBAAsB,GAAY;AAAA,EACjD,OAAO,CAAC,CAAC,kBAAkB,GAAG;AAAA;AAGxB,SAAS,iBAAiB,GAAY;AAAA,EAC5C,IAAI,OAAO,WAAW;AAAA,IAAa,OAAO;AAAA,EAC1C,IAAI;AAAA,IACH,OACC,eAAe,UACf,yBAAyB,UACzB,wBAAwB;AAAA,IAExB,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;;;AC1EF,IAAM,mCAAmC;AAEzC,SAAS,mBAAmB,CAAC,OAAuB;AAAA,EAC1D,MAAM,UAAU,MAAM,KAAK;AAAA,EAC3B,IAAI,CAAC,SAAS;AAAA,IACb,MAAM,IAAI,MAAM,2BAA2B;AAAA,EAC5C;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,IAAI,IAAI,OAAO;AAAA,IACpB,MAAM;AAAA,IACP,MAAM,IAAI,MAAM,mDAAmD;AAAA;AAAA,EAGpE,IAAI,IAAI,aAAa,WAAW,IAAI,aAAa,UAAU;AAAA,IAC1D,MAAM,IAAI,MAAM,iDAAiD;AAAA,EAClE;AAAA,EAEA,IAAI,OAAO;AAAA,EACX,IAAI,WAAW,IAAI,SAAS,QAAQ,QAAQ,EAAE,KAAK;AAAA,EACnD,OAAO,IAAI,SAAS,EAAE,QAAQ,QAAQ,EAAE;AAAA;AAGzC,SAAS,mBAAmB,GAAuB;AAAA,EAClD,IAAI,OAAO,WAAW;AAAA,IAAa;AAAA,EACnC,IAAI,kBAAkB;AAAA,IAAG;AAAA,EACzB,IAAI;AAAA,IACH,OACC,OAAO,aAAa,QAAQ,gCAAgC,KAAK;AAAA,IAEjE,MAAM;AAAA,IACP;AAAA;AAAA;AAIK,SAAS,8BAA8B,GAAuB;AAAA,EACpE,IAAI,OAAO,WAAW;AAAA,IAAa;AAAA,EAEnC,MAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,EACzD,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,EACjC,IAAI;AAAA,IAAU,OAAO,oBAAoB,QAAQ;AAAA,EAEjD,MAAM,MAAM;AAAA,EACZ,IAAI,IAAI;AAAA,IAAiB,OAAO,oBAAoB,IAAI,eAAe;AAAA,EACvE,IAAI,IAAI;AAAA,IAAkB,OAAO,oBAAoB,IAAI,gBAAgB;AAAA,EAEzE,MAAM,YAAY,oBAAoB;AAAA,EACtC,IAAI;AAAA,IAAW,OAAO,oBAAoB,SAAS;AAAA,EAEnD;AAAA;AAGM,SAAS,8BAA8B,GAAY;AAAA,EACzD,OAAO,QAAQ,+BAA+B,CAAC;AAAA;AAGzC,SAAS,oBAAoB,CAAC,OAAuB;AAAA,EAC3D,MAAM,UAAU,oBAAoB,KAAK;AAAA,EACzC,IAAI,OAAO,WAAW,aAAa;AAAA,IAClC,MAAM,MAAM;AAAA,IACZ,IAAI,kBAAkB;AAAA,IACtB,IAAI,CAAC,kBAAkB,GAAG;AAAA,MACzB,IAAI;AAAA,QACH,OAAO,aAAa,QAAQ,kCAAkC,OAAO;AAAA,QACpE,MAAM;AAAA,IAGT;AAAA,EACD;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,sBAAsB,GAAG;AAAA,EACxC,IAAI,OAAO,WAAW;AAAA,IAAa;AAAA,EACnC,MAAM,MAAM;AAAA,EACZ,OAAO,IAAI;AAAA,EACX,OAAO,IAAI;AAAA,EACX,IAAI;AAAA,IACH,OAAO,aAAa,WAAW,gCAAgC;AAAA,IAC9D,MAAM;AAAA;AAMT,SAAS,iBAAiB,GAAW;AAAA,EACpC,MAAM,aAAa,+BAA+B;AAAA,EAClD,IAAI,YAAY;AAAA,IACf,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,SAAS,YAAY,KAAK;AAAA,EAChC,IAAI;AAAA,IAAQ,OAAO,oBAAoB,MAAM;AAAA,EAG7C,OAAO;AAAA;AAGD,SAAS,oBAAoB,GAAW;AAAA,EAC9C,OAAO,kBAAkB;AAAA;AAGnB,IAAM,eAAe,kBAAkB;AAEvC,IAAM,SAAS;AAAA,EACrB,YAAY;AACb;;;AFxGA,SAAS,gBAAgB,GAAwB;AAAA,EAChD,IAAI,OAAO,WAAW,eAAe,OAAO,OAAO,UAAU,YAAY;AAAA,IACxE,OAAO;AAAA,EACR;AAAA,EACA;AAAA;AAGM,SAAS,mBAAmB,CAAC,OAAwB;AAAA,EAC3D,IAAI,CAAC;AAAA,IAAO,OAAO;AAAA,EACnB,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,IACvC,MAAM,SAAS;AAAA,IACf,IAAI,OAAO,SAAS,OAAO,OAAO,UAAU,UAAU;AAAA,MACrD,MAAM,aAAa,OAAO;AAAA,MAC1B,IAAI,OAAO,WAAW,YAAY;AAAA,QAAU,OAAO,WAAW;AAAA,IAC/D;AAAA,IACA,IAAI,OAAO,OAAO,UAAU;AAAA,MAAU,OAAO,OAAO;AAAA,IACpD,IAAI,OAAO,OAAO,YAAY;AAAA,MAAU,OAAO,OAAO;AAAA,IACtD,IAAI;AAAA,MACH,OAAO,KAAK,UAAU,KAAK;AAAA,MAC1B,MAAM;AAAA,MACP,OAAO;AAAA;AAAA,EAET;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,kBAAkB,GAAG;AAAA,EACpC,MAAM,UAAU,qBAAqB;AAAA,EACrC,OAAO,UAAU;AAAA,IAChB;AAAA,IACA,SAAS,iBAAiB;AAAA,EAC3B,CAAC;AAAA;AAGF,mBAAmB;AAEZ,SAAS,UAAU,GAAW;AAAA,EACpC,OAAO,qBAAqB;AAAA;AAStB,SAAS,cAAc,CAAC,YAAiC;AAAA,EAC/D,OAAO;AAAA,OACH;AAAA,IACH,OAAO,WAAW,SAAS;AAAA,IAC3B,WACC,OAAO,WAAW,cAAc,WAC7B,IAAI,KAAK,WAAW,SAAS,EAAE,QAAQ,IACvC,WAAW;AAAA,IACf,cACC,OAAO,WAAW,iBAAiB,WAChC,IAAI,KAAK,WAAW,YAAY,EAAE,QAAQ,IAC1C,WAAW;AAAA,IACf,cACC,OAAO,WAAW,iBAAiB,WAChC,IAAI,KAAK,WAAW,YAAY,EAAE,QAAQ,IAC1C,WAAW;AAAA,EAChB;AAAA;AAGM,SAAS,cAAc,CAAC,YAAiC;AAAA,EAC/D,OAAO;AAAA,OACH;AAAA,IACH,WACC,OAAO,WAAW,cAAc,WAC7B,IAAI,KAAK,WAAW,SAAS,EAAE,QAAQ,IACvC,WAAW;AAAA,IACf,aAAa,WAAW,cACrB,OAAO,WAAW,gBAAgB,WACjC,IAAI,KAAK,WAAW,WAAW,EAAE,QAAQ,IACzC,WAAW,cACZ;AAAA,EACJ;AAAA;;;ADxDM,IAAM,gBAAgB;AAAA,OACtB,YAAW,GAAuB;AAAA,IACvC,MAAM,OAAO,MAAM,KAAK,gBAAgB,EAAE,OAAO,IAAI,CAAC;AAAA,IACtD,OAAO,KAAK;AAAA;AAAA,OAGP,gBAAe,CACpB,SAA8C,CAAC,GACvB;AAAA,IACxB,QAAQ,QAAQ,IAAI,SAAS,MAAM;AAAA,IACnC,MAAM,WAAW,MAAM,gBAAgB;AAAA,MACtC,OAAO,EAAE,OAAO,OAAO;AAAA,IACxB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,MAAM,OAAO,SAAS;AAAA,IACtB,OAAO;AAAA,MACN,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,eAAe,CAAe,CAAC;AAAA,MACrE,SAAS,MAAM,WAAW;AAAA,MAC1B,YAAY,MAAM,cAAc;AAAA,IACjC;AAAA;AAAA,OAGK,cAAa,CAAC,MAA8C;AAAA,IACjE,MAAM,WAAW,MAAM,iBAAiB;AAAA,MACvC,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,IAAI,CAAC,SAAS;AAAA,MAAM,MAAM,IAAI,MAAM,sCAAsC;AAAA,IAC1E,OAAO,eAAe,SAAS,IAAI;AAAA;AAAA,OAG9B,cAAa,CAClB,WACA,MACmB;AAAA,IACnB,MAAM,WAAW,MAAM,iBAAiB;AAAA,MACvC,MAAM,EAAE,UAAU;AAAA,MAElB,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,eAAe,SAAS,IAAkB;AAAA;AAAA,OAG5C,kBAAiB,CAAC,WAAqC;AAAA,IAC5D,MAAM,WAAW,MAAM,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IACnE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,eAAe,SAAS,IAAkB;AAAA;AAAA,OAG5C,cAAa,CAAC,WAAkD;AAAA,IACrE,MAAM,WAAW,MAAM,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAC/D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,cAAa,CAAC,WAKjB;AAAA,IACF,MAAM,WAAW,MAAM,MACtB,GAAG,WAAW,iBAAiB,mBAAmB,SAAS,aAC3D,EAAE,QAAQ,OAAO,CAClB;AAAA,IACA,MAAM,OAAO,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,IAAI;AAAA,IACnD,IAAI,CAAC,SAAS;AAAA,MAAI,MAAM,IAAI,MAAM,oBAAoB,IAAI,CAAC;AAAA,IAC3D,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,WAAW;AAAA,MACvC,MAAM,IAAI,MAAM,+BAA+B;AAAA,IAChD;AAAA,IACA,OAAO;AAAA,MACN,SAAS,eAAe,KAAK,OAAqB;AAAA,MAClD,WAAW,OAAO,KAAK,SAAS;AAAA,MAChC,iBAAiB,OAAO,KAAK,eAAe;AAAA,MAC5C,SAAS,OAAO,KAAK,WAAW,EAAE;AAAA,IACnC;AAAA;AAAA,OAGK,aAAY,CAAC,WAAkD;AAAA,IACpE,MAAM,WAAW,MAAM,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAC9D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,aAAY,CACjB,WACA,YACwE;AAAA,IACxE,MAAM,WAAW,MAAM,gBAAgB;AAAA,MACtC,MAAM,EAAE,UAAU;AAAA,IACnB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,yBAAyB;AAAA,IAC7D,OAAO,SAAS;AAAA;AAAA,OAOX,cAAa,CAAC,WAIjB;AAAA,IACF,MAAM,WAAW,MAAM,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IACjE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,2BAA2B;AAAA,IAE/D,OAAO,SAAS;AAAA;AAAA,OAGX,gBAAe,CACpB,WACA,WAME;AAAA,IACF,MAAM,WAAW,MAAM,mBAAmB;AAAA,MACzC,MAAM,EAAE,WAAW,UAAU;AAAA,IAC9B,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,6BAA6B;AAAA,IAEjE,OAAO,SAAS;AAAA;AAAA,OAGX,qBAAoB,CACzB,WACA,WAOE;AAAA,IACF,MAAM,WAAW,MAAM,MACtB,GAAG,WAAW,iBAAiB,mBAAmB,SAAS,WAAW,mBAAmB,SAAS,cAClG,EAAE,QAAQ,OAAO,CAClB;AAAA,IACA,MAAM,OAAO,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,IAAI;AAAA,IACnD,IAAI,CAAC,SAAS;AAAA,MAAI,MAAM,IAAI,MAAM,oBAAoB,IAAI,CAAC;AAAA,IAC3D,OAAO;AAAA;AAAA,OASF,YAAW,CAAC,WAAuC;AAAA,IACxD,MAAM,WAAW,MAAM,gBAAgB,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;AAAA,IAClE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,QAAQ,SAAS,QAAQ,CAAC,GAAG,IAAI,cAAc;AAAA;AAAA,OAG1C,YAAW,CAChB,WACA,MAC+B;AAAA,IAC/B,MAAM,WAAW,MAAM,iBAAiB;AAAA,MACvC,MAAM,EAAE,IAAI,UAAU;AAAA,MACtB,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,EAGjB,YAAY,CAAC,WAA2B;AAAA,IACvC,OAAO,sBAAsB,EAAE,SAAS,WAAW,GAAG,UAAU,CAAC;AAAA;AAAA,OAG5D,aAAY,CACjB,WACA,WACmD;AAAA,IACnD,MAAM,WAAW,MAAM,gBAAgB;AAAA,MACtC,MAAM,EAAE,WAAW,UAAU;AAAA,IAC9B,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAElB;;;AI3NA;AAAA,kBACC;AAAA,gBACA;AAAA,kBACA;AAAA,gBACA;AAAA,kBACA;AAAA,kBACA;AAAA,iBACA;AAAA,mBACA;AAAA,2BACA;AAAA,iBACA;AAAA,iBACA;AAAA,4BACA;AAAA,iBACA;AAAA,mBACA;AAAA,kBACA;AAAA,qBACA;AAAA,qBACA;AAAA,uBACA;AAAA,qBACA;AAAA;AAkBM,IAAM,WAAW;AAAA,OACjB,YAAW,GAAoD;AAAA,IACpE,MAAM,WAAW,MAAM,eAAe;AAAA,MACrC,MAAM,CAAC;AAAA,IACR,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,aAAY,GAA+B;AAAA,IAChD,MAAM,WAAW,MAAM,gBAAgB;AAAA,IACvC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,WAAU,CACf,MACA,SAAkB,OACS;AAAA,IAC3B,MAAM,WAAW,MAAM,cAAc;AAAA,MACpC,OAAO,EAAE,MAAM,QAAQ,SAAS,SAAS,QAAQ;AAAA,IAClD,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,mBAAkB,CACvB,MACA,SAAS,OACkB;AAAA,IAC3B,MAAM,WAAW,MAAM,cAAc;AAAA,MACpC,OAAO;AAAA,QACN;AAAA,QACA,QAAQ,SAAS,SAAS;AAAA,QAC1B,UAAU;AAAA,MACX;AAAA,IACD,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,sBAAqB,CAC1B,WAC4C;AAAA,IAC5C,MAAM,WAAW,MAAM,yBAAyB;AAAA,MAC/C,MAAM,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,IACpC,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,WAAU,CAAC,OAA4C;AAAA,IAC5D,MAAM,WAAW,MAAM,cAAc;AAAA,MAEpC,MAAM,EAAE,MAAM;AAAA,IACf,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,aAAY,CAAC,OAA8C;AAAA,IAChE,MAAM,WAAW,MAAM,gBAAgB;AAAA,MAEtC,MAAM,EAAE,MAAM;AAAA,IACf,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,aAAY,CAAC,OAAkD;AAAA,IACpE,MAAM,WAAW,MAAM,gBAAgB;AAAA,MAEtC,MAAM,EAAE,MAAM;AAAA,IACf,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,YAAW,CAAC,OAAiD;AAAA,IAClE,MAAM,WAAW,MAAM,eAAe;AAAA,MAErC,MAAM,EAAE,MAAM;AAAA,IACf,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,cAAa,CAAC,SAA6C;AAAA,IAChE,MAAM,WAAW,MAAM,iBAAiB;AAAA,MAEvC,MAAM,EAAE,QAAQ;AAAA,IACjB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,aAAY,GAA2B;AAAA,IAC5C,MAAM,WAAW,MAAM,gBAAgB;AAAA,IACvC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,YAAW,GAA6B;AAAA,IAC7C,MAAM,WAAW,MAAM,eAAe;AAAA,MAErC,MAAM,CAAC;AAAA,IACR,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,YAAW,GAA6B;AAAA,IAC7C,MAAM,WAAW,MAAM,eAAe;AAAA,MAErC,MAAM,CAAC;AAAA,IACR,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,oBAAmB,CACxB,QACmC;AAAA,IACnC,MAAM,WAAW,MAAM,0BAA0B;AAAA,MAChD,MAAM,EAAE,OAAO;AAAA,IAChB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,WAAU,GAA6B;AAAA,IAC5C,MAAM,WAAW,MAAM,iBAAiB;AAAA,IACxC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc,MAAM;AAAA;AAAA,OAGhC,UAAS,CACd,MACA,KACyC;AAAA,IACzC,MAAM,WAAW,MAAM,gBAAgB;AAAA,MAEtC,MAAM,EAAE,MAAM,IAAI;AAAA,IACnB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,aAAY,CAAC,MAA4C;AAAA,IAC9D,MAAM,WAAW,MAAM,mBAAmB;AAAA,MAEzC,MAAM,EAAE,KAAK;AAAA,IACd,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,gBAAe,GAAmC;AAAA,IACvD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IAC1C,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,eAAc,CAAC,QAA6C;AAAA,IACjE,MAAM,WAAW,MAAM,qBAAqB;AAAA,MAE3C,MAAM,EAAE,OAAO;AAAA,IAChB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAAA,OAG1B,gBAAe,CACpB,MACA,SACmD;AAAA,IACnD,MAAM,WAAW,MAAM,mBAAmB;AAAA,MACzC,MAAM;AAAA,QACL;AAAA,WACI,SAAS,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,WAC5D,SAAS,aAAa,YACvB,EAAE,UAAU,QAAQ,SAAS,IAC7B,CAAC;AAAA,MAEL;AAAA,IACD,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAQ,SAAS,MAAc;AAAA;AAKjC;;;ACzPA;AAAA,eACC;AAAA,uBACA;AAAA,kBACA;AAAA,4BACA;AAAA,oBACA;AAAA,4BACA;AAAA,4BACA;AAAA;AAwBM,IAAM,cAAc;AAAA,OACpB,UAAS,GAoBZ;AAAA,IACF,MAAM,WAAW,MAAM,aAAa;AAAA,IACpC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,UAAS,CAAC,YAkBb;AAAA,IACF,MAAM,WAAW,MAAM,qBAAqB;AAAA,MAE3C,MAAM,EAAE,UAAU,WAAkB;AAAA,IACrC,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,aAAY,GAA+B;AAAA,IAChD,MAAM,WAAW,MAAM,gBAAgB;AAAA,IACvC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,uBAAsB,CAAC,MAS1B;AAAA,IACF,MAAM,WAAW,MAAM,0BAA0B;AAAA,MAChD,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAQX,uBAAsB,CAC3B,UACA,MAUkD;AAAA,IAClD,MAAM,WAAW,MAAM,0BAA0B;AAAA,MAEhD,MAAM,EAAE,SAA0B;AAAA,MAElC,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,uBAAsB,CAC3B,UACkD;AAAA,IAClD,MAAM,WAAW,MAAM,0BAA0B;AAAA,MAEhD,MAAM,EAAE,SAA0B;AAAA,IACnC,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,eAAc,CAAC,MAoClB;AAAA,IACF,MAAM,WAAW,MAAM,kBAAkB;AAAA,MAExC,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAElB;;;ACpMA;AAAA,eACC;AAAA,iBACA;AAAA,iBACA;AAAA,cACA;AAAA,qBACA;AAAA;AAKM,IAAM,aAAa;AAAA,OACnB,UAAS,GAAG;AAAA,IACjB,MAAM,WAAW,MAAM,aAAa;AAAA,IACpC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAQX,YAAW,CAAC,QAAQ,IAAI;AAAA,IAC7B,MAAM,WAAW,MAAM,eAAe,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AAAA,IAC7D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAQX,YAAW,CAAC,UAAU,KAWzB;AAAA,IACF,MAAM,WAAW,MAAM,eAAe;AAAA,MACrC,OAAO,EAAE,MAAM,QAAQ;AAAA,IACxB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,gBAAe,CAAC,UAKnB;AAAA,IACF,MAAM,WAAW,MAAM,YAAY;AAAA,MAClC,OAAO,EAAE,MAAM,SAAS;AAAA,IACzB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,gBAAe,CAAC,WAAkD;AAAA,IACvE,MAAM,WAAW,MAAM,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IACjE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAElB;;;ACxEA;AAAA,kBACC;AAAA,kBACA;AAAA,sBACA;AAAA,oBACA;AAAA,kBACA;AAAA,eACA;AAAA;AAaM,IAAM,gBAAgB;AAAA,OACtB,aAAY,CACjB,WACA,MACwB;AAAA,IACxB,MAAM,WAAW,MAAM,gBAAgB;AAAA,MACtC,MAAM,EAAE,UAAU;AAAA,MAElB,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,aAAY,CAAC,WAAkD;AAAA,IACpE,MAAM,WAAW,MAAM,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAC9D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,iBAAgB,CAAC,WAAmD;AAAA,IACzE,MAAM,WAAW,MAAM,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAClE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,eAAc,CAAC,WAAyC;AAAA,IAC7D,MAAM,WAAW,MAAM,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAChE,IAAI,SAAS;AAAA,MAAO,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC3C,OAAO,SAAS;AAAA;AAAA,OAGX,aAAY,CAAC,WAAkD;AAAA,IACpE,MAAM,WAAW,MAAM,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAC9D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,YAAW,CAAC,WAAiD;AAAA,IAClE,MAAM,WAAW,MAAM,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,IAC3D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAElB;;;AC9DA;AAAA,qBACC;AAAA,yBACA;AAAA;AAGM,IAAM,gBAAgB;AAAA,OACtB,gBAAe,CACpB,WACA,QACA,UAC8D;AAAA,IAC9D,MAAM,WAAW,MAAM,mBAAmB;AAAA,MAEzC,MAAM,EAAE,IAAI,UAAU;AAAA,MAEtB,MAAM,EAAE,QAAQ,UAAU,UAAU;AAAA,IACrC,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,8BAA8B;AAAA,IAElE,OAAO,SAAS;AAAA;AAAA,OAGX,oBAAmB,CAAC,WASvB;AAAA,IACF,MAAM,WAAW,MAAM,uBAAuB;AAAA,MAE7C,MAAM,EAAE,IAAI,UAAU;AAAA,IACvB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,OAAO,EAAE,IAAI,OAAO,SAAS,CAAC,EAAE;AAAA,IAEpD,OAAO,SAAS;AAAA;AAElB;;;ACxCA;AAAA,0BACC;AAAA,yBACA;AAAA,8BACA;AAAA,yBACA;AAAA,2BACA;AAAA,yBACA;AAAA,8BACA;AAAA,yBACA;AAAA,2BACA;AAAA,uBACA;AAAA,iBACA;AAAA,qBACA;AAAA;AAIM,IAAM,kBAAkB;AAAA,OACxB,qBAAoB,GAiDhB;AAAA,IACT,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,wBAAwB;AAAA,MAC/C,IAAI,SAAS;AAAA,QAAO,OAAO;AAAA,MAE3B,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA,OAIH,oBAAmB,GAItB;AAAA,IACF,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,uBAAuB;AAAA,MAC9C,IAAI,SAAS;AAAA,QAAO,OAAO,EAAE,YAAY,MAAM;AAAA,MAE/C,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA,OAIvB,yBAAwB,CAC7B,UAAgC,WAKvB;AAAA,IACT,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,4BAA4B;AAAA,QAClD,OAAO,EAAE,QAAQ;AAAA,MAClB,CAAC;AAAA,MACD,IAAI,SAAS;AAAA,QAAO,OAAO;AAAA,MAE3B,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA,OAIH,sBAAqB,CAAC,QASlB;AAAA,IACT,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,yBAAyB;AAAA,QAC/C,OAAO,EAAE,OAAO;AAAA,MACjB,CAAC;AAAA,MACD,IAAI,SAAS;AAAA,QAAO,OAAO;AAAA,MAE3B,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA,OAIH,oBAAmB,CACxB,QACA,YAQE;AAAA,IACF,MAAM,WAAW,MAAM,uBAAuB;AAAA,MAC7C,MAAM,EAAE,QAAQ,WAAW;AAAA,IAC5B,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,kBAAiB,CACtB,WACA,QACgD;AAAA,IAChD,MAAM,WAAW,MAAM,qBAAqB;AAAA,MAC3C,MAAM,EAAE,WAAW,OAAO;AAAA,IAC3B,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,YAAW,CAChB,WACA,QACgC;AAAA,IAChC,MAAM,WAAW,MAAM,eAAe;AAAA,MACrC,MAAM,EAAE,WAAW,OAAO;AAAA,IAC3B,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,gBAAe,CAAC,WAOnB;AAAA,IACF,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,mBAAmB;AAAA,QACzC,OAAO,EAAE,UAAU;AAAA,MACpB,CAAC;AAAA,MACD,IAAI,SAAS;AAAA,QAAO,OAAO,EAAE,YAAY,MAAM;AAAA,MAE/C,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA,OAIvB,oBAAmB,CAAC,YAKhB;AAAA,IACT,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,uBAAuB;AAAA,QAC7C,OAAO,EAAE,WAAW;AAAA,MACrB,CAAC;AAAA,MACD,IAAI,SAAS;AAAA,QAAO,OAAO;AAAA,MAE3B,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA,OAIH,yBAAwB,CAAC,QAMrB;AAAA,IACT,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,4BAA4B;AAAA,QAClD,OAAO,EAAE,OAAO;AAAA,MACjB,CAAC;AAAA,MACD,IAAI,SAAS;AAAA,QAAO,OAAO;AAAA,MAE3B,OAAO,SAAS;AAAA,MACf,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA,OAIH,oBAAmB,CAAC,QAOvB;AAAA,IACF,MAAM,WAAW,MAAM,uBAAuB;AAAA,MAC7C,MAAM,EAAE,OAAO;AAAA,IAChB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,sBAAqB,CAAC,QAQzB;AAAA,IACF,MAAM,WAAW,MAAM,yBAAyB;AAAA,MAC/C,MAAM;AAAA,IACP,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAElB;;;ACzQA;AAAA,mBACC;AAAA,2BACA;AAAA,4BACA;AAAA,4BACA;AAAA,uBACA;AAAA,oBACA;AAAA,wBACA;AAAA,iBACA;AAAA,uBACA;AAAA,2BACA;AAAA,0BACA;AAAA,4BACA;AAAA,2BACA;AAAA,2BACA;AAAA,sBACA;AAAA,8BACA;AAAA,2BACA;AAAA,sBACA;AAAA;AAKM,IAAM,YAAY;AAAA,OAClB,cAAa,GAuBhB;AAAA,IACF,MAAM,WAAW,MAAM,iBAAiB;AAAA,IACxC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,sBAAqB,GAIxB;AAAA,IACF,MAAM,WAAW,MAAM,yBAAyB;AAAA,IAChD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,uBAAsB,CAAC,YAG1B;AAAA,IACF,MAAM,WAAW,MAAM,0BAA0B;AAAA,MAChD,MAAM,EAAE,WAAW;AAAA,IACpB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,uBAAsB,GAIzB;AAAA,IACF,MAAM,WAAW,MAAM,0BAA0B;AAAA,IACjD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,YAAW,CAChB,UACA,QACkD;AAAA,IAClD,MAAM,WAAW,MAAM,qBAAqB;AAAA,MAC3C,MAAM,EAAE,SAAS;AAAA,MACjB,MAAM,EAAE,OAAO;AAAA,IAChB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,eAAc,CACnB,UACkD;AAAA,IAClD,MAAM,WAAW,MAAM,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAAA,IAC/D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,mBAAkB,GAAkC;AAAA,IACzD,MAAM,WAAW,MAAM,sBAAsB;AAAA,IAC7C,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,EAGjB,gBAAgB,CAAC,UAAkB,MAAuB;AAAA,IACzD,MAAM,UAAU,GAAG,WAAW,aAAa;AAAA,IAC3C,IAAI;AAAA,MAAM,OAAO,GAAG,gBAAgB;AAAA,IACpC,OAAO;AAAA;AAAA,OAGF,YAAW,CAChB,UACA,MACgE;AAAA,IAChE,MAAM,WAAW,MAAM,eAAe;AAAA,MACrC,MAAM,EAAE,SAAS;AAAA,MAEjB,MAAM,EAAE,KAAK;AAAA,IACd,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,kBAAiB,CACtB,UACA,MACA,WACkD;AAAA,IAClD,MAAM,WAAW,MAAM,qBAAqB;AAAA,MAC3C,MAAM,EAAE,SAAS;AAAA,MACjB,MAAM,EAAE,MAAM,UAAU;AAAA,IACzB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,sBAAqB,GAKxB;AAAA,IACF,MAAM,WAAW,MAAM,yBAAyB;AAAA,IAChD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,qBAAoB,CACzB,WACwE;AAAA,IACxE,MAAM,WAAW,MAAM,wBAAwB;AAAA,MAC9C,MAAM,EAAE,UAAU;AAAA,IACnB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,uBAAsB,GAKzB;AAAA,IACF,MAAM,WAAW,MAAM,0BAA0B;AAAA,IACjD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,sBAAqB,CAC1B,WACwE;AAAA,IACxE,MAAM,WAAW,MAAM,yBAAyB;AAAA,MAC/C,MAAM,EAAE,UAAU;AAAA,IACnB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,sBAAqB,GAIxB;AAAA,IACF,MAAM,WAAW,MAAM,yBAAyB;AAAA,IAChD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,iBAAgB,CAAC,OAOpB;AAAA,IACF,MAAM,WAAW,MAAM,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAAA,IAC9D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,yBAAwB,GAO3B;AAAA,IACF,MAAM,WAAW,MAAM,4BAA4B;AAAA,IACnD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,sBAAqB,GAiBxB;AAAA,IACF,MAAM,WAAW,MAAM,yBAAyB;AAAA,IAChD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IAEvE,OAAO,SAAS;AAAA;AAAA,OAGX,iBAAgB,CAAC,UAAkD;AAAA,IACxE,MAAM,WAAW,MAAM,oBAAoB;AAAA,MAE1C,MAAM,EAAE,SAAS;AAAA,IAClB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAElB;;;AC5QA;AAAA,qBACC;AAAA,wBACA;AAAA,gBACA;AAAA,cACA;AAAA,oBACA;AAAA,kBACA;AAAA;AAoCM,IAAM,cAAc;AAAA,OACpB,WAAU,GAAwC;AAAA,IACvD,MAAM,WAAW,MAAM,cAAc;AAAA,IACrC,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,SAAQ,CAAC,MAAoC;AAAA,IAClD,MAAM,WAAW,MAAM,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAAA,IACrD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,cAAa,CAAC,MAAmD;AAAA,IACtE,MAAM,WAAW,MAAM,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAAA,IAC3D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,oBAAmB,CACxB,MACA,UAC6C;AAAA,IAC7C,MAAM,WAAW,MAAM,gBAAgB;AAAA,MACtC,MAAM,EAAE,MAAM,SAAS;AAAA,IACxB,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,gBAAe,GAAkC;AAAA,IACtD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IAC1C,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,OAGX,mBAAkB,CAAC,OAIS;AAAA,IACjC,MAAM,WAAW,MAAM,sBAAsB,EAAE,MAAM,MAAM,CAAC;AAAA,IAC5D,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAElB;;;ACvFA;AAAA,mBACC;AAAA,yBACA;AAAA;AAyBM,IAAM,aAAa;AAAA,OACnB,cAAa,GAAwB;AAAA,IAC1C,QAAQ,MAAM,UAAU,MAAM,iBAAiB;AAAA,IAC/C,IAAI;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,KAAK,CAAC;AAAA,IACrD,IAAI,CAAC;AAAA,MAAM,MAAM,IAAI,MAAM,qCAAqC;AAAA,IAChE,OAAO;AAAA;AAAA,OAEF,oBAAmB,GAAwB;AAAA,IAChD,QAAQ,MAAM,UAAU,MAAM,uBAAuB;AAAA,IACrD,IAAI;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,KAAK,CAAC;AAAA,IACrD,IAAI,CAAC;AAAA,MAAM,MAAM,IAAI,MAAM,4CAA4C;AAAA,IACvE,OAAO;AAAA;AAET;;;ACxCA;AAAA,wBACC;AAAA,2BACA;AAAA,yBACA;AAAA,0BACA;AAAA,4BACA;AAAA;AAkFD,SAAS,gBAAgB,CAAC,OAAqC;AAAA,EAC9D,OAAO;AAAA;AAGR,SAAS,YAAY,CAAC,OAAuC;AAAA,EAC5D,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,gBAAgB,IAAI,CAAC;AAAA;AAG9D,SAAS,qBAAqB,CAAC,OAAuB;AAAA,EACrD,MAAM,UAAU,WAAW,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAC/C,OAAO,GAAG,+BAA+B,mBAAmB,KAAK;AAAA;AAG3D,IAAM,iBAAiB;AAAA,OACvB,mBAAkB,GAAqC;AAAA,IAC5D,MAAM,WAAW,MAAM,sBAAsB;AAAA,IAC7C,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,MAAM,OAAO,SAAS;AAAA,IAGtB,OAAO;AAAA,SACH;AAAA,MACH,QAAQ,aAAa,KAAK,MAAM;AAAA,IACjC;AAAA;AAAA,OAGK,oBAAmB,GAAqC;AAAA,IAC7D,MAAM,WAAW,MAAM,uBAAuB;AAAA,IAC9C,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,MAAM,OAAO,SAAS;AAAA,IACtB,OAAO,EAAE,QAAQ,aAAa,KAAK,MAAM,EAAE;AAAA;AAAA,OAGtC,sBAAqB;AAAA,IAC1B;AAAA,IACA;AAAA,KACsE;AAAA,IACtE,MAAM,WAAW,MAAM,yBAAyB;AAAA,MAC/C,MAAM,EAAE,MAAM;AAAA,MACd,MAAM,EAAE,MAAM;AAAA,IACf,CAAC;AAAA,IACD,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,MAAM,OAAO,SAAS;AAAA,IACtB,OAAO,EAAE,OAAO,iBAAiB,KAAK,KAAK,EAAE;AAAA;AAAA,OAGxC,qBAAoB,CACzB,OACwC;AAAA,IACxC,MAAM,WAAW,MAAM,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAAA,IAClE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,MAAM,OAAO,SAAS;AAAA,IACtB,OAAO;AAAA,MACN,SAAS,KAAK;AAAA,MACd,OAAO,iBAAiB,KAAK,KAAK;AAAA,IACnC;AAAA;AAAA,OAGK,uBAAsB,CAC3B,QAAqC,CAAC,GACI;AAAA,IAC1C,MAAM,WAAW,MAAM,0BAA0B,EAAE,MAAM,MAAM,CAAC;AAAA,IAChE,IAAI,SAAS;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAAA,IACvE,OAAO,SAAS;AAAA;AAAA,EAGjB,mCAAmC;AACpC;;;AChIA,MAAM,UAAU;AAAA,EACf,cAAc,cAAc;AAAA,EAC5B,kBAAkB,cAAc;AAAA,EAChC,gBAAgB,cAAc;AAAA,EAC9B,gBAAgB,cAAc;AAAA,EAC9B,oBAAoB,cAAc;AAAA,EAClC,gBAAgB,cAAc;AAAA,EAC9B,gBAAgB,cAAc;AAAA,EAC9B,eAAe,cAAc;AAAA,EAC7B,eAAe,cAAc;AAAA,EAC7B,gBAAgB,cAAc;AAAA,EAC9B,kBAAkB,cAAc;AAAA,EAChC,uBAAuB,cAAc;AAAA,EACrC,cAAc,cAAc;AAAA,EAC5B,cAAc,cAAc;AAAA,EAC5B,eAAe,cAAc;AAAA,EAC7B,eAAe,cAAc;AAAA,EAE7B,cAAc,SAAS;AAAA,EACvB,eAAe,SAAS;AAAA,EACxB,aAAa,SAAS;AAAA,EACtB,qBAAqB,SAAS;AAAA,EAC9B,wBAAwB,SAAS;AAAA,EACjC,aAAa,SAAS;AAAA,EACtB,eAAe,SAAS;AAAA,EACxB,eAAe,SAAS;AAAA,EACxB,cAAc,SAAS;AAAA,EACvB,gBAAgB,SAAS;AAAA,EACzB,eAAe,SAAS;AAAA,EACxB,cAAc,SAAS;AAAA,EACvB,cAAc,SAAS;AAAA,EACvB,sBAAsB,SAAS;AAAA,EAC/B,aAAa,SAAS;AAAA,EACtB,YAAY,SAAS;AAAA,EACrB,eAAe,SAAS;AAAA,EACxB,kBAAkB,SAAS;AAAA,EAC3B,iBAAiB,SAAS;AAAA,EAC1B,kBAAkB,SAAS;AAAA,EAE3B,YAAY,YAAY;AAAA,EACxB,YAAY,YAAY;AAAA,EACxB,eAAe,YAAY;AAAA,EAC3B,yBAAyB,YAAY;AAAA,EACrC,yBAAyB,YAAY;AAAA,EACrC,yBAAyB,YAAY;AAAA,EACrC,iBAAiB,YAAY;AAAA,EAE7B,YAAY,WAAW;AAAA,EACvB,cAAc,WAAW;AAAA,EACzB,cAAc,WAAW;AAAA,EACzB,kBAAkB,WAAW;AAAA,EAC7B,kBAAkB,WAAW;AAAA,EAE7B,eAAe,cAAc;AAAA,EAC7B,eAAe,cAAc;AAAA,EAC7B,mBAAmB,cAAc;AAAA,EACjC,iBAAiB,cAAc;AAAA,EAC/B,eAAe,cAAc;AAAA,EAC7B,cAAc,cAAc;AAAA,EAE5B,kBAAkB,cAAc;AAAA,EAChC,sBAAsB,cAAc;AAAA,EAEpC,uBAAuB,gBAAgB;AAAA,EACvC,sBAAsB,gBAAgB;AAAA,EACtC,2BAA2B,gBAAgB;AAAA,EAC3C,wBAAwB,gBAAgB;AAAA,EACxC,sBAAsB,gBAAgB;AAAA,EACtC,oBAAoB,gBAAgB;AAAA,EACpC,cAAc,gBAAgB;AAAA,EAC9B,kBAAkB,gBAAgB;AAAA,EAClC,sBAAsB,gBAAgB;AAAA,EACtC,2BAA2B,gBAAgB;AAAA,EAC3C,sBAAsB,gBAAgB;AAAA,EACtC,wBAAwB,gBAAgB;AAAA,EAExC,gBAAgB,UAAU;AAAA,EAC1B,wBAAwB,UAAU;AAAA,EAClC,yBAAyB,UAAU;AAAA,EACnC,yBAAyB,UAAU;AAAA,EACnC,cAAc,UAAU;AAAA,EACxB,iBAAiB,UAAU;AAAA,EAC3B,qBAAqB,UAAU;AAAA,EAC/B,mBAAmB,UAAU;AAAA,EAC7B,cAAc,UAAU;AAAA,EACxB,oBAAoB,UAAU;AAAA,EAC9B,wBAAwB,UAAU;AAAA,EAClC,uBAAuB,UAAU;AAAA,EACjC,yBAAyB,UAAU;AAAA,EACnC,wBAAwB,UAAU;AAAA,EAClC,wBAAwB,UAAU;AAAA,EAClC,mBAAmB,UAAU;AAAA,EAC7B,2BAA2B,UAAU;AAAA,EACrC,wBAAwB,UAAU;AAAA,EAClC,mBAAmB,UAAU;AAAA,EAE7B,aAAa,YAAY;AAAA,EACzB,WAAW,YAAY;AAAA,EACvB,gBAAgB,YAAY;AAAA,EAC5B,sBAAsB,YAAY;AAAA,EAClC,kBAAkB,YAAY;AAAA,EAC9B,qBAAqB,YAAY;AAAA,EAEjC,gBAAgB,WAAW;AAAA,EAC3B,sBAAsB,WAAW;AAAA,EAEjC,qBAAqB,eAAe;AAAA,EACpC,sBAAsB,eAAe;AAAA,EACrC,wBAAwB,eAAe;AAAA,EACvC,uBAAuB,eAAe;AAAA,EACtC,yBAAyB,eAAe;AAAA,EACxC,oCACC,eAAe;AACjB;AAEO,IAAM,YAAY,IAAI;;ACzItB,MAAM,UAAU;AAAA,EACd,kBAA0C;AAAA,EAC1C,WAA8C,IAAI;AAAA,EAClD,UAAU;AAAA,OAEZ,QAAO,CAAC,KAAa;AAAA,IAC1B,IAAI,KAAK,iBAAiB;AAAA,MACzB,KAAK,gBAAgB,MAAM;AAAA,IAC5B;AAAA,IAEA,KAAK,kBAAkB,IAAI;AAAA,IAC3B,KAAK,UAAU;AAAA,IAEf,MAAM,WAAW,CAAC,IAAI,SAAS,WAAW,KAAK,CAAC,IAAI,SAAS,WAAW;AAAA,IAExE,IAAI;AAAA,MACH,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QACjC,QAAQ,WAAW,SAAS;AAAA,QAC5B,SAAS,EAAE,QAAQ,oBAAoB;AAAA,QACvC,QAAQ,KAAK,gBAAgB;AAAA,MAC9B,CAAC;AAAA,MAED,IAAI,CAAC,SAAS,IAAI;AAAA,QACjB,QAAQ,MAAM,4BAA4B,SAAS,MAAM;AAAA,QACzD;AAAA,MACD;AAAA,MAEA,MAAM,SAAS,SAAS,MAAM,UAAU;AAAA,MACxC,IAAI,CAAC,QAAQ;AAAA,QACZ,QAAQ,MAAM,wBAAwB;AAAA,QACtC;AAAA,MACD;AAAA,MAEA,MAAM,UAAU,IAAI;AAAA,MACpB,IAAI,SAAS;AAAA,MAEb,OAAO,KAAK,SAAS;AAAA,QACpB,QAAQ,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,QAC1C,IAAI;AAAA,UAAM;AAAA,QAEV,UAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAAA,QAChD,IAAI,MAAM,OAAO,QAAQ;AAAA;AAAA,CAAM;AAAA,QAE/B,OAAO,QAAQ,IAAI;AAAA,UAClB,MAAM,MAAM,OAAO,MAAM,GAAG,GAAG;AAAA,UAC/B,SAAS,OAAO,MAAM,MAAM,CAAC;AAAA,UAC7B,MAAM,QAAQ,IAAI,MAAM;AAAA,CAAI;AAAA,UAE5B,IAAI,YAAY;AAAA,UAChB,IAAI,OAAO;AAAA,UAEX,WAAW,QAAQ,OAAO;AAAA,YACzB,IAAI,KAAK,WAAW,SAAS,GAAG;AAAA,cAC/B,YAAY,KAAK,MAAM,CAAC,EAAE,KAAK;AAAA,YAChC,EAAO,SAAI,KAAK,WAAW,QAAQ,GAAG;AAAA,cACrC,SAAS,OAAO;AAAA,IAAO,MAAM,KAAK,MAAM,CAAC;AAAA,YAC1C,EAAO,SAAI,KAAK,WAAW,GAAG,GAAG,CACjC;AAAA,UACD;AAAA,UAEA,IAAI,MAAM;AAAA,YACT,IAAI;AAAA,cACH,MAAM,UAAU,KAAK,MAAM,IAAI;AAAA,cAC/B,KAAK,KAAK,EAAE,MAAM,WAAW,QAAQ,CAAC;AAAA,cACrC,OAAO,OAAO;AAAA,cACf,QAAQ,MAAM,yBAAyB,cAAc,KAAK;AAAA;AAAA,UAE5D;AAAA,UAEA,MAAM,OAAO,QAAQ;AAAA;AAAA,CAAM;AAAA,QAC5B;AAAA,MACD;AAAA,MACC,OAAO,OAAO;AAAA,MACf,IAAI,iBAAiB,SAAS,MAAM,SAAS,cAAc,CAC3D,EAAO,SACN,iBAAiB,aACjB,MAAM,YAAY,eACjB,CACF,EAAO;AAAA,QACN,QAAQ,MAAM,2BAA2B,KAAK;AAAA;AAAA;AAAA;AAAA,EAKjD,UAAU,GAAG;AAAA,IACZ,KAAK,UAAU;AAAA,IACf,IAAI,KAAK,iBAAiB;AAAA,MACzB,KAAK,gBAAgB,MAAM;AAAA,MAC3B,KAAK,kBAAkB;AAAA,IACxB;AAAA;AAAA,EAGD,EAAE,CAAC,WAAmB,SAA0B;AAAA,IAC/C,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,GAAG;AAAA,MAClC,KAAK,SAAS,IAAI,WAAW,IAAI,GAAK;AAAA,IACvC;AAAA,IACA,KAAK,SAAS,IAAI,SAAS,GAAG,IAAI,OAAO;AAAA,IAEzC,OAAO,MAAM;AAAA,MACZ,KAAK,IAAI,WAAW,OAAO;AAAA;AAAA;AAAA,EAI7B,GAAG,CAAC,WAAmB,SAA0B;AAAA,IAChD,MAAM,WAAW,KAAK,SAAS,IAAI,SAAS;AAAA,IAC5C,IAAI,UAAU;AAAA,MACb,SAAS,OAAO,OAAO;AAAA,MACvB,IAAI,SAAS,SAAS,GAAG;AAAA,QACxB,KAAK,SAAS,OAAO,SAAS;AAAA,MAC/B;AAAA,IACD;AAAA;AAAA,EAGO,IAAI,CAAC,OAAiB;AAAA,IAC7B,MAAM,WAAW,KAAK,SAAS,IAAI,MAAM,IAAI;AAAA,IAC7C,IAAI,UAAU;AAAA,MACb,WAAW,WAAW,UAAU;AAAA,QAC/B,QAAQ,KAAK;AAAA,MACd;AAAA,IACD;AAAA,IAEA,MAAM,cAAc,KAAK,SAAS,IAAI,GAAG;AAAA,IACzC,IAAI,aAAa;AAAA,MAChB,WAAW,WAAW,aAAa;AAAA,QAClC,QAAQ,KAAK;AAAA,MACd;AAAA,IACD;AAAA;AAEF;",
23
+ "debugId": "1DA9515879014FE464756E2164756E21",
24
24
  "names": []
25
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ottocode/web-sdk",
3
- "version": "0.1.291",
3
+ "version": "0.1.292",
4
4
  "description": "Reusable React components, hooks, and utilities for building ottocode web interfaces",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -74,8 +74,8 @@
74
74
  "@iconify-json/material-icon-theme": "^1.2.65",
75
75
  "@iconify/react": "^6.0.2",
76
76
  "@lezer/highlight": "^1.2.3",
77
- "@ottocode/api": "0.1.291",
78
- "@ottocode/sdk": "0.1.291",
77
+ "@ottocode/api": "0.1.292",
78
+ "@ottocode/sdk": "0.1.292",
79
79
  "axios": "^1.7.9",
80
80
  "fuse.js": "^7.1.0",
81
81
  "ghostty-web": "^0.4.0",