@ottocode/web-sdk 0.1.284 → 0.1.285

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/components/file-browser/FileViewerPanel.d.ts.map +1 -1
  2. package/dist/components/git/GitBranchSwitcher.d.ts +8 -0
  3. package/dist/components/git/GitBranchSwitcher.d.ts.map +1 -0
  4. package/dist/components/git/GitCreateBranchModal.d.ts +11 -0
  5. package/dist/components/git/GitCreateBranchModal.d.ts.map +1 -0
  6. package/dist/components/git/GitDiffPanel.d.ts.map +1 -1
  7. package/dist/components/git/GitDiffViewer.d.ts.map +1 -1
  8. package/dist/components/git/GitFileItem.d.ts +3 -1
  9. package/dist/components/git/GitFileItem.d.ts.map +1 -1
  10. package/dist/components/git/GitFileList.d.ts.map +1 -1
  11. package/dist/components/git/GitFileTree.d.ts +11 -0
  12. package/dist/components/git/GitFileTree.d.ts.map +1 -0
  13. package/dist/components/git/GitSidebar.d.ts.map +1 -1
  14. package/dist/components/index.d.ts +3 -0
  15. package/dist/components/index.d.ts.map +1 -1
  16. package/dist/components/index.js +4317 -3159
  17. package/dist/components/index.js.map +31 -27
  18. package/dist/components/messages/ActionToolBox.d.ts.map +1 -1
  19. package/dist/components/messages/renderers/ApplyPatchRenderer.d.ts.map +1 -1
  20. package/dist/components/messages/renderers/WriteRenderer.d.ts.map +1 -1
  21. package/dist/components/session-files/SessionFilesDiffPanel.d.ts.map +1 -1
  22. package/dist/components/sessions/SessionItem.d.ts.map +1 -1
  23. package/dist/components/sessions/SessionListContainer.d.ts.map +1 -1
  24. package/dist/components/skills/SkillViewerPanel.d.ts.map +1 -1
  25. package/dist/components/terminals/TerminalViewer.d.ts.map +1 -1
  26. package/dist/components/ui/CodeMirrorViewer.d.ts +3 -1
  27. package/dist/components/ui/CodeMirrorViewer.d.ts.map +1 -1
  28. package/dist/components/workspace/ToolPreviewPanel.d.ts.map +1 -1
  29. package/dist/components/workspace/ViewerStatusBar.d.ts +35 -0
  30. package/dist/components/workspace/ViewerStatusBar.d.ts.map +1 -0
  31. package/dist/components/workspace/ViewerTabs.d.ts.map +1 -1
  32. package/dist/hooks/index.js +125 -23
  33. package/dist/hooks/index.js.map +9 -9
  34. package/dist/hooks/useGit.d.ts +12 -0
  35. package/dist/hooks/useGit.d.ts.map +1 -1
  36. package/dist/hooks/useKeyboardShortcuts.d.ts +3 -3
  37. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  38. package/dist/hooks/useSessionStream.d.ts.map +1 -1
  39. package/dist/index.js +4379 -3216
  40. package/dist/index.js.map +32 -28
  41. package/dist/lib/api-client/git.d.ts +12 -1
  42. package/dist/lib/api-client/git.d.ts.map +1 -1
  43. package/dist/lib/api-client/index.d.ts +11 -0
  44. package/dist/lib/api-client/index.d.ts.map +1 -1
  45. package/dist/lib/index.js +34 -2
  46. package/dist/lib/index.js.map +4 -4
  47. package/dist/stores/gitStore.d.ts +13 -0
  48. package/dist/stores/gitStore.d.ts.map +1 -1
  49. package/dist/stores/index.js +26 -2
  50. package/dist/stores/index.js.map +4 -4
  51. package/dist/stores/viewerTabsStore.d.ts +6 -0
  52. package/dist/stores/viewerTabsStore.d.ts.map +1 -1
  53. package/dist/types/api.d.ts +14 -0
  54. package/dist/types/api.d.ts.map +1 -1
  55. package/package.json +4 -3
@@ -1,4 +1,4 @@
1
- import type { GitStatusResponse, GitDiffResponse, GitStageResponse, GitUnstageResponse, GitCommitResponse, GitGenerateCommitMessageResponse, GitBranchInfo, GitPushResponse, GitPullResponse, GitRebaseActionResponse, GitRemoteInfo } from '../../types/api';
1
+ import type { GitStatusResponse, GitDiffResponse, GitStageResponse, GitUnstageResponse, GitCommitResponse, GitGenerateCommitMessageResponse, GitBranchInfo, GitPushResponse, GitPullResponse, GitRebaseActionResponse, GitRemoteInfo, GitBranchListResponse } from '../../types/api';
2
2
  export declare const gitMixin: {
3
3
  initGitRepo(): Promise<{
4
4
  initialized: boolean;
@@ -29,5 +29,16 @@ export declare const gitMixin: {
29
29
  removeRemote(name: string): Promise<{
30
30
  removed: string;
31
31
  }>;
32
+ listGitBranches(): Promise<GitBranchListResponse>;
33
+ checkoutBranch(branch: string): Promise<{
34
+ branch: string;
35
+ }>;
36
+ createGitBranch(name: string, options?: {
37
+ startPoint?: string;
38
+ checkout?: boolean;
39
+ }): Promise<{
40
+ branch: string;
41
+ checkedOut: boolean;
42
+ }>;
32
43
  };
33
44
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/git.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,QAAQ;mBACC,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;oBAS9C,OAAO,CAAC,iBAAiB,CAAC;qBAQzC,MAAM,WACJ,OAAO,GACb,OAAO,CAAC,eAAe,CAAC;6BAUpB,MAAM,qBAEV,OAAO,CAAC,eAAe,CAAC;sCAcd,MAAM,GAChB,OAAO,CAAC,gCAAgC,CAAC;sBASpB,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;wBAUlC,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;wBAUtC,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;uBAU3C,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;2BAUrC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAU1C,OAAO,CAAC,aAAa,CAAC;mBAOvB,OAAO,CAAC,eAAe,CAAC;mBAUxB,OAAO,CAAC,eAAe,CAAC;gCAWpC,UAAU,GAAG,OAAO,GAAG,MAAM,GACnC,OAAO,CAAC,uBAAuB,CAAC;kBASf,OAAO,CAAC,aAAa,EAAE,CAAC;oBAQrC,MAAM,OACP,MAAM,GACT,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;uBAUhB,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAS9D,CAAC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/git.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,QAAQ;mBACC,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;oBAS9C,OAAO,CAAC,iBAAiB,CAAC;qBAQzC,MAAM,WACJ,OAAO,GACb,OAAO,CAAC,eAAe,CAAC;6BAUpB,MAAM,qBAEV,OAAO,CAAC,eAAe,CAAC;sCAcd,MAAM,GAChB,OAAO,CAAC,gCAAgC,CAAC;sBASpB,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;wBAUlC,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;wBAUtC,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;uBAU3C,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;2BAUrC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAU1C,OAAO,CAAC,aAAa,CAAC;mBAOvB,OAAO,CAAC,eAAe,CAAC;mBAUxB,OAAO,CAAC,eAAe,CAAC;gCAWpC,UAAU,GAAG,OAAO,GAAG,MAAM,GACnC,OAAO,CAAC,uBAAuB,CAAC;kBASf,OAAO,CAAC,aAAa,EAAE,CAAC;oBAQrC,MAAM,OACP,MAAM,GACT,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;uBAUhB,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;uBAUrC,OAAO,CAAC,qBAAqB,CAAC;2BAO1B,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;0BAW1D,MAAM,YACF;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACnD,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;CAkBnD,CAAC"}
@@ -82,6 +82,17 @@ declare class ApiClient {
82
82
  removeRemote: (name: string) => Promise<{
83
83
  removed: string;
84
84
  }>;
85
+ listGitBranches: () => Promise<import("../..").GitBranchListResponse>;
86
+ checkoutBranch: (branch: string) => Promise<{
87
+ branch: string;
88
+ }>;
89
+ createGitBranch: (name: string, options?: {
90
+ startPoint?: string;
91
+ checkout?: boolean;
92
+ }) => Promise<{
93
+ branch: string;
94
+ checkedOut: boolean;
95
+ }>;
85
96
  getConfig: () => Promise<{
86
97
  agents: string[];
87
98
  providers: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/index.ts"],"names":[],"mappings":"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"}
package/dist/lib/index.js CHANGED
@@ -251,7 +251,10 @@ import {
251
251
  initGitRepo as apiInitGitRepo,
252
252
  getGitRemotes as apiGetGitRemotes,
253
253
  addGitRemote as apiAddGitRemote,
254
- removeGitRemote as apiRemoveGitRemote
254
+ removeGitRemote as apiRemoveGitRemote,
255
+ listGitBranches as apiListGitBranches,
256
+ checkoutGitBranch as apiCheckoutGitBranch,
257
+ createGitBranch as apiCreateGitBranch
255
258
  } from "@ottocode/api";
256
259
  var gitMixin = {
257
260
  async initGitRepo() {
@@ -387,6 +390,32 @@ var gitMixin = {
387
390
  if (response.error)
388
391
  throw new Error(extractErrorMessage(response.error));
389
392
  return response.data?.data;
393
+ },
394
+ async listGitBranches() {
395
+ const response = await apiListGitBranches();
396
+ if (response.error)
397
+ throw new Error(extractErrorMessage(response.error));
398
+ return response.data?.data;
399
+ },
400
+ async checkoutBranch(branch) {
401
+ const response = await apiCheckoutGitBranch({
402
+ body: { branch }
403
+ });
404
+ if (response.error)
405
+ throw new Error(extractErrorMessage(response.error));
406
+ return response.data?.data;
407
+ },
408
+ async createGitBranch(name, options) {
409
+ const response = await apiCreateGitBranch({
410
+ body: {
411
+ name,
412
+ ...options?.startPoint ? { startPoint: options.startPoint } : {},
413
+ ...options?.checkout !== undefined ? { checkout: options.checkout } : {}
414
+ }
415
+ });
416
+ if (response.error)
417
+ throw new Error(extractErrorMessage(response.error));
418
+ return response.data?.data;
390
419
  }
391
420
  };
392
421
 
@@ -963,6 +992,9 @@ class ApiClient {
963
992
  getRemotes = gitMixin.getRemotes;
964
993
  addRemote = gitMixin.addRemote;
965
994
  removeRemote = gitMixin.removeRemote;
995
+ listGitBranches = gitMixin.listGitBranches;
996
+ checkoutBranch = gitMixin.checkoutBranch;
997
+ createGitBranch = gitMixin.createGitBranch;
966
998
  getConfig = configMixin.getConfig;
967
999
  getModels = configMixin.getModels;
968
1000
  getAllModels = configMixin.getAllModels;
@@ -1212,4 +1244,4 @@ export {
1212
1244
  API_BASE_URL
1213
1245
  };
1214
1246
 
1215
- //# debugId=8CF4E481757A5F5564756E2164756E21
1247
+ //# debugId=DE90AF5B82F6584664756E2164756E21
@@ -5,7 +5,7 @@
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 { API_BASE_URL } from '../config';\nimport type { Session, Message } from '../../types/api';\n\ninterface WindowWithAgiServerUrl extends Window {\n\tOTTO_SERVER_URL?: string;\n}\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 win = window as WindowWithAgiServerUrl;\n\tconst baseURL = win.OTTO_SERVER_URL || API_BASE_URL;\n\tclient.setConfig({\n\t\tbaseURL,\n\t\tadapter: getClientAdapter(),\n\t});\n}\n\nconfigureApiClient();\n\nexport function getBaseUrl(): string {\n\tconst win = window as WindowWithAgiServerUrl;\n\tif (win.OTTO_SERVER_URL) return win.OTTO_SERVER_URL;\n\treturn API_BASE_URL;\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
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\n// This function will execute at runtime in the browser\nfunction computeApiBaseUrl(): string {\n\t// Check Vite env var first (for dev mode)\n\tconst envUrl = import.meta.env?.VITE_API_BASE_URL;\n\tif (envUrl) {\n\t\treturn envUrl;\n\t}\n\n\t// Check window object for injected values (for production)\n\tif (typeof window !== 'undefined') {\n\t\tconst win = window as OttoWindow;\n\t\tif (win.OTTO_SERVER_URL) {\n\t\t\treturn win.OTTO_SERVER_URL;\n\t\t}\n\t\tif (win.__OTTO_API_URL__) {\n\t\t\treturn win.__OTTO_API_URL__;\n\t\t}\n\t}\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
- "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} 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} 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",
8
+ "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
9
  "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\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\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\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
10
  "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",
11
11
  "import {\n\tcreateBranch as apiCreateBranch,\n\tlistBranches as apiListBranches,\n\tgetParentSession as apiGetParentSession,\n\tgetShareStatus as apiGetShareStatus,\n\tshareSession as apiShareSession,\n\tsyncShare as apiSyncShare,\n} from '@ottocode/api';\nimport type {\n\tCreateBranchRequest,\n\tBranchResult,\n\tListBranchesResponse,\n\tParentSessionResponse,\n\tShareStatus,\n\tShareSessionResponse,\n\tSyncSessionResponse,\n} from '../../types/api';\nimport { extractErrorMessage } from './utils';\n\nexport const branchesMixin = {\n\tasync createBranch(\n\t\tsessionId: string,\n\t\tdata: CreateBranchRequest,\n\t): Promise<BranchResult> {\n\t\tconst response = await apiCreateBranch({\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 response.data as unknown as BranchResult;\n\t},\n\n\tasync listBranches(sessionId: string): Promise<ListBranchesResponse> {\n\t\tconst response = await apiListBranches({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as unknown as ListBranchesResponse;\n\t},\n\n\tasync getParentSession(sessionId: string): Promise<ParentSessionResponse> {\n\t\tconst response = await apiGetParentSession({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as ParentSessionResponse;\n\t},\n\n\tasync getShareStatus(sessionId: string): Promise<ShareStatus> {\n\t\tconst response = await apiGetShareStatus({ path: { sessionId } });\n\t\tif (response.error) return { shared: false };\n\t\treturn response.data as ShareStatus;\n\t},\n\n\tasync shareSession(sessionId: string): Promise<ShareSessionResponse> {\n\t\tconst response = await apiShareSession({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as ShareSessionResponse;\n\t},\n\n\tasync syncSession(sessionId: string): Promise<SyncSessionResponse> {\n\t\tconst response = await apiSyncShare({ path: { sessionId } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as SyncSessionResponse;\n\t},\n};\n",
@@ -14,11 +14,11 @@
14
14
  "import {\n\tgetAuthStatus as apiGetAuthStatus,\n\tsetupOttoRouterWallet as apiSetupSetuWallet,\n\timportOttoRouterWallet as apiImportSetuWallet,\n\texportOttoRouterWallet as apiExportSetuWallet,\n\taddProviderApiKey as apiAddProviderApiKey,\n\tremoveProvider as apiRemoveProvider,\n\tcompleteOnboarding as apiCompleteOnboarding,\n\tgetOAuthUrl as apiGetOAuthUrl,\n\texchangeOAuthCode as apiExchangeOAuthCode,\n\tstartCopilotDeviceFlow as apiStartCopilotDeviceFlow,\n\tpollCopilotDeviceFlow as apiPollCopilotDeviceFlow,\n\tgetCopilotAuthMethods as apiGetCopilotAuthMethods,\n\tsaveCopilotToken as apiSaveCopilotToken,\n\timportCopilotTokenFromGh as apiImportCopilotTokenFromGh,\n\tgetCopilotDiagnostics as apiGetCopilotDiagnostics,\n\tgetProviderUsage as apiGetProviderUsage,\n} from '@ottocode/api';\nimport type { ProviderUsageResponse } from '../../types/api';\nimport { extractErrorMessage, getBaseUrl } from './utils';\n\nexport const authMixin = {\n\tasync getAuthStatus(): Promise<{\n\t\tonboardingComplete: boolean;\n\t\tottorouter: { configured: boolean; publicKey?: string };\n\t\tproviders: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tconfigured: boolean;\n\t\t\t\ttype?: 'api' | 'oauth' | 'wallet';\n\t\t\t\tlabel: string;\n\t\t\t\tsupportsOAuth: boolean;\n\t\t\t\tsupportsToken?: boolean;\n\t\t\t\tsupportsGhImport?: boolean;\n\t\t\t\tcustom?: boolean;\n\t\t\t\tmodelCount: number;\n\t\t\t\tcostRange?: { min: number; max: number };\n\t\t\t}\n\t\t>;\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};\n\t}> {\n\t\tconst response = await apiGetAuthStatus();\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 setupOttoRouterWallet(): Promise<{\n\t\tsuccess: boolean;\n\t\tpublicKey: string;\n\t\tisNew: boolean;\n\t}> {\n\t\tconst response = await apiSetupSetuWallet();\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 importOttoRouterWallet(privateKey: string): Promise<{\n\t\tsuccess: boolean;\n\t\tpublicKey: string;\n\t}> {\n\t\tconst response = await apiImportSetuWallet({\n\t\t\tbody: { privateKey },\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 exportOttoRouterWallet(): Promise<{\n\t\tsuccess: boolean;\n\t\tpublicKey: string;\n\t\tprivateKey: string;\n\t}> {\n\t\tconst response = await apiExportSetuWallet();\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 addProvider(\n\t\tprovider: string,\n\t\tapiKey: string,\n\t): Promise<{ success: boolean; provider: string }> {\n\t\tconst response = await apiAddProviderApiKey({\n\t\t\tpath: { provider },\n\t\t\tbody: { apiKey },\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 removeProvider(\n\t\tprovider: string,\n\t): Promise<{ success: boolean; provider: string }> {\n\t\tconst response = await apiRemoveProvider({ path: { provider } });\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 completeOnboarding(): Promise<{ success: boolean }> {\n\t\tconst response = await apiCompleteOnboarding();\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\tgetOAuthStartUrl(provider: string, mode?: string): string {\n\t\tconst baseUrl = `${getBaseUrl()}/v1/auth/${provider}/oauth/start`;\n\t\tif (mode) return `${baseUrl}?mode=${mode}`;\n\t\treturn baseUrl;\n\t},\n\n\tasync getOAuthUrl(\n\t\tprovider: string,\n\t\tmode?: string,\n\t): Promise<{ url: string; sessionId: string; provider: string }> {\n\t\tconst response = await apiGetOAuthUrl({\n\t\t\tpath: { provider },\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API type mismatch\n\t\t\tbody: { mode } 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 exchangeOAuthCode(\n\t\tprovider: string,\n\t\tcode: string,\n\t\tsessionId: string,\n\t): Promise<{ success: boolean; provider: string }> {\n\t\tconst response = await apiExchangeOAuthCode({\n\t\t\tpath: { provider },\n\t\t\tbody: { code, 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;\n\t},\n\n\tasync startCopilotDeviceFlow(): Promise<{\n\t\tsessionId: string;\n\t\tuserCode: string;\n\t\tverificationUri: string;\n\t\tinterval: number;\n\t}> {\n\t\tconst response = await apiStartCopilotDeviceFlow();\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 pollCopilotDeviceFlow(\n\t\tsessionId: string,\n\t): Promise<{ status: 'complete' | 'pending' | 'error'; error?: string }> {\n\t\tconst response = await apiPollCopilotDeviceFlow({\n\t\t\tbody: { 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;\n\t},\n\n\tasync getCopilotAuthMethods(): Promise<{\n\t\toauth: boolean;\n\t\ttoken: boolean;\n\t\tghImport: { available: boolean; authenticated: boolean; reason?: string };\n\t}> {\n\t\tconst response = await apiGetCopilotAuthMethods();\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 saveCopilotToken(token: string): Promise<{\n\t\tsuccess: boolean;\n\t\tprovider: string;\n\t\tsource: 'token';\n\t\tmodelCount: number;\n\t\thasGpt52Codex: boolean;\n\t\tsampleModels: string[];\n\t}> {\n\t\tconst response = await apiSaveCopilotToken({ body: { token } });\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 importCopilotTokenFromGh(): Promise<{\n\t\tsuccess: boolean;\n\t\tprovider: string;\n\t\tsource: 'gh';\n\t\tmodelCount: number;\n\t\thasGpt52Codex: boolean;\n\t\tsampleModels: string[];\n\t}> {\n\t\tconst response = await apiImportCopilotTokenFromGh();\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 getCopilotDiagnostics(): Promise<{\n\t\ttokenSources: Array<{\n\t\t\tsource: 'env' | 'stored';\n\t\t\tconfigured: boolean;\n\t\t\tmodelCount?: number;\n\t\t\thasGpt52Codex?: boolean;\n\t\t\tsampleModels?: string[];\n\t\t\trestrictedByOrgPolicy?: boolean;\n\t\t\trestrictedOrg?: string;\n\t\t\trestrictionMessage?: string;\n\t\t\terror?: string;\n\t\t}>;\n\t\tmethods: {\n\t\t\toauth: boolean;\n\t\t\ttoken: boolean;\n\t\t\tghImport: { available: boolean; authenticated: boolean; reason?: string };\n\t\t};\n\t}> {\n\t\tconst response = await apiGetCopilotDiagnostics();\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 getProviderUsage(provider: string): Promise<ProviderUsageResponse> {\n\t\tconst response = await apiGetProviderUsage({\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: API path type mismatch\n\t\t\tpath: { provider } as any,\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as ProviderUsageResponse;\n\t},\n};\n",
15
15
  "import {\n\tgetSkillsConfig as apiGetSkillsConfig,\n\tupdateSkillsConfig as apiUpdateSkillsConfig,\n\tlistSkills as apiListSkills,\n\tgetSkill as apiGetSkill,\n\tlistSkillFiles as apiListSkillFiles,\n\tgetSkillFile as apiGetSkillFile,\n} from '@ottocode/api';\nimport { extractErrorMessage } from './utils';\n\nexport interface SkillSummary {\n\tname: string;\n\tdescription: string;\n\tscope: string;\n\tpath: string;\n\tenabled?: boolean;\n}\n\nexport interface SkillsConfigResponse {\n\tenabled: boolean;\n\ttotalCount: number;\n\tenabledCount: number;\n\titems: SkillSummary[];\n}\n\nexport interface SkillDetail {\n\tname: string;\n\tdescription: string;\n\tlicense?: string | null;\n\tcompatibility?: string | null;\n\tmetadata?: unknown;\n\tallowedTools?: string[] | null;\n\tpath: string;\n\tscope: string;\n\tcontent: string;\n}\n\nexport interface SkillFileInfo {\n\trelativePath: string;\n\tsize: number;\n}\n\nexport const skillsMixin = {\n\tasync listSkills(): Promise<{ skills: SkillSummary[] }> {\n\t\tconst response = await apiListSkills();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as { skills: SkillSummary[] };\n\t},\n\n\tasync getSkill(name: string): Promise<SkillDetail> {\n\t\tconst response = await apiGetSkill({ path: { name } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as SkillDetail;\n\t},\n\n\tasync getSkillFiles(name: string): Promise<{ files: SkillFileInfo[] }> {\n\t\tconst response = await apiListSkillFiles({ path: { name } });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as { files: SkillFileInfo[] };\n\t},\n\n\tasync getSkillFileContent(\n\t\tname: string,\n\t\tfilePath: string,\n\t): Promise<{ content: string; path: string }> {\n\t\tconst response = await apiGetSkillFile({\n\t\t\tpath: { name, filePath },\n\t\t});\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as { content: string; path: string };\n\t},\n\n\tasync getSkillsConfig(): Promise<SkillsConfigResponse> {\n\t\tconst response = await apiGetSkillsConfig();\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as SkillsConfigResponse;\n\t},\n\n\tasync updateSkillsConfig(input: {\n\t\tenabled?: boolean;\n\t\titems?: Record<string, { enabled?: boolean }>;\n\t\tscope?: 'global' | 'local';\n\t}): Promise<SkillsConfigResponse> {\n\t\tconst response = await apiUpdateSkillsConfig({ body: input });\n\t\tif (response.error) throw new Error(extractErrorMessage(response.error));\n\t\treturn response.data as SkillsConfigResponse;\n\t},\n};\n",
16
16
  "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
- "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';\n\nexport { configureApiClient } from './utils';\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\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\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\nexport const apiClient = new ApiClient();\n",
17
+ "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';\n\nexport { configureApiClient } from './utils';\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\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\nexport const apiClient = new ApiClient();\n",
18
18
  "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",
19
19
  "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
20
  ],
21
- "mappings": "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",
22
- "debugId": "8CF4E481757A5F5564756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "DE90AF5B82F6584664756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -1,3 +1,13 @@
1
+ export interface GitTreeRow {
2
+ id: string;
3
+ type: 'file' | 'folder';
4
+ path: string;
5
+ staged: boolean;
6
+ status?: string;
7
+ actionPaths: string[];
8
+ open?: () => void;
9
+ toggleExpanded?: () => void;
10
+ }
1
11
  interface GitState {
2
12
  isExpanded: boolean;
3
13
  activeSessionId: string | null;
@@ -7,6 +17,8 @@ interface GitState {
7
17
  isCommitModalOpen: boolean;
8
18
  commitSessionId: string | null;
9
19
  wasSessionListCollapsed: boolean;
20
+ gitTreeSections: Record<string, GitTreeRow[]>;
21
+ gitTreeRows: GitTreeRow[];
10
22
  toggleSidebar: () => void;
11
23
  expandSidebar: () => void;
12
24
  collapseSidebar: () => void;
@@ -18,6 +30,7 @@ interface GitState {
18
30
  closeCommitModal: () => void;
19
31
  setActiveSessionId: (sessionId: string | null) => void;
20
32
  setSessionListCollapsed: (collapsed: boolean) => void;
33
+ setGitTreeSectionRows: (sectionId: string, rows: GitTreeRow[]) => void;
21
34
  }
22
35
  export declare const useGitStore: import("zustand").UseBoundStore<import("zustand").StoreApi<GitState>>;
23
36
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"gitStore.d.ts","sourceRoot":"","sources":["../../src/stores/gitStore.ts"],"names":[],"mappings":"AAUA,UAAU,QAAQ;IAEjB,UAAU,EAAE,OAAO,CAAC;IAGpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IAGpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,uBAAuB,EAAE,OAAO,CAAC;IAGjC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAE7B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,uBAAuB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,eAAO,MAAM,WAAW,uEAmErB,CAAC"}
1
+ {"version":3,"file":"gitStore.d.ts","sourceRoot":"","sources":["../../src/stores/gitStore.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AA0BD,UAAU,QAAQ;IAEjB,UAAU,EAAE,OAAO,CAAC;IAGpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IAGpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,uBAAuB,EAAE,OAAO,CAAC;IAGjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9C,WAAW,EAAE,UAAU,EAAE,CAAC;IAG1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAE7B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,uBAAuB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CACvE;AAED,eAAO,MAAM,WAAW,uEAqFrB,CAAC"}
@@ -256,6 +256,7 @@ var useViewerTabsStore = create((set) => ({
256
256
  toolName: "write",
257
257
  callId: preview.callId ?? existingWritePreview?.callId,
258
258
  content: preview.content ?? existingWritePreview?.content,
259
+ changeCount: preview.changeCount ?? existingWritePreview?.changeCount,
259
260
  status: preview.status,
260
261
  error: preview.error ?? existingWritePreview?.error
261
262
  }
@@ -279,6 +280,7 @@ var useViewerTabsStore = create((set) => ({
279
280
  toolName: "write",
280
281
  callId: preview.callId,
281
282
  content: preview.content ?? existingWrite?.content,
283
+ changeCount: preview.changeCount ?? existingWrite?.changeCount,
282
284
  status: preview.status,
283
285
  error: preview.error ?? existingWrite?.error
284
286
  }
@@ -672,6 +674,15 @@ var useSessionFilesStore = create8((set) => ({
672
674
  }));
673
675
 
674
676
  // src/stores/gitStore.ts
677
+ var GIT_TREE_SECTION_ORDER = ["conflicts", "staged", "changes"];
678
+ function areGitTreeRowsEqual(left = [], right = []) {
679
+ if (left.length !== right.length)
680
+ return false;
681
+ return left.every((row, index) => {
682
+ const other = right[index];
683
+ return row.id === other.id && row.type === other.type && row.path === other.path && row.staged === other.staged && row.status === other.status && row.actionPaths.length === other.actionPaths.length && row.actionPaths.every((path, pathIndex) => path === other.actionPaths[pathIndex]);
684
+ });
685
+ }
675
686
  var useGitStore = create9((set) => ({
676
687
  isExpanded: false,
677
688
  activeSessionId: null,
@@ -681,6 +692,8 @@ var useGitStore = create9((set) => ({
681
692
  isCommitModalOpen: false,
682
693
  commitSessionId: null,
683
694
  wasSessionListCollapsed: false,
695
+ gitTreeSections: {},
696
+ gitTreeRows: [],
684
697
  toggleSidebar: () => {
685
698
  set((state) => {
686
699
  const newExpanded = !state.isExpanded;
@@ -722,7 +735,18 @@ var useGitStore = create9((set) => ({
722
735
  openCommitModalForSession: (sessionId) => set({ isCommitModalOpen: true, commitSessionId: sessionId }),
723
736
  closeCommitModal: () => set({ isCommitModalOpen: false, commitSessionId: null }),
724
737
  setActiveSessionId: (sessionId) => set({ activeSessionId: sessionId }),
725
- setSessionListCollapsed: (collapsed) => set({ wasSessionListCollapsed: collapsed })
738
+ setSessionListCollapsed: (collapsed) => set({ wasSessionListCollapsed: collapsed }),
739
+ setGitTreeSectionRows: (sectionId, rows) => set((state) => {
740
+ if (areGitTreeRowsEqual(state.gitTreeSections[sectionId], rows)) {
741
+ return state;
742
+ }
743
+ const gitTreeSections = {
744
+ ...state.gitTreeSections,
745
+ [sectionId]: rows
746
+ };
747
+ const gitTreeRows = GIT_TREE_SECTION_ORDER.flatMap((id) => gitTreeSections[id] ?? []);
748
+ return { gitTreeSections, gitTreeRows };
749
+ })
726
750
  }));
727
751
  // src/stores/sidebarStore.ts
728
752
  import { create as create10 } from "zustand";
@@ -1055,4 +1079,4 @@ export {
1055
1079
  toast
1056
1080
  };
1057
1081
 
1058
- //# debugId=D1E17D896304713C64756E2164756E21
1082
+ //# debugId=6E0E823BACA98FB164756E2164756E21