@clinebot/core 0.0.37 → 0.0.38

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 (617) hide show
  1. package/README.md +11 -1
  2. package/dist/ClineCore.d.ts +18 -214
  3. package/dist/account/cline-account-service.d.ts +0 -1
  4. package/dist/account/index.d.ts +0 -1
  5. package/dist/account/rpc.d.ts +0 -1
  6. package/dist/account/types.d.ts +0 -1
  7. package/dist/auth/bounded-ttl-cache.d.ts +0 -1
  8. package/dist/auth/client.d.ts +0 -1
  9. package/dist/auth/cline.d.ts +0 -5
  10. package/dist/auth/codex.d.ts +0 -1
  11. package/dist/auth/oca.d.ts +0 -1
  12. package/dist/auth/server.d.ts +0 -1
  13. package/dist/auth/types.d.ts +0 -1
  14. package/dist/auth/utils.d.ts +0 -1
  15. package/dist/cline-core/automation.d.ts +34 -0
  16. package/dist/cline-core/runtime-services.d.ts +5 -0
  17. package/dist/cline-core/start-input.d.ts +10 -0
  18. package/dist/cline-core/telemetry.d.ts +10 -0
  19. package/dist/cline-core/types.d.ts +221 -0
  20. package/dist/cron/{cron-event-ingress.d.ts → events/cron-event-ingress.d.ts} +1 -2
  21. package/dist/cron/{cron-report-writer.d.ts → reports/cron-report-writer.d.ts} +1 -2
  22. package/dist/cron/{cron-materializer.d.ts → runner/cron-materializer.d.ts} +1 -2
  23. package/dist/cron/{cron-runner.d.ts → runner/cron-runner.d.ts} +6 -4
  24. package/dist/cron/{resource-limiter.d.ts → runner/resource-limiter.d.ts} +0 -1
  25. package/dist/cron/schedule/scheduler.d.ts +12 -0
  26. package/dist/cron/{cron-service.d.ts → service/cron-service.d.ts} +4 -5
  27. package/dist/cron/{schedule-command-service.d.ts → service/schedule-command-service.d.ts} +0 -1
  28. package/dist/cron/{schedule-service.d.ts → service/schedule-service.d.ts} +20 -22
  29. package/dist/cron/{cron-reconciler.d.ts → specs/cron-reconciler.d.ts} +1 -2
  30. package/dist/cron/{cron-spec-parser.d.ts → specs/cron-spec-parser.d.ts} +0 -1
  31. package/dist/cron/{cron-watcher.d.ts → specs/cron-watcher.d.ts} +0 -1
  32. package/dist/cron/{cron-schema.d.ts → store/cron-schema.d.ts} +0 -1
  33. package/dist/cron/{sqlite-cron-store.d.ts → store/sqlite-cron-store.d.ts} +12 -2
  34. package/dist/extensions/config/index.d.ts +4 -7
  35. package/dist/extensions/config/runtime-commands.d.ts +0 -1
  36. package/dist/extensions/config/skill-frontmatter-toggle.d.ts +11 -0
  37. package/dist/extensions/config/unified-config-file-watcher.d.ts +0 -1
  38. package/dist/extensions/config/user-instruction-config-loader.d.ts +0 -1
  39. package/dist/extensions/config/user-instruction-plugin.d.ts +25 -0
  40. package/dist/extensions/config/user-instruction-service.d.ts +23 -0
  41. package/dist/extensions/context/agentic-compaction.d.ts +0 -1
  42. package/dist/extensions/context/basic-compaction.d.ts +0 -1
  43. package/dist/extensions/context/compaction-shared.d.ts +0 -1
  44. package/dist/extensions/context/compaction.d.ts +0 -1
  45. package/dist/extensions/index.d.ts +0 -1
  46. package/dist/extensions/mcp/client.d.ts +0 -1
  47. package/dist/extensions/mcp/config-loader.d.ts +0 -1
  48. package/dist/extensions/mcp/index.d.ts +0 -1
  49. package/dist/extensions/mcp/manager.d.ts +0 -1
  50. package/dist/extensions/mcp/name-transform.d.ts +0 -1
  51. package/dist/extensions/mcp/policies.d.ts +0 -1
  52. package/dist/extensions/mcp/tools.d.ts +2 -3
  53. package/dist/extensions/mcp/types.d.ts +3 -4
  54. package/dist/extensions/plugin/plugin-config-loader.d.ts +0 -1
  55. package/dist/extensions/plugin/plugin-load-report.d.ts +0 -1
  56. package/dist/extensions/plugin/plugin-loader.d.ts +0 -1
  57. package/dist/extensions/plugin/plugin-module-import.d.ts +0 -1
  58. package/dist/extensions/plugin/plugin-sandbox.d.ts +0 -1
  59. package/dist/extensions/plugin/plugin-targeting.d.ts +0 -1
  60. package/dist/extensions/plugin-sandbox-bootstrap.js +1 -446
  61. package/dist/extensions/tools/constants.d.ts +0 -1
  62. package/dist/extensions/tools/definitions.d.ts +13 -14
  63. package/dist/extensions/tools/executors/apply-patch-parser.d.ts +0 -1
  64. package/dist/extensions/tools/executors/apply-patch.d.ts +0 -1
  65. package/dist/extensions/tools/executors/bash.d.ts +0 -1
  66. package/dist/extensions/tools/executors/editor.d.ts +0 -1
  67. package/dist/extensions/tools/executors/file-read.d.ts +0 -1
  68. package/dist/extensions/tools/executors/index.d.ts +0 -1
  69. package/dist/extensions/tools/executors/search.d.ts +0 -1
  70. package/dist/extensions/tools/executors/web-fetch.d.ts +0 -1
  71. package/dist/extensions/tools/helpers.d.ts +0 -1
  72. package/dist/extensions/tools/index.d.ts +2 -3
  73. package/dist/extensions/tools/model-tool-routing.d.ts +0 -1
  74. package/dist/extensions/tools/presets.d.ts +4 -5
  75. package/dist/extensions/tools/runtime.d.ts +0 -1
  76. package/dist/extensions/tools/schemas.d.ts +0 -1
  77. package/dist/extensions/tools/team/delegated-agent.d.ts +3 -4
  78. package/dist/extensions/tools/team/index.d.ts +0 -1
  79. package/dist/extensions/tools/team/multi-agent.d.ts +1 -2
  80. package/dist/extensions/tools/team/projections.d.ts +0 -1
  81. package/dist/extensions/tools/team/runtime.d.ts +0 -1
  82. package/dist/extensions/tools/team/spawn-agent-tool.d.ts +4 -5
  83. package/dist/extensions/tools/team/subagent-prompts.d.ts +0 -1
  84. package/dist/extensions/tools/team/team-tools.d.ts +7 -8
  85. package/dist/extensions/tools/types.d.ts +11 -12
  86. package/dist/hooks/checkpoint-hooks.d.ts +9 -2
  87. package/dist/hooks/hook-extension.d.ts +2 -0
  88. package/dist/{extensions/config/hooks-config-loader.d.ts → hooks/hook-file-config.d.ts} +1 -2
  89. package/dist/hooks/hook-file-hooks.d.ts +2 -2
  90. package/dist/hooks/index.d.ts +3 -1
  91. package/dist/hooks/subprocess-runner.d.ts +0 -1
  92. package/dist/hooks/subprocess.d.ts +0 -1
  93. package/dist/hub/{connect.d.ts → client/connect.d.ts} +1 -2
  94. package/dist/hub/{client.d.ts → client/index.d.ts} +41 -4
  95. package/dist/hub/{session-client.d.ts → client/session-client.d.ts} +41 -13
  96. package/dist/hub/{ui-client.d.ts → client/ui-client.d.ts} +1 -1
  97. package/dist/hub/daemon/entry.d.ts +1 -0
  98. package/dist/hub/daemon/entry.js +720 -0
  99. package/dist/hub/{daemon.d.ts → daemon/index.d.ts} +6 -3
  100. package/dist/hub/{runtime-handlers.d.ts → daemon/runtime-handlers.d.ts} +3 -2
  101. package/dist/hub/{start-shared-server.d.ts → daemon/start-shared-server.d.ts} +1 -2
  102. package/dist/hub/{defaults.d.ts → discovery/defaults.d.ts} +0 -1
  103. package/dist/hub/{discovery.d.ts → discovery/index.d.ts} +2 -1
  104. package/dist/hub/{workspace.d.ts → discovery/workspace.d.ts} +1 -2
  105. package/dist/hub/index.d.ts +28 -11
  106. package/dist/hub/index.js +484 -1061
  107. package/dist/hub/runtime-host/hub-runtime-host.d.ts +73 -0
  108. package/dist/{transports/remote.d.ts → hub/runtime-host/remote-runtime-host.d.ts} +1 -2
  109. package/dist/hub/{browser-websocket.d.ts → server/browser-websocket.d.ts} +1 -2
  110. package/dist/hub/{transport.d.ts → server/command-transport.d.ts} +0 -1
  111. package/dist/hub/server/handlers/approval-handlers.d.ts +17 -0
  112. package/dist/hub/server/handlers/capability-handlers.d.ts +12 -0
  113. package/dist/hub/server/handlers/client-handlers.d.ts +6 -0
  114. package/dist/hub/server/handlers/context.d.ts +56 -0
  115. package/dist/hub/server/handlers/run-handlers.d.ts +5 -0
  116. package/dist/hub/server/handlers/session-event-projector.d.ts +7 -0
  117. package/dist/hub/server/handlers/session-handlers.d.ts +20 -0
  118. package/dist/hub/server/hub-client-contributions.d.ts +19 -0
  119. package/dist/hub/server/hub-notifications.d.ts +7 -0
  120. package/dist/hub/server/hub-schedule-events.d.ts +2 -0
  121. package/dist/hub/server/hub-server-logging.d.ts +2 -0
  122. package/dist/hub/server/hub-server-options.d.ts +55 -0
  123. package/dist/hub/server/hub-server-transport.d.ts +34 -0
  124. package/dist/hub/server/hub-session-records.d.ts +8 -0
  125. package/dist/hub/server/hub-websocket-server.d.ts +6 -0
  126. package/dist/hub/server/index.d.ts +4 -0
  127. package/dist/hub/{native-transport.d.ts → server/native-transport.d.ts} +1 -2
  128. package/dist/index.d.ts +51 -41
  129. package/dist/index.js +214 -872
  130. package/dist/runtime/capabilities/index.d.ts +2 -0
  131. package/dist/runtime/capabilities/normalize-runtime-capabilities.d.ts +2 -0
  132. package/dist/runtime/capabilities/runtime-capabilities.d.ts +6 -0
  133. package/dist/runtime/config/agent-message-codec.d.ts +6 -0
  134. package/dist/runtime/{agent-runtime-config-builder.d.ts → config/agent-runtime-config-builder.d.ts} +12 -21
  135. package/dist/runtime/host/history.d.ts +18 -0
  136. package/dist/runtime/{host.d.ts → host/host.d.ts} +3 -4
  137. package/dist/runtime/host/local/agent-event-bridge.d.ts +29 -0
  138. package/dist/runtime/host/local/session-record.d.ts +6 -0
  139. package/dist/runtime/host/local/session-service-invoker.d.ts +4 -0
  140. package/dist/runtime/host/local/spawn-tool.d.ts +15 -0
  141. package/dist/runtime/host/local/user-files.d.ts +1 -0
  142. package/dist/runtime/host/local-runtime-host.d.ts +118 -0
  143. package/dist/{transports → runtime/host}/runtime-host-support.d.ts +3 -5
  144. package/dist/runtime/{runtime-host.d.ts → host/runtime-host.d.ts} +66 -31
  145. package/dist/runtime/{runtime-builder.d.ts → orchestration/runtime-builder.d.ts} +0 -1
  146. package/dist/runtime/{runtime-event-adapter.d.ts → orchestration/runtime-event-adapter.d.ts} +0 -1
  147. package/dist/runtime/{runtime-oauth-token-manager.d.ts → orchestration/runtime-oauth-token-manager.d.ts} +1 -2
  148. package/dist/runtime/{session-runtime-orchestrator.d.ts → orchestration/session-runtime-orchestrator.d.ts} +20 -63
  149. package/dist/runtime/{session-runtime.d.ts → orchestration/session-runtime.d.ts} +14 -12
  150. package/dist/runtime/{user-input-builder.d.ts → orchestration/user-input-builder.d.ts} +2 -11
  151. package/dist/runtime/{loop-detection.d.ts → safety/loop-detection.d.ts} +0 -1
  152. package/dist/runtime/{mistake-tracker.d.ts → safety/mistake-tracker.d.ts} +0 -1
  153. package/dist/runtime/{rules.d.ts → safety/rules.d.ts} +1 -2
  154. package/dist/runtime/{subprocess-sandbox.d.ts → tools/subprocess-sandbox.d.ts} +15 -1
  155. package/dist/runtime/{tool-approval.d.ts → tools/tool-approval.d.ts} +0 -1
  156. package/dist/runtime/turn-queue/pending-prompt-service.d.ts +64 -0
  157. package/dist/services/agent-events.d.ts +1 -2
  158. package/dist/services/config.d.ts +0 -1
  159. package/dist/services/global-settings.d.ts +27 -5
  160. package/dist/{llms → services/llms}/cline-recommended-models.d.ts +1 -2
  161. package/dist/{llms → services/llms}/configured-provider-registry.d.ts +0 -1
  162. package/dist/services/llms/handler-factory.d.ts +3 -0
  163. package/dist/{llms → services/llms}/provider-defaults.d.ts +2 -1
  164. package/dist/{llms → services/llms}/provider-settings.d.ts +5 -3
  165. package/dist/{llms → services/llms}/runtime-config.d.ts +0 -1
  166. package/dist/{llms → services/llms}/runtime-registry.d.ts +0 -1
  167. package/dist/{llms → services/llms}/runtime-types.d.ts +0 -1
  168. package/dist/services/local-runtime-bootstrap.d.ts +7 -9
  169. package/dist/services/plugin-tools.d.ts +0 -1
  170. package/dist/services/providers/local-provider-registry.d.ts +9 -10
  171. package/dist/services/providers/local-provider-service.d.ts +36 -3
  172. package/dist/services/providers/model-source.d.ts +3 -0
  173. package/dist/services/session-artifacts.d.ts +0 -1
  174. package/dist/services/session-data.d.ts +2 -3
  175. package/dist/services/session-telemetry.d.ts +0 -1
  176. package/dist/services/storage/file-team-store.d.ts +0 -1
  177. package/dist/services/storage/provider-settings-legacy-migration.d.ts +0 -1
  178. package/dist/services/storage/provider-settings-manager.d.ts +3 -4
  179. package/dist/services/storage/sqlite-session-store.d.ts +0 -1
  180. package/dist/services/storage/sqlite-team-store.d.ts +0 -1
  181. package/dist/services/storage/team-store.d.ts +0 -1
  182. package/dist/services/telemetry/ITelemetryAdapter.d.ts +0 -1
  183. package/dist/services/telemetry/OpenTelemetryAdapter.d.ts +0 -1
  184. package/dist/services/telemetry/OpenTelemetryProvider.d.ts +32 -1
  185. package/dist/services/telemetry/TelemetryLoggerSink.d.ts +0 -1
  186. package/dist/services/telemetry/TelemetryService.d.ts +0 -1
  187. package/dist/services/telemetry/core-events.d.ts +46 -3
  188. package/dist/services/telemetry/distinct-id.d.ts +0 -1
  189. package/dist/services/telemetry/index.d.ts +1 -2
  190. package/dist/services/telemetry/index.js +1 -0
  191. package/dist/services/usage.d.ts +10 -2
  192. package/dist/services/workspace/file-indexer.d.ts +0 -1
  193. package/dist/services/workspace/index.d.ts +0 -1
  194. package/dist/services/workspace/mention-enricher.d.ts +0 -1
  195. package/dist/{session → services/workspace}/workspace-manager.d.ts +0 -1
  196. package/dist/services/{workspace-manifest.d.ts → workspace/workspace-manifest.d.ts} +20 -5
  197. package/dist/services/workspace/workspace-telemetry.d.ts +18 -0
  198. package/dist/session/checkpoint-restore.d.ts +20 -0
  199. package/dist/session/{session-graph.d.ts → models/session-graph.d.ts} +2 -3
  200. package/dist/session/{session-manifest.d.ts → models/session-manifest.d.ts} +0 -1
  201. package/dist/session/{session-row.d.ts → models/session-row.d.ts} +2 -3
  202. package/dist/session/{file-session-service.d.ts → services/file-session-service.d.ts} +1 -2
  203. package/dist/session/{message-builder.d.ts → services/message-builder.d.ts} +7 -16
  204. package/dist/session/{persistence-service.d.ts → services/persistence-service.d.ts} +10 -11
  205. package/dist/session/{session-service.d.ts → services/session-service.d.ts} +4 -5
  206. package/dist/session/session-snapshot.d.ts +57 -0
  207. package/dist/session/session-versioning-service.d.ts +48 -0
  208. package/dist/session/{conversation-store.d.ts → stores/conversation-store.d.ts} +0 -1
  209. package/dist/session/{session-manifest-store.d.ts → stores/session-manifest-store.d.ts} +3 -4
  210. package/dist/session/{team-persistence-store.d.ts → stores/team-persistence-store.d.ts} +2 -3
  211. package/dist/session/team/index.d.ts +2 -0
  212. package/dist/session/{subagent-session-manager.d.ts → team/team-child-session-manager.d.ts} +7 -8
  213. package/dist/session/{session-team-coordination.d.ts → team/team-session-coordinator.d.ts} +3 -4
  214. package/dist/settings/index.d.ts +2 -0
  215. package/dist/settings/settings-service.d.ts +6 -0
  216. package/dist/settings/types.d.ts +42 -0
  217. package/dist/types/chat-schema.d.ts +24 -7
  218. package/dist/types/common.d.ts +0 -1
  219. package/dist/types/config.d.ts +2 -3
  220. package/dist/types/events.d.ts +8 -1
  221. package/dist/types/provider-settings.d.ts +2 -3
  222. package/dist/types/session.d.ts +22 -6
  223. package/dist/types/sessions.d.ts +0 -1
  224. package/dist/types/storage.d.ts +0 -1
  225. package/dist/types.d.ts +17 -14
  226. package/dist/version.d.ts +0 -1
  227. package/package.json +16 -12
  228. package/dist/ClineCore.d.ts.map +0 -1
  229. package/dist/account/cline-account-service.d.ts.map +0 -1
  230. package/dist/account/index.d.ts.map +0 -1
  231. package/dist/account/rpc.d.ts.map +0 -1
  232. package/dist/account/types.d.ts.map +0 -1
  233. package/dist/auth/bounded-ttl-cache.d.ts.map +0 -1
  234. package/dist/auth/client.d.ts.map +0 -1
  235. package/dist/auth/cline.d.ts.map +0 -1
  236. package/dist/auth/codex.d.ts.map +0 -1
  237. package/dist/auth/oca.d.ts.map +0 -1
  238. package/dist/auth/server.d.ts.map +0 -1
  239. package/dist/auth/types.d.ts.map +0 -1
  240. package/dist/auth/utils.d.ts.map +0 -1
  241. package/dist/cron/cron-event-ingress.d.ts.map +0 -1
  242. package/dist/cron/cron-materializer.d.ts.map +0 -1
  243. package/dist/cron/cron-reconciler.d.ts.map +0 -1
  244. package/dist/cron/cron-report-writer.d.ts.map +0 -1
  245. package/dist/cron/cron-runner.d.ts.map +0 -1
  246. package/dist/cron/cron-schema.d.ts.map +0 -1
  247. package/dist/cron/cron-service.d.ts.map +0 -1
  248. package/dist/cron/cron-spec-parser.d.ts.map +0 -1
  249. package/dist/cron/cron-watcher.d.ts.map +0 -1
  250. package/dist/cron/resource-limiter.d.ts.map +0 -1
  251. package/dist/cron/schedule-command-service.d.ts.map +0 -1
  252. package/dist/cron/schedule-service.d.ts.map +0 -1
  253. package/dist/cron/scheduler.d.ts +0 -68
  254. package/dist/cron/scheduler.d.ts.map +0 -1
  255. package/dist/cron/sqlite-cron-store.d.ts.map +0 -1
  256. package/dist/cron/sqlite-schedule-store.d.ts +0 -52
  257. package/dist/cron/sqlite-schedule-store.d.ts.map +0 -1
  258. package/dist/extensions/config/agent-config-loader.d.ts +0 -20
  259. package/dist/extensions/config/agent-config-loader.d.ts.map +0 -1
  260. package/dist/extensions/config/agent-config-parser.d.ts +0 -29
  261. package/dist/extensions/config/agent-config-parser.d.ts.map +0 -1
  262. package/dist/extensions/config/hooks-config-loader.d.ts.map +0 -1
  263. package/dist/extensions/config/index.d.ts.map +0 -1
  264. package/dist/extensions/config/runtime-commands.d.ts.map +0 -1
  265. package/dist/extensions/config/unified-config-file-watcher.d.ts.map +0 -1
  266. package/dist/extensions/config/user-instruction-config-loader.d.ts.map +0 -1
  267. package/dist/extensions/context/agentic-compaction.d.ts.map +0 -1
  268. package/dist/extensions/context/basic-compaction.d.ts.map +0 -1
  269. package/dist/extensions/context/compaction-shared.d.ts.map +0 -1
  270. package/dist/extensions/context/compaction.d.ts.map +0 -1
  271. package/dist/extensions/index.d.ts.map +0 -1
  272. package/dist/extensions/mcp/client.d.ts.map +0 -1
  273. package/dist/extensions/mcp/config-loader.d.ts.map +0 -1
  274. package/dist/extensions/mcp/index.d.ts.map +0 -1
  275. package/dist/extensions/mcp/manager.d.ts.map +0 -1
  276. package/dist/extensions/mcp/name-transform.d.ts.map +0 -1
  277. package/dist/extensions/mcp/policies.d.ts.map +0 -1
  278. package/dist/extensions/mcp/tools.d.ts.map +0 -1
  279. package/dist/extensions/mcp/types.d.ts.map +0 -1
  280. package/dist/extensions/plugin/plugin-config-loader.d.ts.map +0 -1
  281. package/dist/extensions/plugin/plugin-load-report.d.ts.map +0 -1
  282. package/dist/extensions/plugin/plugin-loader.d.ts.map +0 -1
  283. package/dist/extensions/plugin/plugin-module-import.d.ts.map +0 -1
  284. package/dist/extensions/plugin/plugin-sandbox.d.ts.map +0 -1
  285. package/dist/extensions/plugin/plugin-targeting.d.ts.map +0 -1
  286. package/dist/extensions/tools/constants.d.ts.map +0 -1
  287. package/dist/extensions/tools/definitions.d.ts.map +0 -1
  288. package/dist/extensions/tools/executors/apply-patch-parser.d.ts.map +0 -1
  289. package/dist/extensions/tools/executors/apply-patch.d.ts.map +0 -1
  290. package/dist/extensions/tools/executors/bash.d.ts.map +0 -1
  291. package/dist/extensions/tools/executors/editor.d.ts.map +0 -1
  292. package/dist/extensions/tools/executors/file-read.d.ts.map +0 -1
  293. package/dist/extensions/tools/executors/index.d.ts.map +0 -1
  294. package/dist/extensions/tools/executors/search.d.ts.map +0 -1
  295. package/dist/extensions/tools/executors/web-fetch.d.ts.map +0 -1
  296. package/dist/extensions/tools/helpers.d.ts.map +0 -1
  297. package/dist/extensions/tools/index.d.ts.map +0 -1
  298. package/dist/extensions/tools/model-tool-routing.d.ts.map +0 -1
  299. package/dist/extensions/tools/presets.d.ts.map +0 -1
  300. package/dist/extensions/tools/runtime.d.ts.map +0 -1
  301. package/dist/extensions/tools/schemas.d.ts.map +0 -1
  302. package/dist/extensions/tools/team/delegated-agent.d.ts.map +0 -1
  303. package/dist/extensions/tools/team/index.d.ts.map +0 -1
  304. package/dist/extensions/tools/team/multi-agent.d.ts.map +0 -1
  305. package/dist/extensions/tools/team/projections.d.ts.map +0 -1
  306. package/dist/extensions/tools/team/runtime.d.ts.map +0 -1
  307. package/dist/extensions/tools/team/spawn-agent-tool.d.ts.map +0 -1
  308. package/dist/extensions/tools/team/subagent-prompts.d.ts.map +0 -1
  309. package/dist/extensions/tools/team/team-tools.d.ts.map +0 -1
  310. package/dist/extensions/tools/types.d.ts.map +0 -1
  311. package/dist/hooks/checkpoint-hooks.d.ts.map +0 -1
  312. package/dist/hooks/hook-bridge.d.ts +0 -118
  313. package/dist/hooks/hook-bridge.d.ts.map +0 -1
  314. package/dist/hooks/hook-file-hooks.d.ts.map +0 -1
  315. package/dist/hooks/hook-registry.d.ts +0 -16
  316. package/dist/hooks/hook-registry.d.ts.map +0 -1
  317. package/dist/hooks/index.d.ts.map +0 -1
  318. package/dist/hooks/subprocess-runner.d.ts.map +0 -1
  319. package/dist/hooks/subprocess.d.ts.map +0 -1
  320. package/dist/hub/browser-websocket.d.ts.map +0 -1
  321. package/dist/hub/client.d.ts.map +0 -1
  322. package/dist/hub/connect.d.ts.map +0 -1
  323. package/dist/hub/daemon-entry.d.ts +0 -2
  324. package/dist/hub/daemon-entry.d.ts.map +0 -1
  325. package/dist/hub/daemon-entry.js +0 -1305
  326. package/dist/hub/daemon.d.ts.map +0 -1
  327. package/dist/hub/defaults.d.ts.map +0 -1
  328. package/dist/hub/discovery.d.ts.map +0 -1
  329. package/dist/hub/index.d.ts.map +0 -1
  330. package/dist/hub/native-transport.d.ts.map +0 -1
  331. package/dist/hub/runtime-handlers.d.ts.map +0 -1
  332. package/dist/hub/server.d.ts +0 -104
  333. package/dist/hub/server.d.ts.map +0 -1
  334. package/dist/hub/session-client.d.ts.map +0 -1
  335. package/dist/hub/start-shared-server.d.ts.map +0 -1
  336. package/dist/hub/transport.d.ts.map +0 -1
  337. package/dist/hub/ui-client.d.ts.map +0 -1
  338. package/dist/hub/workspace.d.ts.map +0 -1
  339. package/dist/index.d.ts.map +0 -1
  340. package/dist/llms/cline-recommended-models.d.ts.map +0 -1
  341. package/dist/llms/configured-provider-registry.d.ts.map +0 -1
  342. package/dist/llms/handler-factory.d.ts +0 -16
  343. package/dist/llms/handler-factory.d.ts.map +0 -1
  344. package/dist/llms/provider-defaults.d.ts.map +0 -1
  345. package/dist/llms/provider-settings.d.ts.map +0 -1
  346. package/dist/llms/runtime-config.d.ts.map +0 -1
  347. package/dist/llms/runtime-registry.d.ts.map +0 -1
  348. package/dist/llms/runtime-types.d.ts.map +0 -1
  349. package/dist/runtime/agent-config-adapter.d.ts +0 -148
  350. package/dist/runtime/agent-config-adapter.d.ts.map +0 -1
  351. package/dist/runtime/agent-runtime-config-builder.d.ts.map +0 -1
  352. package/dist/runtime/history.d.ts +0 -10
  353. package/dist/runtime/history.d.ts.map +0 -1
  354. package/dist/runtime/host.d.ts.map +0 -1
  355. package/dist/runtime/loop-detection.d.ts.map +0 -1
  356. package/dist/runtime/mistake-tracker.d.ts.map +0 -1
  357. package/dist/runtime/rules.d.ts.map +0 -1
  358. package/dist/runtime/runtime-builder.d.ts.map +0 -1
  359. package/dist/runtime/runtime-event-adapter.d.ts.map +0 -1
  360. package/dist/runtime/runtime-host.d.ts.map +0 -1
  361. package/dist/runtime/runtime-oauth-token-manager.d.ts.map +0 -1
  362. package/dist/runtime/session-runtime-orchestrator.d.ts.map +0 -1
  363. package/dist/runtime/session-runtime.d.ts.map +0 -1
  364. package/dist/runtime/subprocess-sandbox.d.ts.map +0 -1
  365. package/dist/runtime/tool-approval.d.ts.map +0 -1
  366. package/dist/runtime/user-input-builder.d.ts.map +0 -1
  367. package/dist/services/agent-events.d.ts.map +0 -1
  368. package/dist/services/config.d.ts.map +0 -1
  369. package/dist/services/global-settings.d.ts.map +0 -1
  370. package/dist/services/index.js +0 -28
  371. package/dist/services/local-runtime-bootstrap.d.ts.map +0 -1
  372. package/dist/services/plugin-tools.d.ts.map +0 -1
  373. package/dist/services/providers/local-provider-registry.d.ts.map +0 -1
  374. package/dist/services/providers/local-provider-service.d.ts.map +0 -1
  375. package/dist/services/session-artifacts.d.ts.map +0 -1
  376. package/dist/services/session-data.d.ts.map +0 -1
  377. package/dist/services/session-telemetry.d.ts.map +0 -1
  378. package/dist/services/storage/file-team-store.d.ts.map +0 -1
  379. package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +0 -1
  380. package/dist/services/storage/provider-settings-manager.d.ts.map +0 -1
  381. package/dist/services/storage/sqlite-session-store.d.ts.map +0 -1
  382. package/dist/services/storage/sqlite-team-store.d.ts.map +0 -1
  383. package/dist/services/storage/team-store.d.ts.map +0 -1
  384. package/dist/services/telemetry/ITelemetryAdapter.d.ts.map +0 -1
  385. package/dist/services/telemetry/OpenTelemetryAdapter.d.ts.map +0 -1
  386. package/dist/services/telemetry/OpenTelemetryProvider.d.ts.map +0 -1
  387. package/dist/services/telemetry/TelemetryLoggerSink.d.ts.map +0 -1
  388. package/dist/services/telemetry/TelemetryService.d.ts.map +0 -1
  389. package/dist/services/telemetry/core-events.d.ts.map +0 -1
  390. package/dist/services/telemetry/distinct-id.d.ts.map +0 -1
  391. package/dist/services/telemetry/index.d.ts.map +0 -1
  392. package/dist/services/usage.d.ts.map +0 -1
  393. package/dist/services/workspace/file-indexer.d.ts.map +0 -1
  394. package/dist/services/workspace/index.d.ts.map +0 -1
  395. package/dist/services/workspace/mention-enricher.d.ts.map +0 -1
  396. package/dist/services/workspace-manifest.d.ts.map +0 -1
  397. package/dist/session/conversation-store.d.ts.map +0 -1
  398. package/dist/session/file-session-service.d.ts.map +0 -1
  399. package/dist/session/message-builder.d.ts.map +0 -1
  400. package/dist/session/persistence-service.d.ts.map +0 -1
  401. package/dist/session/session-graph.d.ts.map +0 -1
  402. package/dist/session/session-manifest-store.d.ts.map +0 -1
  403. package/dist/session/session-manifest.d.ts.map +0 -1
  404. package/dist/session/session-row.d.ts.map +0 -1
  405. package/dist/session/session-service.d.ts.map +0 -1
  406. package/dist/session/session-team-coordination.d.ts.map +0 -1
  407. package/dist/session/subagent-session-manager.d.ts.map +0 -1
  408. package/dist/session/team-persistence-store.d.ts.map +0 -1
  409. package/dist/session/workspace-manager.d.ts.map +0 -1
  410. package/dist/transports/hub.d.ts +0 -58
  411. package/dist/transports/hub.d.ts.map +0 -1
  412. package/dist/transports/local.d.ts +0 -119
  413. package/dist/transports/local.d.ts.map +0 -1
  414. package/dist/transports/remote.d.ts.map +0 -1
  415. package/dist/transports/runtime-host-support.d.ts.map +0 -1
  416. package/dist/types/chat-schema.d.ts.map +0 -1
  417. package/dist/types/common.d.ts.map +0 -1
  418. package/dist/types/config.d.ts.map +0 -1
  419. package/dist/types/events.d.ts.map +0 -1
  420. package/dist/types/provider-settings.d.ts.map +0 -1
  421. package/dist/types/session.d.ts.map +0 -1
  422. package/dist/types/sessions.d.ts.map +0 -1
  423. package/dist/types/storage.d.ts.map +0 -1
  424. package/dist/types.d.ts.map +0 -1
  425. package/dist/version.d.ts.map +0 -1
  426. package/src/ClineCore.ts +0 -1026
  427. package/src/account/cline-account-service.ts +0 -338
  428. package/src/account/index.ts +0 -24
  429. package/src/account/rpc.ts +0 -185
  430. package/src/account/types.ts +0 -108
  431. package/src/auth/bounded-ttl-cache.ts +0 -53
  432. package/src/auth/client.ts +0 -46
  433. package/src/auth/cline.ts +0 -724
  434. package/src/auth/codex.ts +0 -491
  435. package/src/auth/oca.ts +0 -588
  436. package/src/auth/server.ts +0 -265
  437. package/src/auth/types.ts +0 -110
  438. package/src/auth/utils.ts +0 -247
  439. package/src/cron/cron-event-ingress.ts +0 -357
  440. package/src/cron/cron-materializer.ts +0 -97
  441. package/src/cron/cron-reconciler.ts +0 -241
  442. package/src/cron/cron-report-writer.ts +0 -153
  443. package/src/cron/cron-runner.ts +0 -495
  444. package/src/cron/cron-schema.ts +0 -127
  445. package/src/cron/cron-service.ts +0 -163
  446. package/src/cron/cron-spec-parser.ts +0 -489
  447. package/src/cron/cron-watcher.ts +0 -102
  448. package/src/cron/index.ts +0 -15
  449. package/src/cron/resource-limiter.ts +0 -46
  450. package/src/cron/schedule-command-service.ts +0 -193
  451. package/src/cron/schedule-service.ts +0 -703
  452. package/src/cron/scheduler.ts +0 -772
  453. package/src/cron/sqlite-cron-store.ts +0 -1286
  454. package/src/cron/sqlite-schedule-store.ts +0 -708
  455. package/src/extensions/config/agent-config-loader.ts +0 -114
  456. package/src/extensions/config/agent-config-parser.ts +0 -198
  457. package/src/extensions/config/hooks-config-loader.ts +0 -117
  458. package/src/extensions/config/index.ts +0 -77
  459. package/src/extensions/config/runtime-commands.ts +0 -82
  460. package/src/extensions/config/unified-config-file-watcher.ts +0 -496
  461. package/src/extensions/config/user-instruction-config-loader.ts +0 -549
  462. package/src/extensions/context/agentic-compaction.ts +0 -131
  463. package/src/extensions/context/basic-compaction.ts +0 -300
  464. package/src/extensions/context/compaction-shared.ts +0 -459
  465. package/src/extensions/context/compaction.ts +0 -226
  466. package/src/extensions/index.ts +0 -18
  467. package/src/extensions/mcp/client.ts +0 -420
  468. package/src/extensions/mcp/config-loader.ts +0 -219
  469. package/src/extensions/mcp/index.ts +0 -42
  470. package/src/extensions/mcp/manager.ts +0 -260
  471. package/src/extensions/mcp/name-transform.ts +0 -33
  472. package/src/extensions/mcp/policies.ts +0 -47
  473. package/src/extensions/mcp/tools.ts +0 -47
  474. package/src/extensions/mcp/types.ts +0 -116
  475. package/src/extensions/plugin/plugin-config-loader.ts +0 -140
  476. package/src/extensions/plugin/plugin-load-report.ts +0 -20
  477. package/src/extensions/plugin/plugin-loader.ts +0 -220
  478. package/src/extensions/plugin/plugin-module-import.ts +0 -276
  479. package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +0 -662
  480. package/src/extensions/plugin/plugin-sandbox.ts +0 -586
  481. package/src/extensions/plugin/plugin-targeting.ts +0 -32
  482. package/src/extensions/tools/constants.ts +0 -37
  483. package/src/extensions/tools/definitions.ts +0 -738
  484. package/src/extensions/tools/executors/apply-patch-parser.ts +0 -520
  485. package/src/extensions/tools/executors/apply-patch.ts +0 -348
  486. package/src/extensions/tools/executors/bash.ts +0 -207
  487. package/src/extensions/tools/executors/editor.ts +0 -220
  488. package/src/extensions/tools/executors/file-read.ts +0 -135
  489. package/src/extensions/tools/executors/index.ts +0 -87
  490. package/src/extensions/tools/executors/search.ts +0 -470
  491. package/src/extensions/tools/executors/web-fetch.ts +0 -259
  492. package/src/extensions/tools/helpers.ts +0 -154
  493. package/src/extensions/tools/index.ts +0 -183
  494. package/src/extensions/tools/model-tool-routing.ts +0 -134
  495. package/src/extensions/tools/presets.ts +0 -190
  496. package/src/extensions/tools/runtime.ts +0 -261
  497. package/src/extensions/tools/schemas.ts +0 -343
  498. package/src/extensions/tools/team/delegated-agent.ts +0 -136
  499. package/src/extensions/tools/team/index.ts +0 -5
  500. package/src/extensions/tools/team/multi-agent.ts +0 -1845
  501. package/src/extensions/tools/team/projections.ts +0 -283
  502. package/src/extensions/tools/team/runtime.ts +0 -54
  503. package/src/extensions/tools/team/spawn-agent-tool.ts +0 -201
  504. package/src/extensions/tools/team/subagent-prompts.ts +0 -41
  505. package/src/extensions/tools/team/team-tools.ts +0 -902
  506. package/src/extensions/tools/types.ts +0 -354
  507. package/src/hooks/checkpoint-hooks.ts +0 -238
  508. package/src/hooks/hook-bridge.ts +0 -489
  509. package/src/hooks/hook-file-hooks.ts +0 -934
  510. package/src/hooks/hook-registry.ts +0 -257
  511. package/src/hooks/index.ts +0 -18
  512. package/src/hooks/subprocess-runner.ts +0 -196
  513. package/src/hooks/subprocess.ts +0 -469
  514. package/src/hub/browser-websocket.ts +0 -159
  515. package/src/hub/client.ts +0 -633
  516. package/src/hub/connect.ts +0 -156
  517. package/src/hub/daemon-entry.ts +0 -122
  518. package/src/hub/daemon.ts +0 -284
  519. package/src/hub/defaults.ts +0 -70
  520. package/src/hub/discovery.ts +0 -247
  521. package/src/hub/index.ts +0 -14
  522. package/src/hub/native-transport.ts +0 -31
  523. package/src/hub/runtime-handlers.ts +0 -141
  524. package/src/hub/server.ts +0 -2317
  525. package/src/hub/session-client.ts +0 -502
  526. package/src/hub/start-shared-server.ts +0 -61
  527. package/src/hub/transport.ts +0 -14
  528. package/src/hub/ui-client.ts +0 -126
  529. package/src/hub/workspace.ts +0 -19
  530. package/src/index.ts +0 -688
  531. package/src/llms/cline-recommended-models.ts +0 -167
  532. package/src/llms/configured-provider-registry.ts +0 -193
  533. package/src/llms/handler-factory.ts +0 -56
  534. package/src/llms/provider-defaults.ts +0 -653
  535. package/src/llms/provider-settings.ts +0 -310
  536. package/src/llms/runtime-config.ts +0 -43
  537. package/src/llms/runtime-registry.ts +0 -172
  538. package/src/llms/runtime-types.ts +0 -121
  539. package/src/runtime/agent-config-adapter.ts +0 -636
  540. package/src/runtime/agent-runtime-config-builder.ts +0 -205
  541. package/src/runtime/error-feedback.ts +0 -142
  542. package/src/runtime/history.ts +0 -374
  543. package/src/runtime/host.ts +0 -222
  544. package/src/runtime/index.ts +0 -23
  545. package/src/runtime/loop-detection.ts +0 -162
  546. package/src/runtime/mistake-tracker.ts +0 -221
  547. package/src/runtime/rules.ts +0 -49
  548. package/src/runtime/runtime-builder.ts +0 -814
  549. package/src/runtime/runtime-event-adapter.ts +0 -412
  550. package/src/runtime/runtime-host.ts +0 -250
  551. package/src/runtime/runtime-oauth-token-manager.ts +0 -268
  552. package/src/runtime/session-runtime-orchestrator.ts +0 -1253
  553. package/src/runtime/session-runtime.ts +0 -69
  554. package/src/runtime/subprocess-sandbox.ts +0 -255
  555. package/src/runtime/tool-approval.ts +0 -102
  556. package/src/runtime/user-input-builder.ts +0 -167
  557. package/src/services/agent-events.ts +0 -256
  558. package/src/services/config.ts +0 -5
  559. package/src/services/global-settings.ts +0 -122
  560. package/src/services/local-runtime-bootstrap.ts +0 -424
  561. package/src/services/plugin-tools.ts +0 -86
  562. package/src/services/providers/local-provider-registry.ts +0 -456
  563. package/src/services/providers/local-provider-service.ts +0 -772
  564. package/src/services/session-artifacts.ts +0 -138
  565. package/src/services/session-data.ts +0 -398
  566. package/src/services/session-telemetry.ts +0 -89
  567. package/src/services/storage/artifact-store.ts +0 -1
  568. package/src/services/storage/file-team-store.ts +0 -250
  569. package/src/services/storage/index.ts +0 -11
  570. package/src/services/storage/provider-settings-legacy-migration.ts +0 -789
  571. package/src/services/storage/provider-settings-manager.ts +0 -167
  572. package/src/services/storage/session-store.ts +0 -1
  573. package/src/services/storage/sqlite-session-store.ts +0 -270
  574. package/src/services/storage/sqlite-team-store.ts +0 -537
  575. package/src/services/storage/team-store.ts +0 -36
  576. package/src/services/telemetry/ITelemetryAdapter.ts +0 -94
  577. package/src/services/telemetry/OpenTelemetryAdapter.ts +0 -348
  578. package/src/services/telemetry/OpenTelemetryProvider.ts +0 -415
  579. package/src/services/telemetry/TelemetryLoggerSink.ts +0 -121
  580. package/src/services/telemetry/TelemetryService.ts +0 -139
  581. package/src/services/telemetry/core-events.ts +0 -400
  582. package/src/services/telemetry/distinct-id.ts +0 -58
  583. package/src/services/telemetry/index.ts +0 -20
  584. package/src/services/usage.ts +0 -32
  585. package/src/services/workspace/file-indexer.ts +0 -351
  586. package/src/services/workspace/index.ts +0 -7
  587. package/src/services/workspace/mention-enricher.ts +0 -122
  588. package/src/services/workspace-manifest.ts +0 -72
  589. package/src/session/conversation-store.ts +0 -77
  590. package/src/session/file-session-service.ts +0 -282
  591. package/src/session/index.ts +0 -32
  592. package/src/session/message-builder.ts +0 -941
  593. package/src/session/persistence-service.ts +0 -559
  594. package/src/session/session-graph.ts +0 -92
  595. package/src/session/session-manifest-store.ts +0 -158
  596. package/src/session/session-manifest.ts +0 -29
  597. package/src/session/session-row.ts +0 -199
  598. package/src/session/session-service.ts +0 -324
  599. package/src/session/session-team-coordination.ts +0 -240
  600. package/src/session/subagent-session-manager.ts +0 -397
  601. package/src/session/team-persistence-store.ts +0 -176
  602. package/src/session/workspace-manager.ts +0 -100
  603. package/src/transports/hub.ts +0 -1081
  604. package/src/transports/local.ts +0 -1826
  605. package/src/transports/remote.ts +0 -27
  606. package/src/transports/runtime-host-support.ts +0 -140
  607. package/src/types/chat-schema.ts +0 -81
  608. package/src/types/common.ts +0 -26
  609. package/src/types/config.ts +0 -220
  610. package/src/types/events.ts +0 -80
  611. package/src/types/index.ts +0 -26
  612. package/src/types/provider-settings.ts +0 -54
  613. package/src/types/session.ts +0 -111
  614. package/src/types/sessions.ts +0 -37
  615. package/src/types/storage.ts +0 -56
  616. package/src/types.ts +0 -167
  617. package/src/version.ts +0 -3
@@ -1,789 +0,0 @@
1
- import { existsSync, readFileSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import * as LlmsModels from "@clinebot/llms";
4
- import { resolveClineDataDir } from "@clinebot/shared/storage";
5
- import {
6
- emptyStoredProviderSettings,
7
- type ProviderSettings,
8
- ProviderSettingsSchemaTyped as ProviderSettingsSchema,
9
- } from "../../types/provider-settings";
10
- import {
11
- readModelsFileSync,
12
- type StoredModelsFile,
13
- writeModelsFileSync,
14
- } from "../providers/local-provider-registry";
15
- import type { ProviderSettingsManager } from "./provider-settings-manager";
16
-
17
- type LegacyMode = "plan" | "act";
18
-
19
- interface LegacyGlobalState {
20
- mode?: LegacyMode;
21
- planModeApiProvider?: string;
22
- actModeApiProvider?: string;
23
- planModeApiModelId?: string;
24
- actModeApiModelId?: string;
25
- planModeReasoningEffort?: string;
26
- actModeReasoningEffort?: string;
27
- planModeThinkingBudgetTokens?: number;
28
- actModeThinkingBudgetTokens?: number;
29
- geminiPlanModeThinkingLevel?: string;
30
- geminiActModeThinkingLevel?: string;
31
- anthropicBaseUrl?: string;
32
- openAiBaseUrl?: string;
33
- ollamaBaseUrl?: string;
34
- lmStudioBaseUrl?: string;
35
- liteLlmBaseUrl?: string;
36
- geminiBaseUrl?: string;
37
- requestyBaseUrl?: string;
38
- asksageApiUrl?: string;
39
- difyBaseUrl?: string;
40
- ocaBaseUrl?: string;
41
- aihubmixBaseUrl?: string;
42
- openAiHeaders?: Record<string, string>;
43
- requestTimeoutMs?: number;
44
- awsRegion?: string;
45
- awsAuthentication?: "iam" | "api-key" | "profile";
46
- awsUseProfile?: boolean;
47
- awsProfile?: string;
48
- awsUseCrossRegionInference?: boolean;
49
- awsUseGlobalInference?: boolean;
50
- awsBedrockUsePromptCache?: boolean;
51
- awsBedrockEndpoint?: string;
52
- planModeAwsBedrockCustomModelBaseId?: string;
53
- actModeAwsBedrockCustomModelBaseId?: string;
54
- vertexProjectId?: string;
55
- vertexRegion?: string;
56
- azureApiVersion?: string;
57
- azureIdentity?: boolean;
58
- sapAiCoreTokenUrl?: string;
59
- sapAiCoreBaseUrl?: string;
60
- sapAiResourceGroup?: string;
61
- sapAiCoreUseOrchestrationMode?: boolean;
62
- ocaMode?: "internal" | "external";
63
- qwenApiLine?: "china" | "international";
64
- moonshotApiLine?: "china" | "international";
65
- zaiApiLine?: "china" | "international";
66
- minimaxApiLine?: "china" | "international";
67
- planModeOpenRouterModelId?: string;
68
- actModeOpenRouterModelId?: string;
69
- planModeClineModelId?: string;
70
- actModeClineModelId?: string;
71
- planModeOpenAiModelId?: string;
72
- actModeOpenAiModelId?: string;
73
- planModeOllamaModelId?: string;
74
- actModeOllamaModelId?: string;
75
- planModeLmStudioModelId?: string;
76
- actModeLmStudioModelId?: string;
77
- planModeLiteLlmModelId?: string;
78
- actModeLiteLlmModelId?: string;
79
- planModeRequestyModelId?: string;
80
- actModeRequestyModelId?: string;
81
- planModeTogetherModelId?: string;
82
- actModeTogetherModelId?: string;
83
- planModeFireworksModelId?: string;
84
- actModeFireworksModelId?: string;
85
- planModeSapAiCoreModelId?: string;
86
- actModeSapAiCoreModelId?: string;
87
- planModeSapAiCoreDeploymentId?: string;
88
- actModeSapAiCoreDeploymentId?: string;
89
- planModeGroqModelId?: string;
90
- actModeGroqModelId?: string;
91
- planModeBasetenModelId?: string;
92
- actModeBasetenModelId?: string;
93
- planModeHuggingFaceModelId?: string;
94
- actModeHuggingFaceModelId?: string;
95
- planModeHuaweiCloudMaasModelId?: string;
96
- actModeHuaweiCloudMaasModelId?: string;
97
- planModeOcaModelId?: string;
98
- actModeOcaModelId?: string;
99
- planModeAihubmixModelId?: string;
100
- actModeAihubmixModelId?: string;
101
- planModeHicapModelId?: string;
102
- actModeHicapModelId?: string;
103
- planModeNousResearchModelId?: string;
104
- actModeNousResearchModelId?: string;
105
- planModeVercelAiGatewayModelId?: string;
106
- actModeVercelAiGatewayModelId?: string;
107
- }
108
-
109
- interface LegacySecrets {
110
- apiKey?: string;
111
- clineApiKey?: string;
112
- "cline:clineAccountId"?: string;
113
- clineAccountId?: string;
114
- openRouterApiKey?: string;
115
- awsAccessKey?: string;
116
- awsSecretKey?: string;
117
- awsSessionToken?: string;
118
- awsBedrockApiKey?: string;
119
- openAiApiKey?: string;
120
- geminiApiKey?: string;
121
- openAiNativeApiKey?: string;
122
- ollamaApiKey?: string;
123
- deepSeekApiKey?: string;
124
- requestyApiKey?: string;
125
- togetherApiKey?: string;
126
- fireworksApiKey?: string;
127
- qwenApiKey?: string;
128
- doubaoApiKey?: string;
129
- mistralApiKey?: string;
130
- liteLlmApiKey?: string;
131
- asksageApiKey?: string;
132
- xaiApiKey?: string;
133
- moonshotApiKey?: string;
134
- zaiApiKey?: string;
135
- huggingFaceApiKey?: string;
136
- nebiusApiKey?: string;
137
- sambanovaApiKey?: string;
138
- cerebrasApiKey?: string;
139
- sapAiCoreClientId?: string;
140
- sapAiCoreClientSecret?: string;
141
- groqApiKey?: string;
142
- huaweiCloudMaasApiKey?: string;
143
- basetenApiKey?: string;
144
- vercelAiGatewayApiKey?: string;
145
- difyApiKey?: string;
146
- minimaxApiKey?: string;
147
- hicapApiKey?: string;
148
- aihubmixApiKey?: string;
149
- nousResearchApiKey?: string;
150
- ocaApiKey?: string;
151
- ocaRefreshToken?: string;
152
- "openai-codex-oauth-credentials"?: string;
153
- }
154
-
155
- interface LegacyProviderStorage {
156
- globalState: LegacyGlobalState;
157
- secrets: LegacySecrets;
158
- }
159
-
160
- const LEGACY_OPENAI_COMPATIBLE_PROVIDER_ID = "openai";
161
-
162
- export interface MigrateLegacyProviderSettingsOptions {
163
- providerSettingsManager: ProviderSettingsManager;
164
- dataDir?: string;
165
- globalStatePath?: string;
166
- secretsPath?: string;
167
- }
168
-
169
- export interface MigrateLegacyProviderSettingsResult {
170
- migrated: boolean;
171
- providerCount: number;
172
- lastUsedProvider?: string;
173
- }
174
-
175
- export type LegacyClineUserInfo = {
176
- idToken: string;
177
- expiresAt: number;
178
- refreshToken: string;
179
- userInfo: {
180
- id: string;
181
- email: string;
182
- displayName: string;
183
- termsAcceptedAt: string;
184
- clineBenchConsent: boolean;
185
- createdAt: string;
186
- updatedAt: string;
187
- };
188
- provider: string;
189
- startedAt: number;
190
- };
191
-
192
- /**
193
- * Resolves legacy Cline account auth data from the raw `cline:clineAccountId`
194
- * secret string into the auth fields used by `ProviderSettings`.
195
- *
196
- * Returns `undefined` when the input is missing, empty, whitespace-only, or
197
- * unparseable JSON.
198
- */
199
- export function resolveLegacyClineAuth(
200
- rawAccountData: string | undefined,
201
- ): ProviderSettings["auth"] | undefined {
202
- const trimmed = rawAccountData?.trim();
203
- if (!trimmed) {
204
- return undefined;
205
- }
206
- try {
207
- const data = JSON.parse(trimmed) as LegacyClineUserInfo;
208
- if (!data) {
209
- return undefined;
210
- }
211
- return {
212
- accessToken: data.idToken,
213
- refreshToken: data.refreshToken,
214
- expiresAt: data.expiresAt,
215
- accountId: data.userInfo?.id,
216
- };
217
- } catch {
218
- return undefined;
219
- }
220
- }
221
-
222
- function trimNonEmpty(value: string | undefined): string | undefined {
223
- const trimmed = value?.trim();
224
- return trimmed ? trimmed : undefined;
225
- }
226
-
227
- function readJsonObject<T extends object>(filePath: string): T | undefined {
228
- if (!existsSync(filePath)) {
229
- return undefined;
230
- }
231
- try {
232
- const raw = readFileSync(filePath, "utf8");
233
- const parsed = JSON.parse(raw) as unknown;
234
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
235
- return parsed as T;
236
- }
237
- } catch {
238
- // Invalid legacy file should not block startup.
239
- }
240
- return undefined;
241
- }
242
-
243
- function resolveLegacyStorage(
244
- options: MigrateLegacyProviderSettingsOptions,
245
- ): LegacyProviderStorage | undefined {
246
- const dataDir = options.dataDir ?? resolveClineDataDir();
247
- const globalStatePath =
248
- options.globalStatePath ?? join(dataDir, "globalState.json");
249
- const secretsPath = options.secretsPath ?? join(dataDir, "secrets.json");
250
- const globalState = readJsonObject<LegacyGlobalState>(globalStatePath);
251
- const secrets = readJsonObject<LegacySecrets>(secretsPath);
252
- if (!globalState && !secrets) {
253
- return undefined;
254
- }
255
- return {
256
- globalState: globalState ?? {},
257
- secrets: secrets ?? {},
258
- };
259
- }
260
-
261
- function isOfficialOpenAiBaseUrl(baseUrl: string): boolean {
262
- try {
263
- const url = new URL(baseUrl);
264
- const hostname = url.hostname.toLowerCase();
265
- return (
266
- hostname === "api.openai.com" ||
267
- hostname.endsWith(".openai.azure.com") ||
268
- hostname.endsWith(".services.ai.azure.com")
269
- );
270
- } catch {
271
- return false;
272
- }
273
- }
274
-
275
- function shouldMigrateLegacyOpenAiAsCustomProvider(
276
- legacyGlobalState: LegacyGlobalState,
277
- ): boolean {
278
- const baseUrl = trimNonEmpty(legacyGlobalState.openAiBaseUrl);
279
- if (!baseUrl) {
280
- return false;
281
- }
282
- if (legacyGlobalState.azureApiVersion || legacyGlobalState.azureIdentity) {
283
- return false;
284
- }
285
- return !isOfficialOpenAiBaseUrl(baseUrl);
286
- }
287
-
288
- function resolveMigratedProviderId(
289
- providerId: string,
290
- legacyGlobalState: LegacyGlobalState,
291
- ): string {
292
- if (
293
- providerId === "openai" &&
294
- shouldMigrateLegacyOpenAiAsCustomProvider(legacyGlobalState)
295
- ) {
296
- return LEGACY_OPENAI_COMPATIBLE_PROVIDER_ID;
297
- }
298
- return providerId;
299
- }
300
-
301
- function resolveModelForProvider(
302
- legacy: LegacyGlobalState,
303
- providerId: string,
304
- mode: LegacyMode,
305
- activeProviderForMode: string | undefined,
306
- ): string | undefined {
307
- const modePrefix = mode === "plan" ? "planMode" : "actMode";
308
- const fallbackModel =
309
- providerId === activeProviderForMode
310
- ? trimNonEmpty(
311
- mode === "plan"
312
- ? legacy.planModeApiModelId
313
- : legacy.actModeApiModelId,
314
- )
315
- : undefined;
316
- const providerModelKeyById: Record<string, keyof LegacyGlobalState> = {
317
- openrouter: `${modePrefix}OpenRouterModelId` as keyof LegacyGlobalState,
318
- cline: `${modePrefix}ClineModelId` as keyof LegacyGlobalState,
319
- openai: `${modePrefix}OpenAiModelId` as keyof LegacyGlobalState,
320
- ollama: `${modePrefix}OllamaModelId` as keyof LegacyGlobalState,
321
- lmstudio: `${modePrefix}LmStudioModelId` as keyof LegacyGlobalState,
322
- litellm: `${modePrefix}LiteLlmModelId` as keyof LegacyGlobalState,
323
- requesty: `${modePrefix}RequestyModelId` as keyof LegacyGlobalState,
324
- together: `${modePrefix}TogetherModelId` as keyof LegacyGlobalState,
325
- fireworks: `${modePrefix}FireworksModelId` as keyof LegacyGlobalState,
326
- sapaicore: `${modePrefix}SapAiCoreModelId` as keyof LegacyGlobalState,
327
- groq: `${modePrefix}GroqModelId` as keyof LegacyGlobalState,
328
- baseten: `${modePrefix}BasetenModelId` as keyof LegacyGlobalState,
329
- huggingface: `${modePrefix}HuggingFaceModelId` as keyof LegacyGlobalState,
330
- "huawei-cloud-maas":
331
- `${modePrefix}HuaweiCloudMaasModelId` as keyof LegacyGlobalState,
332
- oca: `${modePrefix}OcaModelId` as keyof LegacyGlobalState,
333
- aihubmix: `${modePrefix}AihubmixModelId` as keyof LegacyGlobalState,
334
- hicap: `${modePrefix}HicapModelId` as keyof LegacyGlobalState,
335
- nousResearch: `${modePrefix}NousResearchModelId` as keyof LegacyGlobalState,
336
- "vercel-ai-gateway":
337
- `${modePrefix}VercelAiGatewayModelId` as keyof LegacyGlobalState,
338
- };
339
- const providerModelKey = providerModelKeyById[providerId];
340
- const providerModel = providerModelKey
341
- ? trimNonEmpty(
342
- typeof legacy[providerModelKey] === "string"
343
- ? (legacy[providerModelKey] as string)
344
- : undefined,
345
- )
346
- : undefined;
347
- return providerModel ?? fallbackModel;
348
- }
349
-
350
- function resolveReasoning(
351
- legacy: LegacyGlobalState,
352
- providerId: string,
353
- mode: LegacyMode,
354
- ): ProviderSettings["reasoning"] | undefined {
355
- const effortCandidate =
356
- mode === "plan"
357
- ? legacy.planModeReasoningEffort
358
- : legacy.actModeReasoningEffort;
359
- const geminiLevel =
360
- mode === "plan"
361
- ? legacy.geminiPlanModeThinkingLevel
362
- : legacy.geminiActModeThinkingLevel;
363
- const budgetTokens =
364
- mode === "plan"
365
- ? legacy.planModeThinkingBudgetTokens
366
- : legacy.actModeThinkingBudgetTokens;
367
- const rawEffort =
368
- (providerId === "gemini" ? geminiLevel : undefined) ?? effortCandidate;
369
- const effort =
370
- rawEffort === "none" ||
371
- rawEffort === "low" ||
372
- rawEffort === "medium" ||
373
- rawEffort === "high"
374
- ? rawEffort
375
- : undefined;
376
- const normalizedBudget =
377
- typeof budgetTokens === "number" &&
378
- Number.isInteger(budgetTokens) &&
379
- budgetTokens > 0
380
- ? budgetTokens
381
- : undefined;
382
- if (!effort && normalizedBudget === undefined) {
383
- return undefined;
384
- }
385
- return {
386
- ...(effort ? { effort } : {}),
387
- ...(normalizedBudget !== undefined
388
- ? { budgetTokens: normalizedBudget }
389
- : {}),
390
- };
391
- }
392
-
393
- function resolveLegacyCodexAuth(
394
- legacySecrets: LegacySecrets,
395
- ): Pick<ProviderSettings, "apiKey" | "auth"> | undefined {
396
- const raw = legacySecrets["openai-codex-oauth-credentials"];
397
- if (!raw) {
398
- return undefined;
399
- }
400
- try {
401
- const parsed = JSON.parse(raw) as {
402
- access_token?: string;
403
- refresh_token?: string;
404
- accountId?: string;
405
- };
406
- const access = trimNonEmpty(parsed.access_token);
407
- const refresh = trimNonEmpty(parsed.refresh_token);
408
- const accountId = trimNonEmpty(parsed.accountId);
409
- if (!access && !refresh && !accountId) {
410
- return undefined;
411
- }
412
- return {
413
- ...(access ? { apiKey: access } : {}),
414
- auth: {
415
- ...(access ? { accessToken: access } : {}),
416
- ...(refresh ? { refreshToken: refresh } : {}),
417
- ...(accountId ? { accountId } : {}),
418
- },
419
- };
420
- } catch {
421
- return undefined;
422
- }
423
- }
424
-
425
- function getDefaultModelForProvider(providerId: string): string | undefined {
426
- const builtInModels = LlmsModels.getGeneratedModelsForProvider(providerId);
427
- const firstModelId = Object.keys(builtInModels)[0];
428
- return firstModelId ?? undefined;
429
- }
430
-
431
- function buildLegacyProviderSettings(
432
- providerId: string,
433
- legacyGlobalState: LegacyGlobalState,
434
- legacySecrets: LegacySecrets,
435
- mode: LegacyMode,
436
- ): ProviderSettings | undefined {
437
- const targetProviderId = resolveMigratedProviderId(
438
- providerId,
439
- legacyGlobalState,
440
- );
441
- const activeProviderForMode = trimNonEmpty(
442
- mode === "plan"
443
- ? legacyGlobalState.planModeApiProvider
444
- : legacyGlobalState.actModeApiProvider,
445
- );
446
- const model =
447
- resolveModelForProvider(
448
- legacyGlobalState,
449
- providerId,
450
- mode,
451
- activeProviderForMode,
452
- ) ?? getDefaultModelForProvider(targetProviderId);
453
- const reasoning = resolveReasoning(legacyGlobalState, targetProviderId, mode);
454
- const timeout =
455
- typeof legacyGlobalState.requestTimeoutMs === "number" &&
456
- Number.isInteger(legacyGlobalState.requestTimeoutMs) &&
457
- legacyGlobalState.requestTimeoutMs > 0
458
- ? legacyGlobalState.requestTimeoutMs
459
- : undefined;
460
-
461
- const secretByProvider: Record<string, string | undefined> = {
462
- anthropic: legacySecrets.apiKey,
463
- cline: legacySecrets.clineApiKey,
464
- openai: legacySecrets.openAiApiKey,
465
- "openai-native": legacySecrets.openAiNativeApiKey,
466
- openrouter: legacySecrets.openRouterApiKey,
467
- bedrock: legacySecrets.awsBedrockApiKey,
468
- gemini: legacySecrets.geminiApiKey,
469
- ollama: legacySecrets.ollamaApiKey,
470
- deepseek: legacySecrets.deepSeekApiKey,
471
- requesty: legacySecrets.requestyApiKey,
472
- together: legacySecrets.togetherApiKey,
473
- fireworks: legacySecrets.fireworksApiKey,
474
- qwen: legacySecrets.qwenApiKey,
475
- doubao: legacySecrets.doubaoApiKey,
476
- mistral: legacySecrets.mistralApiKey,
477
- litellm: legacySecrets.liteLlmApiKey,
478
- asksage: legacySecrets.asksageApiKey,
479
- xai: legacySecrets.xaiApiKey,
480
- moonshot: legacySecrets.moonshotApiKey,
481
- zai: legacySecrets.zaiApiKey,
482
- huggingface: legacySecrets.huggingFaceApiKey,
483
- nebius: legacySecrets.nebiusApiKey,
484
- sambanova: legacySecrets.sambanovaApiKey,
485
- cerebras: legacySecrets.cerebrasApiKey,
486
- groq: legacySecrets.groqApiKey,
487
- "huawei-cloud-maas": legacySecrets.huaweiCloudMaasApiKey,
488
- baseten: legacySecrets.basetenApiKey,
489
- "vercel-ai-gateway": legacySecrets.vercelAiGatewayApiKey,
490
- dify: legacySecrets.difyApiKey,
491
- minimax: legacySecrets.minimaxApiKey,
492
- hicap: legacySecrets.hicapApiKey,
493
- aihubmix: legacySecrets.aihubmixApiKey,
494
- nousResearch: legacySecrets.nousResearchApiKey,
495
- oca: legacySecrets.ocaApiKey,
496
- sapaicore: legacySecrets.sapAiCoreClientId,
497
- };
498
-
499
- const providerSpecific: Partial<ProviderSettings> = {};
500
- if (providerId === "openai-codex") {
501
- Object.assign(providerSpecific, resolveLegacyCodexAuth(legacySecrets));
502
- }
503
- if (providerId === "cline") {
504
- try {
505
- const legacyAuthString = trimNonEmpty(
506
- legacySecrets["cline:clineAccountId"],
507
- );
508
-
509
- if (legacyAuthString) {
510
- providerSpecific.auth = {
511
- ...(providerSpecific.auth ?? {}),
512
- ...resolveLegacyClineAuth(legacyAuthString),
513
- };
514
- }
515
- } catch {
516
- // Failed to parse stored cline auth data
517
- }
518
- }
519
- if (providerId === "openai" && legacyGlobalState.openAiHeaders) {
520
- providerSpecific.headers = legacyGlobalState.openAiHeaders;
521
- }
522
- if (providerId === "bedrock") {
523
- providerSpecific.aws = {
524
- accessKey: trimNonEmpty(legacySecrets.awsAccessKey),
525
- secretKey: trimNonEmpty(legacySecrets.awsSecretKey),
526
- sessionToken: trimNonEmpty(legacySecrets.awsSessionToken),
527
- region: trimNonEmpty(legacyGlobalState.awsRegion),
528
- authentication: legacyGlobalState.awsAuthentication,
529
- profile: legacyGlobalState.awsUseProfile
530
- ? trimNonEmpty(legacyGlobalState.awsProfile)
531
- : undefined,
532
- usePromptCache: legacyGlobalState.awsBedrockUsePromptCache,
533
- useCrossRegionInference: legacyGlobalState.awsUseCrossRegionInference,
534
- useGlobalInference: legacyGlobalState.awsUseGlobalInference,
535
- endpoint: trimNonEmpty(legacyGlobalState.awsBedrockEndpoint),
536
- customModelBaseId: trimNonEmpty(
537
- mode === "plan"
538
- ? legacyGlobalState.planModeAwsBedrockCustomModelBaseId
539
- : legacyGlobalState.actModeAwsBedrockCustomModelBaseId,
540
- ),
541
- };
542
- }
543
- if (providerId === "vertex") {
544
- providerSpecific.gcp = {
545
- projectId: trimNonEmpty(legacyGlobalState.vertexProjectId),
546
- region: trimNonEmpty(legacyGlobalState.vertexRegion),
547
- };
548
- }
549
- if (
550
- providerId === "openai" &&
551
- (legacyGlobalState.azureApiVersion ||
552
- legacyGlobalState.azureIdentity !== undefined)
553
- ) {
554
- providerSpecific.azure = {
555
- apiVersion: trimNonEmpty(legacyGlobalState.azureApiVersion),
556
- useIdentity: legacyGlobalState.azureIdentity,
557
- };
558
- }
559
- if (providerId === "sapaicore") {
560
- providerSpecific.sap = {
561
- clientId: trimNonEmpty(legacySecrets.sapAiCoreClientId),
562
- clientSecret: trimNonEmpty(legacySecrets.sapAiCoreClientSecret),
563
- tokenUrl: trimNonEmpty(legacyGlobalState.sapAiCoreTokenUrl),
564
- resourceGroup: trimNonEmpty(legacyGlobalState.sapAiResourceGroup),
565
- deploymentId: trimNonEmpty(
566
- mode === "plan"
567
- ? legacyGlobalState.planModeSapAiCoreDeploymentId
568
- : legacyGlobalState.actModeSapAiCoreDeploymentId,
569
- ),
570
- useOrchestrationMode: legacyGlobalState.sapAiCoreUseOrchestrationMode,
571
- };
572
- }
573
- if (providerId === "oca") {
574
- providerSpecific.oca = {
575
- mode: legacyGlobalState.ocaMode,
576
- };
577
- const refreshToken = trimNonEmpty(legacySecrets.ocaRefreshToken);
578
- if (refreshToken) {
579
- providerSpecific.auth = {
580
- ...(providerSpecific.auth ?? {}),
581
- refreshToken,
582
- };
583
- }
584
- }
585
- if (providerId === "qwen") {
586
- providerSpecific.apiLine = legacyGlobalState.qwenApiLine;
587
- }
588
- if (providerId === "moonshot") {
589
- providerSpecific.apiLine = legacyGlobalState.moonshotApiLine;
590
- }
591
- if (providerId === "zai") {
592
- providerSpecific.apiLine = legacyGlobalState.zaiApiLine;
593
- }
594
- if (providerId === "minimax") {
595
- providerSpecific.apiLine = legacyGlobalState.minimaxApiLine;
596
- }
597
-
598
- const baseUrlByProvider: Record<string, string | undefined> = {
599
- anthropic: legacyGlobalState.anthropicBaseUrl,
600
- openai: legacyGlobalState.openAiBaseUrl,
601
- ollama: legacyGlobalState.ollamaBaseUrl,
602
- lmstudio: legacyGlobalState.lmStudioBaseUrl,
603
- litellm: legacyGlobalState.liteLlmBaseUrl,
604
- gemini: legacyGlobalState.geminiBaseUrl,
605
- requesty: legacyGlobalState.requestyBaseUrl,
606
- asksage: legacyGlobalState.asksageApiUrl,
607
- dify: legacyGlobalState.difyBaseUrl,
608
- oca: legacyGlobalState.ocaBaseUrl,
609
- aihubmix: legacyGlobalState.aihubmixBaseUrl,
610
- sapaicore: legacyGlobalState.sapAiCoreBaseUrl,
611
- };
612
-
613
- const apiKey = trimNonEmpty(secretByProvider[providerId]);
614
- const baseUrl = trimNonEmpty(baseUrlByProvider[providerId]);
615
-
616
- const settings: ProviderSettings = {
617
- provider: targetProviderId as ProviderSettings["provider"],
618
- ...(apiKey ? { apiKey } : {}),
619
- ...(model ? { model } : {}),
620
- ...(baseUrl ? { baseUrl } : {}),
621
- ...(reasoning ? { reasoning } : {}),
622
- ...(timeout ? { timeout } : {}),
623
- ...providerSpecific,
624
- };
625
- const parsed = ProviderSettingsSchema.safeParse(settings);
626
- if (!parsed.success) {
627
- return undefined;
628
- }
629
- const hasNonProviderFields =
630
- Object.keys(settings).filter((key) => key !== "provider").length > 0;
631
- return hasNonProviderFields ? parsed.data : undefined;
632
- }
633
-
634
- function resolveLegacyCustomProviderRegistration(
635
- providerId: string,
636
- settings: ProviderSettings,
637
- ): StoredModelsFile["providers"][string] | undefined {
638
- if (providerId !== LEGACY_OPENAI_COMPATIBLE_PROVIDER_ID) {
639
- return undefined;
640
- }
641
- if (!settings.baseUrl || !settings.model) {
642
- return undefined;
643
- }
644
- return {
645
- provider: {
646
- name: "OpenAI Compatible",
647
- baseUrl: settings.baseUrl,
648
- defaultModelId: settings.model,
649
- },
650
- models: {
651
- [settings.model]: {
652
- id: settings.model,
653
- name: settings.model,
654
- },
655
- },
656
- };
657
- }
658
-
659
- function collectCandidateProviderIds(
660
- legacyGlobalState: LegacyGlobalState,
661
- legacySecrets: LegacySecrets,
662
- ): Set<string> {
663
- const candidates = new Set<string>();
664
- for (const maybeProvider of [
665
- legacyGlobalState.actModeApiProvider,
666
- legacyGlobalState.planModeApiProvider,
667
- ]) {
668
- const provider = trimNonEmpty(maybeProvider);
669
- if (provider) {
670
- candidates.add(provider);
671
- }
672
- }
673
- if (trimNonEmpty(legacySecrets.apiKey)) candidates.add("anthropic");
674
- if (trimNonEmpty(legacySecrets.openRouterApiKey))
675
- candidates.add("openrouter");
676
- if (trimNonEmpty(legacySecrets.openAiApiKey)) candidates.add("openai");
677
- if (trimNonEmpty(legacySecrets.openAiNativeApiKey))
678
- candidates.add("openai-native");
679
- if (trimNonEmpty(legacySecrets["openai-codex-oauth-credentials"]))
680
- candidates.add("openai-codex");
681
- if (trimNonEmpty(legacySecrets.geminiApiKey)) candidates.add("gemini");
682
- if (trimNonEmpty(legacySecrets.ollamaApiKey)) candidates.add("ollama");
683
- if (
684
- trimNonEmpty(legacySecrets.awsAccessKey) ||
685
- trimNonEmpty(legacySecrets.awsBedrockApiKey)
686
- )
687
- candidates.add("bedrock");
688
- if (
689
- trimNonEmpty(legacyGlobalState.vertexProjectId) ||
690
- trimNonEmpty(legacyGlobalState.vertexRegion)
691
- ) {
692
- candidates.add("vertex");
693
- }
694
- if (trimNonEmpty(legacySecrets.clineApiKey)) candidates.add("cline");
695
- if (trimNonEmpty(legacySecrets.ocaApiKey)) candidates.add("oca");
696
- return candidates;
697
- }
698
-
699
- export function migrateLegacyProviderSettings(
700
- options: MigrateLegacyProviderSettingsOptions,
701
- ): MigrateLegacyProviderSettingsResult {
702
- const existing = options.providerSettingsManager.read();
703
- const legacyStorage = resolveLegacyStorage(options);
704
- if (!legacyStorage) {
705
- return {
706
- migrated: false,
707
- providerCount: Object.keys(existing.providers).length,
708
- lastUsedProvider: existing.lastUsedProvider,
709
- };
710
- }
711
-
712
- const { globalState, secrets } = legacyStorage;
713
- const mode: LegacyMode = globalState.mode === "plan" ? "plan" : "act";
714
- const candidates = collectCandidateProviderIds(globalState, secrets);
715
- const next = emptyStoredProviderSettings();
716
- next.providers = { ...existing.providers };
717
- next.lastUsedProvider = existing.lastUsedProvider;
718
- const now = new Date().toISOString();
719
- let addedProviderCount = 0;
720
- const modelsPath = join(
721
- dirname(options.providerSettingsManager.getFilePath()),
722
- "models.json",
723
- );
724
- const modelsState = readModelsFileSync(modelsPath);
725
- let addedCustomProviderCount = 0;
726
-
727
- for (const legacyProviderId of candidates) {
728
- const providerId = resolveMigratedProviderId(legacyProviderId, globalState);
729
- if (next.providers[providerId]) {
730
- continue;
731
- }
732
- const settings = buildLegacyProviderSettings(
733
- legacyProviderId,
734
- globalState,
735
- secrets,
736
- mode,
737
- );
738
- if (!settings) {
739
- continue;
740
- }
741
- next.providers[providerId] = {
742
- settings,
743
- updatedAt: now,
744
- tokenSource: "migration",
745
- };
746
- addedProviderCount += 1;
747
- const registration = resolveLegacyCustomProviderRegistration(
748
- providerId,
749
- settings,
750
- );
751
- if (registration && !modelsState.providers[providerId]) {
752
- modelsState.providers[providerId] = registration;
753
- addedCustomProviderCount += 1;
754
- }
755
- }
756
-
757
- if (addedProviderCount === 0 && addedCustomProviderCount === 0) {
758
- return {
759
- migrated: false,
760
- providerCount: Object.keys(existing.providers).length,
761
- lastUsedProvider: existing.lastUsedProvider,
762
- };
763
- }
764
-
765
- const preferredProvider = trimNonEmpty(
766
- mode === "plan"
767
- ? globalState.planModeApiProvider
768
- : globalState.actModeApiProvider,
769
- );
770
- const migratedPreferredProvider = preferredProvider
771
- ? resolveMigratedProviderId(preferredProvider, globalState)
772
- : undefined;
773
- next.lastUsedProvider =
774
- existing.lastUsedProvider ??
775
- (migratedPreferredProvider && next.providers[migratedPreferredProvider]
776
- ? migratedPreferredProvider
777
- : Object.keys(next.providers)[0]);
778
-
779
- options.providerSettingsManager.write(next);
780
- if (addedCustomProviderCount > 0) {
781
- writeModelsFileSync(modelsPath, modelsState);
782
- }
783
-
784
- return {
785
- migrated: addedProviderCount > 0 || addedCustomProviderCount > 0,
786
- providerCount: Object.keys(next.providers).length,
787
- lastUsedProvider: next.lastUsedProvider,
788
- };
789
- }