@ottocode/web-sdk 0.1.213 → 0.1.216

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 (138) hide show
  1. package/dist/components/git/GitSidebar.js +1 -1
  2. package/dist/components/git/GitSidebar.js.map +1 -1
  3. package/dist/components/index.d.ts +3 -0
  4. package/dist/components/index.d.ts.map +1 -1
  5. package/dist/components/index.js +4 -0
  6. package/dist/components/index.js.map +1 -1
  7. package/dist/components/messages/ToolApprovalCard.d.ts +2 -2
  8. package/dist/components/messages/ToolApprovalCard.d.ts.map +1 -1
  9. package/dist/components/messages/ToolApprovalCard.js +6 -2
  10. package/dist/components/messages/ToolApprovalCard.js.map +1 -1
  11. package/dist/components/messages/renderers/shared/ImagePreview.js +1 -1
  12. package/dist/components/messages/renderers/shared/ImagePreview.js.map +1 -1
  13. package/dist/components/research/ResearchSidebar.js +1 -1
  14. package/dist/components/research/ResearchSidebar.js.map +1 -1
  15. package/dist/components/sessions/SessionListContainer.d.ts.map +1 -1
  16. package/dist/components/sessions/SessionListContainer.js +6 -9
  17. package/dist/components/sessions/SessionListContainer.js.map +1 -1
  18. package/dist/components/skills/SkillViewerPanel.d.ts +2 -0
  19. package/dist/components/skills/SkillViewerPanel.d.ts.map +1 -0
  20. package/dist/components/skills/SkillViewerPanel.js +89 -0
  21. package/dist/components/skills/SkillViewerPanel.js.map +1 -0
  22. package/dist/components/skills/SkillsSidebar.d.ts +2 -0
  23. package/dist/components/skills/SkillsSidebar.d.ts.map +1 -0
  24. package/dist/components/skills/SkillsSidebar.js +59 -0
  25. package/dist/components/skills/SkillsSidebar.js.map +1 -0
  26. package/dist/components/skills/SkillsSidebarToggle.d.ts +2 -0
  27. package/dist/components/skills/SkillsSidebarToggle.d.ts.map +1 -0
  28. package/dist/components/skills/SkillsSidebarToggle.js +12 -0
  29. package/dist/components/skills/SkillsSidebarToggle.js.map +1 -0
  30. package/dist/components/skills/index.d.ts +4 -0
  31. package/dist/components/skills/index.d.ts.map +1 -0
  32. package/dist/components/skills/index.js +4 -0
  33. package/dist/components/skills/index.js.map +1 -0
  34. package/dist/components/terminals/TerminalViewer.d.ts +2 -1
  35. package/dist/components/terminals/TerminalViewer.d.ts.map +1 -1
  36. package/dist/components/terminals/TerminalViewer.js +81 -3
  37. package/dist/components/terminals/TerminalViewer.js.map +1 -1
  38. package/dist/components/terminals/TerminalsPanel.d.ts.map +1 -1
  39. package/dist/components/terminals/TerminalsPanel.js +1 -3
  40. package/dist/components/terminals/TerminalsPanel.js.map +1 -1
  41. package/dist/hooks/index.d.ts +1 -0
  42. package/dist/hooks/index.d.ts.map +1 -1
  43. package/dist/hooks/index.js +1 -0
  44. package/dist/hooks/index.js.map +1 -1
  45. package/dist/hooks/useAuthStatus.d.ts.map +1 -1
  46. package/dist/hooks/useConfig.d.ts.map +1 -1
  47. package/dist/hooks/useFileBrowser.d.ts.map +1 -1
  48. package/dist/hooks/useFileMention.js +4 -4
  49. package/dist/hooks/useFileMention.js.map +1 -1
  50. package/dist/hooks/useFiles.d.ts +2 -2
  51. package/dist/hooks/useMCP.d.ts +23 -11
  52. package/dist/hooks/useMCP.d.ts.map +1 -1
  53. package/dist/hooks/useMCP.js +68 -50
  54. package/dist/hooks/useMCP.js.map +1 -1
  55. package/dist/hooks/useSkills.d.ts +12 -0
  56. package/dist/hooks/useSkills.d.ts.map +1 -0
  57. package/dist/hooks/useSkills.js +54 -0
  58. package/dist/hooks/useSkills.js.map +1 -0
  59. package/dist/hooks/useTerminals.js +2 -2
  60. package/dist/hooks/useTerminals.js.map +1 -1
  61. package/dist/lib/api-client/approval.d.ts +18 -0
  62. package/dist/lib/api-client/approval.d.ts.map +1 -0
  63. package/dist/lib/api-client/approval.js +25 -0
  64. package/dist/lib/api-client/approval.js.map +1 -0
  65. package/dist/lib/api-client/auth.d.ts +74 -0
  66. package/dist/lib/api-client/auth.d.ts.map +1 -0
  67. package/dist/lib/api-client/auth.js +111 -0
  68. package/dist/lib/api-client/auth.js.map +1 -0
  69. package/dist/lib/api-client/branches.d.ts +10 -0
  70. package/dist/lib/api-client/branches.d.ts.map +1 -0
  71. package/dist/lib/api-client/branches.js +45 -0
  72. package/dist/lib/api-client/branches.js.map +1 -0
  73. package/dist/lib/api-client/config.d.ts +41 -0
  74. package/dist/lib/api-client/config.d.ts.map +1 -0
  75. package/dist/lib/api-client/config.js +38 -0
  76. package/dist/lib/api-client/config.js.map +1 -0
  77. package/dist/lib/api-client/files.d.ts +29 -0
  78. package/dist/lib/api-client/files.d.ts.map +1 -0
  79. package/dist/lib/api-client/files.js +35 -0
  80. package/dist/lib/api-client/files.js.map +1 -0
  81. package/dist/lib/api-client/git.d.ts +32 -0
  82. package/dist/lib/api-client/git.d.ts.map +1 -0
  83. package/dist/lib/api-client/git.js +154 -0
  84. package/dist/lib/api-client/git.js.map +1 -0
  85. package/dist/lib/api-client/index.d.ts +292 -0
  86. package/dist/lib/api-client/index.d.ts.map +1 -0
  87. package/dist/lib/api-client/index.js +85 -0
  88. package/dist/lib/api-client/index.js.map +1 -0
  89. package/dist/lib/api-client/sessions.d.ts +43 -0
  90. package/dist/lib/api-client/sessions.d.ts.map +1 -0
  91. package/dist/lib/api-client/sessions.js +108 -0
  92. package/dist/lib/api-client/sessions.js.map +1 -0
  93. package/dist/lib/api-client/setu.d.ts +59 -0
  94. package/dist/lib/api-client/setu.d.ts.map +1 -0
  95. package/dist/lib/api-client/setu.js +112 -0
  96. package/dist/lib/api-client/setu.js.map +1 -0
  97. package/dist/lib/api-client/skills.d.ts +35 -0
  98. package/dist/lib/api-client/skills.d.ts.map +1 -0
  99. package/dist/lib/api-client/skills.js +31 -0
  100. package/dist/lib/api-client/skills.js.map +1 -0
  101. package/dist/lib/api-client/utils.d.ts +8 -0
  102. package/dist/lib/api-client/utils.d.ts.map +1 -0
  103. package/dist/lib/api-client/utils.js +65 -0
  104. package/dist/lib/api-client/utils.js.map +1 -0
  105. package/dist/stores/fileBrowserStore.d.ts.map +1 -1
  106. package/dist/stores/fileBrowserStore.js +6 -0
  107. package/dist/stores/fileBrowserStore.js.map +1 -1
  108. package/dist/stores/gitStore.d.ts.map +1 -1
  109. package/dist/stores/gitStore.js +2 -0
  110. package/dist/stores/gitStore.js.map +1 -1
  111. package/dist/stores/index.d.ts +1 -0
  112. package/dist/stores/index.d.ts.map +1 -1
  113. package/dist/stores/index.js +1 -0
  114. package/dist/stores/index.js.map +1 -1
  115. package/dist/stores/mcpStore.d.ts.map +1 -1
  116. package/dist/stores/mcpStore.js +3 -0
  117. package/dist/stores/mcpStore.js.map +1 -1
  118. package/dist/stores/researchStore.d.ts.map +1 -1
  119. package/dist/stores/researchStore.js +3 -0
  120. package/dist/stores/researchStore.js.map +1 -1
  121. package/dist/stores/sessionFilesStore.d.ts.map +1 -1
  122. package/dist/stores/sessionFilesStore.js +3 -0
  123. package/dist/stores/sessionFilesStore.js.map +1 -1
  124. package/dist/stores/settingsStore.d.ts.map +1 -1
  125. package/dist/stores/settingsStore.js +2 -0
  126. package/dist/stores/settingsStore.js.map +1 -1
  127. package/dist/stores/skillsStore.d.ts +23 -0
  128. package/dist/stores/skillsStore.d.ts.map +1 -0
  129. package/dist/stores/skillsStore.js +46 -0
  130. package/dist/stores/skillsStore.js.map +1 -0
  131. package/dist/stores/tunnelStore.d.ts.map +1 -1
  132. package/dist/stores/tunnelStore.js +3 -0
  133. package/dist/stores/tunnelStore.js.map +1 -1
  134. package/package.json +6 -6
  135. package/dist/lib/api-client.d.ts +0 -288
  136. package/dist/lib/api-client.d.ts.map +0 -1
  137. package/dist/lib/api-client.js +0 -936
  138. package/dist/lib/api-client.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ import { createBranch as apiCreateBranch, listBranches as apiListBranches, getParentSession as apiGetParentSession, getShareStatus as apiGetShareStatus, shareSession as apiShareSession, syncShare as apiSyncShare, } from '@ottocode/api';
2
+ import { extractErrorMessage } from './utils';
3
+ export const branchesMixin = {
4
+ async createBranch(sessionId, data) {
5
+ const response = await apiCreateBranch({
6
+ path: { sessionId },
7
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
8
+ body: data,
9
+ });
10
+ if (response.error)
11
+ throw new Error(extractErrorMessage(response.error));
12
+ return response.data;
13
+ },
14
+ async listBranches(sessionId) {
15
+ const response = await apiListBranches({ path: { sessionId } });
16
+ if (response.error)
17
+ throw new Error(extractErrorMessage(response.error));
18
+ return response.data;
19
+ },
20
+ async getParentSession(sessionId) {
21
+ const response = await apiGetParentSession({ path: { sessionId } });
22
+ if (response.error)
23
+ throw new Error(extractErrorMessage(response.error));
24
+ return response.data;
25
+ },
26
+ async getShareStatus(sessionId) {
27
+ const response = await apiGetShareStatus({ path: { sessionId } });
28
+ if (response.error)
29
+ return { shared: false };
30
+ return response.data;
31
+ },
32
+ async shareSession(sessionId) {
33
+ const response = await apiShareSession({ path: { sessionId } });
34
+ if (response.error)
35
+ throw new Error(extractErrorMessage(response.error));
36
+ return response.data;
37
+ },
38
+ async syncSession(sessionId) {
39
+ const response = await apiSyncShare({ path: { sessionId } });
40
+ if (response.error)
41
+ throw new Error(extractErrorMessage(response.error));
42
+ return response.data;
43
+ },
44
+ };
45
+ //# sourceMappingURL=branches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../src/lib/api-client/branches.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,IAAI,eAAe,EAC/B,YAAY,IAAI,eAAe,EAC/B,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,iBAAiB,EACnC,YAAY,IAAI,eAAe,EAC/B,SAAS,IAAI,YAAY,GACzB,MAAM,eAAe,CAAC;AAUvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,KAAK,CAAC,YAAY,CACjB,SAAiB,EACjB,IAAyB;QAEzB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;YACtC,IAAI,EAAE,EAAE,SAAS,EAAE;YACnB,gEAAgE;YAChE,IAAI,EAAE,IAAW;SACjB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAA+B,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QACnC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAuC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACvC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAA6B,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACrC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC,IAAmB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QACnC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAA4B,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAA2B,CAAC;IAC7C,CAAC;CACD,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { AllModelsResponse } from '../../types/api';
2
+ export declare const configMixin: {
3
+ getConfig(): Promise<{
4
+ agents: string[];
5
+ providers: string[];
6
+ defaults: {
7
+ agent: string;
8
+ provider: string;
9
+ model: string;
10
+ toolApproval?: "auto" | "dangerous" | "all";
11
+ guidedMode?: boolean;
12
+ };
13
+ }>;
14
+ getModels(providerId: string): Promise<{
15
+ models: Array<{
16
+ id: string;
17
+ label: string;
18
+ toolCall?: boolean;
19
+ }>;
20
+ default: string;
21
+ }>;
22
+ getAllModels(): Promise<AllModelsResponse>;
23
+ updateDefaults(data: {
24
+ agent?: string;
25
+ provider?: string;
26
+ model?: string;
27
+ toolApproval?: "auto" | "dangerous" | "all";
28
+ guidedMode?: boolean;
29
+ scope?: "global" | "local";
30
+ }): Promise<{
31
+ success: boolean;
32
+ defaults: {
33
+ agent: string;
34
+ provider: string;
35
+ model: string;
36
+ toolApproval?: "auto" | "dangerous" | "all";
37
+ guidedMode?: boolean;
38
+ };
39
+ }>;
40
+ };
41
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,WAAW;iBACJ,OAAO,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC;YAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;KACF,CAAC;0BAO0B,MAAM,GAAG,OAAO,CAAC;QAC5C,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;oBAUoB,OAAO,CAAC,iBAAiB,CAAC;yBAMrB;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC;QAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC;YAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;KACF,CAAC;CASF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { getConfig as apiGetConfig, getProviderModels as apiGetProviderModels, getAllModels as apiGetAllModels, updateDefaults as apiUpdateDefaults, } from '@ottocode/api';
2
+ import { extractErrorMessage } from './utils';
3
+ export const configMixin = {
4
+ async getConfig() {
5
+ const response = await apiGetConfig();
6
+ if (response.error)
7
+ throw new Error(extractErrorMessage(response.error));
8
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
9
+ return response.data;
10
+ },
11
+ async getModels(providerId) {
12
+ const response = await apiGetProviderModels({
13
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
14
+ path: { provider: providerId },
15
+ });
16
+ if (response.error)
17
+ throw new Error(extractErrorMessage(response.error));
18
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
19
+ return response.data;
20
+ },
21
+ async getAllModels() {
22
+ const response = await apiGetAllModels();
23
+ if (response.error)
24
+ throw new Error(extractErrorMessage(response.error));
25
+ return response.data;
26
+ },
27
+ async updateDefaults(data) {
28
+ const response = await apiUpdateDefaults({
29
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
30
+ body: data,
31
+ });
32
+ if (response.error)
33
+ throw new Error(extractErrorMessage(response.error));
34
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
35
+ return response.data;
36
+ },
37
+ };
38
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/api-client/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,IAAI,YAAY,EACzB,iBAAiB,IAAI,oBAAoB,EACzC,YAAY,IAAI,eAAe,EAC/B,cAAc,IAAI,iBAAiB,GACnC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,KAAK,CAAC,SAAS;QAWd,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,qEAAqE;QACrE,OAAO,QAAQ,CAAC,IAAW,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB;QAIjC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC3C,gEAAgE;YAChE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAiB,EAAE;SACrC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,qEAAqE;QACrE,OAAO,QAAQ,CAAC,IAAW,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAyB,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAOpB;QAUA,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;YACxC,gEAAgE;YAChE,IAAI,EAAE,IAAW;SACjB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,qEAAqE;QACrE,OAAO,QAAQ,CAAC,IAAW,CAAC;IAC7B,CAAC;CACD,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { SessionFilesResponse } from '../../types/api';
2
+ export declare const filesMixin: {
3
+ listFiles(): Promise<{
4
+ files: string[];
5
+ ignoredFiles?: string[];
6
+ changedFiles: Array<{
7
+ path: string;
8
+ status: string;
9
+ }>;
10
+ truncated: boolean;
11
+ }>;
12
+ getFileTree(dirPath?: string): Promise<{
13
+ items: Array<{
14
+ name: string;
15
+ path: string;
16
+ type: "file" | "directory";
17
+ gitignored?: boolean;
18
+ }>;
19
+ path: string;
20
+ }>;
21
+ readFileContent(filePath: string): Promise<{
22
+ content: string;
23
+ path: string;
24
+ extension: string;
25
+ lineCount: number;
26
+ }>;
27
+ getSessionFiles(sessionId: string): Promise<SessionFilesResponse>;
28
+ };
29
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/files.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,eAAO,MAAM,UAAU;;eAKb,MAAM,EAAE;uBACA,MAAM,EAAE;sBACT,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;mBAC1C,OAAO;;mCAIc,OAAO,CAAC;QACzC,KAAK,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;YAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC,CAAC;QACH,IAAI,EAAE,MAAM,CAAC;KACb,CAAC;8BAS8B,MAAM,GAAG,OAAO,CAAC;QAChD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;+BAS+B,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAKvE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { listFiles as apiListFiles, getFileTree as apiGetFileTree, readFile as apiReadFile, getSessionFiles as apiGetSessionFiles, } from '@ottocode/api';
2
+ import { extractErrorMessage } from './utils';
3
+ export const filesMixin = {
4
+ async listFiles() {
5
+ const response = await apiListFiles();
6
+ if (response.error)
7
+ throw new Error(extractErrorMessage(response.error));
8
+ return response.data;
9
+ },
10
+ async getFileTree(dirPath = '.') {
11
+ const response = await apiGetFileTree({
12
+ query: { path: dirPath },
13
+ });
14
+ if (response.error)
15
+ throw new Error(extractErrorMessage(response.error));
16
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
17
+ return response.data;
18
+ },
19
+ async readFileContent(filePath) {
20
+ const response = await apiReadFile({
21
+ query: { path: filePath },
22
+ });
23
+ if (response.error)
24
+ throw new Error(extractErrorMessage(response.error));
25
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
26
+ return response.data;
27
+ },
28
+ async getSessionFiles(sessionId) {
29
+ const response = await apiGetSessionFiles({ path: { sessionId } });
30
+ if (response.error)
31
+ throw new Error(extractErrorMessage(response.error));
32
+ return response.data;
33
+ },
34
+ };
35
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/lib/api-client/files.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,IAAI,YAAY,EACzB,WAAW,IAAI,cAAc,EAC7B,QAAQ,IAAI,WAAW,EACvB,eAAe,IAAI,kBAAkB,GACrC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,KAAK,CAAC,SAAS;QACd,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAKf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,GAAG;QAS9B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACrC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,qEAAqE;QACrE,OAAO,QAAQ,CAAC,IAAW,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB;QAMrC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;YAClC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,qEAAqE;QACrE,OAAO,QAAQ,CAAC,IAAW,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACtC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAA4B,CAAC;IAC9C,CAAC;CACD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { GitStatusResponse, GitDiffResponse, GitStageResponse, GitUnstageResponse, GitCommitResponse, GitGenerateCommitMessageResponse, GitBranchInfo, GitPushResponse, GitPullResponse, GitRemoteInfo } from '../../types/api';
2
+ export declare const gitMixin: {
3
+ initGitRepo(): Promise<{
4
+ initialized: boolean;
5
+ path: string;
6
+ }>;
7
+ getGitStatus(): Promise<GitStatusResponse>;
8
+ getGitDiff(file: string, staged?: boolean): Promise<GitDiffResponse>;
9
+ getGitDiffFullFile(file: string, staged?: boolean): Promise<GitDiffResponse>;
10
+ generateCommitMessage(sessionId?: string): Promise<GitGenerateCommitMessageResponse>;
11
+ stageFiles(files: string[]): Promise<GitStageResponse>;
12
+ unstageFiles(files: string[]): Promise<GitUnstageResponse>;
13
+ restoreFiles(files: string[]): Promise<{
14
+ restored: string[];
15
+ }>;
16
+ deleteFiles(files: string[]): Promise<{
17
+ deleted: string[];
18
+ }>;
19
+ commitChanges(message: string): Promise<GitCommitResponse>;
20
+ getGitBranch(): Promise<GitBranchInfo>;
21
+ pushCommits(): Promise<GitPushResponse>;
22
+ pullChanges(): Promise<GitPullResponse>;
23
+ getRemotes(): Promise<GitRemoteInfo[]>;
24
+ addRemote(name: string, url: string): Promise<{
25
+ name: string;
26
+ url: string;
27
+ }>;
28
+ removeRemote(name: string): Promise<{
29
+ removed: string;
30
+ }>;
31
+ };
32
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/git.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,QAAQ;mBACC,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;oBAO9C,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;kBAUzB,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"}
@@ -0,0 +1,154 @@
1
+ import { getGitStatus as apiGetGitStatus, getGitDiff as apiGetGitDiff, getGitBranch as apiGetGitBranch, stageFiles as apiStageFiles, unstageFiles as apiUnstageFiles, restoreFiles as apiRestoreFiles, deleteFiles as apiDeleteFiles, commitChanges as apiCommitChanges, generateCommitMessage as apiGenerateCommitMessage, pushCommits as apiPushCommits, pullChanges as apiPullChanges, initGitRepo as apiInitGitRepo, getGitRemotes as apiGetGitRemotes, addGitRemote as apiAddGitRemote, removeGitRemote as apiRemoveGitRemote, } from '@ottocode/api';
2
+ import { extractErrorMessage } from './utils';
3
+ export const gitMixin = {
4
+ async initGitRepo() {
5
+ const response = await apiInitGitRepo();
6
+ if (response.error)
7
+ throw new Error(extractErrorMessage(response.error));
8
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
9
+ return response.data?.data;
10
+ },
11
+ async getGitStatus() {
12
+ const response = await apiGetGitStatus();
13
+ if (response.error)
14
+ throw new Error(extractErrorMessage(response.error));
15
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
16
+ return response.data?.data;
17
+ },
18
+ async getGitDiff(file, staged = false) {
19
+ const response = await apiGetGitDiff({
20
+ query: { file, staged: staged ? 'true' : 'false' },
21
+ });
22
+ if (response.error)
23
+ throw new Error(extractErrorMessage(response.error));
24
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
25
+ return response.data?.data;
26
+ },
27
+ async getGitDiffFullFile(file, staged = false) {
28
+ const response = await apiGetGitDiff({
29
+ query: {
30
+ file,
31
+ staged: staged ? 'true' : 'false',
32
+ fullFile: 'true',
33
+ },
34
+ });
35
+ if (response.error)
36
+ throw new Error(extractErrorMessage(response.error));
37
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
38
+ return response.data?.data;
39
+ },
40
+ async generateCommitMessage(sessionId) {
41
+ const response = await apiGenerateCommitMessage({
42
+ body: sessionId ? { sessionId } : {},
43
+ });
44
+ if (response.error)
45
+ throw new Error(extractErrorMessage(response.error));
46
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
47
+ return response.data?.data;
48
+ },
49
+ async stageFiles(files) {
50
+ const response = await apiStageFiles({
51
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
52
+ body: { files },
53
+ });
54
+ if (response.error)
55
+ throw new Error(extractErrorMessage(response.error));
56
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
57
+ return response.data?.data;
58
+ },
59
+ async unstageFiles(files) {
60
+ const response = await apiUnstageFiles({
61
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
62
+ body: { files },
63
+ });
64
+ if (response.error)
65
+ throw new Error(extractErrorMessage(response.error));
66
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
67
+ return response.data?.data;
68
+ },
69
+ async restoreFiles(files) {
70
+ const response = await apiRestoreFiles({
71
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
72
+ body: { files },
73
+ });
74
+ if (response.error)
75
+ throw new Error(extractErrorMessage(response.error));
76
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
77
+ return response.data?.data;
78
+ },
79
+ async deleteFiles(files) {
80
+ const response = await apiDeleteFiles({
81
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
82
+ body: { files },
83
+ });
84
+ if (response.error)
85
+ throw new Error(extractErrorMessage(response.error));
86
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
87
+ return response.data?.data;
88
+ },
89
+ async commitChanges(message) {
90
+ const response = await apiCommitChanges({
91
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
92
+ body: { message },
93
+ });
94
+ if (response.error)
95
+ throw new Error(extractErrorMessage(response.error));
96
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
97
+ return response.data?.data;
98
+ },
99
+ async getGitBranch() {
100
+ const response = await apiGetGitBranch();
101
+ if (response.error)
102
+ throw new Error(extractErrorMessage(response.error));
103
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
104
+ return response.data?.data;
105
+ },
106
+ async pushCommits() {
107
+ const response = await apiPushCommits({
108
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
109
+ body: {},
110
+ });
111
+ if (response.error)
112
+ throw new Error(extractErrorMessage(response.error));
113
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
114
+ return response.data?.data;
115
+ },
116
+ async pullChanges() {
117
+ const response = await apiPullChanges({
118
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
119
+ body: {},
120
+ });
121
+ if (response.error)
122
+ throw new Error(extractErrorMessage(response.error));
123
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
124
+ return response.data?.data;
125
+ },
126
+ async getRemotes() {
127
+ const response = await apiGetGitRemotes();
128
+ if (response.error)
129
+ throw new Error(extractErrorMessage(response.error));
130
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
131
+ return response.data?.data?.remotes;
132
+ },
133
+ async addRemote(name, url) {
134
+ const response = await apiAddGitRemote({
135
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
136
+ body: { name, url },
137
+ });
138
+ if (response.error)
139
+ throw new Error(extractErrorMessage(response.error));
140
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
141
+ return response.data?.data;
142
+ },
143
+ async removeRemote(name) {
144
+ const response = await apiRemoveGitRemote({
145
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch
146
+ body: { name },
147
+ });
148
+ if (response.error)
149
+ throw new Error(extractErrorMessage(response.error));
150
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure
151
+ return response.data?.data;
152
+ },
153
+ };
154
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/lib/api-client/git.ts"],"names":[],"mappings":"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"}