funolio-agent 1.0.7 → 1.0.47

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 (155) hide show
  1. package/dist/approval.d.ts +1 -0
  2. package/dist/approval.d.ts.map +1 -1
  3. package/dist/approval.js +12 -0
  4. package/dist/approval.js.map +1 -1
  5. package/dist/auth/auto-detect.d.ts +11 -3
  6. package/dist/auth/auto-detect.d.ts.map +1 -1
  7. package/dist/auth/auto-detect.js +136 -168
  8. package/dist/auth/auto-detect.js.map +1 -1
  9. package/dist/auth/subscription-runtime.js +1 -1
  10. package/dist/auth/subscription-runtime.js.map +1 -1
  11. package/dist/backfill.d.ts.map +1 -1
  12. package/dist/backfill.js +31 -28
  13. package/dist/backfill.js.map +1 -1
  14. package/dist/bot-manager.d.ts +16 -4
  15. package/dist/bot-manager.d.ts.map +1 -1
  16. package/dist/bot-manager.js +280 -73
  17. package/dist/bot-manager.js.map +1 -1
  18. package/dist/clerk-model.d.ts +10 -6
  19. package/dist/clerk-model.d.ts.map +1 -1
  20. package/dist/clerk-model.js +39 -16
  21. package/dist/clerk-model.js.map +1 -1
  22. package/dist/cli.js +7 -2
  23. package/dist/cli.js.map +1 -1
  24. package/dist/commands/import-history.js +5 -1
  25. package/dist/commands/import-history.js.map +1 -1
  26. package/dist/commands/start.d.ts.map +1 -1
  27. package/dist/commands/start.js +57 -225
  28. package/dist/commands/start.js.map +1 -1
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +13 -2
  31. package/dist/config.js.map +1 -1
  32. package/dist/context-window.js +1 -1
  33. package/dist/context-window.js.map +1 -1
  34. package/dist/import-parser-core.d.ts.map +1 -1
  35. package/dist/import-parser-core.js +74 -8
  36. package/dist/import-parser-core.js.map +1 -1
  37. package/dist/local-data.d.ts +59 -6
  38. package/dist/local-data.d.ts.map +1 -1
  39. package/dist/local-data.js +544 -62
  40. package/dist/local-data.js.map +1 -1
  41. package/dist/local-db.d.ts.map +1 -1
  42. package/dist/local-db.js +21 -1
  43. package/dist/local-db.js.map +1 -1
  44. package/dist/local-funnel.d.ts +0 -7
  45. package/dist/local-funnel.d.ts.map +1 -1
  46. package/dist/local-funnel.js +19 -28
  47. package/dist/local-funnel.js.map +1 -1
  48. package/dist/local-import-worker.d.ts.map +1 -1
  49. package/dist/local-import-worker.js +49 -4
  50. package/dist/local-import-worker.js.map +1 -1
  51. package/dist/local-memory-search.d.ts.map +1 -1
  52. package/dist/local-memory-search.js +6 -3
  53. package/dist/local-memory-search.js.map +1 -1
  54. package/dist/local-server.d.ts +37 -0
  55. package/dist/local-server.d.ts.map +1 -1
  56. package/dist/local-server.js +731 -227
  57. package/dist/local-server.js.map +1 -1
  58. package/dist/mcp/local-memory-server.d.ts +1 -1
  59. package/dist/mcp/local-memory-server.d.ts.map +1 -1
  60. package/dist/mcp/local-memory-server.js +23 -11
  61. package/dist/mcp/local-memory-server.js.map +1 -1
  62. package/dist/mcp/manager.d.ts.map +1 -1
  63. package/dist/mcp/manager.js +86 -18
  64. package/dist/mcp/manager.js.map +1 -1
  65. package/dist/message-loop.d.ts +5 -10
  66. package/dist/message-loop.d.ts.map +1 -1
  67. package/dist/message-loop.js +393 -289
  68. package/dist/message-loop.js.map +1 -1
  69. package/dist/mqtt-client.d.ts +4 -1
  70. package/dist/mqtt-client.d.ts.map +1 -1
  71. package/dist/mqtt-client.js.map +1 -1
  72. package/dist/orchestration/orchestrator-blocked-prompt.d.ts +2 -1
  73. package/dist/orchestration/orchestrator-blocked-prompt.d.ts.map +1 -1
  74. package/dist/orchestration/orchestrator-blocked-prompt.js +11 -0
  75. package/dist/orchestration/orchestrator-blocked-prompt.js.map +1 -1
  76. package/dist/orchestration/orchestrator-final-response-prompt.d.ts +4 -1
  77. package/dist/orchestration/orchestrator-final-response-prompt.d.ts.map +1 -1
  78. package/dist/orchestration/orchestrator-final-response-prompt.js +8 -6
  79. package/dist/orchestration/orchestrator-final-response-prompt.js.map +1 -1
  80. package/dist/orchestration/worker-operating-prompt.d.ts +2 -0
  81. package/dist/orchestration/worker-operating-prompt.d.ts.map +1 -1
  82. package/dist/orchestration/worker-operating-prompt.js +39 -0
  83. package/dist/orchestration/worker-operating-prompt.js.map +1 -1
  84. package/dist/orchestrator.d.ts +13 -0
  85. package/dist/orchestrator.d.ts.map +1 -1
  86. package/dist/orchestrator.js +235 -133
  87. package/dist/orchestrator.js.map +1 -1
  88. package/dist/providers/anthropic.d.ts +0 -5
  89. package/dist/providers/anthropic.d.ts.map +1 -1
  90. package/dist/providers/anthropic.js +29 -75
  91. package/dist/providers/anthropic.js.map +1 -1
  92. package/dist/providers/claude-cli.d.ts.map +1 -1
  93. package/dist/providers/claude-cli.js +16 -140
  94. package/dist/providers/claude-cli.js.map +1 -1
  95. package/dist/providers/codex-cli.d.ts.map +1 -1
  96. package/dist/providers/codex-cli.js +78 -59
  97. package/dist/providers/codex-cli.js.map +1 -1
  98. package/dist/providers/google.d.ts.map +1 -1
  99. package/dist/providers/google.js +4 -2
  100. package/dist/providers/google.js.map +1 -1
  101. package/dist/providers/index.d.ts +2 -0
  102. package/dist/providers/index.d.ts.map +1 -1
  103. package/dist/providers/index.js.map +1 -1
  104. package/dist/providers/openai.d.ts.map +1 -1
  105. package/dist/providers/openai.js +27 -2
  106. package/dist/providers/openai.js.map +1 -1
  107. package/dist/storage-mode.d.ts +5 -0
  108. package/dist/storage-mode.d.ts.map +1 -0
  109. package/dist/storage-mode.js +21 -0
  110. package/dist/storage-mode.js.map +1 -0
  111. package/dist/summarization-pipeline.d.ts +9 -0
  112. package/dist/summarization-pipeline.d.ts.map +1 -1
  113. package/dist/summarization-pipeline.js +61 -17
  114. package/dist/summarization-pipeline.js.map +1 -1
  115. package/dist/tools/analyze-image.js +2 -2
  116. package/dist/tools/analyze-image.js.map +1 -1
  117. package/dist/tools/edit-file.js +3 -3
  118. package/dist/tools/edit-file.js.map +1 -1
  119. package/dist/tools/index.d.ts.map +1 -1
  120. package/dist/tools/index.js +36 -0
  121. package/dist/tools/index.js.map +1 -1
  122. package/dist/tools/list-directory.js +7 -4
  123. package/dist/tools/list-directory.js.map +1 -1
  124. package/dist/tools/read-file.js +3 -3
  125. package/dist/tools/read-file.js.map +1 -1
  126. package/dist/tools/run-command.js +3 -3
  127. package/dist/tools/run-command.js.map +1 -1
  128. package/dist/tools/sandbox.d.ts +10 -5
  129. package/dist/tools/sandbox.d.ts.map +1 -1
  130. package/dist/tools/sandbox.js +41 -13
  131. package/dist/tools/sandbox.js.map +1 -1
  132. package/dist/tools/search-codebase.js +2 -2
  133. package/dist/tools/search-codebase.js.map +1 -1
  134. package/dist/tools/search-local-memory.d.ts.map +1 -1
  135. package/dist/tools/search-local-memory.js +19 -8
  136. package/dist/tools/search-local-memory.js.map +1 -1
  137. package/dist/tools/spawn-subagent.js.map +1 -1
  138. package/dist/tools/write-file.js +3 -3
  139. package/dist/tools/write-file.js.map +1 -1
  140. package/dist/types.d.ts +2 -0
  141. package/dist/types.d.ts.map +1 -1
  142. package/dist/verification/index.js +2 -2
  143. package/dist/verification/index.js.map +1 -1
  144. package/dist/wizard-state.d.ts.map +1 -1
  145. package/dist/wizard-state.js +16 -2
  146. package/dist/wizard-state.js.map +1 -1
  147. package/dist/wizard-support.d.ts +2 -2
  148. package/dist/wizard-support.d.ts.map +1 -1
  149. package/dist/wizard-support.js +80 -93
  150. package/dist/wizard-support.js.map +1 -1
  151. package/dist/workflow-engine.d.ts +3 -1
  152. package/dist/workflow-engine.d.ts.map +1 -1
  153. package/dist/workflow-engine.js +131 -12
  154. package/dist/workflow-engine.js.map +1 -1
  155. package/package.json +1 -1
@@ -50,6 +50,10 @@ const DEDUP_MAX_SIZE = 200;
50
50
  * Manages agent MessageLoops, keyed by agent ID.
51
51
  * The active agent runs as "__default__" loop.
52
52
  * Runtime source of truth: config.agents[] + config.activeAgentId.
53
+ *
54
+ * Auth modes supported:
55
+ * 1. CLI providers (claude-cli, codex-cli) — handle their own auth
56
+ * 2. API key (BYOK) — standard x-api-key authentication
53
57
  */
54
58
  class BotManager {
55
59
  loops = new Map();
@@ -60,13 +64,17 @@ class BotManager {
60
64
  constructor(options) {
61
65
  this.options = options;
62
66
  }
63
- /** Start the active agent loop, auto-detecting OAuth credentials if no API key is configured */
67
+ /** Start the active agent loop */
64
68
  async startActive() {
65
69
  let provider = this.options.defaultProvider;
66
70
  let model = this.options.defaultModel;
67
71
  let apiKey = this.options.defaultApiKey;
68
72
  let oauthToken = this.options.defaultOauthToken;
69
- // Resolve auth — handles token refresh for OAuth, auto-detection if no key/token
73
+ let authMode;
74
+ let baseUrl;
75
+ let apiStyle;
76
+ let resolvedAuth;
77
+ // Resolve auth — handles API key detection plus OAuth/subscription runtimes
70
78
  try {
71
79
  const auth = await (0, auto_detect_1.resolveAuth)({
72
80
  provider,
@@ -78,26 +86,36 @@ class BotManager {
78
86
  });
79
87
  if (auth) {
80
88
  this.resolvedAuth = auth;
89
+ resolvedAuth = auth;
81
90
  provider = auth.provider;
82
91
  model = auth.model;
83
- oauthToken = auth.apiKey;
84
- apiKey = auth.source === 'api-key' ? auth.apiKey : undefined;
92
+ apiKey = auth.source === 'api-key' || auth.source === 'env' ? auth.apiKey : undefined;
93
+ oauthToken = auth.source === 'oauth' ? auth.apiKey : oauthToken;
94
+ authMode = auth.authMode;
95
+ baseUrl = auth.baseUrl;
96
+ apiStyle = auth.apiStyle;
85
97
  console.log(chalk_1.default.green(`✓ Auth resolved: provider=${auth.provider}, source=${auth.source}`));
86
98
  }
87
- else if (!apiKey && !oauthToken) {
88
- console.log(chalk_1.default.yellow('⚠ No API key or OAuth credentials found — LLM calls may fail'));
99
+ else if (!apiKey) {
100
+ console.log(chalk_1.default.yellow('⚠ No API key found — LLM calls may fail'));
89
101
  }
90
102
  }
91
103
  catch (err) {
92
104
  console.error(chalk_1.default.red(`✗ Auth resolution failed: ${err}`));
93
105
  }
106
+ const effectiveKey = apiKey || oauthToken || '';
107
+ const isOAuthBearer = effectiveKey.startsWith('sk-ant-oat');
94
108
  this.startLoop({
95
109
  id: '__default__',
96
110
  name: 'active',
97
111
  provider,
98
112
  model,
99
- apiKey,
100
- oauthToken,
113
+ apiKey: effectiveKey || undefined,
114
+ oauthToken: authMode === 'oauth-bearer' || provider === 'openai' ? effectiveKey : undefined,
115
+ authMode: authMode || (isOAuthBearer ? 'oauth-bearer' : undefined),
116
+ baseUrl,
117
+ apiStyle,
118
+ resolvedAuth,
101
119
  });
102
120
  }
103
121
  /**
@@ -127,8 +145,6 @@ class BotManager {
127
145
  if (agentCfg.botId) {
128
146
  this.botIdToLoopId.set(agentCfg.botId, '__default__');
129
147
  // Ensure agent_profile exists in local DB so the clerk prompt builder works.
130
- // Without this, the clerk path is skipped and buildFallbackSystemPrompt() is
131
- // used instead, which loses marketplace/platform awareness instructions.
132
148
  const profileFields = {
133
149
  provider: agentCfg.provider,
134
150
  model: agentCfg.model,
@@ -159,18 +175,30 @@ class BotManager {
159
175
  // Resolve auth for this bot
160
176
  let apiKey = agentCfg.apiKey;
161
177
  let oauthToken = agentCfg.oauthToken;
178
+ let provider = agentCfg.provider;
179
+ let model = agentCfg.model;
180
+ let authMode;
181
+ let baseUrl;
182
+ let apiStyle;
183
+ let resolvedAuth;
162
184
  try {
163
185
  const auth = await (0, auto_detect_1.resolveAuth)({
164
- provider: agentCfg.provider,
165
- model: agentCfg.model,
186
+ provider,
187
+ model,
166
188
  apiKey,
167
189
  oauthToken,
168
190
  oauthRefreshToken: agentCfg.oauthRefreshToken,
169
191
  oauthExpiresAt: agentCfg.oauthExpiresAt,
170
192
  });
171
193
  if (auth) {
172
- oauthToken = auth.apiKey;
173
- apiKey = auth.source === 'api-key' ? auth.apiKey : undefined;
194
+ resolvedAuth = auth;
195
+ provider = auth.provider;
196
+ model = auth.model;
197
+ apiKey = auth.source === 'api-key' || auth.source === 'env' ? auth.apiKey : undefined;
198
+ oauthToken = auth.source === 'oauth' ? auth.apiKey : oauthToken;
199
+ authMode = auth.authMode;
200
+ baseUrl = auth.baseUrl;
201
+ apiStyle = auth.apiStyle;
174
202
  }
175
203
  }
176
204
  catch (err) {
@@ -178,17 +206,21 @@ class BotManager {
178
206
  continue;
179
207
  }
180
208
  if (!apiKey && !oauthToken) {
181
- console.warn(chalk_1.default.yellow(`⚠ No credentials for bot "${name}" (${agentCfg.provider}) — skipping`));
209
+ console.warn(chalk_1.default.yellow(`⚠ No credentials for bot "${name}" (${provider}) — skipping`));
182
210
  continue;
183
211
  }
184
212
  this.startLoop({
185
213
  id: loopId,
186
214
  name: agentCfg.name || name,
187
- provider: agentCfg.provider,
188
- model: agentCfg.model,
189
- apiKey,
215
+ provider,
216
+ model,
217
+ apiKey: apiKey || oauthToken,
190
218
  oauthToken,
191
219
  enabledTools: agentCfg.enabledTools,
220
+ authMode,
221
+ baseUrl,
222
+ apiStyle,
223
+ resolvedAuth,
192
224
  });
193
225
  // Register botId → loopId mapping
194
226
  if (agentCfg.botId) {
@@ -210,6 +242,7 @@ class BotManager {
210
242
  // Try direct lookup by botId
211
243
  if (this.loops.has(botId))
212
244
  return this.loops.get(botId);
245
+ return undefined;
213
246
  }
214
247
  return this.getDefaultLoop();
215
248
  }
@@ -307,15 +340,15 @@ class BotManager {
307
340
  startLoop(agent) {
308
341
  if (this.loops.has(agent.id))
309
342
  return;
343
+ const isOAuthBearer = !!agent.oauthToken && agent.oauthToken.startsWith('sk-ant-oat');
310
344
  const loop = new message_loop_1.MessageLoop({
311
345
  provider: agent.provider,
312
346
  model: agent.model,
313
347
  apiKey: agent.apiKey || '',
314
348
  oauthToken: agent.oauthToken,
315
- resolvedAuth: this.resolvedAuth ? {
316
- ...this.resolvedAuth,
317
- credential: this.resolvedAuth.credential ? { ...this.resolvedAuth.credential } : undefined,
318
- } : undefined,
349
+ ...(agent.authMode ? { authMode: agent.authMode } : {}),
350
+ ...(agent.baseUrl ? { baseUrl: agent.baseUrl } : {}),
351
+ ...(agent.apiStyle ? { apiStyle: agent.apiStyle } : {}),
319
352
  projectDir: this.options.projectDir,
320
353
  userId: this.options.userId,
321
354
  mqttClient: this.options.mqttClient,
@@ -324,6 +357,8 @@ class BotManager {
324
357
  systemPrompt: this.options.systemPrompt,
325
358
  mcpManager: this.options.mcpManager,
326
359
  agentName: agent.name,
360
+ resolvedAuth: agent.resolvedAuth || undefined,
361
+ ...(!agent.authMode && isOAuthBearer ? { authMode: 'oauth-bearer' } : {}),
327
362
  });
328
363
  this.loops.set(agent.id, loop);
329
364
  }
@@ -336,16 +371,12 @@ class BotManager {
336
371
  getDefaultLoop() {
337
372
  return this.loops.get('__default__');
338
373
  }
339
- /**
340
- * Re-fetch full config from server, returning the bot and its resolved credential.
341
- * This is the single source of truth for bot credentials — no secrets over MQTT.
342
- */
343
- async fetchBotFromServer(botId) {
374
+ async fetchServerConfig() {
344
375
  const { loadConfig, FUNOLIO_API_URL } = require('./config');
345
376
  const cfg = loadConfig();
346
377
  const authToken = cfg.auth?.token;
347
378
  if (!authToken) {
348
- console.warn(chalk_1.default.yellow(' [bot-manager] No auth token — cannot fetch bot config from server'));
379
+ console.warn(chalk_1.default.yellow(' [bot-manager] No auth token — cannot fetch config from server'));
349
380
  return null;
350
381
  }
351
382
  try {
@@ -354,41 +385,179 @@ class BotManager {
354
385
  });
355
386
  if (!res.ok)
356
387
  return null;
357
- const body = await res.json();
358
- const bot = (body.bots || []).find((b) => b.id === botId);
359
- if (!bot?.llmProvider)
360
- return null;
361
- // Find the credential for this bot
362
- const providers = body.providers || [];
363
- let credential = bot.llmKeyId
364
- ? providers.find((p) => p.label?.startsWith('bot:') && p.id === bot.llmProvider) || providers.find((p) => p.id === bot.llmProvider)
365
- : providers.find((p) => p.id === bot.llmProvider);
366
- if (!credential)
367
- return null;
368
- if (credential.connectionType === 'oauth') {
369
- return {
370
- provider: bot.llmProvider,
371
- model: bot.llmModel || '',
372
- oauthToken: credential.access_token,
373
- oauthRefreshToken: credential.refresh_token,
374
- oauthExpiresAt: credential.expires_at,
375
- authType: 'oauth',
376
- };
377
- }
378
- else {
379
- return {
380
- provider: bot.llmProvider,
381
- model: bot.llmModel || '',
382
- apiKey: credential.apiKey,
383
- authType: 'apiKey',
384
- };
385
- }
388
+ return await res.json();
386
389
  }
387
390
  catch (err) {
388
391
  console.warn(chalk_1.default.yellow(` [bot-manager] Server config fetch failed: ${err?.message}`));
389
392
  return null;
390
393
  }
391
394
  }
395
+ /**
396
+ * Re-fetch full config from server, returning the bot and its resolved credential.
397
+ * This is the single source of truth for bot credentials — no secrets over MQTT.
398
+ * Handles both API key and OAuth credential types.
399
+ */
400
+ async fetchBotFromServer(botId) {
401
+ const body = await this.fetchServerConfig();
402
+ if (!body)
403
+ return null;
404
+ return this.resolveBotFromConfig(botId, body);
405
+ }
406
+ /** Extract a single bot's credentials from a server config response */
407
+ resolveBotFromConfig(botId, body) {
408
+ const bot = (body.bots || []).find((b) => b.id === botId);
409
+ if (!bot?.llmProvider)
410
+ return null;
411
+ // Find the credential for this bot — match by provider id AND credential type
412
+ // Multiple providers can share the same id (e.g., two "openai" entries: one oauth, one apiKey)
413
+ const providers = body.providers || [];
414
+ const botRole = bot.role || bot.credentialSource; // "oauth", "apikey", "subscription"
415
+ let credential;
416
+ if (botRole === 'oauth') {
417
+ // OAuth bots → match provider with connectionType "oauth"
418
+ credential = providers.find((p) => p.id === bot.llmProvider && p.connectionType === 'oauth');
419
+ }
420
+ else if (botRole === 'apikey') {
421
+ // API key bots → prefer bot-specific key (label starts with "bot:"), then any apiKey type
422
+ credential = providers.find((p) => p.label?.startsWith('bot:') && p.id === bot.llmProvider && p.connectionType === 'apiKey')
423
+ || providers.find((p) => p.id === bot.llmProvider && p.connectionType === 'apiKey');
424
+ }
425
+ else if (botRole === 'subscription') {
426
+ // Subscription bots → match provider with connectionType "subscription"
427
+ credential = providers.find((p) => p.id === bot.llmProvider && p.connectionType === 'subscription');
428
+ }
429
+ // Fallback: any provider matching the bot's provider id
430
+ if (!credential) {
431
+ credential = providers.find((p) => p.id === bot.llmProvider);
432
+ }
433
+ if (!credential)
434
+ return null;
435
+ // Handle OAuth credentials (access_token/refresh_token) vs plain API keys
436
+ if (credential.connectionType === 'oauth' || credential.access_token) {
437
+ return {
438
+ provider: bot.llmProvider,
439
+ model: bot.llmModel || '',
440
+ name: bot.name,
441
+ oauthToken: credential.access_token,
442
+ oauthRefreshToken: credential.refresh_token,
443
+ };
444
+ }
445
+ return {
446
+ provider: bot.llmProvider,
447
+ model: bot.llmModel || '',
448
+ name: bot.name,
449
+ apiKey: credential.apiKey,
450
+ };
451
+ }
452
+ /**
453
+ * Fix B: Sync all cloud-configured bots at startup.
454
+ * Calls /api/v1/agent/config and starts loops for bots that aren't already running locally.
455
+ * This ensures bots created on the web UI are available without manual local config.
456
+ */
457
+ async syncBotsFromCloud() {
458
+ console.log(chalk_1.default.gray(' Syncing bot configs from cloud...'));
459
+ const body = await this.fetchServerConfig();
460
+ if (!body) {
461
+ console.log(chalk_1.default.gray(' Cloud sync skipped — no server config available'));
462
+ return;
463
+ }
464
+ const bots = body.bots || [];
465
+ let synced = 0;
466
+ for (const bot of bots) {
467
+ if (!bot.id || !bot.llmProvider)
468
+ continue;
469
+ // Skip if this bot already has a loop running (loaded from local config)
470
+ if (this.botIdToLoopId.has(bot.id) || this.loops.has(bot.id)) {
471
+ continue;
472
+ }
473
+ // Resolve credentials from the server config
474
+ const resolved = this.resolveBotFromConfig(bot.id, body);
475
+ if (!resolved) {
476
+ console.warn(chalk_1.default.yellow(` ⚠ Cloud bot "${bot.name}" (${bot.llmProvider}) — no credentials found, skipping`));
477
+ continue;
478
+ }
479
+ // Resolve auth (handles OAuth token detection, refresh, baseUrl/apiStyle for OpenAI sub)
480
+ let provider = resolved.provider;
481
+ let model = resolved.model;
482
+ let apiKey = resolved.apiKey;
483
+ let oauthToken = resolved.oauthToken;
484
+ let authMode;
485
+ let baseUrl;
486
+ let apiStyle;
487
+ let resolvedAuth;
488
+ try {
489
+ const auth = await (0, auto_detect_1.resolveAuth)({
490
+ provider,
491
+ model,
492
+ apiKey,
493
+ oauthToken,
494
+ oauthRefreshToken: resolved.oauthRefreshToken,
495
+ });
496
+ if (auth) {
497
+ resolvedAuth = auth;
498
+ provider = auth.provider;
499
+ model = auth.model;
500
+ apiKey = auth.source === 'api-key' || auth.source === 'env' ? auth.apiKey : undefined;
501
+ oauthToken = auth.source === 'oauth' ? auth.apiKey : oauthToken;
502
+ authMode = auth.authMode;
503
+ baseUrl = auth.baseUrl;
504
+ apiStyle = auth.apiStyle;
505
+ }
506
+ }
507
+ catch (err) {
508
+ console.warn(chalk_1.default.yellow(` ⚠ Auth resolution failed for cloud bot "${bot.name}": ${err} — skipping`));
509
+ continue;
510
+ }
511
+ if (!apiKey && !oauthToken) {
512
+ console.warn(chalk_1.default.yellow(` ⚠ No usable credentials for cloud bot "${bot.name}" (${provider}) — skipping`));
513
+ continue;
514
+ }
515
+ const effectiveKey = apiKey || oauthToken || '';
516
+ // Start the loop
517
+ this.startLoop({
518
+ id: bot.id,
519
+ name: bot.name,
520
+ provider,
521
+ model,
522
+ apiKey: effectiveKey,
523
+ oauthToken,
524
+ authMode,
525
+ baseUrl,
526
+ apiStyle,
527
+ resolvedAuth,
528
+ });
529
+ this.botIdToLoopId.set(bot.id, bot.id);
530
+ // Persist agent profile locally for prompt building
531
+ const profileFields = {
532
+ provider,
533
+ model,
534
+ name: bot.name,
535
+ permissionMode: default_tool_profile_1.DEFAULT_PERMISSION_MODE,
536
+ enabledBuiltinToolsJson: JSON.stringify([]),
537
+ enabledMcpToolsJson: JSON.stringify([]),
538
+ isActive: true,
539
+ };
540
+ const existing = data.getAgentProfile(bot.id);
541
+ if (existing) {
542
+ data.updateAgentProfile(bot.id, profileFields);
543
+ }
544
+ else {
545
+ data.createAgentProfile({
546
+ ...profileFields,
547
+ providerConnectionId: data.findProviderConnection(provider)?.id,
548
+ isDefault: false,
549
+ });
550
+ }
551
+ synced++;
552
+ console.log(chalk_1.default.green(` ✓ Cloud bot "${bot.name}" synced (${provider}/${model})`));
553
+ }
554
+ if (synced > 0) {
555
+ console.log(chalk_1.default.blue(` ${synced} bot(s) synced from cloud`));
556
+ }
557
+ else {
558
+ console.log(chalk_1.default.gray(' No additional cloud bots to sync'));
559
+ }
560
+ }
392
561
  /** Add a new agent — re-fetches config from server to get credentials */
393
562
  async handleAgentAdd(command) {
394
563
  if (!command.bot) {
@@ -396,8 +565,8 @@ class BotManager {
396
565
  return;
397
566
  }
398
567
  const agent = command.bot;
399
- const provider = agent.provider;
400
- const model = agent.model;
568
+ let provider = agent.provider;
569
+ let model = agent.model;
401
570
  // Fail closed: if provider is missing, do not fall through to default
402
571
  if (!provider) {
403
572
  console.error(chalk_1.default.red(`✗ Agent "${agent.name}" has no provider binding — cannot start. Fix in Mission Control.`));
@@ -407,9 +576,11 @@ class BotManager {
407
576
  const serverCreds = await this.fetchBotFromServer(agent.id);
408
577
  let apiKey;
409
578
  let oauthToken;
579
+ let oauthRefreshToken;
410
580
  if (serverCreds) {
411
581
  apiKey = serverCreds.apiKey;
412
582
  oauthToken = serverCreds.oauthToken;
583
+ oauthRefreshToken = serverCreds.oauthRefreshToken;
413
584
  }
414
585
  else {
415
586
  // Fallback: try local provider config
@@ -417,13 +588,34 @@ class BotManager {
417
588
  const localProvider = getProvider(loadConfig(), provider);
418
589
  if (localProvider) {
419
590
  apiKey = localProvider.apiKey;
420
- oauthToken = localProvider.oauthToken;
421
591
  }
422
592
  }
423
593
  if (!apiKey && !oauthToken) {
424
594
  console.error(chalk_1.default.red(`✗ Agent "${agent.name}" (${provider}/${model}) has no credential binding — cannot start.`));
425
595
  return;
426
596
  }
597
+ // Resolve auth (handles OAuth → baseUrl/apiStyle for OpenAI subscription, token refresh, etc.)
598
+ let authMode;
599
+ let baseUrl;
600
+ let apiStyle;
601
+ let resolvedAuth;
602
+ try {
603
+ const auth = await (0, auto_detect_1.resolveAuth)({ provider, model, apiKey, oauthToken, oauthRefreshToken });
604
+ if (auth) {
605
+ resolvedAuth = auth;
606
+ provider = auth.provider;
607
+ model = auth.model;
608
+ apiKey = auth.source === 'api-key' || auth.source === 'env' ? auth.apiKey : undefined;
609
+ oauthToken = auth.source === 'oauth' ? auth.apiKey : oauthToken;
610
+ authMode = auth.authMode;
611
+ baseUrl = auth.baseUrl;
612
+ apiStyle = auth.apiStyle;
613
+ }
614
+ }
615
+ catch (err) {
616
+ console.warn(chalk_1.default.yellow(` ⚠ Auth resolution failed for "${agent.name}": ${err}`));
617
+ }
618
+ const effectiveKey = apiKey || oauthToken || '';
427
619
  const existing = data.getAgentProfile(agent.id);
428
620
  const fields = {
429
621
  provider,
@@ -446,7 +638,7 @@ class BotManager {
446
638
  isDefault: false,
447
639
  });
448
640
  }
449
- this.startLoop({ ...agent, provider, model, apiKey, oauthToken });
641
+ this.startLoop({ ...agent, provider, model, apiKey: effectiveKey, oauthToken, authMode, baseUrl, apiStyle, resolvedAuth });
450
642
  if (agent.id) {
451
643
  this.botIdToLoopId.set(agent.id, agent.id);
452
644
  }
@@ -476,8 +668,8 @@ class BotManager {
476
668
  return;
477
669
  }
478
670
  const agent = command.bot;
479
- const provider = agent.provider;
480
- const model = agent.model;
671
+ let provider = agent.provider;
672
+ let model = agent.model;
481
673
  this.stopLoop(agent.id);
482
674
  // Fail closed: if provider is missing, do not fall through to default
483
675
  if (!provider) {
@@ -488,22 +680,45 @@ class BotManager {
488
680
  const serverCreds = await this.fetchBotFromServer(agent.id);
489
681
  let apiKey;
490
682
  let oauthToken;
683
+ let oauthRefreshToken;
491
684
  if (serverCreds) {
492
685
  apiKey = serverCreds.apiKey;
493
686
  oauthToken = serverCreds.oauthToken;
687
+ oauthRefreshToken = serverCreds.oauthRefreshToken;
494
688
  }
495
689
  else {
496
690
  const { loadConfig, getProvider } = require('./config');
497
691
  const localProvider = getProvider(loadConfig(), provider);
498
692
  if (localProvider) {
499
693
  apiKey = localProvider.apiKey;
500
- oauthToken = localProvider.oauthToken;
501
694
  }
502
695
  }
503
696
  if (!apiKey && !oauthToken) {
504
697
  console.error(chalk_1.default.red(`✗ Agent "${agent.name}" (${provider}/${model}) has no credential binding — cannot update.`));
505
698
  return;
506
699
  }
700
+ // Resolve auth (handles OAuth → baseUrl/apiStyle for OpenAI subscription, token refresh, etc.)
701
+ let authMode;
702
+ let baseUrl;
703
+ let apiStyle;
704
+ let resolvedAuth;
705
+ try {
706
+ const auth = await (0, auto_detect_1.resolveAuth)({ provider, model, apiKey, oauthToken, oauthRefreshToken });
707
+ if (auth) {
708
+ resolvedAuth = auth;
709
+ provider = auth.provider;
710
+ model = auth.model;
711
+ apiKey = auth.source === 'api-key' || auth.source === 'env' ? auth.apiKey : undefined;
712
+ oauthToken = auth.source === 'oauth' ? auth.apiKey : oauthToken;
713
+ authMode = auth.authMode;
714
+ baseUrl = auth.baseUrl;
715
+ apiStyle = auth.apiStyle;
716
+ }
717
+ }
718
+ catch (err) {
719
+ console.warn(chalk_1.default.yellow(` ⚠ Auth resolution failed for "${agent.name}": ${err}`));
720
+ }
721
+ const effectiveKey = apiKey || oauthToken || '';
507
722
  const fields = {
508
723
  provider,
509
724
  model,
@@ -525,20 +740,12 @@ class BotManager {
525
740
  isDefault: false,
526
741
  });
527
742
  }
528
- this.startLoop({ ...agent, provider, model, apiKey, oauthToken });
743
+ this.startLoop({ ...agent, provider, model, apiKey: effectiveKey, oauthToken, authMode, baseUrl, apiStyle, resolvedAuth });
529
744
  if (agent.id) {
530
745
  this.botIdToLoopId.set(agent.id, agent.id);
531
746
  }
532
747
  console.log(chalk_1.default.blue(`✓ Agent updated: "${agent.name}" (${provider} / ${agent.model})`));
533
748
  }
534
- /** Update the default OAuth token for the active loop (used by token refresh) */
535
- updateDefaultToken(token) {
536
- this.options.defaultOauthToken = token;
537
- const loop = this.loops.get('__default__');
538
- if (loop) {
539
- loop.updateToken(token);
540
- }
541
- }
542
749
  async handleUpdateCommand(command) {
543
750
  console.log(chalk_1.default.cyan('⟳ Remote update requested via MQTT'));
544
751
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"bot-manager.js","sourceRoot":"","sources":["../src/bot-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot-manager.js","sourceRoot":"","sources":["../src/bot-manager.ts"],"names":[],"mappings":"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"}