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
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CUSTOM_PROVIDER_IDS = exports.CUSTOM_PROVIDER_MAP = exports.CUSTOM_PROVIDER_CATALOG = void 0;
4
+ exports.CUSTOM_PROVIDER_CATALOG = [
5
+ {
6
+ id: 'opencode',
7
+ name: 'OpenCode Zen',
8
+ compatibility: 'openai',
9
+ defaultModel: '',
10
+ apiKeyLabel: 'API Key / Token',
11
+ apiKeyPlaceholder: 'Enter token',
12
+ requiresBaseUrl: true,
13
+ description: 'OpenAI-compatible endpoint required.',
14
+ },
15
+ {
16
+ id: 'google-vertex',
17
+ name: 'Google Vertex',
18
+ compatibility: 'openai',
19
+ defaultModel: 'gemini-2.0-flash',
20
+ apiKeyLabel: 'Access Token',
21
+ apiKeyPlaceholder: 'ya29...',
22
+ requiresBaseUrl: true,
23
+ description: 'Requires a compatible gateway endpoint.',
24
+ },
25
+ {
26
+ id: 'google-antigravity',
27
+ name: 'Google Antigravity',
28
+ compatibility: 'openai',
29
+ defaultModel: 'gemini-2.0-flash',
30
+ apiKeyLabel: 'Access Token',
31
+ apiKeyPlaceholder: 'ya29...',
32
+ requiresBaseUrl: true,
33
+ description: 'Requires a compatible gateway endpoint.',
34
+ },
35
+ {
36
+ id: 'google-gemini-cli',
37
+ name: 'Google Gemini CLI',
38
+ compatibility: 'openai',
39
+ defaultModel: 'gemini-2.0-flash',
40
+ apiKeyLabel: 'Access Token',
41
+ apiKeyPlaceholder: 'ya29...',
42
+ requiresBaseUrl: true,
43
+ description: 'Requires a compatible gateway endpoint.',
44
+ },
45
+ {
46
+ id: 'zai',
47
+ name: 'Z.AI',
48
+ compatibility: 'openai',
49
+ defaultModel: 'glm-4.7',
50
+ apiKeyLabel: 'API Key',
51
+ apiKeyPlaceholder: 'zai-...',
52
+ requiresBaseUrl: true,
53
+ description: 'OpenAI-compatible endpoint required.',
54
+ },
55
+ {
56
+ id: 'glm',
57
+ name: 'GLM',
58
+ compatibility: 'openai',
59
+ defaultModel: 'glm-4-plus',
60
+ apiKeyLabel: 'API Key',
61
+ apiKeyPlaceholder: 'glm-...',
62
+ requiresBaseUrl: true,
63
+ description: 'OpenAI-compatible endpoint required.',
64
+ },
65
+ {
66
+ id: 'vercel-ai-gateway',
67
+ name: 'Vercel AI Gateway',
68
+ compatibility: 'anthropic',
69
+ baseUrl: 'https://ai-gateway.vercel.sh/v1',
70
+ defaultModel: 'claude-3-5-sonnet-20241022',
71
+ apiKeyLabel: 'API Key',
72
+ apiKeyPlaceholder: 'vgw_...',
73
+ apiKeyUrl: 'https://vercel.com/docs/ai-gateway',
74
+ },
75
+ {
76
+ id: 'moonshot',
77
+ name: 'Moonshot (Kimi)',
78
+ compatibility: 'openai',
79
+ baseUrl: 'https://api.moonshot.ai/v1',
80
+ defaultModel: 'kimi-k2.5',
81
+ apiKeyLabel: 'API Key',
82
+ apiKeyPlaceholder: 'sk-...',
83
+ },
84
+ {
85
+ id: 'cerebras',
86
+ name: 'Cerebras',
87
+ compatibility: 'openai',
88
+ baseUrl: 'https://api.cerebras.ai/v1',
89
+ defaultModel: 'llama3.1-8b',
90
+ apiKeyLabel: 'API Key',
91
+ apiKeyPlaceholder: 'csk_...',
92
+ apiKeyUrl: 'https://cloud.cerebras.ai/',
93
+ },
94
+ {
95
+ id: 'mistral',
96
+ name: 'Mistral',
97
+ compatibility: 'openai',
98
+ baseUrl: 'https://api.mistral.ai/v1',
99
+ defaultModel: 'mistral-large-latest',
100
+ apiKeyLabel: 'API Key',
101
+ apiKeyPlaceholder: 'mistral-...',
102
+ apiKeyUrl: 'https://console.mistral.ai/',
103
+ },
104
+ {
105
+ id: 'github-copilot',
106
+ name: 'GitHub Copilot',
107
+ compatibility: 'openai',
108
+ defaultModel: 'gpt-4o',
109
+ apiKeyLabel: 'GitHub Token',
110
+ apiKeyPlaceholder: 'ghp_...',
111
+ },
112
+ {
113
+ id: 'qwen-portal',
114
+ name: 'Qwen',
115
+ compatibility: 'anthropic',
116
+ baseUrl: 'https://portal.qwen.ai/v1',
117
+ defaultModel: 'coder-model',
118
+ apiKeyLabel: 'API Key / Token',
119
+ apiKeyPlaceholder: 'qwen-...',
120
+ },
121
+ {
122
+ id: 'minimax',
123
+ name: 'MiniMax',
124
+ compatibility: 'openai',
125
+ baseUrl: 'https://api.minimax.chat/v1',
126
+ defaultModel: 'MiniMax-M2.1',
127
+ apiKeyLabel: 'API Key',
128
+ apiKeyPlaceholder: 'minimax-...',
129
+ },
130
+ {
131
+ id: 'minimax-portal',
132
+ name: 'MiniMax Portal',
133
+ compatibility: 'anthropic',
134
+ baseUrl: 'https://api.minimax.io/anthropic',
135
+ defaultModel: 'MiniMax-M2.1',
136
+ apiKeyLabel: 'API Key / Token',
137
+ apiKeyPlaceholder: 'minimax-...',
138
+ },
139
+ {
140
+ id: 'xiaomi',
141
+ name: 'Xiaomi MiMo',
142
+ compatibility: 'anthropic',
143
+ baseUrl: 'https://api.xiaomimimo.com/anthropic',
144
+ defaultModel: 'mimo-v2-flash',
145
+ apiKeyLabel: 'API Key',
146
+ apiKeyPlaceholder: 'mimo-...',
147
+ },
148
+ {
149
+ id: 'venice',
150
+ name: 'Venice AI',
151
+ compatibility: 'openai',
152
+ baseUrl: 'https://api.venice.ai/api/v1',
153
+ defaultModel: 'llama-3.3-70b',
154
+ apiKeyLabel: 'API Key',
155
+ apiKeyPlaceholder: 'venice-...',
156
+ },
157
+ {
158
+ id: 'synthetic',
159
+ name: 'Synthetic',
160
+ compatibility: 'anthropic',
161
+ baseUrl: 'https://api.synthetic.new/anthropic',
162
+ defaultModel: 'hf:MiniMaxAI/MiniMax-M2.1',
163
+ apiKeyLabel: 'API Key',
164
+ apiKeyPlaceholder: 'syn_...',
165
+ },
166
+ {
167
+ id: 'kimi-code',
168
+ name: 'Kimi Code',
169
+ compatibility: 'openai',
170
+ baseUrl: 'https://api.kimi.com/coding/v1',
171
+ defaultModel: 'kimi-for-coding',
172
+ apiKeyLabel: 'API Key',
173
+ apiKeyPlaceholder: 'sk-...',
174
+ },
175
+ {
176
+ id: 'openai-compatible',
177
+ name: 'OpenAI-Compatible (Custom)',
178
+ compatibility: 'openai',
179
+ baseUrl: 'http://localhost:1234/v1',
180
+ defaultModel: 'gpt-4o-mini',
181
+ apiKeyLabel: 'API Key (Optional)',
182
+ apiKeyPlaceholder: 'sk-...',
183
+ requiresBaseUrl: true,
184
+ apiKeyOptional: true,
185
+ },
186
+ {
187
+ id: 'anthropic-compatible',
188
+ name: 'Anthropic-Compatible (Custom)',
189
+ compatibility: 'anthropic',
190
+ baseUrl: 'http://localhost:4000',
191
+ defaultModel: 'claude-3-5-sonnet-20241022',
192
+ apiKeyLabel: 'API Key',
193
+ apiKeyPlaceholder: 'sk-...',
194
+ requiresBaseUrl: true,
195
+ },
196
+ ];
197
+ exports.CUSTOM_PROVIDER_MAP = new Map(exports.CUSTOM_PROVIDER_CATALOG.map((provider) => [provider.id, provider]));
198
+ exports.CUSTOM_PROVIDER_IDS = new Set(exports.CUSTOM_PROVIDER_CATALOG.map((provider) => provider.id));
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // Core types shared between main and renderer processes
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.VOICE_LANGUAGES = exports.OPENAI_VOICES = exports.DEFAULT_VOICE_SETTINGS = exports.ANALOGY_DOMAINS = exports.DEFAULT_RELATIONSHIP = exports.DEFAULT_QUIRKS = exports.DEFAULT_RESPONSE_STYLE = exports.PERSONA_DEFINITIONS = exports.PERSONALITY_DEFINITIONS = exports.DEFAULT_QUEUE_SETTINGS = exports.DEFAULT_BLOCKED_COMMAND_PATTERNS = exports.DEFAULT_TRUSTED_COMMAND_PATTERNS = exports.IPC_CHANNELS = exports.BOARD_COLUMNS = exports.DEFAULT_AGENT_ROLES = exports.TEMP_WORKSPACE_NAME = exports.TEMP_WORKSPACE_ID = exports.CONTEXT_TOOL_RESTRICTIONS = exports.TOOL_RISK_LEVELS = exports.TOOL_GROUPS = exports.ACCENT_COLORS = void 0;
4
+ exports.VOICE_LANGUAGES = exports.OPENAI_VOICES = exports.DEFAULT_VOICE_SETTINGS = exports.ANALOGY_DOMAINS = exports.DEFAULT_RELATIONSHIP = exports.DEFAULT_QUIRKS = exports.DEFAULT_RESPONSE_STYLE = exports.PERSONA_DEFINITIONS = exports.PERSONALITY_DEFINITIONS = exports.DEFAULT_QUEUE_SETTINGS = exports.DEFAULT_BLOCKED_COMMAND_PATTERNS = exports.DEFAULT_TRUSTED_COMMAND_PATTERNS = exports.LLM_PROVIDER_TYPES = exports.CUSTOM_LLM_PROVIDER_TYPES = exports.BUILTIN_LLM_PROVIDER_TYPES = exports.IPC_CHANNELS = exports.BOARD_COLUMNS = exports.DEFAULT_AGENT_ROLES = exports.TEMP_WORKSPACE_NAME = exports.TEMP_WORKSPACE_ID = exports.CONTEXT_TOOL_RESTRICTIONS = exports.TOOL_RISK_LEVELS = exports.TOOL_GROUPS = exports.ACCENT_COLORS = void 0;
5
5
  exports.getPersonalityById = getPersonalityById;
6
6
  exports.getPersonaById = getPersonaById;
7
7
  exports.ACCENT_COLORS = [
@@ -59,6 +59,12 @@ exports.TOOL_GROUPS = {
59
59
  'group:network': [
60
60
  'web_search',
61
61
  'x_action',
62
+ 'notion_action',
63
+ 'box_action',
64
+ 'onedrive_action',
65
+ 'google_drive_action',
66
+ 'dropbox_action',
67
+ 'sharepoint_action',
62
68
  'browser_navigate',
63
69
  'browser_screenshot',
64
70
  'browser_get_content',
@@ -141,6 +147,12 @@ exports.TOOL_RISK_LEVELS = {
141
147
  browser_save_pdf: 'network',
142
148
  browser_close: 'network',
143
149
  x_action: 'network',
150
+ notion_action: 'network',
151
+ box_action: 'network',
152
+ onedrive_action: 'network',
153
+ google_drive_action: 'network',
154
+ dropbox_action: 'network',
155
+ sharepoint_action: 'network',
144
156
  // Meta
145
157
  revise_plan: 'read',
146
158
  };
@@ -503,6 +515,9 @@ exports.IPC_CHANNELS = {
503
515
  LLM_GET_GEMINI_MODELS: 'llm:getGeminiModels',
504
516
  LLM_GET_OPENROUTER_MODELS: 'llm:getOpenRouterModels',
505
517
  LLM_GET_OPENAI_MODELS: 'llm:getOpenAIModels',
518
+ LLM_GET_GROQ_MODELS: 'llm:getGroqModels',
519
+ LLM_GET_XAI_MODELS: 'llm:getXAIModels',
520
+ LLM_GET_KIMI_MODELS: 'llm:getKimiModels',
506
521
  LLM_OPENAI_OAUTH_START: 'llm:openaiOAuthStart',
507
522
  LLM_OPENAI_OAUTH_LOGOUT: 'llm:openaiOAuthLogout',
508
523
  LLM_GET_BEDROCK_MODELS: 'llm:getBedrockModels',
@@ -528,6 +543,36 @@ exports.IPC_CHANNELS = {
528
543
  X_SAVE_SETTINGS: 'x:saveSettings',
529
544
  X_TEST_CONNECTION: 'x:testConnection',
530
545
  X_GET_STATUS: 'x:getStatus',
546
+ // Notion Settings
547
+ NOTION_GET_SETTINGS: 'notion:getSettings',
548
+ NOTION_SAVE_SETTINGS: 'notion:saveSettings',
549
+ NOTION_TEST_CONNECTION: 'notion:testConnection',
550
+ NOTION_GET_STATUS: 'notion:getStatus',
551
+ // Box Settings
552
+ BOX_GET_SETTINGS: 'box:getSettings',
553
+ BOX_SAVE_SETTINGS: 'box:saveSettings',
554
+ BOX_TEST_CONNECTION: 'box:testConnection',
555
+ BOX_GET_STATUS: 'box:getStatus',
556
+ // OneDrive Settings
557
+ ONEDRIVE_GET_SETTINGS: 'onedrive:getSettings',
558
+ ONEDRIVE_SAVE_SETTINGS: 'onedrive:saveSettings',
559
+ ONEDRIVE_TEST_CONNECTION: 'onedrive:testConnection',
560
+ ONEDRIVE_GET_STATUS: 'onedrive:getStatus',
561
+ // Google Drive Settings
562
+ GOOGLE_DRIVE_GET_SETTINGS: 'googleDrive:getSettings',
563
+ GOOGLE_DRIVE_SAVE_SETTINGS: 'googleDrive:saveSettings',
564
+ GOOGLE_DRIVE_TEST_CONNECTION: 'googleDrive:testConnection',
565
+ GOOGLE_DRIVE_GET_STATUS: 'googleDrive:getStatus',
566
+ // Dropbox Settings
567
+ DROPBOX_GET_SETTINGS: 'dropbox:getSettings',
568
+ DROPBOX_SAVE_SETTINGS: 'dropbox:saveSettings',
569
+ DROPBOX_TEST_CONNECTION: 'dropbox:testConnection',
570
+ DROPBOX_GET_STATUS: 'dropbox:getStatus',
571
+ // SharePoint Settings
572
+ SHAREPOINT_GET_SETTINGS: 'sharepoint:getSettings',
573
+ SHAREPOINT_SAVE_SETTINGS: 'sharepoint:saveSettings',
574
+ SHAREPOINT_TEST_CONNECTION: 'sharepoint:testConnection',
575
+ SHAREPOINT_GET_STATUS: 'sharepoint:getStatus',
531
576
  // App Updates
532
577
  APP_CHECK_UPDATES: 'app:checkUpdates',
533
578
  APP_DOWNLOAD_UPDATE: 'app:downloadUpdate',
@@ -579,6 +624,8 @@ exports.IPC_CHANNELS = {
579
624
  MCP_REGISTRY_UNINSTALL: 'mcp:registryUninstall',
580
625
  MCP_REGISTRY_CHECK_UPDATES: 'mcp:registryCheckUpdates',
581
626
  MCP_REGISTRY_UPDATE_SERVER: 'mcp:registryUpdateServer',
627
+ // MCP Connector OAuth
628
+ MCP_CONNECTOR_OAUTH_START: 'mcp:connectorOAuthStart',
582
629
  // MCP Host
583
630
  MCP_HOST_START: 'mcp:hostStart',
584
631
  MCP_HOST_STOP: 'mcp:hostStop',
@@ -671,6 +718,7 @@ exports.IPC_CHANNELS = {
671
718
  CANVAS_EXPORT_HTML: 'canvas:exportHTML',
672
719
  CANVAS_EXPORT_TO_FOLDER: 'canvas:exportToFolder',
673
720
  CANVAS_OPEN_IN_BROWSER: 'canvas:openInBrowser',
721
+ CANVAS_OPEN_URL: 'canvas:openUrl',
674
722
  CANVAS_GET_SESSION_DIR: 'canvas:getSessionDir',
675
723
  // Mobile Companion Nodes
676
724
  NODE_LIST: 'node:list',
@@ -718,6 +766,45 @@ exports.IPC_CHANNELS = {
718
766
  VOICE_TEST_AZURE: 'voice:testAzure',
719
767
  VOICE_EVENT: 'voice:event',
720
768
  };
769
+ // LLM Provider types
770
+ exports.BUILTIN_LLM_PROVIDER_TYPES = [
771
+ 'anthropic',
772
+ 'bedrock',
773
+ 'ollama',
774
+ 'gemini',
775
+ 'openrouter',
776
+ 'openai',
777
+ 'groq',
778
+ 'xai',
779
+ 'kimi',
780
+ ];
781
+ exports.CUSTOM_LLM_PROVIDER_TYPES = [
782
+ 'moonshot',
783
+ 'opencode',
784
+ 'google-vertex',
785
+ 'google-antigravity',
786
+ 'google-gemini-cli',
787
+ 'zai',
788
+ 'glm',
789
+ 'vercel-ai-gateway',
790
+ 'cerebras',
791
+ 'mistral',
792
+ 'github-copilot',
793
+ 'qwen-portal',
794
+ 'minimax',
795
+ 'minimax-portal',
796
+ 'xiaomi',
797
+ 'venice',
798
+ 'synthetic',
799
+ 'kimi-code',
800
+ 'kimi-coding',
801
+ 'openai-compatible',
802
+ 'anthropic-compatible',
803
+ ];
804
+ exports.LLM_PROVIDER_TYPES = [
805
+ ...exports.BUILTIN_LLM_PROVIDER_TYPES,
806
+ ...exports.CUSTOM_LLM_PROVIDER_TYPES,
807
+ ];
721
808
  // Default trusted command patterns (glob-like patterns)
722
809
  exports.DEFAULT_TRUSTED_COMMAND_PATTERNS = [
723
810
  'npm test*',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cowork-os",
3
- "version": "0.3.21",
3
+ "version": "0.3.23",
4
4
  "description": "CoWork OS - The operating system for personal AI assistants",
5
5
  "overrides": {
6
6
  "undici": "^7.0.0"
@@ -44,9 +44,10 @@
44
44
  "dev": "concurrently \"npm run dev:react\" \"npm run dev:electron\"",
45
45
  "dev:react": "vite",
46
46
  "dev:electron": "tsc -p tsconfig.electron.json && cross-env NODE_ENV=development electron .",
47
- "build": "npm run build:react && npm run build:electron",
47
+ "build": "npm run build:react && npm run build:electron && npm run build:connectors",
48
48
  "build:react": "vite build",
49
49
  "build:electron": "tsc -p tsconfig.electron.json",
50
+ "build:connectors": "concurrently -n salesforce,jira,hubspot,zendesk,servicenow,linear,asana,okta \"tsc -p connectors/salesforce-mcp/tsconfig.json\" \"tsc -p connectors/jira-mcp/tsconfig.json\" \"tsc -p connectors/hubspot-mcp/tsconfig.json\" \"tsc -p connectors/zendesk-mcp/tsconfig.json\" \"tsc -p connectors/servicenow-mcp/tsconfig.json\" \"tsc -p connectors/linear-mcp/tsconfig.json\" \"tsc -p connectors/asana-mcp/tsconfig.json\" \"tsc -p connectors/okta-mcp/tsconfig.json\"",
50
51
  "package": "npm run build && electron-builder",
51
52
  "lint": "eslint src --ext ts,tsx",
52
53
  "type-check": "tsc --noEmit",
@@ -137,6 +138,15 @@
137
138
  "filter": [
138
139
  "**/*.json"
139
140
  ]
141
+ },
142
+ {
143
+ "from": "connectors",
144
+ "to": "connectors",
145
+ "filter": [
146
+ "**/dist/**",
147
+ "**/README.md",
148
+ "**/package.json"
149
+ ]
140
150
  }
141
151
  ],
142
152
  "mac": {