@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,772 +0,0 @@
1
- import * as LlmsModels from "@clinebot/llms";
2
- import type {
3
- AddProviderActionRequest,
4
- OAuthProviderId,
5
- ProviderCapability,
6
- ProviderListItem,
7
- ProviderModel,
8
- SaveProviderSettingsActionRequest,
9
- } from "@clinebot/shared";
10
- import { createOAuthClientCallbacks } from "../../auth/client";
11
- import { loginClineOAuth } from "../../auth/cline";
12
- import { loginOpenAICodex } from "../../auth/codex";
13
- import { loginOcaOAuth } from "../../auth/oca";
14
- import { resolveProviderConfig } from "../../llms/provider-defaults";
15
- import type {
16
- ModelInfo,
17
- ProviderClient,
18
- ProviderConfig,
19
- ProviderProtocol,
20
- ProviderSettings,
21
- } from "../../llms/provider-settings";
22
- import type { ProviderSettingsManager } from "../storage/provider-settings-manager";
23
- import {
24
- readModelsFile,
25
- registerCustomProvider,
26
- resolveModelsRegistryPath,
27
- toProviderModel,
28
- writeModelsFile,
29
- } from "./local-provider-registry";
30
-
31
- export { ensureCustomProvidersLoaded } from "./local-provider-registry";
32
-
33
- export interface UpdateLocalProviderRequest {
34
- providerId: string;
35
- name?: string;
36
- baseUrl?: string;
37
- apiKey?: string | null;
38
- headers?: Record<string, string> | null;
39
- timeoutMs?: number | null;
40
- models?: string[];
41
- defaultModelId?: string | null;
42
- modelsSourceUrl?: string | null;
43
- protocol?: ProviderProtocol | null;
44
- client?: ProviderClient | null;
45
- capabilities?: ProviderCapability[] | null;
46
- }
47
-
48
- export interface DeleteLocalProviderRequest {
49
- providerId: string;
50
- }
51
-
52
- // --- Small pure helpers ---
53
-
54
- function resolveVisibleApiKey(settings: {
55
- apiKey?: string;
56
- auth?: { apiKey?: string };
57
- }): string | undefined {
58
- return settings.apiKey ?? settings.auth?.apiKey;
59
- }
60
-
61
- function hasOAuthAccessToken(settings: {
62
- auth?: { accessToken?: string };
63
- }): boolean {
64
- return (settings.auth?.accessToken?.trim() ?? "").length > 0;
65
- }
66
-
67
- function titleCaseFromId(id: string): string {
68
- return id
69
- .split(/[-_]/)
70
- .filter(Boolean)
71
- .map((p) => p.charAt(0).toUpperCase() + p.slice(1))
72
- .join(" ");
73
- }
74
-
75
- function createLetter(name: string): string {
76
- const parts = name.split(/\s+/).filter(Boolean);
77
- if (parts.length === 0) return "?";
78
- if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
79
- return `${parts[0][0]}${parts[1][0]}`.toUpperCase();
80
- }
81
-
82
- function stableColor(id: string): string {
83
- const palette = [
84
- "#c4956a",
85
- "#6b8aad",
86
- "#e8963a",
87
- "#5b9bd5",
88
- "#6bbd7b",
89
- "#9b7dd4",
90
- "#d07f68",
91
- "#57a6a1",
92
- ];
93
- let hash = 0;
94
- for (const ch of id) hash = (hash * 31 + ch.charCodeAt(0)) >>> 0;
95
- return palette[hash % palette.length];
96
- }
97
-
98
- function toSortedProviderModels(
99
- modelMap: Record<string, ModelInfo>,
100
- ): ProviderModel[] {
101
- return Object.entries(modelMap)
102
- .sort(([a], [b]) => a.localeCompare(b))
103
- .map(([modelId, info]) => toProviderModel(modelId, info));
104
- }
105
-
106
- // --- Model ID parsing ---
107
-
108
- function parseModelIdList(input: unknown): string[] {
109
- if (!Array.isArray(input)) return [];
110
- return input
111
- .map((item) => {
112
- if (typeof item === "string") return item.trim();
113
- if (item && typeof item === "object" && "id" in item) {
114
- const id = (item as { id?: unknown }).id;
115
- return typeof id === "string" ? id.trim() : "";
116
- }
117
- return "";
118
- })
119
- .filter((id) => id.length > 0);
120
- }
121
-
122
- function extractModelIdsFromPayload(
123
- payload: unknown,
124
- providerId: string,
125
- ): string[] {
126
- const rootArray = parseModelIdList(payload);
127
- if (rootArray.length > 0) return rootArray;
128
- if (!payload || typeof payload !== "object") return [];
129
-
130
- const data = payload as {
131
- data?: unknown;
132
- models?: unknown;
133
- providers?: Record<string, unknown>;
134
- };
135
-
136
- const direct = parseModelIdList(data.data ?? data.models);
137
- if (direct.length > 0) return direct;
138
-
139
- if (
140
- data.models &&
141
- typeof data.models === "object" &&
142
- !Array.isArray(data.models)
143
- ) {
144
- const keys = Object.keys(data.models).filter((k) => k.trim().length > 0);
145
- if (keys.length > 0) return keys;
146
- }
147
-
148
- const scoped = data.providers?.[providerId];
149
- if (scoped && typeof scoped === "object") {
150
- const nested = scoped as { models?: unknown };
151
- const list = parseModelIdList(nested.models ?? scoped);
152
- if (list.length > 0) return list;
153
- }
154
-
155
- return [];
156
- }
157
-
158
- async function fetchModelIdsFromSource(
159
- url: string,
160
- providerId: string,
161
- ): Promise<string[]> {
162
- const response = await fetch(url, { method: "GET" });
163
- if (!response.ok)
164
- throw new Error(
165
- `failed to fetch models from ${url}: HTTP ${response.status}`,
166
- );
167
- return extractModelIdsFromPayload(
168
- (await response.json()) as unknown,
169
- providerId,
170
- );
171
- }
172
-
173
- async function resolveProviderModelMap(
174
- providerId: string,
175
- config?: ProviderConfig,
176
- ): Promise<Record<string, ModelInfo>> {
177
- const registeredModels = await LlmsModels.getModelsForProvider(providerId);
178
- if (!config) {
179
- return registeredModels;
180
- }
181
-
182
- const resolved = await resolveProviderConfig(
183
- providerId,
184
- {
185
- loadPrivateOnAuth: true,
186
- failOnError: false,
187
- },
188
- config,
189
- );
190
-
191
- return resolved?.knownModels
192
- ? {
193
- ...registeredModels,
194
- ...resolved.knownModels,
195
- }
196
- : registeredModels;
197
- }
198
-
199
- function uniqueTrimmed(values?: string[]): string[] {
200
- return [...new Set((values ?? []).map((v) => v.trim()).filter(Boolean))];
201
- }
202
-
203
- function normalizeHeaders(
204
- headers: Record<string, string> | null | undefined,
205
- ): Record<string, string> | undefined {
206
- const entries = Object.entries(headers ?? {}).filter(
207
- ([key]) => key.trim().length > 0,
208
- );
209
- return entries.length > 0 ? Object.fromEntries(entries) : undefined;
210
- }
211
-
212
- function buildProviderModels(
213
- modelIds: string[],
214
- capabilities: ProviderCapability[] | undefined,
215
- ) {
216
- const supportsVision = capabilities?.includes("vision") ?? false;
217
- const supportsReasoning = capabilities?.includes("reasoning") ?? false;
218
- return Object.fromEntries(
219
- modelIds.map((id) => [
220
- id,
221
- {
222
- id,
223
- name: id,
224
- supportsVision,
225
- supportsAttachments: supportsVision,
226
- supportsReasoning,
227
- },
228
- ]),
229
- );
230
- }
231
-
232
- async function resolveModelIds(params: {
233
- providerId: string;
234
- explicitModels?: string[];
235
- modelsSourceUrl?: string;
236
- fallbackModelIds?: string[];
237
- shouldRecompute: boolean;
238
- }): Promise<string[]> {
239
- if (!params.shouldRecompute) {
240
- return params.fallbackModelIds ?? [];
241
- }
242
- const fetchedModels = params.modelsSourceUrl
243
- ? await fetchModelIdsFromSource(params.modelsSourceUrl, params.providerId)
244
- : [];
245
- return [...new Set([...(params.explicitModels ?? []), ...fetchedModels])];
246
- }
247
-
248
- function removeProviderFromSettingsState(
249
- manager: ProviderSettingsManager,
250
- providerId: string,
251
- ): void {
252
- const state = manager.read();
253
- let mutated = false;
254
- if (state.providers[providerId]) {
255
- delete state.providers[providerId];
256
- mutated = true;
257
- }
258
- if (state.lastUsedProvider === providerId) {
259
- delete state.lastUsedProvider;
260
- mutated = true;
261
- }
262
- if (mutated) manager.write(state);
263
- LlmsModels.unregisterProvider(providerId);
264
- }
265
-
266
- // --- Public API ---
267
-
268
- export async function addLocalProvider(
269
- manager: ProviderSettingsManager,
270
- request: Omit<AddProviderActionRequest, "action">,
271
- ): Promise<{
272
- providerId: string;
273
- settingsPath: string;
274
- modelsPath: string;
275
- modelsCount: number;
276
- }> {
277
- const providerId = request.providerId.trim().toLowerCase();
278
- if (!providerId) throw new Error("providerId is required");
279
- const baseUrl = request.baseUrl.trim();
280
- const apiKey = request.apiKey?.trim() ?? "";
281
-
282
- // Compatibility path: empty baseUrl + empty apiKey is treated as a delete request.
283
- if (!baseUrl && !apiKey) {
284
- const modelsPath = resolveModelsRegistryPath(manager);
285
- const modelsState = await readModelsFile(modelsPath);
286
- if (modelsState.providers[providerId]) {
287
- const deleted = await deleteLocalProvider(manager, { providerId });
288
- return {
289
- providerId,
290
- settingsPath: deleted.settingsPath,
291
- modelsPath: deleted.modelsPath,
292
- modelsCount: 0,
293
- };
294
- }
295
-
296
- removeProviderFromSettingsState(manager, providerId);
297
-
298
- return {
299
- providerId,
300
- settingsPath: manager.getFilePath(),
301
- modelsPath,
302
- modelsCount: 0,
303
- };
304
- }
305
-
306
- if (LlmsModels.hasProvider(providerId))
307
- throw new Error(`provider "${providerId}" already exists`);
308
-
309
- const providerName = request.name.trim();
310
- if (!providerName) throw new Error("name is required");
311
- if (!baseUrl) throw new Error("baseUrl is required");
312
-
313
- const typedModels = uniqueTrimmed(request.models);
314
- const sourceUrl = request.modelsSourceUrl?.trim();
315
- const modelIds = await resolveModelIds({
316
- providerId,
317
- explicitModels: typedModels,
318
- modelsSourceUrl: sourceUrl,
319
- shouldRecompute: true,
320
- });
321
- if (modelIds.length === 0) {
322
- throw new Error(
323
- "at least one model is required (manual or via modelsSourceUrl)",
324
- );
325
- }
326
-
327
- const defaultModelId =
328
- request.defaultModelId?.trim() &&
329
- modelIds.includes(request.defaultModelId.trim())
330
- ? request.defaultModelId.trim()
331
- : modelIds[0];
332
-
333
- const capabilities = request.capabilities?.length
334
- ? [...new Set(request.capabilities)]
335
- : undefined;
336
- const normalizedHeaders = normalizeHeaders(request.headers);
337
-
338
- manager.saveProviderSettings(
339
- {
340
- provider: providerId,
341
- apiKey: apiKey || undefined,
342
- baseUrl,
343
- headers: normalizedHeaders,
344
- timeout: request.timeoutMs,
345
- model: defaultModelId,
346
- protocol: request.protocol,
347
- client: request.client,
348
- },
349
- { setLastUsed: false },
350
- );
351
-
352
- const modelsPath = resolveModelsRegistryPath(manager);
353
- const modelsState = await readModelsFile(modelsPath);
354
-
355
- modelsState.providers[providerId] = {
356
- provider: {
357
- name: providerName,
358
- baseUrl,
359
- defaultModelId,
360
- protocol: request.protocol,
361
- client: request.client,
362
- capabilities,
363
- modelsSourceUrl: sourceUrl,
364
- },
365
- models: buildProviderModels(modelIds, capabilities),
366
- };
367
- await writeModelsFile(modelsPath, modelsState);
368
- registerCustomProvider(providerId, modelsState.providers[providerId]);
369
-
370
- return {
371
- providerId,
372
- settingsPath: manager.getFilePath(),
373
- modelsPath,
374
- modelsCount: modelIds.length,
375
- };
376
- }
377
-
378
- export async function updateLocalProvider(
379
- manager: ProviderSettingsManager,
380
- request: UpdateLocalProviderRequest,
381
- ): Promise<{
382
- providerId: string;
383
- settingsPath: string;
384
- modelsPath: string;
385
- modelsCount: number;
386
- }> {
387
- const providerId = request.providerId.trim().toLowerCase();
388
- if (!providerId) throw new Error("providerId is required");
389
-
390
- const modelsPath = resolveModelsRegistryPath(manager);
391
- const modelsState = await readModelsFile(modelsPath);
392
- let existingEntry = modelsState.providers[providerId];
393
- if (!existingEntry) {
394
- const existingSettings = manager.getProviderSettings(providerId);
395
- if (!existingSettings) {
396
- throw new Error(`provider "${providerId}" does not exist`);
397
- }
398
-
399
- const seedModelId =
400
- uniqueTrimmed(request.models)[0] ?? existingSettings.model?.trim();
401
- if (!seedModelId) {
402
- throw new Error(
403
- `provider "${providerId}" cannot be updated because no model is configured`,
404
- );
405
- }
406
-
407
- // Ephemeral seed for the existing update path; final state is computed and written below.
408
- existingEntry = {
409
- provider: {
410
- name: request.name?.trim() || titleCaseFromId(providerId),
411
- baseUrl:
412
- request.baseUrl?.trim() ?? existingSettings.baseUrl?.trim() ?? "",
413
- defaultModelId: seedModelId,
414
- protocol: existingSettings.protocol,
415
- client: existingSettings.client,
416
- capabilities: existingSettings.capabilities,
417
- },
418
- models: buildProviderModels([seedModelId], existingSettings.capabilities),
419
- };
420
- }
421
- if (!existingEntry.provider) {
422
- throw new Error(
423
- `provider "${providerId}" cannot be updated because it is a model overlay (no provider metadata)`,
424
- );
425
- }
426
- const providerName =
427
- request.name?.trim() ?? existingEntry.provider.name.trim();
428
- if (!providerName) throw new Error("name is required");
429
-
430
- const baseUrl =
431
- request.baseUrl?.trim() ?? existingEntry.provider.baseUrl.trim();
432
- if (!baseUrl) throw new Error("baseUrl is required");
433
-
434
- const capabilities =
435
- request.capabilities === undefined
436
- ? existingEntry.provider.capabilities
437
- : request.capabilities === null
438
- ? undefined
439
- : [...new Set(request.capabilities)];
440
- const protocol =
441
- request.protocol === undefined
442
- ? existingEntry.provider.protocol
443
- : (request.protocol ?? undefined);
444
- const client =
445
- request.client === undefined
446
- ? existingEntry.provider.client
447
- : (request.client ?? undefined);
448
-
449
- const explicitModels = uniqueTrimmed(request.models);
450
- const nextModelsSourceUrl =
451
- request.modelsSourceUrl === undefined
452
- ? existingEntry.provider.modelsSourceUrl
453
- : request.modelsSourceUrl?.trim() || undefined;
454
- const shouldRecomputeModels =
455
- request.models !== undefined ||
456
- (request.modelsSourceUrl !== undefined && !!nextModelsSourceUrl);
457
- const existingModelIds = Object.keys(existingEntry.models ?? {})
458
- .map((id) => id.trim())
459
- .filter(Boolean);
460
- const modelIds = await resolveModelIds({
461
- providerId,
462
- explicitModels,
463
- modelsSourceUrl: nextModelsSourceUrl,
464
- fallbackModelIds: existingModelIds,
465
- shouldRecompute: shouldRecomputeModels,
466
- });
467
- if (modelIds.length === 0) {
468
- throw new Error(
469
- "at least one model is required (manual or via modelsSourceUrl)",
470
- );
471
- }
472
-
473
- const defaultModelCandidate =
474
- request.defaultModelId === undefined
475
- ? existingEntry.provider.defaultModelId?.trim()
476
- : request.defaultModelId?.trim();
477
- const defaultModelId =
478
- defaultModelCandidate && modelIds.includes(defaultModelCandidate)
479
- ? defaultModelCandidate
480
- : modelIds[0];
481
-
482
- const existingSettings = manager.getProviderSettings(providerId);
483
- const nextSettings: Record<string, unknown> = {
484
- ...(existingSettings ?? {}),
485
- provider: providerId,
486
- baseUrl,
487
- model: defaultModelId,
488
- };
489
- if (protocol) nextSettings.protocol = protocol;
490
- else delete nextSettings.protocol;
491
- if (client) nextSettings.client = client;
492
- else delete nextSettings.client;
493
- if (request.apiKey !== undefined) {
494
- const apiKey = request.apiKey?.trim() ?? "";
495
- if (apiKey) nextSettings.apiKey = apiKey;
496
- else delete nextSettings.apiKey;
497
- }
498
- if (request.headers !== undefined) {
499
- const normalizedHeaders = normalizeHeaders(request.headers);
500
- if (normalizedHeaders) nextSettings.headers = normalizedHeaders;
501
- else delete nextSettings.headers;
502
- }
503
- if (request.timeoutMs !== undefined) {
504
- if (typeof request.timeoutMs === "number") {
505
- nextSettings.timeout = request.timeoutMs;
506
- } else {
507
- delete nextSettings.timeout;
508
- }
509
- }
510
-
511
- manager.saveProviderSettings(nextSettings, { setLastUsed: false });
512
-
513
- modelsState.providers[providerId] = {
514
- provider: {
515
- name: providerName,
516
- baseUrl,
517
- defaultModelId,
518
- protocol,
519
- client,
520
- capabilities,
521
- modelsSourceUrl: nextModelsSourceUrl,
522
- },
523
- models: buildProviderModels(modelIds, capabilities),
524
- };
525
- await writeModelsFile(modelsPath, modelsState);
526
- registerCustomProvider(providerId, modelsState.providers[providerId]);
527
-
528
- return {
529
- providerId,
530
- settingsPath: manager.getFilePath(),
531
- modelsPath,
532
- modelsCount: modelIds.length,
533
- };
534
- }
535
-
536
- export async function deleteLocalProvider(
537
- manager: ProviderSettingsManager,
538
- request: DeleteLocalProviderRequest,
539
- ): Promise<{
540
- providerId: string;
541
- settingsPath: string;
542
- modelsPath: string;
543
- }> {
544
- const providerId = request.providerId.trim().toLowerCase();
545
- if (!providerId) throw new Error("providerId is required");
546
-
547
- const modelsPath = resolveModelsRegistryPath(manager);
548
- const modelsState = await readModelsFile(modelsPath);
549
- if (!modelsState.providers[providerId]) {
550
- throw new Error(`provider "${providerId}" does not exist`);
551
- }
552
-
553
- delete modelsState.providers[providerId];
554
- await writeModelsFile(modelsPath, modelsState);
555
- LlmsModels.unregisterProvider(providerId);
556
-
557
- removeProviderFromSettingsState(manager, providerId);
558
-
559
- return {
560
- providerId,
561
- settingsPath: manager.getFilePath(),
562
- modelsPath,
563
- };
564
- }
565
-
566
- export async function listLocalProviders(
567
- manager: ProviderSettingsManager,
568
- ): Promise<{ providers: ProviderListItem[]; settingsPath: string }> {
569
- const state = manager.read();
570
- const ids = LlmsModels.getProviderIds().sort((a, b) => a.localeCompare(b));
571
-
572
- const providers = await Promise.all(
573
- ids.map(async (id): Promise<ProviderListItem> => {
574
- const [info, registeredModels] = await Promise.all([
575
- LlmsModels.getProvider(id),
576
- LlmsModels.getModelsForProvider(id),
577
- ]);
578
- const modelList = toSortedProviderModels(registeredModels);
579
- const persistedSettings = state.providers[id]?.settings;
580
- const name = info?.name ?? titleCaseFromId(id);
581
- return {
582
- id,
583
- name,
584
- models: modelList.length,
585
- color: stableColor(id),
586
- letter: createLetter(name),
587
- enabled: Boolean(persistedSettings),
588
- apiKey: persistedSettings
589
- ? resolveVisibleApiKey(persistedSettings)
590
- : undefined,
591
- oauthAccessTokenPresent: persistedSettings
592
- ? hasOAuthAccessToken(persistedSettings)
593
- : undefined,
594
- baseUrl: persistedSettings?.baseUrl ?? info?.baseUrl,
595
- defaultModelId: info?.defaultModelId,
596
- protocol: persistedSettings?.protocol ?? info?.protocol,
597
- client: persistedSettings?.client ?? info?.client,
598
- authDescription: "This provider uses API keys for authentication.",
599
- baseUrlDescription: "The base endpoint to use for provider requests.",
600
- modelList,
601
- };
602
- }),
603
- );
604
-
605
- return { providers, settingsPath: manager.getFilePath() };
606
- }
607
-
608
- export async function getLocalProviderModels(
609
- providerId: string,
610
- config?: ProviderConfig,
611
- ): Promise<{ providerId: string; models: ProviderModel[] }> {
612
- const id = providerId.trim();
613
- const modelMap = await resolveProviderModelMap(id, config);
614
- const models = toSortedProviderModels(modelMap);
615
- return { providerId: id, models };
616
- }
617
-
618
- export function saveLocalProviderSettings(
619
- manager: ProviderSettingsManager,
620
- request: Omit<SaveProviderSettingsActionRequest, "action">,
621
- ): { providerId: string; enabled: boolean; settingsPath: string } {
622
- const providerId = request.providerId.trim();
623
-
624
- if (request.enabled === false) {
625
- const state = manager.read();
626
- delete state.providers[providerId];
627
- if (state.lastUsedProvider === providerId) delete state.lastUsedProvider;
628
- manager.write(state);
629
- return { providerId, enabled: false, settingsPath: manager.getFilePath() };
630
- }
631
-
632
- const existing = manager.getProviderSettings(providerId);
633
- const next: Record<string, unknown> = {
634
- ...(existing ?? {}),
635
- provider: providerId,
636
- };
637
-
638
- // String fields that should be cleared when empty
639
- for (const key of ["apiKey", "baseUrl", "model", "region"] as const) {
640
- if (Object.hasOwn(request, key) && typeof request[key] === "string") {
641
- const val = (request[key] as string).trim();
642
- if (val.length === 0) delete next[key];
643
- else next[key] = request[key];
644
- }
645
- }
646
-
647
- // Scalar passthrough fields
648
- for (const key of [
649
- "maxTokens",
650
- "contextWindow",
651
- "timeout",
652
- "apiLine",
653
- "protocol",
654
- "client",
655
- "routingProviderId",
656
- "capabilities",
657
- ] as const) {
658
- if (Object.hasOwn(request, key)) next[key] = request[key];
659
- }
660
-
661
- // Merged object fields
662
- for (const key of [
663
- "auth",
664
- "headers",
665
- "reasoning",
666
- "aws",
667
- "gcp",
668
- "azure",
669
- "sap",
670
- "oca",
671
- ] as const) {
672
- if (Object.hasOwn(request, key) && request[key] != null) {
673
- next[key] = {
674
- ...(typeof next[key] === "object" && next[key] != null
675
- ? (next[key] as object)
676
- : {}),
677
- ...(request[key] as object),
678
- };
679
- }
680
- }
681
-
682
- manager.saveProviderSettings(next, { setLastUsed: false });
683
- return { providerId, enabled: true, settingsPath: manager.getFilePath() };
684
- }
685
-
686
- export function normalizeOAuthProvider(provider: string): OAuthProviderId {
687
- const normalized = provider.trim().toLowerCase();
688
- if (normalized === "codex" || normalized === "openai-codex")
689
- return "openai-codex";
690
- if (normalized === "cline" || normalized === "oca") return normalized;
691
- throw new Error(
692
- `provider "${provider}" does not support OAuth login (supported: cline, oca, openai-codex)`,
693
- );
694
- }
695
-
696
- function toProviderApiKey(
697
- providerId: OAuthProviderId,
698
- credentials: { access: string },
699
- ): string {
700
- if (providerId === "cline") {
701
- return credentials.access.startsWith("workos:")
702
- ? credentials.access
703
- : `workos:${credentials.access}`;
704
- }
705
- return credentials.access;
706
- }
707
-
708
- export async function loginLocalProvider(
709
- providerId: OAuthProviderId,
710
- existing: ProviderSettings | undefined,
711
- openUrl: (url: string) => void,
712
- ): Promise<{
713
- access: string;
714
- refresh: string;
715
- expires: number;
716
- accountId?: string;
717
- }> {
718
- const callbacks = createOAuthClientCallbacks({
719
- onPrompt: async (prompt) => prompt.defaultValue ?? "",
720
- openUrl,
721
- onOpenUrlError: ({ error }) => {
722
- throw error instanceof Error ? error : new Error(String(error));
723
- },
724
- });
725
-
726
- if (providerId === "cline") {
727
- return loginClineOAuth({
728
- apiBaseUrl: existing?.baseUrl?.trim() || "https://api.cline.bot",
729
- callbacks,
730
- });
731
- }
732
- if (providerId === "oca")
733
- return loginOcaOAuth({ mode: existing?.oca?.mode, callbacks });
734
- return loginOpenAICodex(callbacks);
735
- }
736
-
737
- export function saveLocalProviderOAuthCredentials(
738
- manager: ProviderSettingsManager,
739
- providerId: OAuthProviderId,
740
- existing: ProviderSettings | undefined,
741
- credentials: {
742
- access: string;
743
- refresh: string;
744
- expires: number;
745
- accountId?: string;
746
- },
747
- ): ProviderSettings {
748
- const auth = {
749
- ...(existing?.auth ?? {}),
750
- accessToken: toProviderApiKey(providerId, credentials),
751
- refreshToken: credentials.refresh,
752
- accountId: credentials.accountId,
753
- expiresAt: credentials.expires,
754
- } as ProviderSettings["auth"] & { expiresAt?: number };
755
-
756
- const merged: ProviderSettings = {
757
- ...(existing ?? {
758
- provider: providerId as ProviderSettings["provider"],
759
- }),
760
- provider: providerId as ProviderSettings["provider"],
761
- auth,
762
- };
763
- manager.saveProviderSettings(merged, { tokenSource: "oauth" });
764
- return merged;
765
- }
766
-
767
- export function resolveLocalClineAuthToken(
768
- settings: ProviderSettings | undefined,
769
- ): string | undefined {
770
- const token = settings?.auth?.accessToken?.trim() || settings?.apiKey?.trim();
771
- return token && token.length > 0 ? token : undefined;
772
- }