@clinebot/core 0.0.35 → 0.0.37

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 (441) hide show
  1. package/README.md +1 -2
  2. package/dist/ClineCore.d.ts +362 -39
  3. package/dist/ClineCore.d.ts.map +1 -1
  4. package/dist/account/cline-account-service.d.ts.map +1 -1
  5. package/dist/account/index.d.ts +1 -1
  6. package/dist/account/index.d.ts.map +1 -1
  7. package/dist/account/rpc.d.ts +6 -6
  8. package/dist/account/rpc.d.ts.map +1 -1
  9. package/dist/cron/cron-event-ingress.d.ts +38 -0
  10. package/dist/cron/cron-event-ingress.d.ts.map +1 -0
  11. package/dist/cron/cron-materializer.d.ts +36 -0
  12. package/dist/cron/cron-materializer.d.ts.map +1 -0
  13. package/dist/cron/cron-reconciler.d.ts +62 -0
  14. package/dist/cron/cron-reconciler.d.ts.map +1 -0
  15. package/dist/cron/cron-report-writer.d.ts +41 -0
  16. package/dist/cron/cron-report-writer.d.ts.map +1 -0
  17. package/dist/cron/cron-runner.d.ts +43 -0
  18. package/dist/cron/cron-runner.d.ts.map +1 -0
  19. package/dist/cron/cron-schema.d.ts +3 -0
  20. package/dist/cron/cron-schema.d.ts.map +1 -0
  21. package/dist/cron/cron-service.d.ts +57 -0
  22. package/dist/cron/cron-service.d.ts.map +1 -0
  23. package/dist/cron/cron-spec-parser.d.ts +27 -0
  24. package/dist/cron/cron-spec-parser.d.ts.map +1 -0
  25. package/dist/cron/cron-watcher.d.ts +23 -0
  26. package/dist/cron/cron-watcher.d.ts.map +1 -0
  27. package/dist/cron/resource-limiter.d.ts +9 -0
  28. package/dist/cron/resource-limiter.d.ts.map +1 -0
  29. package/dist/cron/schedule-command-service.d.ts +10 -0
  30. package/dist/cron/schedule-command-service.d.ts.map +1 -0
  31. package/dist/cron/schedule-service.d.ts +100 -0
  32. package/dist/cron/schedule-service.d.ts.map +1 -0
  33. package/dist/cron/scheduler.d.ts +68 -0
  34. package/dist/cron/scheduler.d.ts.map +1 -0
  35. package/dist/cron/sqlite-cron-store.d.ts +230 -0
  36. package/dist/cron/sqlite-cron-store.d.ts.map +1 -0
  37. package/dist/cron/sqlite-schedule-store.d.ts +52 -0
  38. package/dist/cron/sqlite-schedule-store.d.ts.map +1 -0
  39. package/dist/extensions/config/agent-config-loader.d.ts +4 -3
  40. package/dist/extensions/config/agent-config-loader.d.ts.map +1 -1
  41. package/dist/extensions/config/runtime-commands.d.ts +1 -0
  42. package/dist/extensions/config/runtime-commands.d.ts.map +1 -1
  43. package/dist/extensions/config/user-instruction-config-loader.d.ts +1 -0
  44. package/dist/extensions/config/user-instruction-config-loader.d.ts.map +1 -1
  45. package/dist/extensions/context/agentic-compaction.d.ts +2 -2
  46. package/dist/extensions/context/agentic-compaction.d.ts.map +1 -1
  47. package/dist/extensions/context/compaction-shared.d.ts +5 -4
  48. package/dist/extensions/context/compaction-shared.d.ts.map +1 -1
  49. package/dist/extensions/context/compaction.d.ts.map +1 -1
  50. package/dist/extensions/plugin/plugin-config-loader.d.ts +15 -2
  51. package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
  52. package/dist/extensions/plugin/plugin-loader.d.ts +13 -7
  53. package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
  54. package/dist/extensions/plugin/plugin-module-import.d.ts.map +1 -1
  55. package/dist/extensions/plugin/plugin-sandbox.d.ts +21 -2
  56. package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
  57. package/dist/extensions/plugin/plugin-targeting.d.ts +7 -0
  58. package/dist/extensions/plugin/plugin-targeting.d.ts.map +1 -0
  59. package/dist/extensions/plugin-sandbox-bootstrap.js +237 -276
  60. package/dist/extensions/tools/constants.d.ts +1 -0
  61. package/dist/extensions/tools/constants.d.ts.map +1 -1
  62. package/dist/extensions/tools/definitions.d.ts +3 -4
  63. package/dist/extensions/tools/definitions.d.ts.map +1 -1
  64. package/dist/extensions/tools/executors/apply-patch.d.ts +3 -1
  65. package/dist/extensions/tools/executors/apply-patch.d.ts.map +1 -1
  66. package/dist/extensions/tools/executors/editor.d.ts.map +1 -1
  67. package/dist/extensions/tools/executors/search.d.ts +1 -1
  68. package/dist/extensions/tools/executors/search.d.ts.map +1 -1
  69. package/dist/extensions/tools/helpers.d.ts +1 -0
  70. package/dist/extensions/tools/helpers.d.ts.map +1 -1
  71. package/dist/extensions/tools/index.d.ts +3 -2
  72. package/dist/extensions/tools/index.d.ts.map +1 -1
  73. package/dist/extensions/tools/presets.d.ts +27 -44
  74. package/dist/extensions/tools/presets.d.ts.map +1 -1
  75. package/dist/extensions/tools/runtime.d.ts +25 -0
  76. package/dist/extensions/tools/runtime.d.ts.map +1 -0
  77. package/dist/extensions/tools/schemas.d.ts +25 -3
  78. package/dist/extensions/tools/schemas.d.ts.map +1 -1
  79. package/dist/extensions/tools/team/delegated-agent.d.ts +2 -2
  80. package/dist/extensions/tools/team/delegated-agent.d.ts.map +1 -1
  81. package/dist/extensions/tools/team/multi-agent.d.ts +7 -3
  82. package/dist/extensions/tools/team/multi-agent.d.ts.map +1 -1
  83. package/dist/extensions/tools/team/team-tools.d.ts +1 -0
  84. package/dist/extensions/tools/team/team-tools.d.ts.map +1 -1
  85. package/dist/extensions/tools/types.d.ts +0 -5
  86. package/dist/extensions/tools/types.d.ts.map +1 -1
  87. package/dist/hooks/hook-bridge.d.ts +118 -0
  88. package/dist/hooks/hook-bridge.d.ts.map +1 -0
  89. package/dist/hooks/hook-file-hooks.d.ts +6 -2
  90. package/dist/hooks/hook-file-hooks.d.ts.map +1 -1
  91. package/dist/hooks/hook-registry.d.ts +16 -0
  92. package/dist/hooks/hook-registry.d.ts.map +1 -0
  93. package/dist/hooks/index.d.ts +0 -1
  94. package/dist/hooks/index.d.ts.map +1 -1
  95. package/dist/hooks/subprocess.d.ts +8 -1
  96. package/dist/hooks/subprocess.d.ts.map +1 -1
  97. package/dist/hub/browser-websocket.d.ts +18 -0
  98. package/dist/hub/browser-websocket.d.ts.map +1 -0
  99. package/dist/hub/client.d.ts +51 -0
  100. package/dist/hub/client.d.ts.map +1 -0
  101. package/dist/hub/connect.d.ts +15 -0
  102. package/dist/hub/connect.d.ts.map +1 -0
  103. package/dist/hub/daemon-entry.d.ts +2 -0
  104. package/dist/hub/daemon-entry.d.ts.map +1 -0
  105. package/dist/hub/daemon-entry.js +1305 -0
  106. package/dist/hub/daemon.d.ts +5 -0
  107. package/dist/hub/daemon.d.ts.map +1 -0
  108. package/dist/hub/defaults.d.ts +17 -0
  109. package/dist/hub/defaults.d.ts.map +1 -0
  110. package/dist/hub/discovery.d.ts +29 -0
  111. package/dist/hub/discovery.d.ts.map +1 -0
  112. package/dist/hub/index.d.ts +15 -0
  113. package/dist/hub/index.d.ts.map +1 -0
  114. package/dist/hub/index.js +1294 -0
  115. package/dist/hub/native-transport.d.ts +17 -0
  116. package/dist/hub/native-transport.d.ts.map +1 -0
  117. package/dist/hub/runtime-handlers.d.ts +11 -0
  118. package/dist/hub/runtime-handlers.d.ts.map +1 -0
  119. package/dist/hub/server.d.ts +104 -0
  120. package/dist/hub/server.d.ts.map +1 -0
  121. package/dist/hub/session-client.d.ts +90 -0
  122. package/dist/hub/session-client.d.ts.map +1 -0
  123. package/dist/hub/start-shared-server.d.ts +19 -0
  124. package/dist/hub/start-shared-server.d.ts.map +1 -0
  125. package/dist/hub/transport.d.ts +8 -0
  126. package/dist/hub/transport.d.ts.map +1 -0
  127. package/dist/hub/ui-client.d.ts +45 -0
  128. package/dist/hub/ui-client.d.ts.map +1 -0
  129. package/dist/hub/workspace.d.ts +4 -0
  130. package/dist/hub/workspace.d.ts.map +1 -0
  131. package/dist/index.d.ts +29 -16
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +782 -471
  134. package/dist/llms/cline-recommended-models.d.ts +20 -0
  135. package/dist/llms/cline-recommended-models.d.ts.map +1 -0
  136. package/dist/llms/configured-provider-registry.d.ts +28 -0
  137. package/dist/llms/configured-provider-registry.d.ts.map +1 -0
  138. package/dist/llms/handler-factory.d.ts +16 -0
  139. package/dist/llms/handler-factory.d.ts.map +1 -0
  140. package/dist/llms/provider-defaults.d.ts +27 -0
  141. package/dist/llms/provider-defaults.d.ts.map +1 -0
  142. package/dist/llms/provider-settings.d.ts +245 -0
  143. package/dist/llms/provider-settings.d.ts.map +1 -0
  144. package/dist/llms/runtime-config.d.ts +4 -0
  145. package/dist/llms/runtime-config.d.ts.map +1 -0
  146. package/dist/llms/runtime-registry.d.ts +20 -0
  147. package/dist/llms/runtime-registry.d.ts.map +1 -0
  148. package/dist/llms/runtime-types.d.ts +85 -0
  149. package/dist/llms/runtime-types.d.ts.map +1 -0
  150. package/dist/runtime/agent-config-adapter.d.ts +148 -0
  151. package/dist/runtime/agent-config-adapter.d.ts.map +1 -0
  152. package/dist/runtime/agent-runtime-config-builder.d.ts +96 -0
  153. package/dist/runtime/agent-runtime-config-builder.d.ts.map +1 -0
  154. package/dist/runtime/history.d.ts +6 -0
  155. package/dist/runtime/history.d.ts.map +1 -1
  156. package/dist/runtime/host.d.ts +1 -2
  157. package/dist/runtime/host.d.ts.map +1 -1
  158. package/dist/runtime/loop-detection.d.ts +59 -0
  159. package/dist/runtime/loop-detection.d.ts.map +1 -0
  160. package/dist/runtime/mistake-tracker.d.ts +69 -0
  161. package/dist/runtime/mistake-tracker.d.ts.map +1 -0
  162. package/dist/runtime/rules.d.ts +1 -0
  163. package/dist/runtime/rules.d.ts.map +1 -1
  164. package/dist/runtime/runtime-builder.d.ts.map +1 -1
  165. package/dist/runtime/runtime-event-adapter.d.ts +102 -0
  166. package/dist/runtime/runtime-event-adapter.d.ts.map +1 -0
  167. package/dist/runtime/runtime-host.d.ts +49 -26
  168. package/dist/runtime/runtime-host.d.ts.map +1 -1
  169. package/dist/runtime/runtime-oauth-token-manager.d.ts.map +1 -1
  170. package/dist/runtime/session-runtime-orchestrator.d.ts +261 -0
  171. package/dist/runtime/session-runtime-orchestrator.d.ts.map +1 -0
  172. package/dist/runtime/session-runtime.d.ts +16 -21
  173. package/dist/runtime/session-runtime.d.ts.map +1 -1
  174. package/dist/runtime/user-input-builder.d.ts +24 -0
  175. package/dist/runtime/user-input-builder.d.ts.map +1 -0
  176. package/dist/services/global-settings.d.ts +12 -0
  177. package/dist/services/global-settings.d.ts.map +1 -0
  178. package/dist/services/index.js +28 -0
  179. package/dist/services/local-runtime-bootstrap.d.ts +9 -3
  180. package/dist/services/local-runtime-bootstrap.d.ts.map +1 -1
  181. package/dist/services/plugin-tools.d.ts +16 -0
  182. package/dist/services/plugin-tools.d.ts.map +1 -0
  183. package/dist/services/providers/local-provider-registry.d.ts +199 -23
  184. package/dist/services/providers/local-provider-registry.d.ts.map +1 -1
  185. package/dist/services/providers/local-provider-service.d.ts +15 -13
  186. package/dist/services/providers/local-provider-service.d.ts.map +1 -1
  187. package/dist/services/session-data.d.ts +1 -1
  188. package/dist/services/session-data.d.ts.map +1 -1
  189. package/dist/services/session-telemetry.d.ts +7 -2
  190. package/dist/services/session-telemetry.d.ts.map +1 -1
  191. package/dist/services/storage/file-team-store.d.ts.map +1 -1
  192. package/dist/services/storage/provider-settings-legacy-migration.d.ts +1 -1
  193. package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -1
  194. package/dist/services/storage/provider-settings-manager.d.ts +1 -0
  195. package/dist/services/storage/provider-settings-manager.d.ts.map +1 -1
  196. package/dist/services/storage/sqlite-team-store.d.ts.map +1 -1
  197. package/dist/services/workspace-manifest.d.ts +11 -0
  198. package/dist/services/workspace-manifest.d.ts.map +1 -1
  199. package/dist/session/conversation-store.d.ts +30 -0
  200. package/dist/session/conversation-store.d.ts.map +1 -0
  201. package/dist/session/message-builder.d.ts +65 -0
  202. package/dist/session/message-builder.d.ts.map +1 -0
  203. package/dist/session/persistence-service.d.ts +11 -23
  204. package/dist/session/persistence-service.d.ts.map +1 -1
  205. package/dist/session/session-manifest-store.d.ts +22 -0
  206. package/dist/session/session-manifest-store.d.ts.map +1 -0
  207. package/dist/session/session-manifest.d.ts +1 -1
  208. package/dist/session/session-row.d.ts +93 -0
  209. package/dist/session/session-row.d.ts.map +1 -0
  210. package/dist/session/session-service.d.ts +2 -102
  211. package/dist/session/session-service.d.ts.map +1 -1
  212. package/dist/session/subagent-session-manager.d.ts +36 -0
  213. package/dist/session/subagent-session-manager.d.ts.map +1 -0
  214. package/dist/session/team-persistence-store.d.ts +24 -0
  215. package/dist/session/team-persistence-store.d.ts.map +1 -0
  216. package/dist/transports/hub.d.ts +58 -0
  217. package/dist/transports/hub.d.ts.map +1 -0
  218. package/dist/transports/local.d.ts +23 -9
  219. package/dist/transports/local.d.ts.map +1 -1
  220. package/dist/transports/remote.d.ts +10 -0
  221. package/dist/transports/remote.d.ts.map +1 -0
  222. package/dist/transports/runtime-host-support.d.ts +3 -2
  223. package/dist/transports/runtime-host-support.d.ts.map +1 -1
  224. package/dist/types/chat-schema.d.ts +15 -17
  225. package/dist/types/chat-schema.d.ts.map +1 -1
  226. package/dist/types/config.d.ts +17 -7
  227. package/dist/types/config.d.ts.map +1 -1
  228. package/dist/types/events.d.ts +7 -6
  229. package/dist/types/events.d.ts.map +1 -1
  230. package/dist/types/provider-settings.d.ts +4 -5
  231. package/dist/types/provider-settings.d.ts.map +1 -1
  232. package/dist/types/session.d.ts +7 -3
  233. package/dist/types/session.d.ts.map +1 -1
  234. package/dist/types.d.ts +11 -4
  235. package/dist/types.d.ts.map +1 -1
  236. package/package.json +20 -6
  237. package/src/ClineCore.ts +757 -44
  238. package/src/account/cline-account-service.ts +44 -6
  239. package/src/account/index.ts +3 -3
  240. package/src/account/rpc.ts +12 -12
  241. package/src/cron/cron-event-ingress.ts +357 -0
  242. package/src/cron/cron-materializer.ts +97 -0
  243. package/src/cron/cron-reconciler.ts +241 -0
  244. package/src/cron/cron-report-writer.ts +153 -0
  245. package/src/cron/cron-runner.ts +495 -0
  246. package/src/cron/cron-schema.ts +127 -0
  247. package/src/cron/cron-service.ts +163 -0
  248. package/src/cron/cron-spec-parser.ts +489 -0
  249. package/src/cron/cron-watcher.ts +102 -0
  250. package/src/cron/index.ts +15 -0
  251. package/src/cron/resource-limiter.ts +46 -0
  252. package/src/cron/schedule-command-service.ts +193 -0
  253. package/src/cron/schedule-service.ts +703 -0
  254. package/src/cron/scheduler.ts +772 -0
  255. package/src/cron/sqlite-cron-store.ts +1286 -0
  256. package/src/cron/sqlite-schedule-store.ts +708 -0
  257. package/src/extensions/config/agent-config-loader.ts +17 -7
  258. package/src/extensions/config/runtime-commands.ts +6 -0
  259. package/src/extensions/config/user-instruction-config-loader.ts +1 -0
  260. package/src/extensions/context/agentic-compaction.ts +3 -3
  261. package/src/extensions/context/basic-compaction.ts +2 -2
  262. package/src/extensions/context/compaction-shared.ts +5 -4
  263. package/src/extensions/context/compaction.ts +3 -3
  264. package/src/extensions/plugin/plugin-config-loader.ts +37 -2
  265. package/src/extensions/plugin/plugin-loader.ts +69 -9
  266. package/src/extensions/plugin/plugin-module-import.ts +0 -2
  267. package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +243 -39
  268. package/src/extensions/plugin/plugin-sandbox.ts +173 -29
  269. package/src/extensions/plugin/plugin-targeting.ts +32 -0
  270. package/src/extensions/tools/constants.ts +2 -0
  271. package/src/extensions/tools/definitions.ts +61 -71
  272. package/src/extensions/tools/executors/apply-patch.ts +69 -80
  273. package/src/extensions/tools/executors/editor.ts +4 -3
  274. package/src/extensions/tools/executors/search.ts +195 -3
  275. package/src/extensions/tools/helpers.ts +24 -0
  276. package/src/extensions/tools/index.ts +11 -2
  277. package/src/extensions/tools/presets.ts +32 -47
  278. package/src/extensions/tools/runtime.ts +261 -0
  279. package/src/extensions/tools/schemas.ts +17 -20
  280. package/src/extensions/tools/team/delegated-agent.ts +8 -3
  281. package/src/extensions/tools/team/multi-agent.ts +135 -19
  282. package/src/extensions/tools/team/team-tools.ts +172 -91
  283. package/src/extensions/tools/types.ts +0 -6
  284. package/src/hooks/hook-bridge.ts +489 -0
  285. package/src/hooks/hook-file-hooks.ts +66 -5
  286. package/src/hooks/hook-registry.ts +257 -0
  287. package/src/hooks/index.ts +0 -7
  288. package/src/hooks/subprocess-runner.ts +1 -1
  289. package/src/hooks/subprocess.ts +9 -0
  290. package/src/hub/browser-websocket.ts +159 -0
  291. package/src/hub/client.ts +633 -0
  292. package/src/hub/connect.ts +156 -0
  293. package/src/hub/daemon-entry.ts +122 -0
  294. package/src/hub/daemon.ts +284 -0
  295. package/src/hub/defaults.ts +70 -0
  296. package/src/hub/discovery.ts +247 -0
  297. package/src/hub/index.ts +14 -0
  298. package/src/hub/native-transport.ts +31 -0
  299. package/src/hub/runtime-handlers.ts +141 -0
  300. package/src/hub/server.ts +2317 -0
  301. package/src/hub/session-client.ts +502 -0
  302. package/src/hub/start-shared-server.ts +61 -0
  303. package/src/hub/transport.ts +14 -0
  304. package/src/hub/ui-client.ts +126 -0
  305. package/src/hub/workspace.ts +19 -0
  306. package/src/index.ts +169 -68
  307. package/src/llms/cline-recommended-models.ts +167 -0
  308. package/src/llms/configured-provider-registry.ts +193 -0
  309. package/src/llms/handler-factory.ts +56 -0
  310. package/src/llms/provider-defaults.ts +653 -0
  311. package/src/llms/provider-settings.ts +310 -0
  312. package/src/llms/runtime-config.ts +43 -0
  313. package/src/llms/runtime-registry.ts +172 -0
  314. package/src/llms/runtime-types.ts +121 -0
  315. package/src/runtime/agent-config-adapter.ts +636 -0
  316. package/src/runtime/agent-runtime-config-builder.ts +205 -0
  317. package/src/runtime/error-feedback.ts +142 -0
  318. package/src/runtime/history.ts +137 -0
  319. package/src/runtime/host.ts +127 -267
  320. package/src/runtime/index.ts +1 -0
  321. package/src/runtime/loop-detection.ts +162 -0
  322. package/src/runtime/mistake-tracker.ts +221 -0
  323. package/src/runtime/rules.ts +12 -0
  324. package/src/runtime/runtime-builder.ts +85 -13
  325. package/src/runtime/runtime-event-adapter.ts +412 -0
  326. package/src/runtime/runtime-host.ts +134 -62
  327. package/src/runtime/runtime-oauth-token-manager.ts +11 -15
  328. package/src/runtime/session-runtime-orchestrator.ts +1253 -0
  329. package/src/runtime/session-runtime.ts +16 -26
  330. package/src/runtime/user-input-builder.ts +167 -0
  331. package/src/services/global-settings.ts +122 -0
  332. package/src/services/local-runtime-bootstrap.ts +175 -31
  333. package/src/services/plugin-tools.ts +86 -0
  334. package/src/services/providers/local-provider-registry.ts +277 -61
  335. package/src/services/providers/local-provider-service.ts +109 -44
  336. package/src/services/session-data.ts +18 -10
  337. package/src/services/session-telemetry.ts +6 -15
  338. package/src/services/storage/file-team-store.ts +1 -5
  339. package/src/services/storage/provider-settings-legacy-migration.ts +14 -51
  340. package/src/services/storage/provider-settings-manager.ts +17 -2
  341. package/src/services/storage/sqlite-team-store.ts +1 -5
  342. package/src/services/workspace-manifest.ts +18 -0
  343. package/src/session/conversation-store.ts +77 -0
  344. package/src/session/file-session-service.ts +1 -1
  345. package/src/session/index.ts +6 -27
  346. package/src/session/message-builder.ts +941 -0
  347. package/src/session/persistence-service.ts +119 -504
  348. package/src/session/session-manifest-store.ts +158 -0
  349. package/src/session/session-row.ts +199 -0
  350. package/src/session/session-service.ts +17 -376
  351. package/src/session/session-team-coordination.ts +1 -1
  352. package/src/session/subagent-session-manager.ts +397 -0
  353. package/src/session/team-persistence-store.ts +176 -0
  354. package/src/transports/hub.ts +1081 -0
  355. package/src/transports/local.ts +419 -93
  356. package/src/transports/remote.ts +27 -0
  357. package/src/transports/runtime-host-support.ts +63 -9
  358. package/src/types/chat-schema.ts +4 -5
  359. package/src/types/config.ts +17 -7
  360. package/src/types/events.ts +8 -6
  361. package/src/types/index.ts +3 -0
  362. package/src/types/provider-settings.ts +18 -7
  363. package/src/types/session.ts +7 -6
  364. package/src/types.ts +42 -2
  365. package/dist/hooks/persistent.d.ts +0 -64
  366. package/dist/hooks/persistent.d.ts.map +0 -1
  367. package/dist/runtime/rpc-runtime-ensure.d.ts +0 -65
  368. package/dist/runtime/rpc-runtime-ensure.d.ts.map +0 -1
  369. package/dist/runtime/rpc-spawn-lease.d.ts +0 -8
  370. package/dist/runtime/rpc-spawn-lease.d.ts.map +0 -1
  371. package/dist/services/telemetry/index.js +0 -15
  372. package/dist/session/rpc-session-service.d.ts +0 -16
  373. package/dist/session/rpc-session-service.d.ts.map +0 -1
  374. package/dist/session/sqlite-rpc-session-backend.d.ts +0 -31
  375. package/dist/session/sqlite-rpc-session-backend.d.ts.map +0 -1
  376. package/dist/transports/rpc.d.ts +0 -51
  377. package/dist/transports/rpc.d.ts.map +0 -1
  378. package/src/ClineCore.test.ts +0 -226
  379. package/src/account/cline-account-service.test.ts +0 -185
  380. package/src/account/featurebase-token.test.ts +0 -175
  381. package/src/account/rpc.test.ts +0 -63
  382. package/src/auth/bounded-ttl-cache.test.ts +0 -38
  383. package/src/auth/client.test.ts +0 -69
  384. package/src/auth/cline.test.ts +0 -267
  385. package/src/auth/codex.test.ts +0 -170
  386. package/src/auth/oca.test.ts +0 -340
  387. package/src/auth/server.test.ts +0 -287
  388. package/src/auth/utils.test.ts +0 -128
  389. package/src/extensions/config/agent-config-loader.test.ts +0 -236
  390. package/src/extensions/config/hooks-config-loader.test.ts +0 -20
  391. package/src/extensions/config/runtime-commands.test.ts +0 -115
  392. package/src/extensions/config/unified-config-file-watcher.test.ts +0 -196
  393. package/src/extensions/config/user-instruction-config-loader.test.ts +0 -246
  394. package/src/extensions/context/compaction.test.ts +0 -483
  395. package/src/extensions/mcp/config-loader.test.ts +0 -238
  396. package/src/extensions/mcp/manager.test.ts +0 -105
  397. package/src/extensions/plugin/plugin-config-loader.test.ts +0 -184
  398. package/src/extensions/plugin/plugin-loader.test.ts +0 -292
  399. package/src/extensions/plugin/plugin-sandbox.test.ts +0 -423
  400. package/src/extensions/tools/definitions.test.ts +0 -780
  401. package/src/extensions/tools/executors/bash.test.ts +0 -87
  402. package/src/extensions/tools/executors/editor.test.ts +0 -35
  403. package/src/extensions/tools/executors/file-read.test.ts +0 -125
  404. package/src/extensions/tools/model-tool-routing.test.ts +0 -86
  405. package/src/extensions/tools/presets.test.ts +0 -70
  406. package/src/extensions/tools/team/multi-agent.lifecycle.test.ts +0 -455
  407. package/src/extensions/tools/team/spawn-agent-tool.test.ts +0 -381
  408. package/src/extensions/tools/team/team-tools.test.ts +0 -918
  409. package/src/hooks/checkpoint-hooks.test.ts +0 -168
  410. package/src/hooks/hook-file-hooks.test.ts +0 -311
  411. package/src/hooks/persistent.ts +0 -661
  412. package/src/runtime/history.test.ts +0 -114
  413. package/src/runtime/host.test.ts +0 -230
  414. package/src/runtime/rpc-runtime-ensure.test.ts +0 -123
  415. package/src/runtime/rpc-runtime-ensure.ts +0 -659
  416. package/src/runtime/rpc-spawn-lease.test.ts +0 -81
  417. package/src/runtime/rpc-spawn-lease.ts +0 -156
  418. package/src/runtime/runtime-builder.team-persistence.test.ts +0 -245
  419. package/src/runtime/runtime-builder.test.ts +0 -615
  420. package/src/runtime/runtime-oauth-token-manager.test.ts +0 -137
  421. package/src/runtime/runtime-parity.test.ts +0 -143
  422. package/src/services/providers/local-provider-service.test.ts +0 -1062
  423. package/src/services/session-data.test.ts +0 -160
  424. package/src/services/storage/provider-settings-legacy-migration.test.ts +0 -424
  425. package/src/services/storage/provider-settings-manager.test.ts +0 -191
  426. package/src/services/telemetry/OpenTelemetryAdapter.test.ts +0 -157
  427. package/src/services/telemetry/OpenTelemetryProvider.test.ts +0 -326
  428. package/src/services/telemetry/TelemetryLoggerSink.test.ts +0 -42
  429. package/src/services/telemetry/TelemetryService.test.ts +0 -134
  430. package/src/services/telemetry/distinct-id.test.ts +0 -57
  431. package/src/services/workspace/file-indexer.d.ts +0 -11
  432. package/src/services/workspace/file-indexer.test.ts +0 -156
  433. package/src/services/workspace/mention-enricher.test.ts +0 -106
  434. package/src/session/persistence-service.test.ts +0 -300
  435. package/src/session/rpc-session-service.ts +0 -114
  436. package/src/session/session-service.team-persistence.test.ts +0 -48
  437. package/src/session/sqlite-rpc-session-backend.ts +0 -301
  438. package/src/transports/local.e2e.test.ts +0 -380
  439. package/src/transports/local.test.ts +0 -2559
  440. package/src/transports/rpc.test.ts +0 -82
  441. package/src/transports/rpc.ts +0 -665
@@ -0,0 +1,19 @@
1
+ import { normalizeWorkspacePath } from "../services/workspace-manifest";
2
+ import { type HubOwnerContext, resolveHubOwnerContext } from "./discovery";
3
+
4
+ const DEFAULT_SHARED_HUB_OWNER_LABEL = "shared:cline";
5
+
6
+ export function resolveWorkspaceHubOwnerContext(
7
+ workspaceRoot: string,
8
+ ): HubOwnerContext {
9
+ const normalized = normalizeWorkspacePath(workspaceRoot.trim());
10
+ return resolveHubOwnerContext(
11
+ `workspace:${normalized || workspaceRoot.trim()}`,
12
+ );
13
+ }
14
+
15
+ export function resolveSharedHubOwnerContext(
16
+ label = DEFAULT_SHARED_HUB_OWNER_LABEL,
17
+ ): HubOwnerContext {
18
+ return resolveHubOwnerContext(label);
19
+ }
package/src/index.ts CHANGED
@@ -7,42 +7,54 @@
7
7
  export * as Llms from "@clinebot/llms";
8
8
  // Shared contracts and path helpers re-exported for app consumers.
9
9
  export type {
10
+ AddProviderActionRequest,
10
11
  AgentConfig,
11
12
  AgentEvent,
12
13
  AgentExtension,
14
+ AgentExtension as AgentPlugin, // Public-facing alias for extensions
13
15
  AgentExtensionCommand,
16
+ AgentExtensionCommand as AgentPluginCommand,
14
17
  AgentHooks,
15
18
  AgentMode,
16
19
  AgentResult,
20
+ AgentRunResult,
21
+ AgentRunStatus,
22
+ AutomationEventEnvelope,
17
23
  BasicLogger,
24
+ ChatRunTurnRequest,
25
+ ChatRuntimeConfig,
26
+ ChatStartSessionArtifacts,
27
+ ChatStartSessionRequest,
28
+ ChatTurnResult,
29
+ ClineAccountActionRequest,
18
30
  ConnectorHookEvent,
31
+ ContentBlock,
32
+ EnterpriseAuthenticateRequest,
33
+ EnterpriseAuthenticateResponse,
34
+ EnterpriseStatusRequest,
35
+ EnterpriseStatusResponse,
36
+ EnterpriseSyncRequest,
37
+ EnterpriseSyncResponse,
19
38
  emptyWorkspaceManifest,
39
+ FileContent,
40
+ GetProviderModelsActionRequest,
20
41
  HookSessionContext,
42
+ ImageContent,
21
43
  ITelemetryService,
22
- RpcAddProviderActionRequest,
23
- RpcChatMessage,
24
- RpcChatRunTurnRequest,
25
- RpcChatRuntimeConfigBase,
26
- RpcChatRuntimeLoggerConfig,
27
- RpcChatStartSessionArtifacts,
28
- RpcChatStartSessionRequest,
29
- RpcChatTurnResult,
30
- RpcClineAccountActionRequest,
31
- RpcEnterpriseAuthenticateRequest,
32
- RpcEnterpriseAuthenticateResponse,
33
- RpcEnterpriseStatusRequest,
34
- RpcEnterpriseStatusResponse,
35
- RpcEnterpriseSyncRequest,
36
- RpcEnterpriseSyncResponse,
37
- RpcOAuthProviderId,
38
- RpcProviderActionRequest,
39
- RpcProviderCapability,
40
- RpcProviderCatalogResponse,
41
- RpcProviderListItem,
42
- RpcProviderModel,
43
- RpcProviderOAuthLoginResponse,
44
- RpcSaveProviderSettingsActionRequest,
44
+ ListProvidersActionRequest,
45
+ Message,
46
+ MessageWithMetadata,
47
+ OAuthProviderId,
48
+ ProviderActionRequest,
49
+ ProviderCatalogResponse,
50
+ ProviderListItem,
51
+ ProviderModel,
52
+ ProviderOAuthLoginResponse,
53
+ RuntimeLoggerConfig,
54
+ SaveProviderSettingsActionRequest,
45
55
  SessionLineage,
56
+ TEAM_LIFECYCLE_EVENT_TYPE,
57
+ TEAM_PROGRESS_EVENT_TYPE,
46
58
  TeamProgressProjectionEvent,
47
59
  TelemetryArray,
48
60
  TelemetryMetadata,
@@ -50,11 +62,15 @@ export type {
50
62
  TelemetryPrimitive,
51
63
  TelemetryProperties,
52
64
  TelemetryValue,
65
+ TextContent,
66
+ ThinkingContent,
53
67
  Tool,
54
68
  ToolApprovalRequest,
55
69
  ToolApprovalResult,
56
70
  ToolContext,
57
71
  ToolPolicy,
72
+ ToolResultContent,
73
+ ToolUseContent,
58
74
  WorkspaceInfo,
59
75
  WorkspaceInfoSchema,
60
76
  WorkspaceManifest,
@@ -69,8 +85,6 @@ export {
69
85
  noopBasicLogger,
70
86
  normalizeUserInput,
71
87
  parseUserCommandEnvelope,
72
- RPC_TEAM_LIFECYCLE_EVENT_TYPE,
73
- RPC_TEAM_PROGRESS_EVENT_TYPE,
74
88
  } from "@clinebot/shared";
75
89
  export * from "@clinebot/shared/storage";
76
90
  export {
@@ -85,11 +99,11 @@ export {
85
99
  type ClineAccountUsageTransaction,
86
100
  type ClineAccountUser,
87
101
  type ClineOrganization,
88
- executeRpcClineAccountAction,
102
+ executeClineAccountAction,
89
103
  type FeaturebaseTokenResponse,
90
- isRpcClineAccountActionRequest,
104
+ isClineAccountActionRequest,
105
+ type ProviderActionExecutor,
91
106
  RpcClineAccountService,
92
- type RpcProviderActionExecutor,
93
107
  type UserRemoteConfigOrganization,
94
108
  type UserRemoteConfigResponse,
95
109
  } from "./account";
@@ -151,10 +165,23 @@ export type {
151
165
  OcaTokenResolution,
152
166
  } from "./auth/types";
153
167
  export {
168
+ type ClineAutomationEventIngressResult,
169
+ type ClineAutomationEventLog,
170
+ type ClineAutomationEventSuppression,
171
+ type ClineAutomationListEventsOptions,
172
+ type ClineAutomationListRunsOptions,
173
+ type ClineAutomationListSpecsOptions,
174
+ type ClineAutomationRun,
175
+ type ClineAutomationRunStatus,
176
+ type ClineAutomationSpec,
154
177
  ClineCore,
178
+ type ClineCoreAutomationApi,
179
+ type ClineCoreAutomationOptions,
180
+ type ClineCoreListHistoryOptions,
155
181
  type ClineCoreOptions,
156
182
  type ClineCoreStartInput,
157
- type RpcOptions,
183
+ type HubOptions,
184
+ type RemoteOptions,
158
185
  } from "./ClineCore";
159
186
  export type {
160
187
  LoadAgentPluginFromPathOptions,
@@ -296,16 +323,11 @@ export {
296
323
  toTeamProgressLifecycleEvent,
297
324
  } from "./extensions/tools/team";
298
325
  export {
299
- createPersistentSubprocessHooks,
300
326
  createSubprocessHooks,
301
327
  type HookEventName,
302
328
  HookEventNameSchema,
303
329
  type HookEventPayload,
304
330
  HookEventPayloadSchema,
305
- PersistentHookClient,
306
- type PersistentHookClientOptions,
307
- type PersistentSubprocessHookControl,
308
- type PersistentSubprocessHooksOptions,
309
331
  parseHookEventPayload,
310
332
  type RunHookOptions,
311
333
  type RunHookResult,
@@ -320,50 +342,34 @@ export type {
320
342
  CheckpointEntry,
321
343
  CheckpointMetadata,
322
344
  } from "./hooks/checkpoint-hooks";
345
+ export * from "./hub";
323
346
  export type { SessionBackend } from "./runtime/host";
324
347
  export {
325
348
  createRuntimeHost,
326
349
  createRuntimeHost as createSessionHost,
327
350
  resolveSessionBackend,
328
351
  } from "./runtime/host";
329
- export {
330
- clearRpcDiscoveryIfAddressMatches,
331
- type EnsureRpcRuntimeOptions,
332
- ensureRpcRuntimeAddress,
333
- isCompatibleRuntime,
334
- type ResolveRpcRuntimeResult,
335
- RPC_BUILD_ID_ENV,
336
- RPC_DISCOVERY_PATH_ENV,
337
- RPC_OWNER_ID_ENV,
338
- RPC_STARTUP_LOCK_BYPASS_ENV,
339
- type RpcDiscoveryRecord,
340
- type RpcOwnerContext,
341
- type RpcStartupLockHandle,
342
- recordRpcDiscovery,
343
- resolveEnsuredRpcRuntime,
344
- resolveRpcOwnerContext,
345
- resolveRpcRuntimeBuildKey,
346
- waitForCompatibleRpcRuntime,
347
- withRpcStartupLock,
348
- } from "./runtime/rpc-runtime-ensure";
349
- export {
350
- type RpcSpawnLease,
351
- tryAcquireRpcSpawnLease,
352
- } from "./runtime/rpc-spawn-lease";
353
352
  export {
354
353
  formatRulesForSystemPrompt,
355
354
  isRuleEnabled,
356
355
  listEnabledRulesFromWatcher,
357
356
  loadRulesForSystemPromptFromWatcher,
357
+ mergeRulesForSystemPrompt,
358
358
  } from "./runtime/rules";
359
359
  export {
360
360
  createTeamName,
361
361
  DefaultRuntimeBuilder,
362
362
  } from "./runtime/runtime-builder";
363
363
  export type {
364
+ PendingPromptMutationResult,
365
+ PendingPromptsAction,
366
+ PendingPromptsDeleteInput,
367
+ PendingPromptsListInput,
368
+ PendingPromptsUpdateInput,
364
369
  RuntimeHost,
365
370
  RuntimeHost as SessionHost,
366
371
  RuntimeHostMode,
372
+ RuntimeHostSubscribeOptions,
367
373
  SendSessionInput,
368
374
  SessionAccumulatedUsage,
369
375
  StartSessionInput,
@@ -375,9 +381,6 @@ export type {
375
381
  RuntimeBuilder,
376
382
  RuntimeBuilderInput,
377
383
  SessionRuntime,
378
- TeamToolsFactory,
379
- TeamToolsFactoryOptions,
380
- TeamToolsFactoryResult,
381
384
  } from "./runtime/session-runtime";
382
385
  export {
383
386
  type SandboxCallOptions,
@@ -388,6 +391,18 @@ export {
388
391
  type DesktopToolApprovalOptions,
389
392
  requestDesktopToolApproval,
390
393
  } from "./runtime/tool-approval";
394
+ export type { GlobalSettings } from "./services/global-settings";
395
+ export {
396
+ filterDisabledTools,
397
+ filterExtensionToolRegistrations,
398
+ isToolDisabledGlobally,
399
+ readGlobalSettings,
400
+ resolveDisabledToolNames,
401
+ toggleDisabledTool,
402
+ writeGlobalSettings,
403
+ } from "./services/global-settings";
404
+ export type { PluginToolSummary } from "./services/plugin-tools";
405
+ export { listPluginTools } from "./services/plugin-tools";
391
406
  export {
392
407
  addLocalProvider,
393
408
  type DeleteLocalProviderRequest,
@@ -474,7 +489,6 @@ export {
474
489
  generateWorkspaceInfo,
475
490
  normalizeWorkspacePath,
476
491
  } from "./services/workspace-manifest";
477
- export { RpcCoreSessionService } from "./session/rpc-session-service";
478
492
  export {
479
493
  deriveSubsessionStatus,
480
494
  makeSubSessionId,
@@ -482,24 +496,24 @@ export {
482
496
  sanitizeSessionToken,
483
497
  } from "./session/session-graph";
484
498
  export type { SessionManifest } from "./session/session-manifest";
499
+ export type { SessionRow } from "./session/session-row";
485
500
  export type {
486
501
  CreateRootSessionWithArtifactsInput,
487
502
  RootSessionArtifacts,
488
- SessionRow,
489
503
  } from "./session/session-service";
490
504
  export { CoreSessionService } from "./session/session-service";
491
505
  export {
492
- createSqliteRpcSessionBackend,
493
- SqliteRpcSessionBackend,
494
- type SqliteRpcSessionBackendOptions,
495
- } from "./session/sqlite-rpc-session-backend";
506
+ FileTeamPersistenceStore,
507
+ type FileTeamPersistenceStoreOptions,
508
+ } from "./session/team-persistence-store";
496
509
  export type {
497
510
  WorkspaceManager,
498
511
  WorkspaceManagerEvent,
499
512
  } from "./session/workspace-manager";
500
513
  export { InMemoryWorkspaceManager } from "./session/workspace-manager";
514
+ export { HubRuntimeHost } from "./transports/hub";
501
515
  export { LocalRuntimeHost } from "./transports/local";
502
- export { RpcRuntimeHost } from "./transports/rpc";
516
+ export { RemoteRuntimeHost } from "./transports/remote";
503
517
  export type {
504
518
  ChatMessage,
505
519
  ChatSessionConfig,
@@ -520,10 +534,12 @@ export { CORE_BUILD_VERSION } from "./version";
520
534
  export async function loadOpenTelemetryAdapter() {
521
535
  return import("./services/telemetry/index.js");
522
536
  }
537
+ export { Agent, createAgentRuntime } from "@clinebot/agents";
523
538
  export { createContextCompactionPrepareTurn } from "./extensions/context/compaction";
524
539
  export {
525
540
  ALL_DEFAULT_TOOL_NAMES,
526
541
  type AskQuestionExecutor,
542
+ type BuiltinToolAvailabilityContext,
527
543
  type CreateBuiltinToolsOptions,
528
544
  type CreateDefaultToolsOptions,
529
545
  createBuiltinTools,
@@ -535,11 +551,93 @@ export {
535
551
  type DefaultToolName,
536
552
  DefaultToolNames,
537
553
  type DefaultToolsConfig,
554
+ getCoreAcpToolNames,
555
+ getCoreBuiltinToolCatalog,
556
+ getCoreDefaultEnabledToolIds,
557
+ getCoreHeadlessToolNames,
558
+ resolveCoreSelectedToolIds,
559
+ TEAM_TOOL_NAMES,
560
+ type ToolCatalogEntry,
538
561
  type ToolExecutors,
539
562
  type ToolPolicyPresetName,
540
563
  type ToolPresetName,
541
564
  ToolPresets,
542
565
  } from "./extensions/tools";
566
+ export {
567
+ type ClineRecommendedModel,
568
+ type ClineRecommendedModelsData,
569
+ FALLBACK_CLINE_RECOMMENDED_MODELS,
570
+ type FetchClineRecommendedModelsOptions,
571
+ fetchClineRecommendedModels,
572
+ } from "./llms/cline-recommended-models";
573
+ export {
574
+ clearLiveModelsCatalogCache,
575
+ clearPrivateModelsCatalogCache,
576
+ DEFAULT_MODELS_CATALOG_URL,
577
+ getLiveModelsCatalog,
578
+ getProviderConfig,
579
+ OPENAI_COMPATIBLE_PROVIDERS,
580
+ resolveProviderConfig,
581
+ } from "./llms/provider-defaults";
582
+ export type {
583
+ AuthSettings,
584
+ AwsSettings,
585
+ AzureSettings,
586
+ BuiltInProviderId,
587
+ GcpSettings,
588
+ ModelCatalogConfig,
589
+ ModelCatalogSettings,
590
+ OcaSettings,
591
+ ProviderCapability,
592
+ ProviderClient,
593
+ ProviderConfig,
594
+ ProviderDefaultsConfig,
595
+ ProviderId,
596
+ ProviderProtocol,
597
+ ProviderSettings,
598
+ ReasoningSettings,
599
+ SapSettings,
600
+ } from "./llms/provider-settings";
601
+ export {
602
+ AuthSettingsSchema,
603
+ AwsSettingsSchema,
604
+ AzureSettingsSchema,
605
+ BUILT_IN_PROVIDER,
606
+ BUILT_IN_PROVIDER_IDS,
607
+ createProviderConfig,
608
+ GcpSettingsSchema,
609
+ isBuiltInProviderId,
610
+ ModelCatalogSettingsSchema,
611
+ normalizeProviderId,
612
+ OcaSettingsSchema,
613
+ ProviderClientSchema,
614
+ ProviderIdSchema,
615
+ ProviderProtocolSchema,
616
+ ProviderSettingsSchema,
617
+ parseSettings,
618
+ ReasoningSettingsSchema,
619
+ SapSettingsSchema,
620
+ safeCreateProviderConfig,
621
+ safeParseSettings,
622
+ toProviderConfig,
623
+ } from "./llms/provider-settings";
624
+ export {
625
+ defineLlmsConfig,
626
+ loadLlmsConfigFromFile,
627
+ } from "./llms/runtime-config";
628
+ export { createLlmsSdk, DefaultLlmsSdk } from "./llms/runtime-registry";
629
+ export type {
630
+ BuiltInProviderSummary,
631
+ CreateHandlerInput,
632
+ LlmsConfig,
633
+ LlmsSdk,
634
+ ProviderConfigDefaults,
635
+ ProviderSelectionConfig,
636
+ RegisterBuiltinProviderInput,
637
+ RegisteredProviderSummary,
638
+ RegisterModelInput,
639
+ RegisterProviderInput,
640
+ } from "./llms/runtime-types";
543
641
  export {
544
642
  TelemetryService,
545
643
  type TelemetryServiceOptions,
@@ -565,6 +663,9 @@ export type {
565
663
  CoreSessionEvent,
566
664
  SessionChunkEvent,
567
665
  SessionEndedEvent,
666
+ SessionPendingPrompt,
667
+ SessionPendingPromptSubmittedEvent,
668
+ SessionPendingPromptsEvent,
568
669
  SessionTeamProgressEvent,
569
670
  SessionToolEvent,
570
671
  } from "./types/events";
@@ -0,0 +1,167 @@
1
+ import { ProviderSettingsManager } from "../services/storage/provider-settings-manager";
2
+
3
+ export interface ClineRecommendedModel {
4
+ id: string;
5
+ name: string;
6
+ description: string;
7
+ tags: string[];
8
+ }
9
+
10
+ export interface ClineRecommendedModelsData {
11
+ recommended: ClineRecommendedModel[];
12
+ free: ClineRecommendedModel[];
13
+ }
14
+
15
+ export interface FetchClineRecommendedModelsOptions {
16
+ baseUrl?: string;
17
+ fetchImpl?: typeof fetch;
18
+ providerSettingsManager?: Pick<
19
+ ProviderSettingsManager,
20
+ "getProviderSettings"
21
+ >;
22
+ timeoutMs?: number;
23
+ }
24
+
25
+ const DEFAULT_API_BASE_URL = "https://api.cline.bot";
26
+ const DEFAULT_REQUEST_TIMEOUT_MS = 5_000;
27
+
28
+ export const FALLBACK_CLINE_RECOMMENDED_MODELS: ClineRecommendedModelsData = {
29
+ recommended: [
30
+ {
31
+ id: "anthropic/claude-opus-4.6",
32
+ name: "Claude Opus 4.6",
33
+ description: "Most intelligent model for agents and coding",
34
+ tags: ["BEST"],
35
+ },
36
+ {
37
+ id: "anthropic/claude-sonnet-4.6",
38
+ name: "Claude Sonnet 4.6",
39
+ description: "Strong coding and agent performance",
40
+ tags: ["NEW"],
41
+ },
42
+ {
43
+ id: "google/gemini-3.1-pro-preview",
44
+ name: "Gemini 3.1 Pro Preview",
45
+ description: "1M context window, strong coding performance",
46
+ tags: ["NEW"],
47
+ },
48
+ {
49
+ id: "openai/gpt-5.3-codex",
50
+ name: "GPT-5.3 Codex",
51
+ description: "OpenAI's latest with strong coding abilities",
52
+ tags: ["NEW"],
53
+ },
54
+ ],
55
+ free: [
56
+ {
57
+ id: "kwaipilot/kat-coder-pro",
58
+ name: "KwaiKAT Kat Coder Pro",
59
+ description: "Advanced agentic coding model",
60
+ tags: ["FREE"],
61
+ },
62
+ {
63
+ id: "arcee-ai/trinity-large-preview:free",
64
+ name: "Arcee AI Trinity Large Preview",
65
+ description: "Advanced large preview model",
66
+ tags: ["FREE"],
67
+ },
68
+ ],
69
+ };
70
+
71
+ function cloneRecommendedModels(
72
+ data: ClineRecommendedModelsData,
73
+ ): ClineRecommendedModelsData {
74
+ return {
75
+ recommended: data.recommended.map((model) => ({
76
+ ...model,
77
+ tags: [...model.tags],
78
+ })),
79
+ free: data.free.map((model) => ({ ...model, tags: [...model.tags] })),
80
+ };
81
+ }
82
+
83
+ function normalizeModel(raw: unknown): ClineRecommendedModel | null {
84
+ if (!raw || typeof raw !== "object") return null;
85
+ const data = raw as Record<string, unknown>;
86
+ if (typeof data.id !== "string" || data.id.length === 0) return null;
87
+ return {
88
+ id: data.id,
89
+ name:
90
+ typeof data.name === "string" && data.name.length > 0
91
+ ? data.name
92
+ : data.id,
93
+ description: typeof data.description === "string" ? data.description : "",
94
+ tags: Array.isArray(data.tags)
95
+ ? data.tags.filter((tag): tag is string => typeof tag === "string")
96
+ : [],
97
+ };
98
+ }
99
+
100
+ function normalizeResponse(raw: unknown): ClineRecommendedModelsData | null {
101
+ if (!raw || typeof raw !== "object") return null;
102
+ const data = raw as Record<string, unknown>;
103
+ const recommendedRaw = Array.isArray(data.recommended)
104
+ ? data.recommended
105
+ : [];
106
+ const freeRaw = Array.isArray(data.free) ? data.free : [];
107
+ const recommended = recommendedRaw
108
+ .map(normalizeModel)
109
+ .filter((model): model is ClineRecommendedModel => model !== null);
110
+ const free = freeRaw
111
+ .map(normalizeModel)
112
+ .filter((model): model is ClineRecommendedModel => model !== null);
113
+ if (recommended.length === 0 && free.length === 0) return null;
114
+ return { recommended, free };
115
+ }
116
+
117
+ function getConfiguredApiBaseUrl(
118
+ options: FetchClineRecommendedModelsOptions,
119
+ ): string {
120
+ const explicitBaseUrl = options.baseUrl?.trim();
121
+ if (explicitBaseUrl) return explicitBaseUrl;
122
+
123
+ try {
124
+ const manager =
125
+ options.providerSettingsManager ?? new ProviderSettingsManager();
126
+ const settings = manager.getProviderSettings("cline");
127
+ return settings?.baseUrl?.trim() || DEFAULT_API_BASE_URL;
128
+ } catch {
129
+ return DEFAULT_API_BASE_URL;
130
+ }
131
+ }
132
+
133
+ async function fetchWithTimeout(
134
+ fetchImpl: typeof fetch,
135
+ input: string,
136
+ timeoutMs: number,
137
+ ): Promise<Response> {
138
+ const controller = new AbortController();
139
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
140
+ try {
141
+ return await fetchImpl(input, { signal: controller.signal });
142
+ } finally {
143
+ clearTimeout(timer);
144
+ }
145
+ }
146
+
147
+ export async function fetchClineRecommendedModels(
148
+ options: FetchClineRecommendedModelsOptions = {},
149
+ ): Promise<ClineRecommendedModelsData> {
150
+ try {
151
+ const base = getConfiguredApiBaseUrl(options);
152
+ const fetchImpl = options.fetchImpl ?? fetch;
153
+ const resp = await fetchWithTimeout(
154
+ fetchImpl,
155
+ `${base}/api/v1/ai/cline/recommended-models`,
156
+ options.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
157
+ );
158
+ if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
159
+ const json: unknown = await resp.json();
160
+ const data = normalizeResponse(json);
161
+ if (data) return data;
162
+ } catch {
163
+ // Fall back to the bundled list when the remote source is unavailable.
164
+ }
165
+
166
+ return cloneRecommendedModels(FALLBACK_CLINE_RECOMMENDED_MODELS);
167
+ }