@clinebot/core 0.0.33 → 0.0.35

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 (412) hide show
  1. package/README.md +12 -8
  2. package/dist/ClineCore.d.ts +48 -29
  3. package/dist/ClineCore.d.ts.map +1 -1
  4. package/dist/auth/client.d.ts +19 -0
  5. package/dist/auth/client.d.ts.map +1 -1
  6. package/dist/auth/cline.d.ts.map +1 -1
  7. package/dist/auth/oca.d.ts.map +1 -1
  8. package/dist/auth/server.d.ts +32 -0
  9. package/dist/auth/server.d.ts.map +1 -1
  10. package/dist/auth/types.d.ts +29 -0
  11. package/dist/auth/types.d.ts.map +1 -1
  12. package/dist/extensions/config/agent-config-loader.d.ts +2 -2
  13. package/dist/extensions/config/agent-config-loader.d.ts.map +1 -1
  14. package/dist/extensions/config/agent-config-parser.d.ts +1 -1
  15. package/dist/extensions/config/agent-config-parser.d.ts.map +1 -1
  16. package/dist/extensions/config/hooks-config-loader.d.ts +2 -2
  17. package/dist/extensions/config/hooks-config-loader.d.ts.map +1 -1
  18. package/dist/extensions/config/index.d.ts +3 -3
  19. package/dist/extensions/config/index.d.ts.map +1 -1
  20. package/dist/extensions/config/user-instruction-config-loader.d.ts +2 -2
  21. package/dist/extensions/config/user-instruction-config-loader.d.ts.map +1 -1
  22. package/dist/extensions/index.d.ts +2 -1
  23. package/dist/extensions/index.d.ts.map +1 -1
  24. package/dist/extensions/plugin/plugin-config-loader.d.ts +2 -1
  25. package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
  26. package/dist/extensions/plugin/plugin-load-report.d.ts +19 -0
  27. package/dist/extensions/plugin/plugin-load-report.d.ts.map +1 -0
  28. package/dist/extensions/plugin/plugin-loader.d.ts +6 -0
  29. package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
  30. package/dist/extensions/plugin/plugin-sandbox.d.ts +2 -1
  31. package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
  32. package/dist/extensions/plugin-sandbox-bootstrap.js +242 -242
  33. package/dist/extensions/tools/constants.d.ts.map +1 -0
  34. package/dist/extensions/tools/definitions.d.ts.map +1 -0
  35. package/dist/extensions/tools/executors/apply-patch-parser.d.ts.map +1 -0
  36. package/dist/extensions/tools/executors/apply-patch.d.ts.map +1 -0
  37. package/dist/extensions/tools/executors/bash.d.ts.map +1 -0
  38. package/dist/extensions/tools/executors/editor.d.ts.map +1 -0
  39. package/dist/extensions/tools/executors/file-read.d.ts.map +1 -0
  40. package/dist/extensions/tools/executors/index.d.ts.map +1 -0
  41. package/dist/extensions/tools/executors/search.d.ts.map +1 -0
  42. package/dist/extensions/tools/executors/web-fetch.d.ts.map +1 -0
  43. package/dist/extensions/tools/helpers.d.ts.map +1 -0
  44. package/dist/extensions/tools/index.d.ts.map +1 -0
  45. package/dist/{tools → extensions/tools}/model-tool-routing.d.ts +1 -1
  46. package/dist/extensions/tools/model-tool-routing.d.ts.map +1 -0
  47. package/dist/{tools → extensions/tools}/presets.d.ts +1 -2
  48. package/dist/extensions/tools/presets.d.ts.map +1 -0
  49. package/dist/extensions/tools/schemas.d.ts.map +1 -0
  50. package/dist/extensions/tools/team/delegated-agent.d.ts.map +1 -0
  51. package/dist/extensions/tools/team/index.d.ts.map +1 -0
  52. package/dist/{team → extensions/tools/team}/multi-agent.d.ts +1 -3
  53. package/dist/extensions/tools/team/multi-agent.d.ts.map +1 -0
  54. package/dist/extensions/tools/team/projections.d.ts.map +1 -0
  55. package/dist/extensions/tools/team/runtime.d.ts.map +1 -0
  56. package/dist/{team → extensions/tools/team}/spawn-agent-tool.d.ts +0 -1
  57. package/dist/extensions/tools/team/spawn-agent-tool.d.ts.map +1 -0
  58. package/dist/extensions/tools/team/subagent-prompts.d.ts.map +1 -0
  59. package/dist/extensions/tools/team/team-tools.d.ts.map +1 -0
  60. package/dist/{tools → extensions/tools}/types.d.ts +4 -3
  61. package/dist/extensions/tools/types.d.ts.map +1 -0
  62. package/dist/{runtime → hooks}/checkpoint-hooks.d.ts +7 -0
  63. package/dist/hooks/checkpoint-hooks.d.ts.map +1 -0
  64. package/dist/{runtime → hooks}/hook-file-hooks.d.ts +0 -2
  65. package/dist/hooks/hook-file-hooks.d.ts.map +1 -0
  66. package/dist/hooks/subprocess.d.ts +3 -130
  67. package/dist/hooks/subprocess.d.ts.map +1 -1
  68. package/dist/index.d.ts +38 -35
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +386 -384
  71. package/dist/runtime/history.d.ts +4 -0
  72. package/dist/runtime/history.d.ts.map +1 -0
  73. package/dist/runtime/host.d.ts +9 -0
  74. package/dist/runtime/host.d.ts.map +1 -0
  75. package/dist/{session → runtime}/rpc-runtime-ensure.d.ts +13 -1
  76. package/dist/{session → runtime}/rpc-runtime-ensure.d.ts.map +1 -1
  77. package/dist/{session → runtime}/rpc-spawn-lease.d.ts.map +1 -1
  78. package/dist/runtime/runtime-builder.d.ts +1 -1
  79. package/dist/runtime/runtime-builder.d.ts.map +1 -1
  80. package/dist/{session/session-manager.d.ts → runtime/runtime-host.d.ts} +55 -12
  81. package/dist/runtime/runtime-host.d.ts.map +1 -0
  82. package/dist/{session → runtime}/runtime-oauth-token-manager.d.ts +1 -1
  83. package/dist/{session → runtime}/runtime-oauth-token-manager.d.ts.map +1 -1
  84. package/dist/runtime/session-runtime.d.ts +2 -2
  85. package/dist/runtime/session-runtime.d.ts.map +1 -1
  86. package/dist/runtime/subprocess-sandbox.d.ts +2 -0
  87. package/dist/runtime/subprocess-sandbox.d.ts.map +1 -1
  88. package/dist/runtime/tool-approval.d.ts.map +1 -1
  89. package/dist/{session/session-agent-events.d.ts → services/agent-events.d.ts} +4 -4
  90. package/dist/services/agent-events.d.ts.map +1 -0
  91. package/dist/services/config.d.ts +3 -0
  92. package/dist/services/config.d.ts.map +1 -0
  93. package/dist/services/local-runtime-bootstrap.d.ts +41 -0
  94. package/dist/services/local-runtime-bootstrap.d.ts.map +1 -0
  95. package/dist/services/providers/local-provider-registry.d.ts.map +1 -0
  96. package/dist/services/providers/local-provider-service.d.ts.map +1 -0
  97. package/dist/{session → services}/session-artifacts.d.ts +2 -4
  98. package/dist/services/session-artifacts.d.ts.map +1 -0
  99. package/dist/{session/utils/helpers.d.ts → services/session-data.d.ts} +19 -27
  100. package/dist/services/session-data.d.ts.map +1 -0
  101. package/dist/{session → services}/session-telemetry.d.ts +2 -2
  102. package/dist/services/session-telemetry.d.ts.map +1 -0
  103. package/dist/{storage → services/storage}/file-team-store.d.ts +2 -2
  104. package/dist/services/storage/file-team-store.d.ts.map +1 -0
  105. package/dist/{storage → services/storage}/provider-settings-legacy-migration.d.ts +1 -1
  106. package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -0
  107. package/dist/{storage → services/storage}/provider-settings-manager.d.ts +1 -1
  108. package/dist/services/storage/provider-settings-manager.d.ts.map +1 -0
  109. package/dist/{storage → services/storage}/sqlite-session-store.d.ts +3 -3
  110. package/dist/services/storage/sqlite-session-store.d.ts.map +1 -0
  111. package/dist/{storage → services/storage}/sqlite-team-store.d.ts +2 -2
  112. package/dist/services/storage/sqlite-team-store.d.ts.map +1 -0
  113. package/dist/{storage → services/storage}/team-store.d.ts +1 -1
  114. package/dist/services/storage/team-store.d.ts.map +1 -0
  115. package/dist/services/telemetry/ITelemetryAdapter.d.ts.map +1 -0
  116. package/dist/services/telemetry/OpenTelemetryAdapter.d.ts.map +1 -0
  117. package/dist/services/telemetry/OpenTelemetryProvider.d.ts.map +1 -0
  118. package/dist/services/telemetry/TelemetryLoggerSink.d.ts.map +1 -0
  119. package/dist/services/telemetry/TelemetryService.d.ts.map +1 -0
  120. package/dist/services/telemetry/core-events.d.ts.map +1 -0
  121. package/dist/services/telemetry/distinct-id.d.ts.map +1 -0
  122. package/dist/services/telemetry/index.d.ts.map +1 -0
  123. package/dist/{telemetry → services/telemetry}/index.js +6 -6
  124. package/dist/{session/utils → services}/usage.d.ts +1 -1
  125. package/dist/services/usage.d.ts.map +1 -0
  126. package/dist/services/workspace/file-indexer.d.ts.map +1 -0
  127. package/dist/services/workspace/index.d.ts.map +1 -0
  128. package/dist/services/workspace/mention-enricher.d.ts.map +1 -0
  129. package/dist/services/workspace-manifest.d.ts.map +1 -0
  130. package/dist/session/file-session-service.d.ts +4 -1
  131. package/dist/session/file-session-service.d.ts.map +1 -1
  132. package/dist/session/persistence-service.d.ts +8 -6
  133. package/dist/session/persistence-service.d.ts.map +1 -1
  134. package/dist/session/rpc-session-service.d.ts +3 -0
  135. package/dist/session/rpc-session-service.d.ts.map +1 -1
  136. package/dist/session/session-service.d.ts +8 -9
  137. package/dist/session/session-service.d.ts.map +1 -1
  138. package/dist/session/session-team-coordination.d.ts +4 -4
  139. package/dist/session/session-team-coordination.d.ts.map +1 -1
  140. package/dist/session/sqlite-rpc-session-backend.d.ts.map +1 -1
  141. package/dist/{session/default-session-manager.d.ts → transports/local.d.ts} +24 -14
  142. package/dist/transports/local.d.ts.map +1 -0
  143. package/dist/transports/rpc.d.ts +51 -0
  144. package/dist/transports/rpc.d.ts.map +1 -0
  145. package/dist/transports/runtime-host-support.d.ts +21 -0
  146. package/dist/transports/runtime-host-support.d.ts.map +1 -0
  147. package/dist/types/chat-schema.d.ts.map +1 -0
  148. package/dist/types/config.d.ts +3 -2
  149. package/dist/types/config.d.ts.map +1 -1
  150. package/dist/{session/utils/types.d.ts → types/session.d.ts} +15 -6
  151. package/dist/types/session.d.ts.map +1 -0
  152. package/dist/types/sessions.d.ts +19 -0
  153. package/dist/types/sessions.d.ts.map +1 -1
  154. package/dist/types/storage.d.ts +1 -3
  155. package/dist/types/storage.d.ts.map +1 -1
  156. package/dist/types.d.ts +7 -6
  157. package/dist/types.d.ts.map +1 -1
  158. package/package.json +7 -12
  159. package/src/ClineCore.test.ts +95 -19
  160. package/src/ClineCore.ts +120 -50
  161. package/src/auth/client.test.ts +29 -0
  162. package/src/auth/client.ts +21 -0
  163. package/src/auth/cline.ts +3 -1
  164. package/src/auth/codex.ts +1 -1
  165. package/src/auth/oca.ts +3 -1
  166. package/src/auth/server.test.ts +287 -0
  167. package/src/auth/server.ts +50 -1
  168. package/src/auth/types.ts +29 -0
  169. package/src/extensions/config/agent-config-loader.test.ts +3 -3
  170. package/src/extensions/config/agent-config-loader.ts +1 -5
  171. package/src/extensions/config/agent-config-parser.ts +1 -1
  172. package/src/extensions/config/hooks-config-loader.ts +1 -2
  173. package/src/extensions/config/index.ts +0 -4
  174. package/src/extensions/config/user-instruction-config-loader.ts +0 -4
  175. package/src/extensions/index.ts +6 -0
  176. package/src/extensions/plugin/plugin-config-loader.test.ts +39 -0
  177. package/src/extensions/plugin/plugin-config-loader.ts +18 -10
  178. package/src/extensions/plugin/plugin-load-report.ts +20 -0
  179. package/src/extensions/plugin/plugin-loader.test.ts +45 -0
  180. package/src/extensions/plugin/plugin-loader.ts +57 -3
  181. package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +158 -86
  182. package/src/extensions/plugin/plugin-sandbox.test.ts +70 -0
  183. package/src/extensions/plugin/plugin-sandbox.ts +17 -6
  184. package/src/{tools → extensions/tools}/definitions.ts +1 -1
  185. package/src/extensions/tools/executors/file-read.test.ts +125 -0
  186. package/src/{tools → extensions/tools}/executors/file-read.ts +29 -4
  187. package/src/{tools → extensions/tools}/executors/search.ts +1 -1
  188. package/src/{tools → extensions/tools}/model-tool-routing.ts +1 -1
  189. package/src/{tools → extensions/tools}/presets.ts +2 -3
  190. package/src/extensions/tools/team/multi-agent.lifecycle.test.ts +455 -0
  191. package/src/{team → extensions/tools/team}/multi-agent.ts +80 -17
  192. package/src/{team → extensions/tools/team}/spawn-agent-tool.test.ts +0 -6
  193. package/src/{team → extensions/tools/team}/spawn-agent-tool.ts +1 -7
  194. package/src/{team → extensions/tools/team}/subagent-prompts.ts +2 -2
  195. package/src/{team → extensions/tools/team}/team-tools.test.ts +146 -30
  196. package/src/{team → extensions/tools/team}/team-tools.ts +98 -69
  197. package/src/{tools → extensions/tools}/types.ts +5 -3
  198. package/src/{runtime → hooks}/checkpoint-hooks.ts +27 -0
  199. package/src/{runtime → hooks}/hook-file-hooks.test.ts +42 -7
  200. package/src/{runtime → hooks}/hook-file-hooks.ts +6 -11
  201. package/src/hooks/subprocess.ts +48 -257
  202. package/src/index.ts +178 -158
  203. package/src/runtime/history.test.ts +114 -0
  204. package/src/runtime/history.ts +237 -0
  205. package/src/runtime/host.test.ts +230 -0
  206. package/src/runtime/host.ts +362 -0
  207. package/src/runtime/rpc-runtime-ensure.test.ts +123 -0
  208. package/src/{session → runtime}/rpc-runtime-ensure.ts +165 -27
  209. package/src/{session → runtime}/rpc-spawn-lease.test.ts +33 -1
  210. package/src/{session → runtime}/rpc-spawn-lease.ts +54 -20
  211. package/src/runtime/runtime-builder.team-persistence.test.ts +6 -3
  212. package/src/runtime/runtime-builder.test.ts +101 -4
  213. package/src/runtime/runtime-builder.ts +125 -86
  214. package/src/runtime/runtime-host.ts +178 -0
  215. package/src/{session → runtime}/runtime-oauth-token-manager.ts +1 -1
  216. package/src/runtime/runtime-parity.test.ts +1 -1
  217. package/src/runtime/session-runtime.ts +2 -2
  218. package/src/runtime/subprocess-sandbox.ts +26 -23
  219. package/src/runtime/tool-approval.ts +13 -15
  220. package/src/{session/session-agent-events.ts → services/agent-events.ts} +7 -7
  221. package/src/services/config.ts +5 -0
  222. package/src/services/local-runtime-bootstrap.ts +280 -0
  223. package/src/{providers → services/providers}/local-provider-service.ts +4 -4
  224. package/src/{session → services}/session-artifacts.ts +23 -19
  225. package/src/{session/utils/helpers.test.ts → services/session-data.test.ts} +1 -1
  226. package/src/{session/utils/helpers.ts → services/session-data.ts} +76 -72
  227. package/src/{session → services}/session-telemetry.ts +7 -9
  228. package/src/services/storage/artifact-store.ts +1 -0
  229. package/src/{storage → services/storage}/file-team-store.ts +2 -2
  230. package/src/{storage → services/storage}/provider-settings-legacy-migration.test.ts +1 -1
  231. package/src/{storage → services/storage}/provider-settings-legacy-migration.ts +2 -2
  232. package/src/{storage → services/storage}/provider-settings-manager.ts +2 -2
  233. package/src/services/storage/session-store.ts +1 -0
  234. package/src/{storage → services/storage}/sqlite-session-store.ts +7 -12
  235. package/src/{storage → services/storage}/sqlite-team-store.ts +4 -4
  236. package/src/{storage → services/storage}/team-store.ts +1 -1
  237. package/src/{session/utils → services}/usage.ts +1 -1
  238. package/src/{input → services/workspace}/file-indexer.test.ts +30 -1
  239. package/src/{input → services/workspace}/file-indexer.ts +26 -2
  240. package/src/{input → services/workspace}/mention-enricher.test.ts +21 -0
  241. package/src/{input → services/workspace}/mention-enricher.ts +1 -1
  242. package/src/session/file-session-service.ts +9 -7
  243. package/src/session/index.ts +25 -17
  244. package/src/session/persistence-service.test.ts +121 -24
  245. package/src/session/persistence-service.ts +118 -102
  246. package/src/session/rpc-session-service.ts +9 -2
  247. package/src/session/session-service.team-persistence.test.ts +1 -1
  248. package/src/session/session-service.ts +32 -19
  249. package/src/session/session-team-coordination.ts +13 -6
  250. package/src/session/sqlite-rpc-session-backend.ts +4 -6
  251. package/src/session/workspace-manager.ts +1 -1
  252. package/src/{session/default-session-manager.e2e.test.ts → transports/local.e2e.test.ts} +13 -17
  253. package/src/{session/default-session-manager.test.ts → transports/local.test.ts} +316 -230
  254. package/src/{session/default-session-manager.ts → transports/local.ts} +138 -172
  255. package/src/transports/rpc.test.ts +82 -0
  256. package/src/transports/rpc.ts +665 -0
  257. package/src/transports/runtime-host-support.ts +86 -0
  258. package/src/types/config.ts +3 -2
  259. package/src/{session/utils/types.ts → types/session.ts} +18 -5
  260. package/src/types/sessions.ts +21 -0
  261. package/src/types/storage.ts +1 -6
  262. package/src/types.ts +25 -18
  263. package/dist/chat/chat-schema.d.ts.map +0 -1
  264. package/dist/input/file-indexer.d.ts.map +0 -1
  265. package/dist/input/index.d.ts.map +0 -1
  266. package/dist/input/mention-enricher.d.ts.map +0 -1
  267. package/dist/prompt/default-system.d.ts +0 -2
  268. package/dist/prompt/default-system.d.ts.map +0 -1
  269. package/dist/providers/local-provider-registry.d.ts.map +0 -1
  270. package/dist/providers/local-provider-service.d.ts.map +0 -1
  271. package/dist/runtime/checkpoint-hooks.d.ts.map +0 -1
  272. package/dist/runtime/hook-file-hooks.d.ts.map +0 -1
  273. package/dist/runtime/team-runtime-registry.d.ts +0 -13
  274. package/dist/runtime/team-runtime-registry.d.ts.map +0 -1
  275. package/dist/session/default-session-manager.d.ts.map +0 -1
  276. package/dist/session/session-agent-events.d.ts.map +0 -1
  277. package/dist/session/session-artifacts.d.ts.map +0 -1
  278. package/dist/session/session-config-builder.d.ts +0 -16
  279. package/dist/session/session-config-builder.d.ts.map +0 -1
  280. package/dist/session/session-host.d.ts +0 -15
  281. package/dist/session/session-host.d.ts.map +0 -1
  282. package/dist/session/session-manager.d.ts.map +0 -1
  283. package/dist/session/session-telemetry.d.ts.map +0 -1
  284. package/dist/session/utils/helpers.d.ts.map +0 -1
  285. package/dist/session/utils/types.d.ts.map +0 -1
  286. package/dist/session/utils/usage.d.ts.map +0 -1
  287. package/dist/session/workspace-manifest.d.ts.map +0 -1
  288. package/dist/storage/file-team-store.d.ts.map +0 -1
  289. package/dist/storage/provider-settings-legacy-migration.d.ts.map +0 -1
  290. package/dist/storage/provider-settings-manager.d.ts.map +0 -1
  291. package/dist/storage/sqlite-session-store.d.ts.map +0 -1
  292. package/dist/storage/sqlite-team-store.d.ts.map +0 -1
  293. package/dist/storage/team-store.d.ts.map +0 -1
  294. package/dist/team/delegated-agent.d.ts.map +0 -1
  295. package/dist/team/index.d.ts.map +0 -1
  296. package/dist/team/multi-agent.d.ts.map +0 -1
  297. package/dist/team/projections.d.ts.map +0 -1
  298. package/dist/team/runtime.d.ts.map +0 -1
  299. package/dist/team/spawn-agent-tool.d.ts.map +0 -1
  300. package/dist/team/subagent-prompts.d.ts.map +0 -1
  301. package/dist/team/team-tools.d.ts.map +0 -1
  302. package/dist/telemetry/ITelemetryAdapter.d.ts.map +0 -1
  303. package/dist/telemetry/OpenTelemetryAdapter.d.ts.map +0 -1
  304. package/dist/telemetry/OpenTelemetryProvider.d.ts.map +0 -1
  305. package/dist/telemetry/TelemetryLoggerSink.d.ts.map +0 -1
  306. package/dist/telemetry/TelemetryService.d.ts.map +0 -1
  307. package/dist/telemetry/core-events.d.ts.map +0 -1
  308. package/dist/telemetry/distinct-id.d.ts.map +0 -1
  309. package/dist/telemetry/index.d.ts.map +0 -1
  310. package/dist/tools/constants.d.ts.map +0 -1
  311. package/dist/tools/definitions.d.ts.map +0 -1
  312. package/dist/tools/executors/apply-patch-parser.d.ts.map +0 -1
  313. package/dist/tools/executors/apply-patch.d.ts.map +0 -1
  314. package/dist/tools/executors/bash.d.ts.map +0 -1
  315. package/dist/tools/executors/editor.d.ts.map +0 -1
  316. package/dist/tools/executors/file-read.d.ts.map +0 -1
  317. package/dist/tools/executors/index.d.ts.map +0 -1
  318. package/dist/tools/executors/search.d.ts.map +0 -1
  319. package/dist/tools/executors/web-fetch.d.ts.map +0 -1
  320. package/dist/tools/helpers.d.ts.map +0 -1
  321. package/dist/tools/index.d.ts.map +0 -1
  322. package/dist/tools/model-tool-routing.d.ts.map +0 -1
  323. package/dist/tools/presets.d.ts.map +0 -1
  324. package/dist/tools/schemas.d.ts.map +0 -1
  325. package/dist/tools/types.d.ts.map +0 -1
  326. package/src/prompt/default-system.ts +0 -21
  327. package/src/runtime/team-runtime-registry.ts +0 -43
  328. package/src/session/session-config-builder.ts +0 -126
  329. package/src/session/session-host.test.ts +0 -89
  330. package/src/session/session-host.ts +0 -213
  331. package/src/session/session-manager.ts +0 -74
  332. package/src/storage/artifact-store.ts +0 -1
  333. package/src/storage/session-store.ts +0 -1
  334. package/src/team/multi-agent.lifecycle.test.ts +0 -201
  335. package/src/tools/executors/file-read.test.ts +0 -49
  336. /package/dist/{tools → extensions/tools}/constants.d.ts +0 -0
  337. /package/dist/{tools → extensions/tools}/definitions.d.ts +0 -0
  338. /package/dist/{tools → extensions/tools}/executors/apply-patch-parser.d.ts +0 -0
  339. /package/dist/{tools → extensions/tools}/executors/apply-patch.d.ts +0 -0
  340. /package/dist/{tools → extensions/tools}/executors/bash.d.ts +0 -0
  341. /package/dist/{tools → extensions/tools}/executors/editor.d.ts +0 -0
  342. /package/dist/{tools → extensions/tools}/executors/file-read.d.ts +0 -0
  343. /package/dist/{tools → extensions/tools}/executors/index.d.ts +0 -0
  344. /package/dist/{tools → extensions/tools}/executors/search.d.ts +0 -0
  345. /package/dist/{tools → extensions/tools}/executors/web-fetch.d.ts +0 -0
  346. /package/dist/{tools → extensions/tools}/helpers.d.ts +0 -0
  347. /package/dist/{tools → extensions/tools}/index.d.ts +0 -0
  348. /package/dist/{tools → extensions/tools}/schemas.d.ts +0 -0
  349. /package/dist/{team → extensions/tools/team}/delegated-agent.d.ts +0 -0
  350. /package/dist/{team → extensions/tools/team}/index.d.ts +0 -0
  351. /package/dist/{team → extensions/tools/team}/projections.d.ts +0 -0
  352. /package/dist/{team → extensions/tools/team}/runtime.d.ts +0 -0
  353. /package/dist/{team → extensions/tools/team}/subagent-prompts.d.ts +0 -0
  354. /package/dist/{team → extensions/tools/team}/team-tools.d.ts +0 -0
  355. /package/dist/{session → runtime}/rpc-spawn-lease.d.ts +0 -0
  356. /package/dist/{providers → services/providers}/local-provider-registry.d.ts +0 -0
  357. /package/dist/{providers → services/providers}/local-provider-service.d.ts +0 -0
  358. /package/dist/{telemetry → services/telemetry}/ITelemetryAdapter.d.ts +0 -0
  359. /package/dist/{telemetry → services/telemetry}/OpenTelemetryAdapter.d.ts +0 -0
  360. /package/dist/{telemetry → services/telemetry}/OpenTelemetryProvider.d.ts +0 -0
  361. /package/dist/{telemetry → services/telemetry}/TelemetryLoggerSink.d.ts +0 -0
  362. /package/dist/{telemetry → services/telemetry}/TelemetryService.d.ts +0 -0
  363. /package/dist/{telemetry → services/telemetry}/core-events.d.ts +0 -0
  364. /package/dist/{telemetry → services/telemetry}/distinct-id.d.ts +0 -0
  365. /package/dist/{telemetry → services/telemetry}/index.d.ts +0 -0
  366. /package/dist/{input → services/workspace}/file-indexer.d.ts +0 -0
  367. /package/dist/{input → services/workspace}/index.d.ts +0 -0
  368. /package/dist/{input → services/workspace}/mention-enricher.d.ts +0 -0
  369. /package/dist/{session → services}/workspace-manifest.d.ts +0 -0
  370. /package/dist/{chat → types}/chat-schema.d.ts +0 -0
  371. /package/src/{tools → extensions/tools}/constants.ts +0 -0
  372. /package/src/{tools → extensions/tools}/definitions.test.ts +0 -0
  373. /package/src/{tools → extensions/tools}/executors/apply-patch-parser.ts +0 -0
  374. /package/src/{tools → extensions/tools}/executors/apply-patch.ts +0 -0
  375. /package/src/{tools → extensions/tools}/executors/bash.test.ts +0 -0
  376. /package/src/{tools → extensions/tools}/executors/bash.ts +0 -0
  377. /package/src/{tools → extensions/tools}/executors/editor.test.ts +0 -0
  378. /package/src/{tools → extensions/tools}/executors/editor.ts +0 -0
  379. /package/src/{tools → extensions/tools}/executors/index.ts +0 -0
  380. /package/src/{tools → extensions/tools}/executors/web-fetch.ts +0 -0
  381. /package/src/{tools → extensions/tools}/helpers.ts +0 -0
  382. /package/src/{tools → extensions/tools}/index.ts +0 -0
  383. /package/src/{tools → extensions/tools}/model-tool-routing.test.ts +0 -0
  384. /package/src/{tools → extensions/tools}/presets.test.ts +0 -0
  385. /package/src/{tools → extensions/tools}/schemas.ts +0 -0
  386. /package/src/{team → extensions/tools/team}/delegated-agent.ts +0 -0
  387. /package/src/{team → extensions/tools/team}/index.ts +0 -0
  388. /package/src/{team → extensions/tools/team}/projections.ts +0 -0
  389. /package/src/{team → extensions/tools/team}/runtime.ts +0 -0
  390. /package/src/{runtime → hooks}/checkpoint-hooks.test.ts +0 -0
  391. /package/src/{session → runtime}/runtime-oauth-token-manager.test.ts +0 -0
  392. /package/src/{providers → services/providers}/local-provider-registry.ts +0 -0
  393. /package/src/{providers → services/providers}/local-provider-service.test.ts +0 -0
  394. /package/src/{storage → services/storage}/index.ts +0 -0
  395. /package/src/{storage → services/storage}/provider-settings-manager.test.ts +0 -0
  396. /package/src/{telemetry → services/telemetry}/ITelemetryAdapter.ts +0 -0
  397. /package/src/{telemetry → services/telemetry}/OpenTelemetryAdapter.test.ts +0 -0
  398. /package/src/{telemetry → services/telemetry}/OpenTelemetryAdapter.ts +0 -0
  399. /package/src/{telemetry → services/telemetry}/OpenTelemetryProvider.test.ts +0 -0
  400. /package/src/{telemetry → services/telemetry}/OpenTelemetryProvider.ts +0 -0
  401. /package/src/{telemetry → services/telemetry}/TelemetryLoggerSink.test.ts +0 -0
  402. /package/src/{telemetry → services/telemetry}/TelemetryLoggerSink.ts +0 -0
  403. /package/src/{telemetry → services/telemetry}/TelemetryService.test.ts +0 -0
  404. /package/src/{telemetry → services/telemetry}/TelemetryService.ts +0 -0
  405. /package/src/{telemetry → services/telemetry}/core-events.ts +0 -0
  406. /package/src/{telemetry → services/telemetry}/distinct-id.test.ts +0 -0
  407. /package/src/{telemetry → services/telemetry}/distinct-id.ts +0 -0
  408. /package/src/{telemetry → services/telemetry}/index.ts +0 -0
  409. /package/src/{input → services/workspace}/file-indexer.d.ts +0 -0
  410. /package/src/{input → services/workspace}/index.ts +0 -0
  411. /package/src/{session → services}/workspace-manifest.ts +0 -0
  412. /package/src/{chat → types}/chat-schema.ts +0 -0
package/dist/types.d.ts CHANGED
@@ -1,21 +1,22 @@
1
1
  export type { WorkspaceInfo, WorkspaceManifest } from "@clinebot/shared";
2
- export { ClineCore, type ClineCoreOptions, type RpcOptions, } from "./ClineCore";
3
- export type { ChatMessage, ChatSessionConfig, ChatSessionStatus, ChatSummary, ChatViewState, } from "./chat/chat-schema";
2
+ export { ClineCore, type ClineCoreOptions, type ClineCoreStartInput, type RpcOptions, } from "./ClineCore";
4
3
  export type { LoadAgentPluginFromPathOptions, ResolveAgentPluginPathsOptions, } from "./extensions";
5
4
  export { discoverPluginModulePaths, loadAgentPluginFromPath, loadAgentPluginsFromPaths, resolveAgentPluginPaths, resolveAndLoadAgentPlugins, resolvePluginConfigSearchPaths, } from "./extensions";
6
5
  export type { AgentConfigWatcher, AgentConfigWatcherEvent, AgentYamlConfig, BuildAgentConfigOverridesOptions, CreateAgentConfigWatcherOptions, CreateInstructionWatcherOptions, CreateRulesConfigDefinitionOptions, CreateSkillsConfigDefinitionOptions, CreateUserInstructionConfigWatcherOptions, CreateWorkflowsConfigDefinitionOptions, ParseMarkdownFrontmatterResult, ParseYamlFrontmatterResult, RuleConfig, SkillConfig, UnifiedConfigDefinition, UnifiedConfigFileCandidate, UnifiedConfigFileContext, UnifiedConfigRecord, UnifiedConfigWatcherEvent, UnifiedConfigWatcherOptions, UserInstructionConfig, UserInstructionConfigType, UserInstructionConfigWatcher, UserInstructionConfigWatcherEvent, WorkflowConfig, } from "./extensions/config";
7
- export { createAgentConfigDefinition, createAgentConfigWatcher, createRulesConfigDefinition, createSkillsConfigDefinition, createUserInstructionConfigWatcher, createWorkflowsConfigDefinition, parseAgentConfigFromYaml, parsePartialAgentConfigFromYaml, parseRuleConfigFromMarkdown, parseSkillConfigFromMarkdown, parseWorkflowConfigFromMarkdown, RULES_CONFIG_DIRECTORY_NAME, resolveAgentTools, resolveDocumentsRulesDirectoryPath, resolveDocumentsWorkflowsDirectoryPath, resolveRulesConfigSearchPaths, resolveSkillsConfigSearchPaths, resolveWorkflowsConfigSearchPaths, SKILLS_CONFIG_DIRECTORY_NAME, toPartialAgentConfig, UnifiedConfigFileWatcher, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./extensions/config";
6
+ export { createAgentConfigDefinition, createAgentConfigWatcher, createRulesConfigDefinition, createSkillsConfigDefinition, createUserInstructionConfigWatcher, createWorkflowsConfigDefinition, parseAgentConfigFromYaml, parsePartialAgentConfigFromYaml, parseRuleConfigFromMarkdown, parseSkillConfigFromMarkdown, parseWorkflowConfigFromMarkdown, RULES_CONFIG_DIRECTORY_NAME, resolveAgentTools, resolveRulesConfigSearchPaths, resolveSkillsConfigSearchPaths, resolveWorkflowsConfigSearchPaths, SKILLS_CONFIG_DIRECTORY_NAME, toPartialAgentConfig, UnifiedConfigFileWatcher, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./extensions/config";
7
+ export type { SessionBackend } from "./runtime/host";
8
+ export type { RuntimeHost, RuntimeHost as SessionHost, RuntimeHostMode, SendSessionInput, SessionAccumulatedUsage, StartSessionInput, StartSessionResult, } from "./runtime/runtime-host";
8
9
  export type { BuiltRuntime as RuntimeEnvironment, RuntimeBuilder, RuntimeBuilderInput, SessionRuntime, } from "./runtime/session-runtime";
9
10
  export type { SandboxCallOptions, SubprocessSandboxOptions, } from "./runtime/subprocess-sandbox";
10
11
  export { SubprocessSandbox } from "./runtime/subprocess-sandbox";
11
- export type { SessionHost } from "./session/session-host";
12
- export type { SendSessionInput, SessionAccumulatedUsage, SessionManager, StartSessionInput, StartSessionResult, } from "./session/session-manager";
13
12
  export type { SessionManifest } from "./session/session-manifest";
14
13
  export type { CreateRootSessionWithArtifactsInput, RootSessionArtifacts, } from "./session/session-service";
15
14
  export type { WorkspaceManager, WorkspaceManagerEvent, } from "./session/workspace-manager";
15
+ export type { ChatMessage, ChatSessionConfig, ChatSessionStatus, ChatSummary, ChatViewState, } from "./types/chat-schema";
16
16
  export type { SessionSource, SessionStatus } from "./types/common";
17
17
  export type { CoreAgentMode, CoreModelConfig, CoreRuntimeFeatures, CoreSessionConfig, } from "./types/config";
18
18
  export type { CoreSessionEvent, SessionChunkEvent, SessionEndedEvent, SessionTeamProgressEvent, SessionToolEvent, } from "./types/events";
19
- export type { SessionRecord, SessionRef } from "./types/sessions";
19
+ export type { SessionMessagesArtifactUploader } from "./types/session";
20
+ export type { SessionHistoryMetadata, SessionHistoryRecord, SessionRecord, SessionRef, } from "./types/sessions";
20
21
  export type { ArtifactStore, SessionStore, TeamStore } from "./types/storage";
21
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,UAAU,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,aAAa,GACb,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,GAC9B,MAAM,cAAc,CAAC;AACtB,YAAY,EACX,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,yCAAyC,EACzC,sCAAsC,EACtC,8BAA8B,EAC9B,0BAA0B,EAC1B,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,kCAAkC,EAClC,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,iBAAiB,EACjB,kCAAkC,EAClC,sCAAsC,EACtC,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,EACjC,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,YAAY,IAAI,kBAAkB,EAClC,cAAc,EACd,mBAAmB,EACnB,cAAc,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EACX,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EACX,mCAAmC,EACnC,oBAAoB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,GAC9B,MAAM,cAAc,CAAC;AACtB,YAAY,EACX,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,yCAAyC,EACzC,sCAAsC,EACtC,8BAA8B,EAC9B,0BAA0B,EAC1B,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,kCAAkC,EAClC,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,iBAAiB,EACjB,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,EACjC,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EACX,WAAW,EACX,WAAW,IAAI,WAAW,EAC1B,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,YAAY,IAAI,kBAAkB,EAClC,cAAc,EACd,mBAAmB,EACnB,cAAc,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EACX,mCAAmC,EACnC,oBAAoB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,aAAa,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EACX,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,UAAU,GACV,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clinebot/core",
3
3
  "description": "Cline Core SDK for Node Runtime",
4
- "version": "0.0.33",
4
+ "version": "0.0.35",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "main": "./dist/index.js",
@@ -15,15 +15,10 @@
15
15
  "types": "./dist/index.d.ts",
16
16
  "import": "./dist/index.js"
17
17
  },
18
- "./node": {
19
- "development": "./src/index.ts",
20
- "types": "./dist/index.d.ts",
21
- "import": "./dist/index.js"
22
- },
23
18
  "./telemetry": {
24
- "development": "./src/telemetry/index.ts",
25
- "types": "./dist/telemetry/index.d.ts",
26
- "import": "./dist/telemetry/index.js"
19
+ "development": "./src/services/telemetry/index.ts",
20
+ "types": "./dist/services/telemetry/index.d.ts",
21
+ "import": "./dist/services/telemetry/index.js"
27
22
  }
28
23
  },
29
24
  "scripts": {
@@ -36,8 +31,8 @@
36
31
  "test:watch": "vitest --config vitest.config.ts"
37
32
  },
38
33
  "dependencies": {
39
- "@clinebot/agents": "0.0.33",
40
- "@clinebot/llms": "0.0.33",
34
+ "@clinebot/agents": "0.0.35",
35
+ "@clinebot/llms": "0.0.35",
41
36
  "@opentelemetry/api": "^1.9.0",
42
37
  "@opentelemetry/api-logs": "^0.214.0",
43
38
  "@opentelemetry/exporter-logs-otlp-http": "^0.214.0",
@@ -58,7 +53,7 @@
58
53
  },
59
54
  "devDependencies": {
60
55
  "@clinebot/rpc": "0.0.28",
61
- "@clinebot/shared": "0.0.33"
56
+ "@clinebot/shared": "0.0.35"
62
57
  },
63
58
  "engines": {
64
59
  "node": ">=22"
@@ -1,20 +1,21 @@
1
1
  import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import type { ClineCoreStartInput } from "./ClineCore";
2
3
  import type {
3
4
  StartSessionInput,
4
5
  StartSessionResult,
5
- } from "./session/session-manager";
6
+ } from "./runtime/runtime-host";
6
7
 
7
- const { createSessionHostMock } = vi.hoisted(() => ({
8
- createSessionHostMock: vi.fn(),
8
+ const { createRuntimeHostMock } = vi.hoisted(() => ({
9
+ createRuntimeHostMock: vi.fn(),
9
10
  }));
10
11
 
11
- vi.mock("./session/session-host", () => ({
12
- createSessionHost: createSessionHostMock,
12
+ vi.mock("./runtime/host", () => ({
13
+ createRuntimeHost: createRuntimeHostMock,
13
14
  }));
14
15
 
15
16
  import { ClineCore } from "./ClineCore";
16
17
 
17
- function createStartInput(): StartSessionInput {
18
+ function createStartInput(): ClineCoreStartInput {
18
19
  return {
19
20
  config: {
20
21
  providerId: "anthropic",
@@ -23,6 +24,7 @@ function createStartInput(): StartSessionInput {
23
24
  cwd: "/tmp/workspace",
24
25
  workspaceRoot: "/tmp/workspace",
25
26
  systemPrompt: "You are concise.",
27
+ mode: "act",
26
28
  enableTools: true,
27
29
  enableSpawnAgent: false,
28
30
  enableAgentTeams: false,
@@ -37,15 +39,13 @@ function createStartResult(sessionId: string): StartSessionResult {
37
39
  sessionId,
38
40
  manifest: {} as StartSessionResult["manifest"],
39
41
  manifestPath: `/tmp/${sessionId}.json`,
40
- transcriptPath: `/tmp/${sessionId}.log`,
41
- hookPath: `/tmp/${sessionId}.hooks.jsonl`,
42
42
  messagesPath: `/tmp/${sessionId}.messages.json`,
43
43
  };
44
44
  }
45
45
 
46
46
  describe("ClineCore", () => {
47
47
  beforeEach(() => {
48
- createSessionHostMock.mockReset();
48
+ createRuntimeHostMock.mockReset();
49
49
  });
50
50
 
51
51
  it("applies start-session bootstraps before delegating to the host", async () => {
@@ -53,9 +53,12 @@ describe("ClineCore", () => {
53
53
  (event: { type: string; payload: { sessionId: string } }) => void
54
54
  > = [];
55
55
  const host = {
56
+ runtimeAddress: undefined,
56
57
  start: vi.fn(async (input: StartSessionInput) => {
57
58
  expect(input.config.systemPrompt).toBe("Bootstrapped prompt");
58
- expect(input.config.extensions).toEqual([{ name: "enterprise" }]);
59
+ expect(input.localRuntime?.configOverrides?.extensions).toEqual([
60
+ expect.objectContaining({ name: "enterprise" }),
61
+ ]);
59
62
  return createStartResult("session-1");
60
63
  }),
61
64
  send: vi.fn(),
@@ -67,26 +70,28 @@ describe("ClineCore", () => {
67
70
  list: vi.fn(),
68
71
  delete: vi.fn(),
69
72
  readMessages: vi.fn(),
70
- readTranscript: vi.fn(),
71
- readHooks: vi.fn(),
72
73
  subscribe: vi.fn((listener) => {
73
74
  listeners.push(listener);
74
75
  return () => {};
75
76
  }),
76
77
  updateSessionModel: vi.fn(),
77
78
  };
78
- createSessionHostMock.mockResolvedValue(host);
79
+ createRuntimeHostMock.mockResolvedValue(host);
79
80
 
80
81
  const dispose = vi.fn(async () => {});
81
82
  const applyToStartSessionInput = vi.fn(
82
- async (input: StartSessionInput) => ({
83
+ async (input: ClineCoreStartInput) => ({
83
84
  ...input,
84
85
  config: {
85
86
  ...input.config,
86
87
  systemPrompt: "Bootstrapped prompt",
87
88
  extensions: [
88
- { name: "enterprise" },
89
- ] as StartSessionInput["config"]["extensions"],
89
+ {
90
+ name: "enterprise",
91
+ manifest: { capabilities: [] },
92
+ setup: vi.fn(),
93
+ },
94
+ ],
90
95
  },
91
96
  }),
92
97
  );
@@ -111,6 +116,7 @@ describe("ClineCore", () => {
111
116
  | ((event: { type: string; payload: { sessionId: string } }) => void)
112
117
  | undefined;
113
118
  const host = {
119
+ runtimeAddress: "127.0.0.1:5317",
114
120
  start: vi.fn(async () => createStartResult("session-2")),
115
121
  send: vi.fn(),
116
122
  getAccumulatedUsage: vi.fn(),
@@ -121,15 +127,13 @@ describe("ClineCore", () => {
121
127
  list: vi.fn(),
122
128
  delete: vi.fn(),
123
129
  readMessages: vi.fn(),
124
- readTranscript: vi.fn(),
125
- readHooks: vi.fn(),
126
130
  subscribe: vi.fn((nextListener) => {
127
131
  listener = nextListener;
128
132
  return () => {};
129
133
  }),
130
134
  updateSessionModel: vi.fn(),
131
135
  };
132
- createSessionHostMock.mockResolvedValue(host);
136
+ createRuntimeHostMock.mockResolvedValue(host);
133
137
 
134
138
  const dispose = vi.fn(async () => {});
135
139
  const core = await ClineCore.create({
@@ -138,6 +142,7 @@ describe("ClineCore", () => {
138
142
  dispose,
139
143
  }),
140
144
  });
145
+ expect(core.runtimeAddress).toBe("127.0.0.1:5317");
141
146
 
142
147
  await core.start(createStartInput());
143
148
  expect(dispose).not.toHaveBeenCalled();
@@ -147,4 +152,75 @@ describe("ClineCore", () => {
147
152
 
148
153
  expect(dispose).toHaveBeenCalledTimes(1);
149
154
  });
155
+
156
+ it("hydrates list rows through the core API", async () => {
157
+ const host = {
158
+ runtimeAddress: undefined,
159
+ start: vi.fn(),
160
+ send: vi.fn(),
161
+ getAccumulatedUsage: vi.fn(),
162
+ abort: vi.fn(),
163
+ stop: vi.fn(),
164
+ dispose: vi.fn(),
165
+ get: vi.fn(async () => undefined),
166
+ list: vi.fn(async () => [
167
+ {
168
+ sessionId: "session-3",
169
+ source: "cli",
170
+ pid: 1,
171
+ startedAt: "2026-04-21T02:17:46.169Z",
172
+ status: "completed",
173
+ interactive: false,
174
+ provider: "",
175
+ model: "",
176
+ cwd: "/tmp/workspace",
177
+ workspaceRoot: "/tmp/workspace",
178
+ enableTools: true,
179
+ enableSpawn: false,
180
+ enableTeams: false,
181
+ prompt: "hello",
182
+ metadata: {},
183
+ updatedAt: "2026-04-21T02:17:46.169Z",
184
+ },
185
+ ]),
186
+ delete: vi.fn(),
187
+ update: vi.fn(),
188
+ readMessages: vi.fn(async () => [
189
+ {
190
+ role: "user",
191
+ content: [{ type: "text", text: "hello" }],
192
+ },
193
+ {
194
+ role: "assistant",
195
+ content: [{ type: "text", text: "hi" }],
196
+ modelInfo: {
197
+ provider: "cline",
198
+ id: "anthropic/claude-sonnet-4.6",
199
+ },
200
+ metrics: {
201
+ cost: 0.02,
202
+ },
203
+ },
204
+ ]),
205
+ handleHookEvent: vi.fn(),
206
+ subscribe: vi.fn(() => () => {}),
207
+ updateSessionModel: vi.fn(),
208
+ };
209
+ createRuntimeHostMock.mockResolvedValue(host);
210
+
211
+ const core = await ClineCore.create();
212
+ const [row] = await core.list(10);
213
+
214
+ expect(host.list).toHaveBeenCalledWith(10);
215
+ expect(host.readMessages).toHaveBeenCalledWith("session-3");
216
+ expect(row).toMatchObject({
217
+ sessionId: "session-3",
218
+ provider: "cline",
219
+ model: "anthropic/claude-sonnet-4.6",
220
+ metadata: {
221
+ title: "hello",
222
+ totalCost: 0.02,
223
+ },
224
+ });
225
+ });
150
226
  });
package/src/ClineCore.ts CHANGED
@@ -1,17 +1,25 @@
1
1
  import type {
2
2
  AgentConfig,
3
+ BasicLogger,
3
4
  ITelemetryService,
4
5
  ToolApprovalRequest,
5
6
  ToolApprovalResult,
6
7
  } from "@clinebot/shared";
8
+ import type { ToolExecutors } from "./extensions/tools";
9
+ import { hydrateSessionHistory } from "./runtime/history";
10
+ import type { SessionBackend } from "./runtime/host";
11
+ import { createRuntimeHost } from "./runtime/host";
12
+ import type {
13
+ LocalRuntimeStartOptions,
14
+ RuntimeHost,
15
+ RuntimeHostMode,
16
+ StartSessionInput,
17
+ StartSessionResult,
18
+ } from "./runtime/runtime-host";
19
+ import { splitCoreSessionConfig } from "./runtime/runtime-host";
7
20
  import type { TeamToolsFactory } from "./runtime/session-runtime";
8
- import {
9
- createSessionHost,
10
- type SessionBackend,
11
- type SessionHost,
12
- } from "./session/session-host";
13
- import type { StartSessionInput } from "./session/session-manager";
14
- import type { ToolExecutors } from "./tools";
21
+ import type { CoreSessionConfig } from "./types/config";
22
+ import type { SessionMessagesArtifactUploader } from "./types/session";
15
23
 
16
24
  /** Advanced options for connecting to or spawning the Cline RPC server. */
17
25
  export interface RpcOptions {
@@ -36,6 +44,14 @@ export interface RpcOptions {
36
44
  connectDelayMs?: number;
37
45
  }
38
46
 
47
+ export type { RuntimeHostMode };
48
+
49
+ export interface ClineCoreStartInput
50
+ extends Omit<StartSessionInput, "config" | "localRuntime"> {
51
+ config: CoreSessionConfig;
52
+ localRuntime?: LocalRuntimeStartOptions;
53
+ }
54
+
39
55
  export interface ClineCoreOptions {
40
56
  /**
41
57
  * A human-readable name for this SDK client (e.g. `"my-app"`, `"acme-bot"`).
@@ -49,13 +65,13 @@ export interface ClineCoreOptions {
49
65
  */
50
66
  distinctId?: string;
51
67
  /**
52
- * Controls how the session backend is selected:
68
+ * Controls how the runtime host is selected:
53
69
  * - `"auto"` (default) — connects to a running RPC server if available, starts one in the
54
- * background if `rpc.autoStart` is true, and falls back to local SQLite/file storage.
55
- * - `"rpc"` — requires an RPC server; throws if one is not reachable.
56
- * - `"local"` — always uses local SQLite (or file-based) storage; never touches RPC.
70
+ * background if `rpc.autoStart` is true, and falls back to local in-process execution.
71
+ * - `"rpc"` — requires an RPC runtime server; throws if one is not reachable.
72
+ * - `"local"` — always uses local in-process execution and local SQLite/file storage.
57
73
  */
58
- backendMode?: "auto" | "rpc" | "local";
74
+ backendMode?: RuntimeHostMode;
59
75
  /**
60
76
  * RPC server connection options. Only relevant when `backendMode` is `"auto"` or `"rpc"`.
61
77
  */
@@ -70,6 +86,11 @@ export interface ClineCoreOptions {
70
86
  * If omitted, telemetry is a no-op.
71
87
  */
72
88
  telemetry?: ITelemetryService;
89
+ /**
90
+ * Optional structured logger for core-side operational diagnostics such as
91
+ * RPC backend startup, reuse, and fallback decisions.
92
+ */
93
+ logger?: BasicLogger;
73
94
  /**
74
95
  * Per-tool approval policies that control whether a tool runs automatically,
75
96
  * requires user confirmation, or is blocked entirely.
@@ -83,6 +104,11 @@ export interface ClineCoreOptions {
83
104
  requestToolApproval?: (
84
105
  request: ToolApprovalRequest,
85
106
  ) => Promise<ToolApprovalResult>;
107
+ /**
108
+ * Optional hook invoked after `messages.json` is persisted to disk.
109
+ * Consumers can use this to mirror session transcripts into remote storage.
110
+ */
111
+ messagesArtifactUploader?: SessionMessagesArtifactUploader;
86
112
  /**
87
113
  * An already-constructed session backend to use instead of resolving one automatically.
88
114
  * Intended for testing or embedding a custom persistence layer.
@@ -101,11 +127,10 @@ export interface ClineCoreOptions {
101
127
  /**
102
128
  * Optional hook invoked before each session starts.
103
129
  * Use this to prepare workspace-scoped runtime state and then return an
104
- * adapter that mutates the `StartSessionInput` generically before core
105
- * builds the runtime.
130
+ * adapter that mutates the shared session input before core starts the run.
106
131
  */
107
132
  prepare?: (
108
- input: StartSessionInput,
133
+ input: ClineCoreStartInput,
109
134
  ) =>
110
135
  | Promise<StartSessionBootstrap | undefined>
111
136
  | StartSessionBootstrap
@@ -114,8 +139,8 @@ export interface ClineCoreOptions {
114
139
 
115
140
  export interface StartSessionBootstrap {
116
141
  applyToStartSessionInput(
117
- input: StartSessionInput,
118
- ): Promise<StartSessionInput> | StartSessionInput;
142
+ input: ClineCoreStartInput,
143
+ ): Promise<ClineCoreStartInput> | ClineCoreStartInput;
119
144
  dispose?(): Promise<void> | void;
120
145
  }
121
146
 
@@ -130,11 +155,11 @@ export interface StartSessionBootstrap {
130
155
  * const session = await cline.start({ ... });
131
156
  * ```
132
157
  */
133
- export class ClineCore implements SessionHost {
158
+ export class ClineCore implements RuntimeHost {
134
159
  readonly clientName: string | undefined;
135
- private readonly host: SessionHost;
160
+ readonly runtimeAddress: string | undefined;
161
+ private readonly host: RuntimeHost;
136
162
  private readonly prepare: ClineCoreOptions["prepare"] | undefined;
137
- private readonly teamToolsFactory: TeamToolsFactory | undefined;
138
163
  private readonly activeSessionBootstraps = new Map<
139
164
  string,
140
165
  StartSessionBootstrap
@@ -142,15 +167,15 @@ export class ClineCore implements SessionHost {
142
167
  private readonly unsubscribeBootstrapCleanup: () => void;
143
168
 
144
169
  private constructor(
145
- host: SessionHost,
170
+ host: RuntimeHost,
146
171
  clientName: string | undefined,
172
+ runtimeAddress: string | undefined,
147
173
  prepare: ClineCoreOptions["prepare"],
148
- teamToolsFactory: TeamToolsFactory | undefined,
149
174
  ) {
150
175
  this.clientName = clientName;
176
+ this.runtimeAddress = runtimeAddress;
151
177
  this.host = host;
152
178
  this.prepare = prepare;
153
- this.teamToolsFactory = teamToolsFactory;
154
179
  this.unsubscribeBootstrapCleanup = this.host.subscribe((event) => {
155
180
  if (event.type !== "ended") {
156
181
  return;
@@ -160,12 +185,12 @@ export class ClineCore implements SessionHost {
160
185
  }
161
186
 
162
187
  static async create(options: ClineCoreOptions = {}): Promise<ClineCore> {
163
- const host = await createSessionHost(options);
188
+ const host = await createRuntimeHost(options);
164
189
  return new ClineCore(
165
190
  host,
166
191
  options.clientName,
192
+ host.runtimeAddress,
167
193
  options.prepare,
168
- options.teamToolsFactory,
169
194
  );
170
195
  }
171
196
 
@@ -178,16 +203,61 @@ export class ClineCore implements SessionHost {
178
203
  await Promise.resolve(bootstrap.dispose?.());
179
204
  }
180
205
 
181
- start: SessionHost["start"] = async (input) => {
182
- const inputWithFactory: StartSessionInput = this.teamToolsFactory
183
- ? { teamToolsFactory: this.teamToolsFactory, ...input }
184
- : input;
185
- const bootstrap = await this.prepare?.(inputWithFactory);
206
+ private toClineCoreStartInput(
207
+ input: StartSessionInput | ClineCoreStartInput,
208
+ ): ClineCoreStartInput {
209
+ const config = input.config as CoreSessionConfig;
210
+ return "providerId" in config
211
+ ? {
212
+ ...input,
213
+ config: {
214
+ ...config,
215
+ ...(input.localRuntime?.configOverrides ?? {}),
216
+ },
217
+ localRuntime: input.localRuntime
218
+ ? {
219
+ ...input.localRuntime,
220
+ configOverrides: input.localRuntime.configOverrides,
221
+ }
222
+ : undefined,
223
+ }
224
+ : (input as ClineCoreStartInput);
225
+ }
226
+
227
+ private normalizeStartInput(input: ClineCoreStartInput): StartSessionInput {
228
+ const split = splitCoreSessionConfig(input.config);
229
+ const localRuntime =
230
+ split.localRuntime || input.localRuntime
231
+ ? {
232
+ ...(split.localRuntime ?? {}),
233
+ ...(input.localRuntime ?? {}),
234
+ configOverrides: {
235
+ ...(split.localRuntime?.configOverrides ?? {}),
236
+ ...(input.localRuntime?.configOverrides ?? {}),
237
+ },
238
+ }
239
+ : undefined;
240
+ return {
241
+ ...input,
242
+ ...split,
243
+ ...(localRuntime ? { localRuntime } : {}),
244
+ };
245
+ }
246
+
247
+ start(input: StartSessionInput): Promise<StartSessionResult>;
248
+ start(input: ClineCoreStartInput): Promise<StartSessionResult>;
249
+ async start(
250
+ input: StartSessionInput | ClineCoreStartInput,
251
+ ): Promise<StartSessionResult> {
252
+ const clineCoreInput = this.toClineCoreStartInput(input);
253
+ const bootstrap = await this.prepare?.(clineCoreInput);
186
254
  try {
187
- const effectiveInput = bootstrap
188
- ? await bootstrap.applyToStartSessionInput(inputWithFactory)
189
- : inputWithFactory;
190
- const result = await this.host.start(effectiveInput);
255
+ const preparedInput = bootstrap
256
+ ? await bootstrap.applyToStartSessionInput(clineCoreInput)
257
+ : clineCoreInput;
258
+ const result = await this.host.start(
259
+ this.normalizeStartInput(preparedInput),
260
+ );
191
261
  if (bootstrap) {
192
262
  const activeSession = await this.host.get(result.sessionId);
193
263
  if (activeSession) {
@@ -201,16 +271,16 @@ export class ClineCore implements SessionHost {
201
271
  await Promise.resolve(bootstrap?.dispose?.());
202
272
  throw error;
203
273
  }
204
- };
205
- send: SessionHost["send"] = (...args) => this.host.send(...args);
206
- getAccumulatedUsage: SessionHost["getAccumulatedUsage"] = (...args) =>
274
+ }
275
+ send: RuntimeHost["send"] = (...args) => this.host.send(...args);
276
+ getAccumulatedUsage: RuntimeHost["getAccumulatedUsage"] = (...args) =>
207
277
  this.host.getAccumulatedUsage(...args);
208
- abort: SessionHost["abort"] = (...args) => this.host.abort(...args);
209
- stop: SessionHost["stop"] = async (sessionId) => {
278
+ abort: RuntimeHost["abort"] = (...args) => this.host.abort(...args);
279
+ stop: RuntimeHost["stop"] = async (sessionId) => {
210
280
  await this.host.stop(sessionId);
211
281
  await this.disposeSessionBootstrap(sessionId);
212
282
  };
213
- dispose: SessionHost["dispose"] = async (...args) => {
283
+ dispose: RuntimeHost["dispose"] = async (...args) => {
214
284
  try {
215
285
  await this.host.dispose(...args);
216
286
  } finally {
@@ -221,23 +291,23 @@ export class ClineCore implements SessionHost {
221
291
  );
222
292
  }
223
293
  };
224
- get: SessionHost["get"] = (...args) => this.host.get(...args);
225
- list: SessionHost["list"] = (...args) => this.host.list(...args);
226
- delete: SessionHost["delete"] = async (sessionId) => {
294
+ get: RuntimeHost["get"] = (...args) => this.host.get(...args);
295
+ list: RuntimeHost["list"] = async (limit = 200) =>
296
+ await hydrateSessionHistory(this.host, await this.host.list(limit));
297
+ delete: RuntimeHost["delete"] = async (sessionId) => {
227
298
  const deleted = await this.host.delete(sessionId);
228
299
  if (deleted) {
229
300
  await this.disposeSessionBootstrap(sessionId);
230
301
  }
231
302
  return deleted;
232
303
  };
233
- readMessages: SessionHost["readMessages"] = (...args) =>
304
+ update: RuntimeHost["update"] = (...args) => this.host.update(...args);
305
+ readMessages: RuntimeHost["readMessages"] = (...args) =>
234
306
  this.host.readMessages(...args);
235
- readTranscript: SessionHost["readTranscript"] = (...args) =>
236
- this.host.readTranscript(...args);
237
- readHooks: SessionHost["readHooks"] = (...args) =>
238
- this.host.readHooks(...args);
239
- subscribe: SessionHost["subscribe"] = (...args) =>
307
+ handleHookEvent: RuntimeHost["handleHookEvent"] = (...args) =>
308
+ this.host.handleHookEvent(...args);
309
+ subscribe: RuntimeHost["subscribe"] = (...args) =>
240
310
  this.host.subscribe(...args);
241
- updateSessionModel: SessionHost["updateSessionModel"] = (...args) =>
311
+ updateSessionModel: RuntimeHost["updateSessionModel"] = (...args) =>
242
312
  this.host.updateSessionModel?.(...args) ?? Promise.resolve();
243
313
  }
@@ -37,4 +37,33 @@ describe("auth/client createOAuthClientCallbacks", () => {
37
37
  url: "https://example.com/auth",
38
38
  });
39
39
  });
40
+
41
+ it("forwards onServerListening to the returned callbacks", () => {
42
+ const onServerListening = vi.fn();
43
+ const callbacks = createOAuthClientCallbacks({
44
+ onPrompt: vi.fn().mockResolvedValue(""),
45
+ onServerListening,
46
+ });
47
+
48
+ expect(callbacks.onServerListening).toBe(onServerListening);
49
+ });
50
+
51
+ it("forwards onServerClose to the returned callbacks", () => {
52
+ const onServerClose = vi.fn();
53
+ const callbacks = createOAuthClientCallbacks({
54
+ onPrompt: vi.fn().mockResolvedValue(""),
55
+ onServerClose,
56
+ });
57
+
58
+ expect(callbacks.onServerClose).toBe(onServerClose);
59
+ });
60
+
61
+ it("leaves onServerListening and onServerClose undefined when not provided", () => {
62
+ const callbacks = createOAuthClientCallbacks({
63
+ onPrompt: vi.fn().mockResolvedValue(""),
64
+ });
65
+
66
+ expect(callbacks.onServerListening).toBeUndefined();
67
+ expect(callbacks.onServerClose).toBeUndefined();
68
+ });
40
69
  });
@@ -1,3 +1,4 @@
1
+ import type { OAuthServerCloseInfo, OAuthServerListeningInfo } from "./server";
1
2
  import type { OAuthLoginCallbacks, OAuthPrompt } from "./types";
2
3
 
3
4
  export interface OAuthClientCallbacksOptions {
@@ -5,6 +6,24 @@ export interface OAuthClientCallbacksOptions {
5
6
  onOutput?: (message: string) => void;
6
7
  openUrl?: (url: string) => void | Promise<void>;
7
8
  onOpenUrlError?: (context: { url: string; error: unknown }) => void;
9
+ /**
10
+ * Called when the local OAuth redirect server successfully binds to a port
11
+ * and is ready to receive the browser callback.
12
+ *
13
+ * Forwarded directly from `OAuthLoginCallbacks.onServerListening`.
14
+ * Use this to show a "waiting for OAuth callback on :::1 port N" status
15
+ * message or, in remote-development environments (e.g. JetBrains Gateway),
16
+ * to set up a port-forward from the remote machine to the local one.
17
+ */
18
+ onServerListening?: (info: OAuthServerListeningInfo) => void | Promise<void>;
19
+ /**
20
+ * Called when the local OAuth redirect server closes.
21
+ *
22
+ * Forwarded directly from `OAuthLoginCallbacks.onServerClose`.
23
+ * Use this to tear down port-forwards and clear any status UI set up in
24
+ * `onServerListening`.
25
+ */
26
+ onServerClose?: (info: OAuthServerCloseInfo) => void | Promise<void>;
8
27
  }
9
28
 
10
29
  export function createOAuthClientCallbacks(
@@ -21,5 +40,7 @@ export function createOAuthClientCallbacks(
21
40
  options.onOutput?.(url);
22
41
  },
23
42
  onPrompt: options.onPrompt,
43
+ onServerListening: options.onServerListening,
44
+ onServerClose: options.onServerClose,
24
45
  };
25
46
  }