@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
@@ -2,34 +2,70 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { mkdir, readFile, writeFile } from "node:fs/promises";
3
3
  import { dirname, join } from "node:path";
4
4
  import * as LlmsModels from "@clinebot/llms";
5
- import type { RpcProviderCapability, RpcProviderModel } from "@clinebot/shared";
5
+ import {
6
+ type ModelCapability,
7
+ ModelCapabilitySchema,
8
+ type ModelInfo,
9
+ type ProviderCapability,
10
+ ProviderCapabilitySchema,
11
+ type ProviderClient,
12
+ ProviderClientSchema,
13
+ type ProviderModel,
14
+ type ProviderProtocol,
15
+ ProviderProtocolSchema,
16
+ } from "@clinebot/shared";
17
+ import { z } from "zod";
18
+ import type {
19
+ ProviderSettings,
20
+ StoredProviderSettings,
21
+ } from "../../types/provider-settings";
6
22
  import type { ProviderSettingsManager } from "../storage/provider-settings-manager";
7
23
 
8
- export type StoredModelsFile = {
9
- version: 1;
10
- providers: Record<
11
- string,
12
- {
13
- provider: {
14
- name: string;
15
- baseUrl: string;
16
- defaultModelId?: string;
17
- capabilities?: RpcProviderCapability[];
18
- modelsSourceUrl?: string;
19
- };
20
- models: Record<
21
- string,
22
- {
23
- id: string;
24
- name: string;
25
- supportsVision?: boolean;
26
- supportsAttachments?: boolean;
27
- supportsReasoning?: boolean;
28
- }
29
- >;
30
- }
31
- >;
32
- };
24
+ export const StoredModelEntrySchema = z
25
+ .object({
26
+ id: z.string().optional(),
27
+ name: z.string().optional(),
28
+ capabilities: z.array(ModelCapabilitySchema).optional(),
29
+ supportsVision: z.boolean().optional(),
30
+ supportsAttachments: z.boolean().optional(),
31
+ supportsReasoning: z.boolean().optional(),
32
+ })
33
+ .passthrough();
34
+
35
+ export type StoredModelEntry = z.infer<typeof StoredModelEntrySchema>;
36
+
37
+ export const StoredProviderMetadataSchema = z
38
+ .object({
39
+ name: z.string(),
40
+ baseUrl: z.string(),
41
+ defaultModelId: z.string().optional(),
42
+ protocol: ProviderProtocolSchema.optional(),
43
+ client: ProviderClientSchema.optional(),
44
+ capabilities: z.array(ProviderCapabilitySchema).optional(),
45
+ modelsSourceUrl: z.string().optional(),
46
+ })
47
+ .passthrough();
48
+
49
+ export const StoredProviderEntrySchema = z
50
+ .object({
51
+ provider: StoredProviderMetadataSchema.optional(),
52
+ models: z.record(z.string(), StoredModelEntrySchema).optional(),
53
+ })
54
+ .passthrough();
55
+
56
+ export type StoredProviderEntry = z.infer<typeof StoredProviderEntrySchema>;
57
+
58
+ export const StoredModelsFileSchema = z.object({
59
+ version: z.literal(1),
60
+ providers: z.record(z.string(), StoredProviderEntrySchema),
61
+ });
62
+
63
+ export type StoredModelsFile = z.infer<typeof StoredModelsFileSchema>;
64
+
65
+ const StoredModelsFileEnvelopeSchema = z.object({
66
+ version: z.literal(1),
67
+ providers: z.record(z.string(), z.unknown()),
68
+ });
33
69
 
34
70
  const LOADED_MODELS_REGISTRY_PATHS = new Set<string>();
35
71
 
@@ -51,21 +87,29 @@ export function emptyModelsFile(): StoredModelsFile {
51
87
  return { version: 1, providers: {} };
52
88
  }
53
89
 
90
+ export function parseModelsFile(input: unknown): StoredModelsFile {
91
+ const result = StoredModelsFileEnvelopeSchema.safeParse(input);
92
+ if (!result.success) {
93
+ return emptyModelsFile();
94
+ }
95
+
96
+ const providers: StoredModelsFile["providers"] = {};
97
+ for (const [providerId, entry] of Object.entries(result.data.providers)) {
98
+ const provider = StoredProviderEntrySchema.safeParse(entry);
99
+ if (provider.success) {
100
+ providers[providerId] = provider.data;
101
+ }
102
+ }
103
+ return { version: 1, providers };
104
+ }
105
+
54
106
  export function readModelsFileSync(filePath: string): StoredModelsFile {
55
107
  if (!existsSync(filePath)) {
56
108
  return emptyModelsFile();
57
109
  }
58
110
  try {
59
111
  const raw = readFileSync(filePath, "utf8");
60
- const parsed = JSON.parse(raw) as Partial<StoredModelsFile>;
61
- if (
62
- parsed &&
63
- parsed.version === 1 &&
64
- parsed.providers &&
65
- typeof parsed.providers === "object"
66
- ) {
67
- return { version: 1, providers: parsed.providers };
68
- }
112
+ return parseModelsFile(JSON.parse(raw) as unknown);
69
113
  } catch {
70
114
  // Invalid or missing files fall back to an empty registry.
71
115
  }
@@ -77,15 +121,7 @@ export async function readModelsFile(
77
121
  ): Promise<StoredModelsFile> {
78
122
  try {
79
123
  const raw = await readFile(filePath, "utf8");
80
- const parsed = JSON.parse(raw) as Partial<StoredModelsFile>;
81
- if (
82
- parsed &&
83
- parsed.version === 1 &&
84
- parsed.providers &&
85
- typeof parsed.providers === "object"
86
- ) {
87
- return { version: 1, providers: parsed.providers };
88
- }
124
+ return parseModelsFile(JSON.parse(raw) as unknown);
89
125
  } catch {
90
126
  // Invalid or missing files fall back to an empty registry.
91
127
  }
@@ -97,7 +133,8 @@ export function writeModelsFileSync(
97
133
  state: StoredModelsFile,
98
134
  ): void {
99
135
  mkdirSync(dirname(filePath), { recursive: true });
100
- writeFileSync(filePath, `${JSON.stringify(state, null, 2)}\n`, "utf8");
136
+ const parsed = StoredModelsFileSchema.parse(state);
137
+ writeFileSync(filePath, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
101
138
  }
102
139
 
103
140
  export async function writeModelsFile(
@@ -105,17 +142,18 @@ export async function writeModelsFile(
105
142
  state: StoredModelsFile,
106
143
  ): Promise<void> {
107
144
  await mkdir(dirname(filePath), { recursive: true });
108
- await writeFile(filePath, `${JSON.stringify(state, null, 2)}\n`, "utf8");
145
+ const parsed = StoredModelsFileSchema.parse(state);
146
+ await writeFile(filePath, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
109
147
  }
110
148
 
111
- export function toRpcProviderModel(
149
+ export function toProviderModel(
112
150
  modelId: string,
113
151
  info: {
114
152
  name?: string;
115
153
  capabilities?: string[];
116
154
  thinkingConfig?: unknown;
117
155
  },
118
- ): RpcProviderModel {
156
+ ): ProviderModel {
119
157
  return {
120
158
  id: modelId,
121
159
  name: info.name ?? modelId,
@@ -127,7 +165,7 @@ export function toRpcProviderModel(
127
165
  }
128
166
 
129
167
  function toProviderCapabilities(
130
- capabilities: RpcProviderCapability[] | undefined,
168
+ capabilities: ProviderCapability[] | undefined,
131
169
  ): Array<"reasoning" | "prompt-cache" | "tools"> | undefined {
132
170
  if (!capabilities || capabilities.length === 0) {
133
171
  return undefined;
@@ -146,7 +184,7 @@ function toProviderCapabilities(
146
184
  }
147
185
 
148
186
  function toModelCapabilities(
149
- capabilities: RpcProviderCapability[] | undefined,
187
+ capabilities: ProviderCapability[] | undefined,
150
188
  ): Array<
151
189
  "streaming" | "tools" | "reasoning" | "prompt-cache" | "images" | "files"
152
190
  > {
@@ -167,6 +205,168 @@ function toModelCapabilities(
167
205
  return [...next];
168
206
  }
169
207
 
208
+ function isCompleteProviderMetadata(
209
+ provider: StoredProviderEntry["provider"],
210
+ ): provider is NonNullable<StoredProviderEntry["provider"]> {
211
+ return (
212
+ provider != null &&
213
+ typeof provider.name === "string" &&
214
+ typeof provider.baseUrl === "string"
215
+ );
216
+ }
217
+
218
+ function resolveProviderProtocol(
219
+ protocol: ProviderProtocol | undefined,
220
+ fallback: ProviderProtocol | undefined,
221
+ ): ProviderProtocol {
222
+ return protocol ?? fallback ?? "openai-chat";
223
+ }
224
+
225
+ function resolveProviderClient(
226
+ client: ProviderClient | undefined,
227
+ protocol: ProviderProtocol,
228
+ fallback: ProviderClient | undefined,
229
+ ): ProviderClient {
230
+ return (
231
+ client ??
232
+ fallback ??
233
+ (protocol === "openai-responses" ? "openai" : "openai-compatible")
234
+ );
235
+ }
236
+
237
+ function toStoredModelInfo(
238
+ modelId: string,
239
+ model: StoredModelEntry | undefined,
240
+ ): ModelInfo {
241
+ const capabilities = new Set<ModelCapability>(model?.capabilities ?? []);
242
+ if (model?.supportsVision) capabilities.add("images");
243
+ if (model?.supportsAttachments) capabilities.add("files");
244
+ if (model?.supportsReasoning) capabilities.add("reasoning");
245
+
246
+ return {
247
+ id: modelId,
248
+ name: model?.name ?? modelId,
249
+ capabilities: capabilities.size > 0 ? [...capabilities] : undefined,
250
+ };
251
+ }
252
+
253
+ function registerCustomModels(
254
+ providerId: string,
255
+ models: StoredProviderEntry["models"] | undefined,
256
+ ): void {
257
+ for (const [modelKey, model] of Object.entries(models ?? {})) {
258
+ const modelId = model.id?.trim() || modelKey.trim();
259
+ if (!modelId) {
260
+ continue;
261
+ }
262
+ LlmsModels.registerModel(
263
+ providerId,
264
+ modelId,
265
+ toStoredModelInfo(modelId, model),
266
+ );
267
+ }
268
+ }
269
+
270
+ function modelInfoWithDefaults(
271
+ modelId: string,
272
+ info: ModelInfo | undefined,
273
+ capabilities: ModelInfo["capabilities"] | undefined,
274
+ ): ModelInfo {
275
+ return {
276
+ ...(info ?? {}),
277
+ id: modelId,
278
+ name: info?.name ?? modelId,
279
+ capabilities: info?.capabilities ?? capabilities,
280
+ };
281
+ }
282
+
283
+ function getGeneratedModelsForProvider(
284
+ providerId: string,
285
+ ): Record<string, ModelInfo> {
286
+ const generated = Object.assign(
287
+ {},
288
+ ...LlmsModels.resolveProviderModelCatalogKeys(providerId).map(
289
+ (catalogKey) => LlmsModels.getGeneratedModelsForProvider(catalogKey),
290
+ ),
291
+ );
292
+ return generated as Record<string, ModelInfo>;
293
+ }
294
+
295
+ export function registerProviderSettingsProvider(
296
+ settings: ProviderSettings,
297
+ ): void {
298
+ const providerId = settings.provider.trim();
299
+ if (!providerId || LlmsModels.isBuiltInProviderId(providerId)) {
300
+ return;
301
+ }
302
+
303
+ const baseUrl = settings.baseUrl?.trim();
304
+ if (!baseUrl) {
305
+ return;
306
+ }
307
+
308
+ const existingCollection = LlmsModels.MODEL_COLLECTIONS_BY_PROVIDER_ID[
309
+ providerId
310
+ ] as LlmsModels.ModelCollection | undefined;
311
+ const generatedModels = getGeneratedModelsForProvider(providerId);
312
+ const modelCapabilities = toModelCapabilities(settings.capabilities);
313
+ const fallbackCapabilities =
314
+ modelCapabilities.length > 0 ? modelCapabilities : undefined;
315
+ const modelId = settings.model?.trim();
316
+ const models: Record<string, ModelInfo> = {
317
+ ...generatedModels,
318
+ ...(existingCollection?.models ?? {}),
319
+ };
320
+
321
+ if (modelId) {
322
+ models[modelId] = modelInfoWithDefaults(
323
+ modelId,
324
+ models[modelId],
325
+ fallbackCapabilities,
326
+ );
327
+ }
328
+
329
+ const modelIds = Object.keys(models).filter(Boolean);
330
+ const defaultModelId = modelId || modelIds[0];
331
+ if (!defaultModelId) {
332
+ return;
333
+ }
334
+ const protocol = resolveProviderProtocol(
335
+ settings.protocol,
336
+ existingCollection?.provider.protocol,
337
+ );
338
+ const client = resolveProviderClient(
339
+ settings.client,
340
+ protocol,
341
+ existingCollection?.provider.client,
342
+ );
343
+
344
+ LlmsModels.registerProvider({
345
+ provider: {
346
+ id: providerId,
347
+ name: existingCollection?.provider.name ?? titleCaseFromId(providerId),
348
+ description: existingCollection?.provider.description,
349
+ protocol,
350
+ client,
351
+ baseUrl,
352
+ defaultModelId,
353
+ capabilities:
354
+ toProviderCapabilities(settings.capabilities) ??
355
+ existingCollection?.provider.capabilities,
356
+ source: "file",
357
+ },
358
+ models,
359
+ });
360
+ }
361
+
362
+ export function registerConfiguredProvidersFromSettings(
363
+ state: StoredProviderSettings,
364
+ ): void {
365
+ for (const entry of Object.values(state.providers)) {
366
+ registerProviderSettingsProvider(entry.settings);
367
+ }
368
+ }
369
+
170
370
  /**
171
371
  * Custom Provider Registry
172
372
  *
@@ -176,20 +376,35 @@ function toModelCapabilities(
176
376
  */
177
377
  export function registerCustomProvider(
178
378
  providerId: string,
179
- entry: StoredModelsFile["providers"][string],
379
+ entry: StoredProviderEntry,
180
380
  ): void {
381
+ const storedModels = entry.models ?? {};
382
+ if (!isCompleteProviderMetadata(entry.provider)) {
383
+ registerCustomModels(providerId, storedModels);
384
+ return;
385
+ }
386
+
181
387
  const modelCapabilities = toModelCapabilities(entry.provider.capabilities);
182
- const modelEntries = Object.values(entry.models)
183
- .map((model) => model.id.trim())
184
- .filter((modelId) => modelId.length > 0);
388
+ const modelEntries = Object.entries(storedModels)
389
+ .map(([modelKey, model]) => ({
390
+ id: model.id?.trim() || modelKey.trim(),
391
+ model,
392
+ }))
393
+ .filter(({ id }) => id.length > 0);
185
394
  const defaultModelId =
186
- entry.provider.defaultModelId?.trim() || modelEntries[0] || "default";
395
+ entry.provider.defaultModelId?.trim() || modelEntries[0]?.id || "default";
396
+ const protocol = resolveProviderProtocol(entry.provider.protocol, undefined);
397
+ const client = resolveProviderClient(
398
+ entry.provider.client,
399
+ protocol,
400
+ undefined,
401
+ );
187
402
  const normalizedModels = Object.fromEntries(
188
- modelEntries.map((modelId) => [
189
- modelId,
403
+ modelEntries.map(({ id, model }) => [
404
+ id,
190
405
  {
191
- id: modelId,
192
- name: entry.models[modelId]?.name ?? modelId,
406
+ id,
407
+ name: model.name ?? id,
193
408
  capabilities:
194
409
  modelCapabilities.length > 0 ? modelCapabilities : undefined,
195
410
  status: "active" as const,
@@ -201,11 +416,12 @@ export function registerCustomProvider(
201
416
  provider: {
202
417
  id: providerId,
203
418
  name: entry.provider.name.trim() || titleCaseFromId(providerId),
204
- protocol: "openai-chat",
205
- client: "openai-compatible",
419
+ protocol,
420
+ client,
206
421
  baseUrl: entry.provider.baseUrl,
207
422
  defaultModelId,
208
423
  capabilities: toProviderCapabilities(entry.provider.capabilities),
424
+ source: "file",
209
425
  },
210
426
  models: normalizedModels,
211
427
  });