funolio-agent 1.0.7 → 1.0.48

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 (239) hide show
  1. package/dist/agent-config.d.ts +9 -1
  2. package/dist/agent-config.d.ts.map +1 -1
  3. package/dist/agent-config.js +4 -1
  4. package/dist/agent-config.js.map +1 -1
  5. package/dist/approval.d.ts +1 -0
  6. package/dist/approval.d.ts.map +1 -1
  7. package/dist/approval.js +12 -0
  8. package/dist/approval.js.map +1 -1
  9. package/dist/auth/auto-detect.d.ts +11 -3
  10. package/dist/auth/auto-detect.d.ts.map +1 -1
  11. package/dist/auth/auto-detect.js +136 -168
  12. package/dist/auth/auto-detect.js.map +1 -1
  13. package/dist/auth/subscription-runtime.js +1 -1
  14. package/dist/auth/subscription-runtime.js.map +1 -1
  15. package/dist/auto-organizer.d.ts.map +1 -1
  16. package/dist/auto-organizer.js +4 -3
  17. package/dist/auto-organizer.js.map +1 -1
  18. package/dist/backfill.d.ts.map +1 -1
  19. package/dist/backfill.js +34 -30
  20. package/dist/backfill.js.map +1 -1
  21. package/dist/bot-manager.d.ts +4 -8
  22. package/dist/bot-manager.d.ts.map +1 -1
  23. package/dist/bot-manager.js +31 -160
  24. package/dist/bot-manager.js.map +1 -1
  25. package/dist/clerk-model.d.ts +15 -7
  26. package/dist/clerk-model.d.ts.map +1 -1
  27. package/dist/clerk-model.js +78 -43
  28. package/dist/clerk-model.js.map +1 -1
  29. package/dist/cli-session-epoch.d.ts +10 -0
  30. package/dist/cli-session-epoch.d.ts.map +1 -0
  31. package/dist/cli-session-epoch.js +61 -0
  32. package/dist/cli-session-epoch.js.map +1 -0
  33. package/dist/cli.js +7 -2
  34. package/dist/cli.js.map +1 -1
  35. package/dist/commands/import-history.js +5 -1
  36. package/dist/commands/import-history.js.map +1 -1
  37. package/dist/commands/init.d.ts.map +1 -1
  38. package/dist/commands/init.js +30 -1
  39. package/dist/commands/init.js.map +1 -1
  40. package/dist/commands/pool.js +1 -1
  41. package/dist/commands/pool.js.map +1 -1
  42. package/dist/commands/setup.d.ts +37 -0
  43. package/dist/commands/setup.d.ts.map +1 -1
  44. package/dist/commands/setup.js +146 -43
  45. package/dist/commands/setup.js.map +1 -1
  46. package/dist/commands/start.d.ts.map +1 -1
  47. package/dist/commands/start.js +117 -255
  48. package/dist/commands/start.js.map +1 -1
  49. package/dist/config-cleanup.d.ts.map +1 -1
  50. package/dist/config-cleanup.js +2 -1
  51. package/dist/config-cleanup.js.map +1 -1
  52. package/dist/config.d.ts +6 -9
  53. package/dist/config.d.ts.map +1 -1
  54. package/dist/config.js +7 -18
  55. package/dist/config.js.map +1 -1
  56. package/dist/context-window.d.ts +33 -5
  57. package/dist/context-window.d.ts.map +1 -1
  58. package/dist/context-window.js +122 -21
  59. package/dist/context-window.js.map +1 -1
  60. package/dist/eval/orchestrator-front-door-replay.js +1 -1
  61. package/dist/eval/orchestrator-front-door-replay.js.map +1 -1
  62. package/dist/eval/policy-detection-replay.js +1 -1
  63. package/dist/eval/policy-detection-replay.js.map +1 -1
  64. package/dist/import-parser-core.d.ts.map +1 -1
  65. package/dist/import-parser-core.js +74 -8
  66. package/dist/import-parser-core.js.map +1 -1
  67. package/dist/integration-tokens.d.ts +1 -6
  68. package/dist/integration-tokens.d.ts.map +1 -1
  69. package/dist/integration-tokens.js +38 -40
  70. package/dist/integration-tokens.js.map +1 -1
  71. package/dist/local-cli-pty-manager.d.ts +50 -0
  72. package/dist/local-cli-pty-manager.d.ts.map +1 -0
  73. package/dist/local-cli-pty-manager.js +645 -0
  74. package/dist/local-cli-pty-manager.js.map +1 -0
  75. package/dist/local-data.d.ts +89 -6
  76. package/dist/local-data.d.ts.map +1 -1
  77. package/dist/local-data.js +600 -63
  78. package/dist/local-data.js.map +1 -1
  79. package/dist/local-db.d.ts.map +1 -1
  80. package/dist/local-db.js +74 -1
  81. package/dist/local-db.js.map +1 -1
  82. package/dist/local-funnel.d.ts +0 -7
  83. package/dist/local-funnel.d.ts.map +1 -1
  84. package/dist/local-funnel.js +22 -30
  85. package/dist/local-funnel.js.map +1 -1
  86. package/dist/local-import-worker.d.ts.map +1 -1
  87. package/dist/local-import-worker.js +49 -4
  88. package/dist/local-import-worker.js.map +1 -1
  89. package/dist/local-memory-search.d.ts +1 -0
  90. package/dist/local-memory-search.d.ts.map +1 -1
  91. package/dist/local-memory-search.js +107 -21
  92. package/dist/local-memory-search.js.map +1 -1
  93. package/dist/local-server.d.ts +21 -0
  94. package/dist/local-server.d.ts.map +1 -1
  95. package/dist/local-server.js +1057 -501
  96. package/dist/local-server.js.map +1 -1
  97. package/dist/mcp/bridge-server.d.ts.map +1 -1
  98. package/dist/mcp/bridge-server.js +2 -1
  99. package/dist/mcp/bridge-server.js.map +1 -1
  100. package/dist/mcp/local-memory-server.d.ts +6 -1
  101. package/dist/mcp/local-memory-server.d.ts.map +1 -1
  102. package/dist/mcp/local-memory-server.js +38 -13
  103. package/dist/mcp/local-memory-server.js.map +1 -1
  104. package/dist/mcp/manager.d.ts +3 -22
  105. package/dist/mcp/manager.d.ts.map +1 -1
  106. package/dist/mcp/manager.js +66 -320
  107. package/dist/mcp/manager.js.map +1 -1
  108. package/dist/memory-extraction.d.ts +2 -0
  109. package/dist/memory-extraction.d.ts.map +1 -1
  110. package/dist/memory-extraction.js +3 -1
  111. package/dist/memory-extraction.js.map +1 -1
  112. package/dist/message-loop.d.ts +1 -3
  113. package/dist/message-loop.d.ts.map +1 -1
  114. package/dist/message-loop.js +220 -437
  115. package/dist/message-loop.js.map +1 -1
  116. package/dist/mqtt-client.d.ts +2 -28
  117. package/dist/mqtt-client.d.ts.map +1 -1
  118. package/dist/mqtt-client.js +2 -2
  119. package/dist/mqtt-client.js.map +1 -1
  120. package/dist/oauth.d.ts +6 -0
  121. package/dist/oauth.d.ts.map +1 -1
  122. package/dist/oauth.js +91 -0
  123. package/dist/oauth.js.map +1 -1
  124. package/dist/orchestration/front-door-policy.d.ts +5 -2
  125. package/dist/orchestration/front-door-policy.d.ts.map +1 -1
  126. package/dist/orchestration/front-door-policy.js +25 -28
  127. package/dist/orchestration/front-door-policy.js.map +1 -1
  128. package/dist/orchestration/orchestrator-blocked-prompt.d.ts +2 -1
  129. package/dist/orchestration/orchestrator-blocked-prompt.d.ts.map +1 -1
  130. package/dist/orchestration/orchestrator-blocked-prompt.js +12 -1
  131. package/dist/orchestration/orchestrator-blocked-prompt.js.map +1 -1
  132. package/dist/orchestration/orchestrator-final-response-prompt.d.ts +4 -1
  133. package/dist/orchestration/orchestrator-final-response-prompt.d.ts.map +1 -1
  134. package/dist/orchestration/orchestrator-final-response-prompt.js +9 -7
  135. package/dist/orchestration/orchestrator-final-response-prompt.js.map +1 -1
  136. package/dist/orchestration/orchestrator-operating-prompt.d.ts +11 -0
  137. package/dist/orchestration/orchestrator-operating-prompt.d.ts.map +1 -1
  138. package/dist/orchestration/orchestrator-operating-prompt.js +67 -44
  139. package/dist/orchestration/orchestrator-operating-prompt.js.map +1 -1
  140. package/dist/orchestration/worker-operating-prompt.d.ts +2 -0
  141. package/dist/orchestration/worker-operating-prompt.d.ts.map +1 -1
  142. package/dist/orchestration/worker-operating-prompt.js +41 -2
  143. package/dist/orchestration/worker-operating-prompt.js.map +1 -1
  144. package/dist/orchestrator.d.ts +17 -0
  145. package/dist/orchestrator.d.ts.map +1 -1
  146. package/dist/orchestrator.js +328 -166
  147. package/dist/orchestrator.js.map +1 -1
  148. package/dist/prompt-template.js +3 -3
  149. package/dist/prompt-template.js.map +1 -1
  150. package/dist/providers/anthropic.d.ts +0 -5
  151. package/dist/providers/anthropic.d.ts.map +1 -1
  152. package/dist/providers/anthropic.js +29 -75
  153. package/dist/providers/anthropic.js.map +1 -1
  154. package/dist/providers/claude-cli-prompt.d.ts.map +1 -1
  155. package/dist/providers/claude-cli-prompt.js +22 -6
  156. package/dist/providers/claude-cli-prompt.js.map +1 -1
  157. package/dist/providers/claude-cli.d.ts.map +1 -1
  158. package/dist/providers/claude-cli.js +36 -142
  159. package/dist/providers/claude-cli.js.map +1 -1
  160. package/dist/providers/codex-cli.d.ts.map +1 -1
  161. package/dist/providers/codex-cli.js +148 -74
  162. package/dist/providers/codex-cli.js.map +1 -1
  163. package/dist/providers/google.d.ts.map +1 -1
  164. package/dist/providers/google.js +4 -2
  165. package/dist/providers/google.js.map +1 -1
  166. package/dist/providers/index.d.ts +13 -0
  167. package/dist/providers/index.d.ts.map +1 -1
  168. package/dist/providers/index.js.map +1 -1
  169. package/dist/providers/openai.d.ts.map +1 -1
  170. package/dist/providers/openai.js +27 -2
  171. package/dist/providers/openai.js.map +1 -1
  172. package/dist/runtime-context.d.ts +10 -0
  173. package/dist/runtime-context.d.ts.map +1 -0
  174. package/dist/runtime-context.js +30 -0
  175. package/dist/runtime-context.js.map +1 -0
  176. package/dist/storage-mode.d.ts +5 -0
  177. package/dist/storage-mode.d.ts.map +1 -0
  178. package/dist/storage-mode.js +21 -0
  179. package/dist/storage-mode.js.map +1 -0
  180. package/dist/subagent/queue.d.ts.map +1 -1
  181. package/dist/subagent/queue.js +1 -0
  182. package/dist/subagent/queue.js.map +1 -1
  183. package/dist/summarization-pipeline.d.ts +10 -0
  184. package/dist/summarization-pipeline.d.ts.map +1 -1
  185. package/dist/summarization-pipeline.js +147 -34
  186. package/dist/summarization-pipeline.js.map +1 -1
  187. package/dist/tool-permissions.d.ts +2 -0
  188. package/dist/tool-permissions.d.ts.map +1 -0
  189. package/dist/tool-permissions.js +25 -0
  190. package/dist/tool-permissions.js.map +1 -0
  191. package/dist/tools/analyze-image.js +2 -2
  192. package/dist/tools/analyze-image.js.map +1 -1
  193. package/dist/tools/edit-file.js +3 -3
  194. package/dist/tools/edit-file.js.map +1 -1
  195. package/dist/tools/index.d.ts +7 -8
  196. package/dist/tools/index.d.ts.map +1 -1
  197. package/dist/tools/index.js +106 -60
  198. package/dist/tools/index.js.map +1 -1
  199. package/dist/tools/list-directory.js +7 -4
  200. package/dist/tools/list-directory.js.map +1 -1
  201. package/dist/tools/read-file.js +3 -3
  202. package/dist/tools/read-file.js.map +1 -1
  203. package/dist/tools/run-command.js +3 -3
  204. package/dist/tools/run-command.js.map +1 -1
  205. package/dist/tools/sandbox.d.ts +10 -5
  206. package/dist/tools/sandbox.d.ts.map +1 -1
  207. package/dist/tools/sandbox.js +41 -13
  208. package/dist/tools/sandbox.js.map +1 -1
  209. package/dist/tools/search-codebase.js +2 -2
  210. package/dist/tools/search-codebase.js.map +1 -1
  211. package/dist/tools/search-local-memory.d.ts.map +1 -1
  212. package/dist/tools/search-local-memory.js +19 -8
  213. package/dist/tools/search-local-memory.js.map +1 -1
  214. package/dist/tools/search-memory.d.ts.map +1 -1
  215. package/dist/tools/search-memory.js +9 -3
  216. package/dist/tools/search-memory.js.map +1 -1
  217. package/dist/tools/spawn-subagent.d.ts.map +1 -1
  218. package/dist/tools/spawn-subagent.js +1 -0
  219. package/dist/tools/spawn-subagent.js.map +1 -1
  220. package/dist/tools/write-file.js +3 -3
  221. package/dist/tools/write-file.js.map +1 -1
  222. package/dist/types.d.ts +5 -0
  223. package/dist/types.d.ts.map +1 -1
  224. package/dist/types.js +0 -3
  225. package/dist/types.js.map +1 -1
  226. package/dist/verification/index.js +2 -2
  227. package/dist/verification/index.js.map +1 -1
  228. package/dist/wizard-state.d.ts.map +1 -1
  229. package/dist/wizard-state.js +16 -2
  230. package/dist/wizard-state.js.map +1 -1
  231. package/dist/wizard-support.d.ts +2 -2
  232. package/dist/wizard-support.d.ts.map +1 -1
  233. package/dist/wizard-support.js +88 -99
  234. package/dist/wizard-support.js.map +1 -1
  235. package/dist/workflow-engine.d.ts +9 -3
  236. package/dist/workflow-engine.d.ts.map +1 -1
  237. package/dist/workflow-engine.js +378 -82
  238. package/dist/workflow-engine.js.map +1 -1
  239. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,oCA+NC;AAlRD,kDAA0B;AAC1B,uCAAyB;AACzB,mDAAqC;AACrC,sCAAoE;AAEpE,kDAA0E;AAC1E,iDAAiD;AACjD,uCAAkD;AAClD,oCAA+C;AA2CxC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAE3D,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAE5B,wCAAwC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACtD,IAAI,QAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,wBAAe,yBAAyB,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;SAC1D,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAuB,CAAC;YAC5F,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAAkB,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,IAAI,GAAG;QACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;KAClD,CAAC;IACF,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAExE,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,IAAI,YAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,wBAAe,sBAAsB,EAAE;YAChE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;SAC1D,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAuB,CAAC;YAC5F,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,EAAkB,CAAC;IAClD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,YAAY,CAAC,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC;IAE1I,oEAAoE;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAExE,+CAA+C;IAC/C,MAAM,SAAS,GAAqB,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAuB;QACnF,MAAM,EAAE,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC5D,UAAU,EAAE,CAAC,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACnF,iBAAiB,EAAE,CAAC,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC7E,cAAc,EAAE,CAAC,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAoB,CAAC,CAAC,CAAC,SAAS;QACjF,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,iBAAiB,IAAI,0BAA0B;QAC5F,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,qEAAqE;IACrE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChF,MAAM,cAAc,GAAG,cAAc,EAAE,cAAc,KAAK,cAAc;eACnE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC;eACnI,CAAC,cAAc,EAAE,cAAc,KAAK,QAAQ,IAAI,cAAc,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE;gBACjF,IAAI,CAAC;oBAAC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;oBAAC,OAAO,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YACrI,CAAC,CAAC,EAAE,CAAC,CAAC;QAER,IAAI,cAAc,IAAI,QAAQ,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;YAE7F,mFAAmF;YACnF,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzB,OAAO,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,OAAO,CAAC,KAAK,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,MAAM,aAAa,GAAG,CAAC,OAAe,EAAmB,EAAE;gBACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC7B,EAAE,CAAC,QAAQ,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAmB,EAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9E,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;gBAClB,sFAAsF;gBACtF,yFAAyF;gBACzF,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC;gBAC5B,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;gBACnC,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC;gBACjD,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAEnB,oCAAoC;IACpC,MAAM,IAAI,GAAiB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,WAAW;QACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;KACzF,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAEnB,uCAAuC;IACvC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5E,gGAAgG;QAChG,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC;eACvD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;eAChG,SAAS,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,gBAAgB,GAAG,IAAA,qCAAsB,EAAC,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE;gBACpE,GAAG,QAAQ;gBACX,wGAAwG;gBACxG,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY;aACjI,CAAC,CAAC;YACH,yCAAyC;YACzC,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,gBAAgB,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;YAC5C,CAAC;YACD,IAAA,8BAAe,EAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,YAAY,cAAc,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,gBAAgB,GAAG,IAAA,qCAAsB,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAA,8BAAe,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,SAAS,cAAc,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAe,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvD,iDAAiD;IACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,IAAA,+BAAqB,EAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClE,2BAA2B;IAC3B,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,eAAe,CAAC,EAAE,KAAK,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,oBAAoB,SAAS,KAAK,CAAC,CAAC,CAAC;IAClI,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAiOA,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAo0B3F"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAgJA,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8vB3F"}
@@ -49,11 +49,10 @@ const service_mode_1 = require("../service-mode");
49
49
  const index_1 = require("../providers/index");
50
50
  const sync_cli_config_1 = require("../mcp/sync-cli-config");
51
51
  const agent_config_1 = require("../agent-config");
52
- const oauth_1 = require("../oauth");
52
+ // refreshOAuthToken removed — token refresh now handled per-request in message-loop.ts
53
53
  const local_db_1 = require("../local-db");
54
54
  const local_server_1 = require("../local-server");
55
55
  const data = __importStar(require("../local-data"));
56
- const default_tool_profile_1 = require("../default-tool-profile");
57
56
  const AUTH_SESSION_KEY = 'auth.session';
58
57
  const DESKTOP_PREFS_KEY = 'desktop.preferences';
59
58
  const WIZARD_PROFILE_KEY = 'wizard.profile';
@@ -79,37 +78,15 @@ function readLastInteractionAtMs() {
79
78
  const parsed = Date.parse(raw);
80
79
  return Number.isNaN(parsed) ? 0 : parsed;
81
80
  }
82
- /** Minimum hours between maintenance restarts to prevent restart loops */
83
- const MAINTENANCE_COOLDOWN_MS = 6 * 60 * 60 * 1000; // 6 hours
84
- const MAINTENANCE_RESTART_KEY = 'agent.last_maintenance_restart_at';
85
81
  function shouldRunNightlyRestart(now, lastInteractionAtMs, botManager) {
86
- // Use UTC 7-10 (midnight-3 AM PDT / 1-4 AM CST) as the maintenance window.
87
- // This is a broad late-night window for US timezones.
88
- const hour = now.getUTCHours();
89
- if (hour < 7 || hour >= 10)
82
+ const hour = now.getHours();
83
+ if (hour < 1 || hour >= 4)
90
84
  return false;
91
85
  if (botManager.isBusy())
92
86
  return false;
93
87
  if (!lastInteractionAtMs)
94
88
  return false;
95
- if ((now.getTime() - lastInteractionAtMs) < AGENT_IDLE_RESTART_MS)
96
- return false;
97
- // Cooldown: don't restart if we already did within the last 6 hours
98
- try {
99
- const lastRestart = data.getSetting(MAINTENANCE_RESTART_KEY);
100
- if (lastRestart) {
101
- const lastRestartMs = new Date(lastRestart).getTime();
102
- if (!isNaN(lastRestartMs) && (now.getTime() - lastRestartMs) < MAINTENANCE_COOLDOWN_MS)
103
- return false;
104
- }
105
- }
106
- catch { /* best effort */ }
107
- // Record this restart so we don't loop
108
- try {
109
- data.setSetting(MAINTENANCE_RESTART_KEY, now.toISOString());
110
- }
111
- catch { /* best effort */ }
112
- return true;
89
+ return (now.getTime() - lastInteractionAtMs) >= AGENT_IDLE_RESTART_MS;
113
90
  }
114
91
  function parseJson(value) {
115
92
  if (!value)
@@ -149,9 +126,9 @@ function loadDbRuntimeConfig() {
149
126
  projectDir,
150
127
  provider: row.provider,
151
128
  model: row.model,
152
- enabledTools: (0, default_tool_profile_1.normalizeEnabledTools)(parseJson(row.enabled_builtin_tools_json)),
129
+ enabledTools: parseJson(row.enabled_builtin_tools_json),
153
130
  enabledMcpTools: parseJson(row.enabled_mcp_tools_json),
154
- permissionMode: row.permission_mode || default_tool_profile_1.DEFAULT_PERMISSION_MODE,
131
+ permissionMode: row.permission_mode || 'autopilot',
155
132
  systemPrompt: row.final_prompt || undefined,
156
133
  agentDescription: row.purpose_md || undefined,
157
134
  createdAt: row.created_at,
@@ -196,54 +173,6 @@ function persistRuntimeProviderToken(providerId, token, refreshToken, expiresAt)
196
173
  oauthExpiresAt: expiresAt ?? existing.oauth_expires_at,
197
174
  });
198
175
  }
199
- async function syncOAuthProviderFromServer(authToken, providerConfig, useDbRuntime) {
200
- if (providerConfig.id.endsWith('-cli'))
201
- return { synced: false };
202
- const res = await fetch(`${config_1.FUNOLIO_API_URL}/api/v1/agent/config`, {
203
- headers: { Authorization: `Bearer ${authToken}` },
204
- });
205
- if (!res.ok)
206
- return { synced: false };
207
- const body = await res.json();
208
- const provider = (body.providers || []).find((p) => p.id === providerConfig.id && p.connectionType === 'oauth');
209
- if (!provider?.access_token)
210
- return { synced: false };
211
- const currentAccess = providerConfig.oauthToken || '';
212
- const currentRefresh = providerConfig.oauthRefreshToken || '';
213
- const currentExpiry = providerConfig.oauthExpiresAt || 0;
214
- const nextExpiry = provider.expires_at || 0;
215
- const changed = provider.access_token !== currentAccess
216
- || (provider.refresh_token || '') !== currentRefresh
217
- || nextExpiry > currentExpiry;
218
- if (!changed)
219
- return { synced: false };
220
- providerConfig.oauthToken = provider.access_token;
221
- if (provider.refresh_token)
222
- providerConfig.oauthRefreshToken = provider.refresh_token;
223
- if (provider.expires_at)
224
- providerConfig.oauthExpiresAt = provider.expires_at;
225
- if (useDbRuntime) {
226
- persistRuntimeProviderToken(providerConfig.id, provider.access_token, provider.refresh_token, provider.expires_at || null);
227
- }
228
- else {
229
- const freshConfig = (0, config_1.loadConfig)();
230
- const localProvider = freshConfig.providers?.find((p) => p.id === providerConfig.id);
231
- if (localProvider) {
232
- localProvider.oauthToken = provider.access_token;
233
- if (provider.refresh_token)
234
- localProvider.oauthRefreshToken = provider.refresh_token;
235
- if (provider.expires_at)
236
- localProvider.oauthExpiresAt = provider.expires_at;
237
- (0, config_1.saveConfig)(freshConfig);
238
- }
239
- }
240
- return {
241
- synced: true,
242
- token: provider.access_token,
243
- refreshToken: provider.refresh_token,
244
- expiresAt: provider.expires_at,
245
- };
246
- }
247
176
  async function startCommand(projectDir, options) {
248
177
  if (options.mode === 'windows-service') {
249
178
  process.env.LOCAL_FIRST_ENABLED = 'true';
@@ -379,6 +308,56 @@ async function startCommand(projectDir, options) {
379
308
  process.exit(1);
380
309
  }
381
310
  }
311
+ // Re-sync provider credentials from server (picks up web re-auth tokens)
312
+ if (config.providers?.some(p => p.authType === 'oauth')) {
313
+ try {
314
+ const res = await fetch(`${config_1.FUNOLIO_API_URL}/api/v1/agent/config`, {
315
+ headers: { Authorization: `Bearer ${auth.token}` },
316
+ });
317
+ if (res.ok) {
318
+ const serverConfig = await res.json();
319
+ if (serverConfig.providers) {
320
+ let updated = false;
321
+ for (const sp of serverConfig.providers) {
322
+ if (sp.connectionType !== 'oauth' || !sp.access_token)
323
+ continue;
324
+ const local = config.providers.find(p => p.id === sp.id);
325
+ if (!local || local.authType !== 'oauth')
326
+ continue;
327
+ // Only update if server has a different (newer) token
328
+ if (local.oauthToken !== sp.access_token) {
329
+ local.oauthToken = sp.access_token;
330
+ local.oauthRefreshToken = sp.refresh_token;
331
+ local.oauthExpiresAt = sp.expires_at;
332
+ updated = true;
333
+ console.log(chalk_1.default.green(`✓ Updated ${sp.id} OAuth token from server`));
334
+ }
335
+ }
336
+ if (updated) {
337
+ (0, config_1.saveConfig)(config);
338
+ // Also update agent config files on disk
339
+ for (const p of config.providers) {
340
+ if (p.authType !== 'oauth' || !p.oauthToken)
341
+ continue;
342
+ const { listAgents, loadAgentConfig: loadAC, saveAgentConfig: saveAC } = await Promise.resolve().then(() => __importStar(require('../agent-config')));
343
+ for (const agentName of listAgents()) {
344
+ const ac = loadAC(agentName);
345
+ if (ac && ac.provider === p.id && ac.oauthToken) {
346
+ ac.oauthToken = p.oauthToken;
347
+ ac.oauthRefreshToken = p.oauthRefreshToken;
348
+ ac.oauthExpiresAt = p.oauthExpiresAt;
349
+ saveAC(agentName, ac);
350
+ }
351
+ }
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ catch (err) {
358
+ console.log(chalk_1.default.gray(` Server config re-sync skipped: ${err.message}`));
359
+ }
360
+ }
382
361
  // Load agent-specific config if --agent was specified
383
362
  const agentLocalConfig = options.agent ? (0, agent_config_1.loadAgentConfig)(options.agent) : null;
384
363
  if (options.agent && !agentLocalConfig) {
@@ -395,9 +374,12 @@ async function startCommand(projectDir, options) {
395
374
  id: bot.id,
396
375
  name: bot.name,
397
376
  provider: bot.provider,
377
+ runtimeProvider: bot.runtimeProvider,
398
378
  model: bot.model,
379
+ runtimeModel: bot.runtimeModel,
380
+ accessMode: bot.accessMode,
399
381
  projectDir: '.',
400
- permissionMode: default_tool_profile_1.DEFAULT_PERMISSION_MODE,
382
+ permissionMode: 'autopilot',
401
383
  createdAt: new Date().toISOString(),
402
384
  }));
403
385
  if (!config.activeAgentId && config.agents.length > 0) {
@@ -409,9 +391,13 @@ async function startCommand(projectDir, options) {
409
391
  }
410
392
  // Resolve active agent from agents[] + activeAgentId FIRST (before dir resolution)
411
393
  let activeAgentConfig = null;
412
- let agentPermissionMode = default_tool_profile_1.DEFAULT_PERMISSION_MODE;
394
+ let agentPermissionMode = 'autopilot';
413
395
  let agentEnabledTools;
396
+ let agentEnabledMcpTools;
414
397
  let agentSystemPrompt;
398
+ let reportedProvider;
399
+ let reportedModel;
400
+ let reportedAccessMode;
415
401
  if (config.agents && config.agents.length > 0) {
416
402
  const activeId = config.activeAgentId;
417
403
  activeAgentConfig = (activeId
@@ -419,9 +405,13 @@ async function startCommand(projectDir, options) {
419
405
  : config.agents[0]) || null;
420
406
  if (activeAgentConfig) {
421
407
  console.log(chalk_1.default.blue(`Active agent: ${activeAgentConfig.name || activeAgentConfig.id}`));
422
- agentPermissionMode = activeAgentConfig.permissionMode || default_tool_profile_1.DEFAULT_PERMISSION_MODE;
423
- agentEnabledTools = (0, default_tool_profile_1.normalizeEnabledTools)(activeAgentConfig.enabledTools ?? activeAgentConfig.enabledMcpTools);
408
+ agentPermissionMode = activeAgentConfig.permissionMode || 'autopilot';
409
+ agentEnabledTools = activeAgentConfig.enabledTools;
410
+ agentEnabledMcpTools = activeAgentConfig.enabledMcpTools;
424
411
  agentSystemPrompt = activeAgentConfig.systemPrompt || activeAgentConfig.agentDescription;
412
+ reportedProvider = activeAgentConfig.provider;
413
+ reportedModel = activeAgentConfig.model;
414
+ reportedAccessMode = activeAgentConfig.accessMode;
425
415
  // Use agent's project dir if specified
426
416
  if (activeAgentConfig.projectDir && activeAgentConfig.projectDir !== '.') {
427
417
  projectDir = activeAgentConfig.projectDir;
@@ -445,7 +435,11 @@ async function startCommand(projectDir, options) {
445
435
  console.log('');
446
436
  }
447
437
  // Resolve active provider — prefer --agent local config, then agent-specific provider, then CLI flag
448
- const providerOverride = agentLocalConfig?.provider || activeAgentConfig?.provider || options.provider;
438
+ const providerOverride = agentLocalConfig?.runtimeProvider ||
439
+ activeAgentConfig?.runtimeProvider ||
440
+ agentLocalConfig?.provider ||
441
+ activeAgentConfig?.provider ||
442
+ options.provider;
449
443
  const activeProvider = (0, config_1.getProvider)(config, providerOverride);
450
444
  // Determine provider/model/apiKey from either providers[] or CLI flags/env
451
445
  let provider;
@@ -454,14 +448,32 @@ async function startCommand(projectDir, options) {
454
448
  let oauthToken;
455
449
  if (activeProvider) {
456
450
  provider = activeProvider.id;
457
- model = options.model || agentLocalConfig?.model || activeAgentConfig?.model || activeProvider.defaultModel;
451
+ model =
452
+ options.model ||
453
+ agentLocalConfig?.runtimeModel ||
454
+ activeAgentConfig?.runtimeModel ||
455
+ agentLocalConfig?.model ||
456
+ activeAgentConfig?.model ||
457
+ activeProvider.defaultModel;
458
458
  apiKey = options.apiKey || agentLocalConfig?.apiKey || activeProvider.apiKey || getEnvApiKey(provider);
459
459
  oauthToken = agentLocalConfig?.oauthToken || activeProvider.oauthToken;
460
460
  }
461
461
  else {
462
462
  // Fallback to CLI args / env detection (no providers configured)
463
- provider = agentLocalConfig?.provider || options.provider || detectProvider();
464
- model = agentLocalConfig?.model || options.model || defaultModel(provider);
463
+ provider =
464
+ agentLocalConfig?.runtimeProvider ||
465
+ activeAgentConfig?.runtimeProvider ||
466
+ agentLocalConfig?.provider ||
467
+ activeAgentConfig?.provider ||
468
+ options.provider ||
469
+ detectProvider();
470
+ model =
471
+ agentLocalConfig?.runtimeModel ||
472
+ activeAgentConfig?.runtimeModel ||
473
+ agentLocalConfig?.model ||
474
+ activeAgentConfig?.model ||
475
+ options.model ||
476
+ defaultModel(provider);
465
477
  apiKey = options.apiKey || agentLocalConfig?.apiKey || getEnvApiKey(provider);
466
478
  oauthToken = agentLocalConfig?.oauthToken;
467
479
  }
@@ -545,10 +557,6 @@ async function startCommand(projectDir, options) {
545
557
  console.log(chalk_1.default.green(`✓ Local DB ready: ${dbInfo.path}`));
546
558
  console.log(chalk_1.default.gray(` WAL mode: ${dbInfo.walMode}, tables: ${dbInfo.tableCount}, write: ${dbInfo.testWrite}, read: ${dbInfo.testRead}`));
547
559
  cleanupExpiredMessageActivityRows();
548
- const migratedProfiles = data.migrateAgentProfilesToDefaultToolProfile();
549
- if (migratedProfiles.updated > 0) {
550
- console.log(chalk_1.default.green(`✓ Migrated ${migratedProfiles.updated} agent profile(s) to default tool profile`));
551
- }
552
560
  if (isServiceMode) {
553
561
  (0, service_mode_1.emitEvent)('local_db', { status: 'ready', path: dbInfo.path, walMode: dbInfo.walMode });
554
562
  }
@@ -598,82 +606,10 @@ async function startCommand(projectDir, options) {
598
606
  authToken: auth.token,
599
607
  refreshUrl: `${config_1.FUNOLIO_API_URL}/api/v1/agent/auth/refresh`,
600
608
  });
601
- // Sync integration tokens from server BEFORE launching MCP servers.
602
- // MQTT token delivery is one-shot (at OAuth callback time). If the agent was
603
- // offline when the user connected Google, the tokens were lost. This fetch
604
- // ensures tokens are available locally so MCP servers get proper credentials.
605
- try {
606
- const authToken = (0, config_1.loadConfig)().auth?.token;
607
- if (authToken) {
608
- const tokenRes = await fetch(`${config_1.FUNOLIO_API_URL}/api/v1/google/tokens`, {
609
- headers: { Authorization: `Bearer ${authToken}` },
610
- });
611
- if (tokenRes.ok) {
612
- const tokenBody = await tokenRes.json();
613
- if (tokenBody.connected && tokenBody.tokens?.access_token) {
614
- const { handleIntegrationTokens } = await Promise.resolve().then(() => __importStar(require('../integration-tokens')));
615
- const expiresAt = tokenBody.tokens.expires_at ? new Date(tokenBody.tokens.expires_at) : null;
616
- const expiresInSec = expiresAt ? Math.max(0, Math.floor((expiresAt.getTime() - Date.now()) / 1000)) : null;
617
- handleIntegrationTokens({
618
- type: 'integration_tokens',
619
- integration: 'google',
620
- tokens: {
621
- access_token: tokenBody.tokens.access_token,
622
- refresh_token: tokenBody.tokens.refresh_token,
623
- expires_in: expiresInSec,
624
- scope: tokenBody.tokens.scope || '',
625
- },
626
- clientId: tokenBody.clientId || '',
627
- clientSecret: tokenBody.clientSecret || '',
628
- email: tokenBody.email,
629
- timestamp: Date.now(),
630
- });
631
- console.log(chalk_1.default.green(`✓ Synced Google integration tokens from server${tokenBody.email ? ` (${tokenBody.email})` : ''}`));
632
- }
633
- else {
634
- console.log(chalk_1.default.gray(' No Google integration connected on server'));
635
- }
636
- }
637
- }
638
- }
639
- catch (err) {
640
- console.warn(chalk_1.default.yellow(` [Integration] Token sync failed: ${err.message}`));
641
- }
642
609
  // Create and auto-launch MCP manager for persistent tool discovery
643
610
  const { MCPManager } = await Promise.resolve().then(() => __importStar(require('../mcp/manager')));
644
611
  const mcpManager = new MCPManager();
645
612
  await mcpManager.autoLaunch();
646
- // Sync MCP servers approved on the server but not yet launched locally
647
- try {
648
- const authToken = (0, config_1.loadConfig)().auth?.token;
649
- if (authToken) {
650
- const res = await fetch(`${config_1.FUNOLIO_API_URL}/api/v1/agent/mcp/installed?includeEnvVars=true`, {
651
- headers: { Authorization: `Bearer ${authToken}` },
652
- });
653
- if (res.ok) {
654
- const { servers: approvedServers } = await res.json();
655
- const running = new Set(mcpManager.getRunningServers());
656
- const { BUILTIN_REGISTRY } = await Promise.resolve().then(() => __importStar(require('../mcp/registry')));
657
- for (const srv of approvedServers) {
658
- if (srv.status === 'approved' && !running.has(srv.serverId)) {
659
- const entry = BUILTIN_REGISTRY.find((e) => e.id === srv.serverId);
660
- if (entry) {
661
- console.log(chalk_1.default.cyan(` 📦 Auto-launching approved MCP server: ${srv.serverId}`));
662
- try {
663
- await mcpManager.installAndLaunch(entry, srv.envVars || {}, true);
664
- }
665
- catch (err) {
666
- console.error(chalk_1.default.red(` ✗ Failed to launch ${srv.serverId}: ${err.message}`));
667
- }
668
- }
669
- }
670
- }
671
- }
672
- }
673
- }
674
- catch (err) {
675
- console.warn(chalk_1.default.yellow(` [MCP] Server-side sync failed: ${err.message}`));
676
- }
677
613
  const mcpServers = mcpManager.getRunningServers();
678
614
  if (mcpServers.length > 0) {
679
615
  console.log(chalk_1.default.green(` MCP servers running: ${mcpServers.join(', ')} (${mcpManager.getToolDefinitions().length} tools)`));
@@ -691,6 +627,7 @@ async function startCommand(projectDir, options) {
691
627
  defaultOauthExpiresAt: activeProvider?.oauthExpiresAt,
692
628
  permissionMode: agentPermissionMode,
693
629
  enabledTools: agentEnabledTools,
630
+ enabledMcpTools: agentEnabledMcpTools,
694
631
  systemPrompt: agentSystemPrompt,
695
632
  mcpManager,
696
633
  });
@@ -761,8 +698,9 @@ async function startCommand(projectDir, options) {
761
698
  tools: builtinToolNames,
762
699
  serverInfo,
763
700
  mcpTools: mcpToolNames,
764
- llmProvider: provider,
765
- llmModel: model,
701
+ llmProvider: reportedProvider || provider,
702
+ llmModel: reportedModel || model,
703
+ accessMode: reportedAccessMode,
766
704
  };
767
705
  fetch(`${config_1.FUNOLIO_API_URL}/api/v1/agent/status`, {
768
706
  method: 'POST',
@@ -870,114 +808,38 @@ async function startCommand(projectDir, options) {
870
808
  }
871
809
  }
872
810
  console.log(chalk_1.default.gray(' Waiting for commands...\n'));
873
- // Start OAuth token refresh timer if using OAuth
874
- const activeProviderConfig = activeProvider || config.providers?.[0];
875
- if (activeProviderConfig?.authType === 'oauth' && activeProviderConfig.oauthRefreshToken) {
876
- const REFRESH_CHECK_INTERVAL = 30 * 60 * 1000; // check every 30 min
877
- const REFRESH_BEFORE_EXPIRY = 10 * 60 * 1000; // refresh 10 min before expiry
878
- const checkAndRefresh = async () => {
879
- // Read the CURRENT refresh token from disk to avoid using stale in-memory tokens.
880
- // Anthropic refresh tokens are single-use — if another code path (e.g. token-refresh.ts
881
- // at startup) already consumed the token and wrote a new one, we must use the new one.
882
- const providerForRefresh = activeProviderConfig.id === 'codex-cli'
883
- ? 'openai'
884
- : activeProviderConfig.id === 'claude-cli'
885
- ? 'anthropic'
886
- : activeProviderConfig.id;
887
- // For Anthropic, delegate to the credential-reader + token-refresh.ts path
888
- // which reads from disk and handles single-use token rotation correctly.
889
- // This timer only handles non-Anthropic providers (OpenAI, Gemini) whose
890
- // refresh tokens are NOT single-use.
891
- if (providerForRefresh === 'anthropic') {
892
- // Skip — Anthropic refresh is handled by token-refresh.ts on-demand
893
- // (at startup and when auth resolution detects expiry).
894
- // Running a competing timer with single-use tokens causes race conditions.
895
- return;
896
- }
897
- const expiresAt = activeProviderConfig.oauthExpiresAt;
898
- // If we don't know when it expires, or it's expiring soon, refresh
899
- if (!expiresAt || (expiresAt - Date.now()) < REFRESH_BEFORE_EXPIRY) {
900
- console.log(chalk_1.default.gray('Refreshing OAuth token...'));
901
- const result = await (0, oauth_1.refreshOAuthToken)(providerForRefresh, activeProviderConfig.oauthRefreshToken);
902
- if (result) {
903
- activeProviderConfig.oauthToken = result.token;
904
- if (result.refreshToken)
905
- activeProviderConfig.oauthRefreshToken = result.refreshToken;
906
- if (result.expiresAt)
907
- activeProviderConfig.oauthExpiresAt = result.expiresAt;
908
- // Update the running bot manager's token
909
- botManager.updateDefaultToken(result.token);
910
- // Persist to config
911
- if (useDbRuntime) {
912
- persistRuntimeProviderToken(activeProviderConfig.id, result.token, result.refreshToken, result.expiresAt);
913
- }
914
- else {
915
- const freshConfig = (0, config_1.loadConfig)();
916
- const prov = freshConfig.providers?.find(p => p.id === activeProviderConfig.id);
917
- if (prov) {
918
- prov.oauthToken = result.token;
919
- if (result.refreshToken)
920
- prov.oauthRefreshToken = result.refreshToken;
921
- if (result.expiresAt)
922
- prov.oauthExpiresAt = result.expiresAt;
923
- (0, config_1.saveConfig)(freshConfig);
924
- }
925
- }
926
- console.log(chalk_1.default.green('✓ OAuth token refreshed'));
927
- }
928
- else {
929
- console.error(chalk_1.default.yellow('⚠ OAuth token refresh failed — token may expire soon'));
930
- }
931
- }
932
- };
933
- // Check immediately if close to expiry, then periodically
934
- checkAndRefresh().catch(() => { });
935
- setInterval(() => checkAndRefresh().catch(() => { }), REFRESH_CHECK_INTERVAL);
936
- // Server-canonical OAuth sync (Tier 1 browser auth)
937
- const SERVER_SYNC_INTERVAL = 30 * 60 * 1000;
938
- const syncFromServer = async () => {
811
+ // OAuth token refresh is handled per-request in message-loop.ts via ensureFreshToken()
812
+ // No background timer needed — this matches the pi-ai/Claude Code CLI pattern of
813
+ // refreshing lazily before each API call, avoiding race conditions on single-use refresh tokens
814
+ // Listen for integration tokens delivered from the web UI via MQTT
815
+ mqttClient.onIntegrationTokens(async (message) => {
816
+ const { handleIntegrationTokens } = require('../integration-tokens');
817
+ handleIntegrationTokens(message);
818
+ if (message.integration === 'google') {
939
819
  try {
940
- if (!auth?.token)
941
- return;
942
- const result = await syncOAuthProviderFromServer(auth.token, activeProviderConfig, useDbRuntime);
943
- if (result.synced && result.token) {
944
- botManager.updateDefaultToken(result.token);
945
- console.log(chalk_1.default.green(`✓ Synced updated ${activeProviderConfig.id} OAuth credentials from server`));
820
+ const restarted = await mcpManager.reloadIntegrationServers('google');
821
+ if (restarted.length > 0) {
822
+ console.log(chalk_1.default.green(`✓ Reloaded Google MCP server(s): ${restarted.join(', ')}`));
946
823
  }
947
824
  }
948
825
  catch (err) {
949
- console.log(chalk_1.default.gray(`Server OAuth sync skipped: ${err.message}`));
826
+ console.error(chalk_1.default.yellow(`⚠ Failed to reload Google MCP servers: ${err.message}`));
950
827
  }
951
- };
952
- syncFromServer().catch(() => { });
953
- setInterval(() => syncFromServer().catch(() => { }), SERVER_SYNC_INTERVAL);
954
- }
955
- // Listen for integration tokens delivered from the web UI via MQTT
956
- mqttClient.onIntegrationTokens((message) => {
957
- const { handleIntegrationTokens } = require('../integration-tokens');
958
- handleIntegrationTokens(message);
828
+ }
959
829
  });
960
830
  // Start listening for commands — BotManager routes to the right bot
961
831
  // Also handle MCP marketplace install/uninstall commands
962
- // Use the shared mcpManager from above so tools are available in the message loop
963
832
  mqttClient.onCommand(async (message) => {
964
833
  if (message.type === 'command' && message.action === 'mcp_install') {
965
- const { serverId, envVars, npmPackage, pipPackage } = message;
834
+ const { serverId, envVars } = message;
966
835
  console.log(chalk_1.default.cyan(`📦 Marketplace: installing MCP server "${serverId}"...`));
967
836
  try {
968
837
  const { BUILTIN_REGISTRY } = await Promise.resolve().then(() => __importStar(require('../mcp/registry')));
969
- const { MCPManager: MCPMgr } = await Promise.resolve().then(() => __importStar(require('../mcp/manager')));
970
838
  const entry = BUILTIN_REGISTRY.find((s) => s.id === serverId);
971
839
  if (!entry)
972
840
  throw new Error(`Unknown MCP server: ${serverId}`);
973
- // Pre-warm: download the npm package in background so first launch is fast
974
- if (entry.npmPackage) {
975
- MCPMgr.preWarmPackage(entry.npmPackage);
976
- }
977
841
  await mcpManager.installAndLaunch(entry, envVars || {}, true);
978
- const tools = mcpManager.getToolDefinitions()
979
- .filter((t) => t.serverId === serverId)
980
- .map((t) => t.name);
842
+ const tools = mcpManager.getServerInfo(serverId)?.tools.map((t) => t.name) || [];
981
843
  console.log(chalk_1.default.green(`✓ MCP server "${serverId}" installed (${tools.length} tools)`));
982
844
  await mqttClient.publishResult({
983
845
  commandId: message.id,
@@ -1002,7 +864,7 @@ async function startCommand(projectDir, options) {
1002
864
  const { serverId } = message;
1003
865
  console.log(chalk_1.default.cyan(`📦 Marketplace: uninstalling MCP server "${serverId}"...`));
1004
866
  try {
1005
- await mcpManager.stopServer(serverId);
867
+ await mcpManager.uninstallServer(serverId);
1006
868
  console.log(chalk_1.default.green(`✓ MCP server "${serverId}" uninstalled`));
1007
869
  await mqttClient.publishResult({
1008
870
  commandId: message.id,