cowork-os 0.3.21 → 0.3.23

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 (170) hide show
  1. package/README.md +293 -6
  2. package/connectors/README.md +20 -0
  3. package/connectors/asana-mcp/README.md +24 -0
  4. package/connectors/asana-mcp/dist/index.js +427 -0
  5. package/connectors/asana-mcp/package.json +15 -0
  6. package/connectors/asana-mcp/src/index.ts +553 -0
  7. package/connectors/asana-mcp/tsconfig.json +13 -0
  8. package/connectors/hubspot-mcp/README.md +35 -0
  9. package/connectors/hubspot-mcp/dist/index.js +454 -0
  10. package/connectors/hubspot-mcp/package.json +15 -0
  11. package/connectors/hubspot-mcp/src/index.ts +562 -0
  12. package/connectors/hubspot-mcp/tsconfig.json +13 -0
  13. package/connectors/jira-mcp/README.md +49 -0
  14. package/connectors/jira-mcp/dist/index.js +588 -0
  15. package/connectors/jira-mcp/package.json +15 -0
  16. package/connectors/jira-mcp/src/index.ts +711 -0
  17. package/connectors/jira-mcp/tsconfig.json +13 -0
  18. package/connectors/linear-mcp/README.md +22 -0
  19. package/connectors/linear-mcp/dist/index.js +402 -0
  20. package/connectors/linear-mcp/package.json +15 -0
  21. package/connectors/linear-mcp/src/index.ts +522 -0
  22. package/connectors/linear-mcp/tsconfig.json +13 -0
  23. package/connectors/okta-mcp/README.md +24 -0
  24. package/connectors/okta-mcp/dist/index.js +411 -0
  25. package/connectors/okta-mcp/package.json +15 -0
  26. package/connectors/okta-mcp/src/index.ts +520 -0
  27. package/connectors/okta-mcp/tsconfig.json +13 -0
  28. package/connectors/salesforce-mcp/README.md +47 -0
  29. package/connectors/salesforce-mcp/dist/index.js +584 -0
  30. package/connectors/salesforce-mcp/package.json +15 -0
  31. package/connectors/salesforce-mcp/src/index.ts +722 -0
  32. package/connectors/salesforce-mcp/tsconfig.json +13 -0
  33. package/connectors/servicenow-mcp/README.md +26 -0
  34. package/connectors/servicenow-mcp/dist/index.js +400 -0
  35. package/connectors/servicenow-mcp/package.json +15 -0
  36. package/connectors/servicenow-mcp/src/index.ts +500 -0
  37. package/connectors/servicenow-mcp/tsconfig.json +13 -0
  38. package/connectors/templates/mcp-connector/README.md +31 -0
  39. package/connectors/templates/mcp-connector/package.json +15 -0
  40. package/connectors/templates/mcp-connector/src/index.ts +330 -0
  41. package/connectors/templates/mcp-connector/tsconfig.json +13 -0
  42. package/connectors/zendesk-mcp/README.md +40 -0
  43. package/connectors/zendesk-mcp/dist/index.js +431 -0
  44. package/connectors/zendesk-mcp/package.json +15 -0
  45. package/connectors/zendesk-mcp/src/index.ts +543 -0
  46. package/connectors/zendesk-mcp/tsconfig.json +13 -0
  47. package/dist/electron/electron/agent/daemon.js +25 -0
  48. package/dist/electron/electron/agent/executor.js +181 -26
  49. package/dist/electron/electron/agent/llm/anthropic-compatible-provider.js +177 -0
  50. package/dist/electron/electron/agent/llm/github-copilot-provider.js +97 -0
  51. package/dist/electron/electron/agent/llm/groq-provider.js +33 -0
  52. package/dist/electron/electron/agent/llm/index.js +11 -1
  53. package/dist/electron/electron/agent/llm/kimi-provider.js +33 -0
  54. package/dist/electron/electron/agent/llm/openai-compatible-provider.js +116 -0
  55. package/dist/electron/electron/agent/llm/openai-compatible.js +111 -0
  56. package/dist/electron/electron/agent/llm/openai-oauth.js +2 -1
  57. package/dist/electron/electron/agent/llm/openrouter-provider.js +1 -1
  58. package/dist/electron/electron/agent/llm/provider-factory.js +318 -4
  59. package/dist/electron/electron/agent/llm/types.js +66 -1
  60. package/dist/electron/electron/agent/llm/xai-provider.js +33 -0
  61. package/dist/electron/electron/agent/tools/box-tools.js +231 -0
  62. package/dist/electron/electron/agent/tools/builtin-settings.js +28 -0
  63. package/dist/electron/electron/agent/tools/dropbox-tools.js +237 -0
  64. package/dist/electron/electron/agent/tools/google-drive-tools.js +227 -0
  65. package/dist/electron/electron/agent/tools/notion-tools.js +312 -0
  66. package/dist/electron/electron/agent/tools/onedrive-tools.js +217 -0
  67. package/dist/electron/electron/agent/tools/registry.js +541 -0
  68. package/dist/electron/electron/agent/tools/sharepoint-tools.js +243 -0
  69. package/dist/electron/electron/agent/tools/shell-tools.js +12 -3
  70. package/dist/electron/electron/agent/tools/x-tools.js +1 -1
  71. package/dist/electron/electron/gateway/index.js +1 -0
  72. package/dist/electron/electron/gateway/router.js +123 -143
  73. package/dist/electron/electron/ipc/canvas-handlers.js +5 -0
  74. package/dist/electron/electron/ipc/handlers.js +627 -158
  75. package/dist/electron/electron/main.js +63 -0
  76. package/dist/electron/electron/mcp/oauth/connector-oauth.js +333 -0
  77. package/dist/electron/electron/mcp/registry/MCPRegistryManager.js +503 -154
  78. package/dist/electron/electron/memory/MemoryService.js +1 -1
  79. package/dist/electron/electron/preload.js +74 -1
  80. package/dist/electron/electron/settings/box-manager.js +54 -0
  81. package/dist/electron/electron/settings/dropbox-manager.js +54 -0
  82. package/dist/electron/electron/settings/google-drive-manager.js +54 -0
  83. package/dist/electron/electron/settings/notion-manager.js +56 -0
  84. package/dist/electron/electron/settings/onedrive-manager.js +54 -0
  85. package/dist/electron/electron/settings/sharepoint-manager.js +54 -0
  86. package/dist/electron/electron/utils/box-api.js +153 -0
  87. package/dist/electron/electron/utils/dropbox-api.js +144 -0
  88. package/dist/electron/electron/utils/env-migration.js +19 -0
  89. package/dist/electron/electron/utils/google-drive-api.js +152 -0
  90. package/dist/electron/electron/utils/notion-api.js +103 -0
  91. package/dist/electron/electron/utils/onedrive-api.js +113 -0
  92. package/dist/electron/electron/utils/sharepoint-api.js +109 -0
  93. package/dist/electron/electron/utils/validation.js +82 -3
  94. package/dist/electron/electron/utils/x-cli.js +1 -1
  95. package/dist/electron/shared/channelMessages.js +284 -3
  96. package/dist/electron/shared/llm-provider-catalog.js +198 -0
  97. package/dist/electron/shared/types.js +88 -1
  98. package/package.json +12 -2
  99. package/src/electron/agent/executor.ts +205 -28
  100. package/src/electron/agent/llm/anthropic-compatible-provider.ts +214 -0
  101. package/src/electron/agent/llm/github-copilot-provider.ts +117 -0
  102. package/src/electron/agent/llm/groq-provider.ts +39 -0
  103. package/src/electron/agent/llm/index.ts +5 -0
  104. package/src/electron/agent/llm/kimi-provider.ts +39 -0
  105. package/src/electron/agent/llm/openai-compatible-provider.ts +153 -0
  106. package/src/electron/agent/llm/openai-compatible.ts +133 -0
  107. package/src/electron/agent/llm/openai-oauth.ts +2 -1
  108. package/src/electron/agent/llm/openrouter-provider.ts +2 -1
  109. package/src/electron/agent/llm/provider-factory.ts +414 -6
  110. package/src/electron/agent/llm/types.ts +90 -1
  111. package/src/electron/agent/llm/xai-provider.ts +39 -0
  112. package/src/electron/agent/tools/box-tools.ts +239 -0
  113. package/src/electron/agent/tools/builtin-settings.ts +34 -0
  114. package/src/electron/agent/tools/dropbox-tools.ts +237 -0
  115. package/src/electron/agent/tools/google-drive-tools.ts +228 -0
  116. package/src/electron/agent/tools/notion-tools.ts +330 -0
  117. package/src/electron/agent/tools/onedrive-tools.ts +217 -0
  118. package/src/electron/agent/tools/registry.ts +565 -0
  119. package/src/electron/agent/tools/sharepoint-tools.ts +247 -0
  120. package/src/electron/agent/tools/shell-tools.ts +11 -3
  121. package/src/electron/agent/tools/x-tools.ts +1 -1
  122. package/src/electron/database/SecureSettingsRepository.ts +7 -1
  123. package/src/electron/gateway/index.ts +1 -0
  124. package/src/electron/gateway/router.ts +134 -149
  125. package/src/electron/ipc/canvas-handlers.ts +10 -0
  126. package/src/electron/ipc/handlers.ts +673 -153
  127. package/src/electron/main.ts +35 -0
  128. package/src/electron/mcp/oauth/connector-oauth.ts +448 -0
  129. package/src/electron/mcp/registry/MCPRegistryManager.ts +343 -12
  130. package/src/electron/memory/MemoryService.ts +5 -1
  131. package/src/electron/preload.ts +167 -4
  132. package/src/electron/settings/box-manager.ts +58 -0
  133. package/src/electron/settings/dropbox-manager.ts +58 -0
  134. package/src/electron/settings/google-drive-manager.ts +58 -0
  135. package/src/electron/settings/notion-manager.ts +60 -0
  136. package/src/electron/settings/onedrive-manager.ts +58 -0
  137. package/src/electron/settings/sharepoint-manager.ts +58 -0
  138. package/src/electron/utils/box-api.ts +184 -0
  139. package/src/electron/utils/dropbox-api.ts +171 -0
  140. package/src/electron/utils/env-migration.ts +22 -0
  141. package/src/electron/utils/google-drive-api.ts +183 -0
  142. package/src/electron/utils/notion-api.ts +126 -0
  143. package/src/electron/utils/onedrive-api.ts +137 -0
  144. package/src/electron/utils/sharepoint-api.ts +132 -0
  145. package/src/electron/utils/validation.ts +102 -1
  146. package/src/electron/utils/x-cli.ts +1 -1
  147. package/src/renderer/App.tsx +20 -2
  148. package/src/renderer/components/BoxSettings.tsx +203 -0
  149. package/src/renderer/components/BrowserView.tsx +101 -0
  150. package/src/renderer/components/BuiltinToolsSettings.tsx +105 -0
  151. package/src/renderer/components/CanvasPreview.tsx +68 -1
  152. package/src/renderer/components/ConnectorEnvModal.tsx +116 -0
  153. package/src/renderer/components/ConnectorSetupModal.tsx +566 -0
  154. package/src/renderer/components/ConnectorsSettings.tsx +397 -0
  155. package/src/renderer/components/DropboxSettings.tsx +202 -0
  156. package/src/renderer/components/GoogleDriveSettings.tsx +201 -0
  157. package/src/renderer/components/MCPSettings.tsx +56 -0
  158. package/src/renderer/components/MainContent.tsx +270 -34
  159. package/src/renderer/components/NotionSettings.tsx +231 -0
  160. package/src/renderer/components/Onboarding/Onboarding.tsx +13 -1
  161. package/src/renderer/components/OnboardingModal.tsx +70 -1
  162. package/src/renderer/components/OneDriveSettings.tsx +212 -0
  163. package/src/renderer/components/Settings.tsx +611 -8
  164. package/src/renderer/components/SharePointSettings.tsx +224 -0
  165. package/src/renderer/components/Sidebar.tsx +25 -9
  166. package/src/renderer/hooks/useOnboardingFlow.ts +21 -0
  167. package/src/renderer/styles/index.css +438 -25
  168. package/src/shared/channelMessages.ts +367 -4
  169. package/src/shared/llm-provider-catalog.ts +217 -0
  170. package/src/shared/types.ts +226 -1
@@ -141,6 +141,18 @@ export type ToolType =
141
141
  | 'browser_close'
142
142
  // X/Twitter
143
143
  | 'x_action'
144
+ // Notion
145
+ | 'notion_action'
146
+ // Box
147
+ | 'box_action'
148
+ // OneDrive
149
+ | 'onedrive_action'
150
+ // Google Drive
151
+ | 'google_drive_action'
152
+ // Dropbox
153
+ | 'dropbox_action'
154
+ // SharePoint
155
+ | 'sharepoint_action'
144
156
  // Meta tools
145
157
  | 'revise_plan';
146
158
 
@@ -204,6 +216,12 @@ export const TOOL_GROUPS = {
204
216
  'group:network': [
205
217
  'web_search',
206
218
  'x_action',
219
+ 'notion_action',
220
+ 'box_action',
221
+ 'onedrive_action',
222
+ 'google_drive_action',
223
+ 'dropbox_action',
224
+ 'sharepoint_action',
207
225
  'browser_navigate',
208
226
  'browser_screenshot',
209
227
  'browser_get_content',
@@ -289,6 +307,12 @@ export const TOOL_RISK_LEVELS: Record<ToolType, ToolRiskLevel> = {
289
307
  browser_save_pdf: 'network',
290
308
  browser_close: 'network',
291
309
  x_action: 'network',
310
+ notion_action: 'network',
311
+ box_action: 'network',
312
+ onedrive_action: 'network',
313
+ google_drive_action: 'network',
314
+ dropbox_action: 'network',
315
+ sharepoint_action: 'network',
292
316
  // Meta
293
317
  revise_plan: 'read',
294
318
  };
@@ -1308,6 +1332,9 @@ export const IPC_CHANNELS = {
1308
1332
  LLM_GET_GEMINI_MODELS: 'llm:getGeminiModels',
1309
1333
  LLM_GET_OPENROUTER_MODELS: 'llm:getOpenRouterModels',
1310
1334
  LLM_GET_OPENAI_MODELS: 'llm:getOpenAIModels',
1335
+ LLM_GET_GROQ_MODELS: 'llm:getGroqModels',
1336
+ LLM_GET_XAI_MODELS: 'llm:getXAIModels',
1337
+ LLM_GET_KIMI_MODELS: 'llm:getKimiModels',
1311
1338
  LLM_OPENAI_OAUTH_START: 'llm:openaiOAuthStart',
1312
1339
  LLM_OPENAI_OAUTH_LOGOUT: 'llm:openaiOAuthLogout',
1313
1340
  LLM_GET_BEDROCK_MODELS: 'llm:getBedrockModels',
@@ -1337,6 +1364,42 @@ export const IPC_CHANNELS = {
1337
1364
  X_TEST_CONNECTION: 'x:testConnection',
1338
1365
  X_GET_STATUS: 'x:getStatus',
1339
1366
 
1367
+ // Notion Settings
1368
+ NOTION_GET_SETTINGS: 'notion:getSettings',
1369
+ NOTION_SAVE_SETTINGS: 'notion:saveSettings',
1370
+ NOTION_TEST_CONNECTION: 'notion:testConnection',
1371
+ NOTION_GET_STATUS: 'notion:getStatus',
1372
+
1373
+ // Box Settings
1374
+ BOX_GET_SETTINGS: 'box:getSettings',
1375
+ BOX_SAVE_SETTINGS: 'box:saveSettings',
1376
+ BOX_TEST_CONNECTION: 'box:testConnection',
1377
+ BOX_GET_STATUS: 'box:getStatus',
1378
+
1379
+ // OneDrive Settings
1380
+ ONEDRIVE_GET_SETTINGS: 'onedrive:getSettings',
1381
+ ONEDRIVE_SAVE_SETTINGS: 'onedrive:saveSettings',
1382
+ ONEDRIVE_TEST_CONNECTION: 'onedrive:testConnection',
1383
+ ONEDRIVE_GET_STATUS: 'onedrive:getStatus',
1384
+
1385
+ // Google Drive Settings
1386
+ GOOGLE_DRIVE_GET_SETTINGS: 'googleDrive:getSettings',
1387
+ GOOGLE_DRIVE_SAVE_SETTINGS: 'googleDrive:saveSettings',
1388
+ GOOGLE_DRIVE_TEST_CONNECTION: 'googleDrive:testConnection',
1389
+ GOOGLE_DRIVE_GET_STATUS: 'googleDrive:getStatus',
1390
+
1391
+ // Dropbox Settings
1392
+ DROPBOX_GET_SETTINGS: 'dropbox:getSettings',
1393
+ DROPBOX_SAVE_SETTINGS: 'dropbox:saveSettings',
1394
+ DROPBOX_TEST_CONNECTION: 'dropbox:testConnection',
1395
+ DROPBOX_GET_STATUS: 'dropbox:getStatus',
1396
+
1397
+ // SharePoint Settings
1398
+ SHAREPOINT_GET_SETTINGS: 'sharepoint:getSettings',
1399
+ SHAREPOINT_SAVE_SETTINGS: 'sharepoint:saveSettings',
1400
+ SHAREPOINT_TEST_CONNECTION: 'sharepoint:testConnection',
1401
+ SHAREPOINT_GET_STATUS: 'sharepoint:getStatus',
1402
+
1340
1403
  // App Updates
1341
1404
  APP_CHECK_UPDATES: 'app:checkUpdates',
1342
1405
  APP_DOWNLOAD_UPDATE: 'app:downloadUpdate',
@@ -1395,6 +1458,9 @@ export const IPC_CHANNELS = {
1395
1458
  MCP_REGISTRY_CHECK_UPDATES: 'mcp:registryCheckUpdates',
1396
1459
  MCP_REGISTRY_UPDATE_SERVER: 'mcp:registryUpdateServer',
1397
1460
 
1461
+ // MCP Connector OAuth
1462
+ MCP_CONNECTOR_OAUTH_START: 'mcp:connectorOAuthStart',
1463
+
1398
1464
  // MCP Host
1399
1465
  MCP_HOST_START: 'mcp:hostStart',
1400
1466
  MCP_HOST_STOP: 'mcp:hostStop',
@@ -1498,6 +1564,7 @@ export const IPC_CHANNELS = {
1498
1564
  CANVAS_EXPORT_HTML: 'canvas:exportHTML',
1499
1565
  CANVAS_EXPORT_TO_FOLDER: 'canvas:exportToFolder',
1500
1566
  CANVAS_OPEN_IN_BROWSER: 'canvas:openInBrowser',
1567
+ CANVAS_OPEN_URL: 'canvas:openUrl',
1501
1568
  CANVAS_GET_SESSION_DIR: 'canvas:getSessionDir',
1502
1569
 
1503
1570
  // Mobile Companion Nodes
@@ -1553,7 +1620,48 @@ export const IPC_CHANNELS = {
1553
1620
  } as const;
1554
1621
 
1555
1622
  // LLM Provider types
1556
- export type LLMProviderType = 'anthropic' | 'bedrock' | 'ollama' | 'gemini' | 'openrouter' | 'openai';
1623
+ export const BUILTIN_LLM_PROVIDER_TYPES = [
1624
+ 'anthropic',
1625
+ 'bedrock',
1626
+ 'ollama',
1627
+ 'gemini',
1628
+ 'openrouter',
1629
+ 'openai',
1630
+ 'groq',
1631
+ 'xai',
1632
+ 'kimi',
1633
+ ] as const;
1634
+
1635
+ export const CUSTOM_LLM_PROVIDER_TYPES = [
1636
+ 'moonshot',
1637
+ 'opencode',
1638
+ 'google-vertex',
1639
+ 'google-antigravity',
1640
+ 'google-gemini-cli',
1641
+ 'zai',
1642
+ 'glm',
1643
+ 'vercel-ai-gateway',
1644
+ 'cerebras',
1645
+ 'mistral',
1646
+ 'github-copilot',
1647
+ 'qwen-portal',
1648
+ 'minimax',
1649
+ 'minimax-portal',
1650
+ 'xiaomi',
1651
+ 'venice',
1652
+ 'synthetic',
1653
+ 'kimi-code',
1654
+ 'kimi-coding',
1655
+ 'openai-compatible',
1656
+ 'anthropic-compatible',
1657
+ ] as const;
1658
+
1659
+ export const LLM_PROVIDER_TYPES = [
1660
+ ...BUILTIN_LLM_PROVIDER_TYPES,
1661
+ ...CUSTOM_LLM_PROVIDER_TYPES,
1662
+ ] as const;
1663
+
1664
+ export type LLMProviderType = typeof LLM_PROVIDER_TYPES[number];
1557
1665
 
1558
1666
  export interface CachedModelInfo {
1559
1667
  key: string;
@@ -1563,6 +1671,12 @@ export interface CachedModelInfo {
1563
1671
  size?: number; // For Ollama models (in bytes)
1564
1672
  }
1565
1673
 
1674
+ export interface CustomProviderConfig {
1675
+ apiKey?: string;
1676
+ model?: string;
1677
+ baseUrl?: string;
1678
+ }
1679
+
1566
1680
  export interface LLMSettingsData {
1567
1681
  providerType: LLMProviderType;
1568
1682
  modelKey: string;
@@ -1590,6 +1704,7 @@ export interface LLMSettingsData {
1590
1704
  openrouter?: {
1591
1705
  apiKey?: string;
1592
1706
  model?: string;
1707
+ baseUrl?: string;
1593
1708
  };
1594
1709
  openai?: {
1595
1710
  apiKey?: string;
@@ -1600,12 +1715,31 @@ export interface LLMSettingsData {
1600
1715
  tokenExpiresAt?: number;
1601
1716
  authMethod?: 'api_key' | 'oauth';
1602
1717
  };
1718
+ groq?: {
1719
+ apiKey?: string;
1720
+ model?: string;
1721
+ baseUrl?: string;
1722
+ };
1723
+ xai?: {
1724
+ apiKey?: string;
1725
+ model?: string;
1726
+ baseUrl?: string;
1727
+ };
1728
+ kimi?: {
1729
+ apiKey?: string;
1730
+ model?: string;
1731
+ baseUrl?: string;
1732
+ };
1603
1733
  // Cached models from API (populated when user refreshes)
1604
1734
  cachedGeminiModels?: CachedModelInfo[];
1605
1735
  cachedOpenRouterModels?: CachedModelInfo[];
1606
1736
  cachedOllamaModels?: CachedModelInfo[];
1607
1737
  cachedBedrockModels?: CachedModelInfo[];
1608
1738
  cachedOpenAIModels?: CachedModelInfo[];
1739
+ cachedGroqModels?: CachedModelInfo[];
1740
+ cachedXaiModels?: CachedModelInfo[];
1741
+ cachedKimiModels?: CachedModelInfo[];
1742
+ customProviders?: Record<string, CustomProviderConfig>;
1609
1743
  }
1610
1744
 
1611
1745
  export interface LLMProviderInfo {
@@ -1898,6 +2032,97 @@ export interface XConnectionTestResult {
1898
2032
  userId?: string;
1899
2033
  }
1900
2034
 
2035
+ // Notion integration settings
2036
+ export interface NotionSettingsData {
2037
+ enabled: boolean;
2038
+ apiKey?: string;
2039
+ notionVersion?: string;
2040
+ timeoutMs?: number;
2041
+ }
2042
+
2043
+ export interface NotionConnectionTestResult {
2044
+ success: boolean;
2045
+ error?: string;
2046
+ name?: string;
2047
+ userId?: string;
2048
+ }
2049
+
2050
+ // Box integration settings
2051
+ export interface BoxSettingsData {
2052
+ enabled: boolean;
2053
+ accessToken?: string;
2054
+ timeoutMs?: number;
2055
+ }
2056
+
2057
+ export interface BoxConnectionTestResult {
2058
+ success: boolean;
2059
+ error?: string;
2060
+ name?: string;
2061
+ userId?: string;
2062
+ }
2063
+
2064
+ // OneDrive integration settings
2065
+ export interface OneDriveSettingsData {
2066
+ enabled: boolean;
2067
+ accessToken?: string;
2068
+ driveId?: string;
2069
+ timeoutMs?: number;
2070
+ }
2071
+
2072
+ export interface OneDriveConnectionTestResult {
2073
+ success: boolean;
2074
+ error?: string;
2075
+ name?: string;
2076
+ userId?: string;
2077
+ driveId?: string;
2078
+ }
2079
+
2080
+ // Google Drive integration settings
2081
+ export interface GoogleDriveSettingsData {
2082
+ enabled: boolean;
2083
+ accessToken?: string;
2084
+ timeoutMs?: number;
2085
+ }
2086
+
2087
+ export interface GoogleDriveConnectionTestResult {
2088
+ success: boolean;
2089
+ error?: string;
2090
+ name?: string;
2091
+ userId?: string;
2092
+ email?: string;
2093
+ }
2094
+
2095
+ // Dropbox integration settings
2096
+ export interface DropboxSettingsData {
2097
+ enabled: boolean;
2098
+ accessToken?: string;
2099
+ timeoutMs?: number;
2100
+ }
2101
+
2102
+ export interface DropboxConnectionTestResult {
2103
+ success: boolean;
2104
+ error?: string;
2105
+ name?: string;
2106
+ userId?: string;
2107
+ email?: string;
2108
+ }
2109
+
2110
+ // SharePoint integration settings
2111
+ export interface SharePointSettingsData {
2112
+ enabled: boolean;
2113
+ accessToken?: string;
2114
+ siteId?: string;
2115
+ driveId?: string;
2116
+ timeoutMs?: number;
2117
+ }
2118
+
2119
+ export interface SharePointConnectionTestResult {
2120
+ success: boolean;
2121
+ error?: string;
2122
+ name?: string;
2123
+ userId?: string;
2124
+ }
2125
+
1901
2126
  export interface SearchProviderInfo {
1902
2127
  type: SearchProviderType;
1903
2128
  name: string;