@clinebot/core 0.0.35 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/README.md +1 -2
  2. package/dist/ClineCore.d.ts +362 -39
  3. package/dist/ClineCore.d.ts.map +1 -1
  4. package/dist/account/cline-account-service.d.ts.map +1 -1
  5. package/dist/account/index.d.ts +1 -1
  6. package/dist/account/index.d.ts.map +1 -1
  7. package/dist/account/rpc.d.ts +6 -6
  8. package/dist/account/rpc.d.ts.map +1 -1
  9. package/dist/cron/cron-event-ingress.d.ts +38 -0
  10. package/dist/cron/cron-event-ingress.d.ts.map +1 -0
  11. package/dist/cron/cron-materializer.d.ts +36 -0
  12. package/dist/cron/cron-materializer.d.ts.map +1 -0
  13. package/dist/cron/cron-reconciler.d.ts +62 -0
  14. package/dist/cron/cron-reconciler.d.ts.map +1 -0
  15. package/dist/cron/cron-report-writer.d.ts +41 -0
  16. package/dist/cron/cron-report-writer.d.ts.map +1 -0
  17. package/dist/cron/cron-runner.d.ts +43 -0
  18. package/dist/cron/cron-runner.d.ts.map +1 -0
  19. package/dist/cron/cron-schema.d.ts +3 -0
  20. package/dist/cron/cron-schema.d.ts.map +1 -0
  21. package/dist/cron/cron-service.d.ts +57 -0
  22. package/dist/cron/cron-service.d.ts.map +1 -0
  23. package/dist/cron/cron-spec-parser.d.ts +27 -0
  24. package/dist/cron/cron-spec-parser.d.ts.map +1 -0
  25. package/dist/cron/cron-watcher.d.ts +23 -0
  26. package/dist/cron/cron-watcher.d.ts.map +1 -0
  27. package/dist/cron/resource-limiter.d.ts +9 -0
  28. package/dist/cron/resource-limiter.d.ts.map +1 -0
  29. package/dist/cron/schedule-command-service.d.ts +10 -0
  30. package/dist/cron/schedule-command-service.d.ts.map +1 -0
  31. package/dist/cron/schedule-service.d.ts +100 -0
  32. package/dist/cron/schedule-service.d.ts.map +1 -0
  33. package/dist/cron/scheduler.d.ts +68 -0
  34. package/dist/cron/scheduler.d.ts.map +1 -0
  35. package/dist/cron/sqlite-cron-store.d.ts +230 -0
  36. package/dist/cron/sqlite-cron-store.d.ts.map +1 -0
  37. package/dist/cron/sqlite-schedule-store.d.ts +52 -0
  38. package/dist/cron/sqlite-schedule-store.d.ts.map +1 -0
  39. package/dist/extensions/config/agent-config-loader.d.ts +4 -3
  40. package/dist/extensions/config/agent-config-loader.d.ts.map +1 -1
  41. package/dist/extensions/config/runtime-commands.d.ts +1 -0
  42. package/dist/extensions/config/runtime-commands.d.ts.map +1 -1
  43. package/dist/extensions/config/user-instruction-config-loader.d.ts +1 -0
  44. package/dist/extensions/config/user-instruction-config-loader.d.ts.map +1 -1
  45. package/dist/extensions/context/agentic-compaction.d.ts +2 -2
  46. package/dist/extensions/context/agentic-compaction.d.ts.map +1 -1
  47. package/dist/extensions/context/compaction-shared.d.ts +5 -4
  48. package/dist/extensions/context/compaction-shared.d.ts.map +1 -1
  49. package/dist/extensions/context/compaction.d.ts.map +1 -1
  50. package/dist/extensions/plugin/plugin-config-loader.d.ts +15 -2
  51. package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
  52. package/dist/extensions/plugin/plugin-loader.d.ts +13 -7
  53. package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
  54. package/dist/extensions/plugin/plugin-module-import.d.ts.map +1 -1
  55. package/dist/extensions/plugin/plugin-sandbox.d.ts +21 -2
  56. package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
  57. package/dist/extensions/plugin/plugin-targeting.d.ts +7 -0
  58. package/dist/extensions/plugin/plugin-targeting.d.ts.map +1 -0
  59. package/dist/extensions/plugin-sandbox-bootstrap.js +237 -276
  60. package/dist/extensions/tools/constants.d.ts +1 -0
  61. package/dist/extensions/tools/constants.d.ts.map +1 -1
  62. package/dist/extensions/tools/definitions.d.ts +3 -4
  63. package/dist/extensions/tools/definitions.d.ts.map +1 -1
  64. package/dist/extensions/tools/executors/apply-patch.d.ts +3 -1
  65. package/dist/extensions/tools/executors/apply-patch.d.ts.map +1 -1
  66. package/dist/extensions/tools/executors/editor.d.ts.map +1 -1
  67. package/dist/extensions/tools/executors/search.d.ts +1 -1
  68. package/dist/extensions/tools/executors/search.d.ts.map +1 -1
  69. package/dist/extensions/tools/helpers.d.ts +1 -0
  70. package/dist/extensions/tools/helpers.d.ts.map +1 -1
  71. package/dist/extensions/tools/index.d.ts +3 -2
  72. package/dist/extensions/tools/index.d.ts.map +1 -1
  73. package/dist/extensions/tools/presets.d.ts +27 -44
  74. package/dist/extensions/tools/presets.d.ts.map +1 -1
  75. package/dist/extensions/tools/runtime.d.ts +25 -0
  76. package/dist/extensions/tools/runtime.d.ts.map +1 -0
  77. package/dist/extensions/tools/schemas.d.ts +25 -3
  78. package/dist/extensions/tools/schemas.d.ts.map +1 -1
  79. package/dist/extensions/tools/team/delegated-agent.d.ts +2 -2
  80. package/dist/extensions/tools/team/delegated-agent.d.ts.map +1 -1
  81. package/dist/extensions/tools/team/multi-agent.d.ts +7 -3
  82. package/dist/extensions/tools/team/multi-agent.d.ts.map +1 -1
  83. package/dist/extensions/tools/team/team-tools.d.ts +1 -0
  84. package/dist/extensions/tools/team/team-tools.d.ts.map +1 -1
  85. package/dist/extensions/tools/types.d.ts +0 -5
  86. package/dist/extensions/tools/types.d.ts.map +1 -1
  87. package/dist/hooks/hook-bridge.d.ts +118 -0
  88. package/dist/hooks/hook-bridge.d.ts.map +1 -0
  89. package/dist/hooks/hook-file-hooks.d.ts +6 -2
  90. package/dist/hooks/hook-file-hooks.d.ts.map +1 -1
  91. package/dist/hooks/hook-registry.d.ts +16 -0
  92. package/dist/hooks/hook-registry.d.ts.map +1 -0
  93. package/dist/hooks/index.d.ts +0 -1
  94. package/dist/hooks/index.d.ts.map +1 -1
  95. package/dist/hooks/subprocess.d.ts +8 -1
  96. package/dist/hooks/subprocess.d.ts.map +1 -1
  97. package/dist/hub/browser-websocket.d.ts +18 -0
  98. package/dist/hub/browser-websocket.d.ts.map +1 -0
  99. package/dist/hub/client.d.ts +51 -0
  100. package/dist/hub/client.d.ts.map +1 -0
  101. package/dist/hub/connect.d.ts +15 -0
  102. package/dist/hub/connect.d.ts.map +1 -0
  103. package/dist/hub/daemon-entry.d.ts +2 -0
  104. package/dist/hub/daemon-entry.d.ts.map +1 -0
  105. package/dist/hub/daemon-entry.js +1305 -0
  106. package/dist/hub/daemon.d.ts +5 -0
  107. package/dist/hub/daemon.d.ts.map +1 -0
  108. package/dist/hub/defaults.d.ts +17 -0
  109. package/dist/hub/defaults.d.ts.map +1 -0
  110. package/dist/hub/discovery.d.ts +29 -0
  111. package/dist/hub/discovery.d.ts.map +1 -0
  112. package/dist/hub/index.d.ts +15 -0
  113. package/dist/hub/index.d.ts.map +1 -0
  114. package/dist/hub/index.js +1294 -0
  115. package/dist/hub/native-transport.d.ts +17 -0
  116. package/dist/hub/native-transport.d.ts.map +1 -0
  117. package/dist/hub/runtime-handlers.d.ts +11 -0
  118. package/dist/hub/runtime-handlers.d.ts.map +1 -0
  119. package/dist/hub/server.d.ts +104 -0
  120. package/dist/hub/server.d.ts.map +1 -0
  121. package/dist/hub/session-client.d.ts +90 -0
  122. package/dist/hub/session-client.d.ts.map +1 -0
  123. package/dist/hub/start-shared-server.d.ts +19 -0
  124. package/dist/hub/start-shared-server.d.ts.map +1 -0
  125. package/dist/hub/transport.d.ts +8 -0
  126. package/dist/hub/transport.d.ts.map +1 -0
  127. package/dist/hub/ui-client.d.ts +45 -0
  128. package/dist/hub/ui-client.d.ts.map +1 -0
  129. package/dist/hub/workspace.d.ts +4 -0
  130. package/dist/hub/workspace.d.ts.map +1 -0
  131. package/dist/index.d.ts +29 -16
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +782 -471
  134. package/dist/llms/cline-recommended-models.d.ts +20 -0
  135. package/dist/llms/cline-recommended-models.d.ts.map +1 -0
  136. package/dist/llms/configured-provider-registry.d.ts +28 -0
  137. package/dist/llms/configured-provider-registry.d.ts.map +1 -0
  138. package/dist/llms/handler-factory.d.ts +16 -0
  139. package/dist/llms/handler-factory.d.ts.map +1 -0
  140. package/dist/llms/provider-defaults.d.ts +27 -0
  141. package/dist/llms/provider-defaults.d.ts.map +1 -0
  142. package/dist/llms/provider-settings.d.ts +245 -0
  143. package/dist/llms/provider-settings.d.ts.map +1 -0
  144. package/dist/llms/runtime-config.d.ts +4 -0
  145. package/dist/llms/runtime-config.d.ts.map +1 -0
  146. package/dist/llms/runtime-registry.d.ts +20 -0
  147. package/dist/llms/runtime-registry.d.ts.map +1 -0
  148. package/dist/llms/runtime-types.d.ts +85 -0
  149. package/dist/llms/runtime-types.d.ts.map +1 -0
  150. package/dist/runtime/agent-config-adapter.d.ts +148 -0
  151. package/dist/runtime/agent-config-adapter.d.ts.map +1 -0
  152. package/dist/runtime/agent-runtime-config-builder.d.ts +96 -0
  153. package/dist/runtime/agent-runtime-config-builder.d.ts.map +1 -0
  154. package/dist/runtime/history.d.ts +6 -0
  155. package/dist/runtime/history.d.ts.map +1 -1
  156. package/dist/runtime/host.d.ts +1 -2
  157. package/dist/runtime/host.d.ts.map +1 -1
  158. package/dist/runtime/loop-detection.d.ts +59 -0
  159. package/dist/runtime/loop-detection.d.ts.map +1 -0
  160. package/dist/runtime/mistake-tracker.d.ts +69 -0
  161. package/dist/runtime/mistake-tracker.d.ts.map +1 -0
  162. package/dist/runtime/rules.d.ts +1 -0
  163. package/dist/runtime/rules.d.ts.map +1 -1
  164. package/dist/runtime/runtime-builder.d.ts.map +1 -1
  165. package/dist/runtime/runtime-event-adapter.d.ts +102 -0
  166. package/dist/runtime/runtime-event-adapter.d.ts.map +1 -0
  167. package/dist/runtime/runtime-host.d.ts +49 -26
  168. package/dist/runtime/runtime-host.d.ts.map +1 -1
  169. package/dist/runtime/runtime-oauth-token-manager.d.ts.map +1 -1
  170. package/dist/runtime/session-runtime-orchestrator.d.ts +261 -0
  171. package/dist/runtime/session-runtime-orchestrator.d.ts.map +1 -0
  172. package/dist/runtime/session-runtime.d.ts +16 -21
  173. package/dist/runtime/session-runtime.d.ts.map +1 -1
  174. package/dist/runtime/user-input-builder.d.ts +24 -0
  175. package/dist/runtime/user-input-builder.d.ts.map +1 -0
  176. package/dist/services/global-settings.d.ts +12 -0
  177. package/dist/services/global-settings.d.ts.map +1 -0
  178. package/dist/services/index.js +28 -0
  179. package/dist/services/local-runtime-bootstrap.d.ts +9 -3
  180. package/dist/services/local-runtime-bootstrap.d.ts.map +1 -1
  181. package/dist/services/plugin-tools.d.ts +16 -0
  182. package/dist/services/plugin-tools.d.ts.map +1 -0
  183. package/dist/services/providers/local-provider-registry.d.ts +199 -23
  184. package/dist/services/providers/local-provider-registry.d.ts.map +1 -1
  185. package/dist/services/providers/local-provider-service.d.ts +15 -13
  186. package/dist/services/providers/local-provider-service.d.ts.map +1 -1
  187. package/dist/services/session-data.d.ts +1 -1
  188. package/dist/services/session-data.d.ts.map +1 -1
  189. package/dist/services/session-telemetry.d.ts +7 -2
  190. package/dist/services/session-telemetry.d.ts.map +1 -1
  191. package/dist/services/storage/file-team-store.d.ts.map +1 -1
  192. package/dist/services/storage/provider-settings-legacy-migration.d.ts +1 -1
  193. package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -1
  194. package/dist/services/storage/provider-settings-manager.d.ts +1 -0
  195. package/dist/services/storage/provider-settings-manager.d.ts.map +1 -1
  196. package/dist/services/storage/sqlite-team-store.d.ts.map +1 -1
  197. package/dist/services/workspace-manifest.d.ts +11 -0
  198. package/dist/services/workspace-manifest.d.ts.map +1 -1
  199. package/dist/session/conversation-store.d.ts +30 -0
  200. package/dist/session/conversation-store.d.ts.map +1 -0
  201. package/dist/session/message-builder.d.ts +65 -0
  202. package/dist/session/message-builder.d.ts.map +1 -0
  203. package/dist/session/persistence-service.d.ts +11 -23
  204. package/dist/session/persistence-service.d.ts.map +1 -1
  205. package/dist/session/session-manifest-store.d.ts +22 -0
  206. package/dist/session/session-manifest-store.d.ts.map +1 -0
  207. package/dist/session/session-manifest.d.ts +1 -1
  208. package/dist/session/session-row.d.ts +93 -0
  209. package/dist/session/session-row.d.ts.map +1 -0
  210. package/dist/session/session-service.d.ts +2 -102
  211. package/dist/session/session-service.d.ts.map +1 -1
  212. package/dist/session/subagent-session-manager.d.ts +36 -0
  213. package/dist/session/subagent-session-manager.d.ts.map +1 -0
  214. package/dist/session/team-persistence-store.d.ts +24 -0
  215. package/dist/session/team-persistence-store.d.ts.map +1 -0
  216. package/dist/transports/hub.d.ts +58 -0
  217. package/dist/transports/hub.d.ts.map +1 -0
  218. package/dist/transports/local.d.ts +23 -9
  219. package/dist/transports/local.d.ts.map +1 -1
  220. package/dist/transports/remote.d.ts +10 -0
  221. package/dist/transports/remote.d.ts.map +1 -0
  222. package/dist/transports/runtime-host-support.d.ts +3 -2
  223. package/dist/transports/runtime-host-support.d.ts.map +1 -1
  224. package/dist/types/chat-schema.d.ts +15 -17
  225. package/dist/types/chat-schema.d.ts.map +1 -1
  226. package/dist/types/config.d.ts +17 -7
  227. package/dist/types/config.d.ts.map +1 -1
  228. package/dist/types/events.d.ts +7 -6
  229. package/dist/types/events.d.ts.map +1 -1
  230. package/dist/types/provider-settings.d.ts +4 -5
  231. package/dist/types/provider-settings.d.ts.map +1 -1
  232. package/dist/types/session.d.ts +7 -3
  233. package/dist/types/session.d.ts.map +1 -1
  234. package/dist/types.d.ts +11 -4
  235. package/dist/types.d.ts.map +1 -1
  236. package/package.json +20 -6
  237. package/src/ClineCore.ts +757 -44
  238. package/src/account/cline-account-service.ts +44 -6
  239. package/src/account/index.ts +3 -3
  240. package/src/account/rpc.ts +12 -12
  241. package/src/cron/cron-event-ingress.ts +357 -0
  242. package/src/cron/cron-materializer.ts +97 -0
  243. package/src/cron/cron-reconciler.ts +241 -0
  244. package/src/cron/cron-report-writer.ts +153 -0
  245. package/src/cron/cron-runner.ts +495 -0
  246. package/src/cron/cron-schema.ts +127 -0
  247. package/src/cron/cron-service.ts +163 -0
  248. package/src/cron/cron-spec-parser.ts +489 -0
  249. package/src/cron/cron-watcher.ts +102 -0
  250. package/src/cron/index.ts +15 -0
  251. package/src/cron/resource-limiter.ts +46 -0
  252. package/src/cron/schedule-command-service.ts +193 -0
  253. package/src/cron/schedule-service.ts +703 -0
  254. package/src/cron/scheduler.ts +772 -0
  255. package/src/cron/sqlite-cron-store.ts +1286 -0
  256. package/src/cron/sqlite-schedule-store.ts +708 -0
  257. package/src/extensions/config/agent-config-loader.ts +17 -7
  258. package/src/extensions/config/runtime-commands.ts +6 -0
  259. package/src/extensions/config/user-instruction-config-loader.ts +1 -0
  260. package/src/extensions/context/agentic-compaction.ts +3 -3
  261. package/src/extensions/context/basic-compaction.ts +2 -2
  262. package/src/extensions/context/compaction-shared.ts +5 -4
  263. package/src/extensions/context/compaction.ts +3 -3
  264. package/src/extensions/plugin/plugin-config-loader.ts +37 -2
  265. package/src/extensions/plugin/plugin-loader.ts +69 -9
  266. package/src/extensions/plugin/plugin-module-import.ts +0 -2
  267. package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +243 -39
  268. package/src/extensions/plugin/plugin-sandbox.ts +173 -29
  269. package/src/extensions/plugin/plugin-targeting.ts +32 -0
  270. package/src/extensions/tools/constants.ts +2 -0
  271. package/src/extensions/tools/definitions.ts +61 -71
  272. package/src/extensions/tools/executors/apply-patch.ts +69 -80
  273. package/src/extensions/tools/executors/editor.ts +4 -3
  274. package/src/extensions/tools/executors/search.ts +195 -3
  275. package/src/extensions/tools/helpers.ts +24 -0
  276. package/src/extensions/tools/index.ts +11 -2
  277. package/src/extensions/tools/presets.ts +32 -47
  278. package/src/extensions/tools/runtime.ts +261 -0
  279. package/src/extensions/tools/schemas.ts +17 -20
  280. package/src/extensions/tools/team/delegated-agent.ts +8 -3
  281. package/src/extensions/tools/team/multi-agent.ts +135 -19
  282. package/src/extensions/tools/team/team-tools.ts +172 -91
  283. package/src/extensions/tools/types.ts +0 -6
  284. package/src/hooks/hook-bridge.ts +489 -0
  285. package/src/hooks/hook-file-hooks.ts +66 -5
  286. package/src/hooks/hook-registry.ts +257 -0
  287. package/src/hooks/index.ts +0 -7
  288. package/src/hooks/subprocess-runner.ts +1 -1
  289. package/src/hooks/subprocess.ts +9 -0
  290. package/src/hub/browser-websocket.ts +159 -0
  291. package/src/hub/client.ts +633 -0
  292. package/src/hub/connect.ts +156 -0
  293. package/src/hub/daemon-entry.ts +122 -0
  294. package/src/hub/daemon.ts +284 -0
  295. package/src/hub/defaults.ts +70 -0
  296. package/src/hub/discovery.ts +247 -0
  297. package/src/hub/index.ts +14 -0
  298. package/src/hub/native-transport.ts +31 -0
  299. package/src/hub/runtime-handlers.ts +141 -0
  300. package/src/hub/server.ts +2317 -0
  301. package/src/hub/session-client.ts +502 -0
  302. package/src/hub/start-shared-server.ts +61 -0
  303. package/src/hub/transport.ts +14 -0
  304. package/src/hub/ui-client.ts +126 -0
  305. package/src/hub/workspace.ts +19 -0
  306. package/src/index.ts +169 -68
  307. package/src/llms/cline-recommended-models.ts +167 -0
  308. package/src/llms/configured-provider-registry.ts +193 -0
  309. package/src/llms/handler-factory.ts +56 -0
  310. package/src/llms/provider-defaults.ts +653 -0
  311. package/src/llms/provider-settings.ts +310 -0
  312. package/src/llms/runtime-config.ts +43 -0
  313. package/src/llms/runtime-registry.ts +172 -0
  314. package/src/llms/runtime-types.ts +121 -0
  315. package/src/runtime/agent-config-adapter.ts +636 -0
  316. package/src/runtime/agent-runtime-config-builder.ts +205 -0
  317. package/src/runtime/error-feedback.ts +142 -0
  318. package/src/runtime/history.ts +137 -0
  319. package/src/runtime/host.ts +127 -267
  320. package/src/runtime/index.ts +1 -0
  321. package/src/runtime/loop-detection.ts +162 -0
  322. package/src/runtime/mistake-tracker.ts +221 -0
  323. package/src/runtime/rules.ts +12 -0
  324. package/src/runtime/runtime-builder.ts +85 -13
  325. package/src/runtime/runtime-event-adapter.ts +412 -0
  326. package/src/runtime/runtime-host.ts +134 -62
  327. package/src/runtime/runtime-oauth-token-manager.ts +11 -15
  328. package/src/runtime/session-runtime-orchestrator.ts +1253 -0
  329. package/src/runtime/session-runtime.ts +16 -26
  330. package/src/runtime/user-input-builder.ts +167 -0
  331. package/src/services/global-settings.ts +122 -0
  332. package/src/services/local-runtime-bootstrap.ts +175 -31
  333. package/src/services/plugin-tools.ts +86 -0
  334. package/src/services/providers/local-provider-registry.ts +277 -61
  335. package/src/services/providers/local-provider-service.ts +109 -44
  336. package/src/services/session-data.ts +18 -10
  337. package/src/services/session-telemetry.ts +6 -15
  338. package/src/services/storage/file-team-store.ts +1 -5
  339. package/src/services/storage/provider-settings-legacy-migration.ts +14 -51
  340. package/src/services/storage/provider-settings-manager.ts +17 -2
  341. package/src/services/storage/sqlite-team-store.ts +1 -5
  342. package/src/services/workspace-manifest.ts +18 -0
  343. package/src/session/conversation-store.ts +77 -0
  344. package/src/session/file-session-service.ts +1 -1
  345. package/src/session/index.ts +6 -27
  346. package/src/session/message-builder.ts +941 -0
  347. package/src/session/persistence-service.ts +119 -504
  348. package/src/session/session-manifest-store.ts +158 -0
  349. package/src/session/session-row.ts +199 -0
  350. package/src/session/session-service.ts +17 -376
  351. package/src/session/session-team-coordination.ts +1 -1
  352. package/src/session/subagent-session-manager.ts +397 -0
  353. package/src/session/team-persistence-store.ts +176 -0
  354. package/src/transports/hub.ts +1081 -0
  355. package/src/transports/local.ts +419 -93
  356. package/src/transports/remote.ts +27 -0
  357. package/src/transports/runtime-host-support.ts +63 -9
  358. package/src/types/chat-schema.ts +4 -5
  359. package/src/types/config.ts +17 -7
  360. package/src/types/events.ts +8 -6
  361. package/src/types/index.ts +3 -0
  362. package/src/types/provider-settings.ts +18 -7
  363. package/src/types/session.ts +7 -6
  364. package/src/types.ts +42 -2
  365. package/dist/hooks/persistent.d.ts +0 -64
  366. package/dist/hooks/persistent.d.ts.map +0 -1
  367. package/dist/runtime/rpc-runtime-ensure.d.ts +0 -65
  368. package/dist/runtime/rpc-runtime-ensure.d.ts.map +0 -1
  369. package/dist/runtime/rpc-spawn-lease.d.ts +0 -8
  370. package/dist/runtime/rpc-spawn-lease.d.ts.map +0 -1
  371. package/dist/services/telemetry/index.js +0 -15
  372. package/dist/session/rpc-session-service.d.ts +0 -16
  373. package/dist/session/rpc-session-service.d.ts.map +0 -1
  374. package/dist/session/sqlite-rpc-session-backend.d.ts +0 -31
  375. package/dist/session/sqlite-rpc-session-backend.d.ts.map +0 -1
  376. package/dist/transports/rpc.d.ts +0 -51
  377. package/dist/transports/rpc.d.ts.map +0 -1
  378. package/src/ClineCore.test.ts +0 -226
  379. package/src/account/cline-account-service.test.ts +0 -185
  380. package/src/account/featurebase-token.test.ts +0 -175
  381. package/src/account/rpc.test.ts +0 -63
  382. package/src/auth/bounded-ttl-cache.test.ts +0 -38
  383. package/src/auth/client.test.ts +0 -69
  384. package/src/auth/cline.test.ts +0 -267
  385. package/src/auth/codex.test.ts +0 -170
  386. package/src/auth/oca.test.ts +0 -340
  387. package/src/auth/server.test.ts +0 -287
  388. package/src/auth/utils.test.ts +0 -128
  389. package/src/extensions/config/agent-config-loader.test.ts +0 -236
  390. package/src/extensions/config/hooks-config-loader.test.ts +0 -20
  391. package/src/extensions/config/runtime-commands.test.ts +0 -115
  392. package/src/extensions/config/unified-config-file-watcher.test.ts +0 -196
  393. package/src/extensions/config/user-instruction-config-loader.test.ts +0 -246
  394. package/src/extensions/context/compaction.test.ts +0 -483
  395. package/src/extensions/mcp/config-loader.test.ts +0 -238
  396. package/src/extensions/mcp/manager.test.ts +0 -105
  397. package/src/extensions/plugin/plugin-config-loader.test.ts +0 -184
  398. package/src/extensions/plugin/plugin-loader.test.ts +0 -292
  399. package/src/extensions/plugin/plugin-sandbox.test.ts +0 -423
  400. package/src/extensions/tools/definitions.test.ts +0 -780
  401. package/src/extensions/tools/executors/bash.test.ts +0 -87
  402. package/src/extensions/tools/executors/editor.test.ts +0 -35
  403. package/src/extensions/tools/executors/file-read.test.ts +0 -125
  404. package/src/extensions/tools/model-tool-routing.test.ts +0 -86
  405. package/src/extensions/tools/presets.test.ts +0 -70
  406. package/src/extensions/tools/team/multi-agent.lifecycle.test.ts +0 -455
  407. package/src/extensions/tools/team/spawn-agent-tool.test.ts +0 -381
  408. package/src/extensions/tools/team/team-tools.test.ts +0 -918
  409. package/src/hooks/checkpoint-hooks.test.ts +0 -168
  410. package/src/hooks/hook-file-hooks.test.ts +0 -311
  411. package/src/hooks/persistent.ts +0 -661
  412. package/src/runtime/history.test.ts +0 -114
  413. package/src/runtime/host.test.ts +0 -230
  414. package/src/runtime/rpc-runtime-ensure.test.ts +0 -123
  415. package/src/runtime/rpc-runtime-ensure.ts +0 -659
  416. package/src/runtime/rpc-spawn-lease.test.ts +0 -81
  417. package/src/runtime/rpc-spawn-lease.ts +0 -156
  418. package/src/runtime/runtime-builder.team-persistence.test.ts +0 -245
  419. package/src/runtime/runtime-builder.test.ts +0 -615
  420. package/src/runtime/runtime-oauth-token-manager.test.ts +0 -137
  421. package/src/runtime/runtime-parity.test.ts +0 -143
  422. package/src/services/providers/local-provider-service.test.ts +0 -1062
  423. package/src/services/session-data.test.ts +0 -160
  424. package/src/services/storage/provider-settings-legacy-migration.test.ts +0 -424
  425. package/src/services/storage/provider-settings-manager.test.ts +0 -191
  426. package/src/services/telemetry/OpenTelemetryAdapter.test.ts +0 -157
  427. package/src/services/telemetry/OpenTelemetryProvider.test.ts +0 -326
  428. package/src/services/telemetry/TelemetryLoggerSink.test.ts +0 -42
  429. package/src/services/telemetry/TelemetryService.test.ts +0 -134
  430. package/src/services/telemetry/distinct-id.test.ts +0 -57
  431. package/src/services/workspace/file-indexer.d.ts +0 -11
  432. package/src/services/workspace/file-indexer.test.ts +0 -156
  433. package/src/services/workspace/mention-enricher.test.ts +0 -106
  434. package/src/session/persistence-service.test.ts +0 -300
  435. package/src/session/rpc-session-service.ts +0 -114
  436. package/src/session/session-service.team-persistence.test.ts +0 -48
  437. package/src/session/sqlite-rpc-session-backend.ts +0 -301
  438. package/src/transports/local.e2e.test.ts +0 -380
  439. package/src/transports/local.test.ts +0 -2559
  440. package/src/transports/rpc.test.ts +0 -82
  441. package/src/transports/rpc.ts +0 -665
@@ -0,0 +1,412 @@
1
+ /**
2
+ * Adapter from the new `AgentRuntimeEvent` union (13 variants, defined
3
+ * in `@clinebot/shared/src/agent.ts`) to the legacy `AgentEvent` union
4
+ * (9 top-level types, defined in
5
+ * `@clinebot/shared/src/agents/types.ts`) consumed by today's
6
+ * `Agent.subscribeEvents` callback.
7
+ *
8
+ * @see PLAN.md §3.1 — new file introduced alongside the core runtime port.
9
+ * @see PLAN.md §3.3.2 — variant-by-variant OLD → NEW mapping.
10
+ * @see PLAN.md §3.2.4 — called from `Agent.subscribeEvents` inside the
11
+ * legacy-agent facade.
12
+ *
13
+ * --- IMPLEMENTATION NOTE — PLAN §3.3.2 text/reasoning-delta rows ----------
14
+ *
15
+ * PLAN.md §3.3.2 describes `assistant-text-delta` as "first delta →
16
+ * content_start, subsequent → content_update". The **actual** legacy
17
+ * shape forbids this: `AgentContentUpdateEvent.contentType` is
18
+ * hard-typed as `"tool"` in
19
+ * `packages/shared/src/agents/types.ts:87`, and the legacy
20
+ * turn-processor
21
+ * (`packages/agents/src/runtime/turn-processor.ts:82-87,113-118`)
22
+ * emits a `content_start` event for **every** text delta and for
23
+ * **every** reasoning delta — not just the first. This adapter
24
+ * preserves that observable behavior (what every legacy consumer
25
+ * relies on today) over the description in §3.3.2.
26
+ *
27
+ * text deltas → content_start { contentType:"text", text,
28
+ * accumulated } (per delta)
29
+ * reasoning deltas → content_start { contentType:"reasoning",
30
+ * reasoning, redacted } (per delta)
31
+ * assistant-message → one content_end { contentType:"text", text }
32
+ * if any text parts; one
33
+ * content_end { contentType:"reasoning", reasoning }
34
+ * if any reasoning parts
35
+ * (turn-processor.ts:157-170).
36
+ *
37
+ * --- STATEFUL BOOK-KEEPING ------------------------------------------------
38
+ *
39
+ * 1. Rolling usage totals. `usage-updated` carries the already-
40
+ * accumulated snapshot (agent-runtime.ts:668-683). Legacy
41
+ * `AgentUsageEvent` wants both per-turn delta and accumulated
42
+ * totals; the adapter subtracts the previous accumulated value
43
+ * from the incoming one to produce the delta.
44
+ * 2. Tool timing. `tool-finished` does not carry `durationMs`. The
45
+ * adapter records `Date.now()` on `tool-started` (keyed by
46
+ * `toolCallId`) and computes `durationMs` at `tool-finished`.
47
+ * Matches `tool-orchestrator.ts:112-131`.
48
+ *
49
+ * Both are scoped to a single adapter instance and cleared by
50
+ * `reset()`.
51
+ */
52
+
53
+ import type {
54
+ AgentEvent,
55
+ AgentFinishReason,
56
+ AgentMessage,
57
+ AgentReasoningPart,
58
+ AgentRuntimeEvent,
59
+ AgentTextPart,
60
+ AgentToolResultPart,
61
+ AgentUsage,
62
+ LegacyAgentUsage,
63
+ } from "@clinebot/shared";
64
+
65
+ // =============================================================================
66
+ // Helpers
67
+ // =============================================================================
68
+
69
+ function extractTextPart(message: AgentMessage): string | undefined {
70
+ const parts = message.content.filter(
71
+ (part): part is AgentTextPart => part.type === "text",
72
+ );
73
+ if (parts.length === 0) {
74
+ return undefined;
75
+ }
76
+ return parts.map((part) => part.text).join("");
77
+ }
78
+
79
+ function extractReasoningPart(
80
+ message: AgentMessage,
81
+ ): { reasoning: string; redacted: boolean } | undefined {
82
+ const parts = message.content.filter(
83
+ (part): part is AgentReasoningPart => part.type === "reasoning",
84
+ );
85
+ if (parts.length === 0) {
86
+ return undefined;
87
+ }
88
+ return {
89
+ reasoning: parts.map((part) => part.text).join(""),
90
+ redacted: parts.some((part) => part.redacted === true),
91
+ };
92
+ }
93
+
94
+ function extractToolResultPart(
95
+ message: AgentMessage,
96
+ ): AgentToolResultPart | undefined {
97
+ return message.content.find(
98
+ (part): part is AgentToolResultPart => part.type === "tool-result",
99
+ );
100
+ }
101
+
102
+ function textFromMessage(message: AgentMessage | undefined): string {
103
+ if (!message) {
104
+ return "";
105
+ }
106
+ return extractTextPart(message) ?? "";
107
+ }
108
+
109
+ function statusToLegacyFinishReason(
110
+ status: "completed" | "aborted" | "failed",
111
+ ): AgentFinishReason {
112
+ switch (status) {
113
+ case "completed":
114
+ return "completed";
115
+ case "aborted":
116
+ return "aborted";
117
+ case "failed":
118
+ return "error";
119
+ }
120
+ }
121
+
122
+ function deriveToolError(
123
+ result: AgentToolResultPart | undefined,
124
+ ): string | undefined {
125
+ if (!result || result.isError !== true) {
126
+ return undefined;
127
+ }
128
+ if (typeof result.output === "string") {
129
+ return result.output;
130
+ }
131
+ if (result.output instanceof Error) {
132
+ return result.output.message;
133
+ }
134
+ try {
135
+ return JSON.stringify(result.output);
136
+ } catch {
137
+ return String(result.output);
138
+ }
139
+ }
140
+
141
+ // =============================================================================
142
+ // Stateful adapter
143
+ // =============================================================================
144
+
145
+ /**
146
+ * Per-subscriber adapter instance. Constructed once per
147
+ * `Agent.subscribeEvents` registration (or per `SessionRuntime`),
148
+ * used for the lifetime of that subscription, and `reset()` at the
149
+ * start of every new run.
150
+ *
151
+ * `translate(event)` returns zero, one, or two `AgentEvent`s. An
152
+ * array is needed because a single `assistant-message` may yield both
153
+ * a text `content_end` and a reasoning `content_end`. Empty array
154
+ * means the event is intentionally suppressed (§3.3.2 rows
155
+ * `run-started`, `message-added`).
156
+ */
157
+ export class RuntimeEventAdapter {
158
+ private lastUsage: AgentUsage = {
159
+ inputTokens: 0,
160
+ outputTokens: 0,
161
+ cacheReadTokens: 0,
162
+ cacheWriteTokens: 0,
163
+ totalCost: 0,
164
+ };
165
+
166
+ private toolStartedAt = new Map<string, number>();
167
+
168
+ translate(event: AgentRuntimeEvent): AgentEvent[] {
169
+ switch (event.type) {
170
+ case "run-started":
171
+ return [];
172
+ case "message-added":
173
+ return [];
174
+ case "turn-started":
175
+ return [{ type: "iteration_start", iteration: event.iteration }];
176
+ case "turn-finished":
177
+ return [
178
+ {
179
+ type: "iteration_end",
180
+ iteration: event.iteration,
181
+ hadToolCalls: event.toolCallCount > 0,
182
+ toolCallCount: event.toolCallCount,
183
+ },
184
+ ];
185
+ case "assistant-text-delta":
186
+ return [
187
+ {
188
+ type: "content_start",
189
+ contentType: "text",
190
+ text: event.text,
191
+ accumulated: event.accumulatedText,
192
+ },
193
+ ];
194
+ case "assistant-reasoning-delta":
195
+ return [
196
+ {
197
+ type: "content_start",
198
+ contentType: "reasoning",
199
+ reasoning: event.text,
200
+ redacted: event.redacted === true,
201
+ },
202
+ ];
203
+ case "assistant-message":
204
+ return this.translateAssistantMessage(event.message);
205
+ case "tool-started":
206
+ return this.translateToolStarted(event);
207
+ case "tool-updated":
208
+ return [
209
+ {
210
+ type: "content_update",
211
+ contentType: "tool",
212
+ toolName: event.toolCall.toolName,
213
+ toolCallId: event.toolCall.toolCallId,
214
+ update: event.update,
215
+ },
216
+ ];
217
+ case "tool-finished":
218
+ return this.translateToolFinished(event);
219
+ case "usage-updated":
220
+ return this.translateUsage(event.usage);
221
+ case "run-finished":
222
+ return this.translateRunFinished(event.result);
223
+ case "run-failed":
224
+ return [
225
+ {
226
+ type: "error",
227
+ error: event.error,
228
+ recoverable: false,
229
+ iteration: event.snapshot.iteration,
230
+ },
231
+ ];
232
+ default: {
233
+ const _exhaustive: never = event;
234
+ return _exhaustive;
235
+ }
236
+ }
237
+ }
238
+
239
+ reset(): void {
240
+ this.lastUsage = {
241
+ inputTokens: 0,
242
+ outputTokens: 0,
243
+ cacheReadTokens: 0,
244
+ cacheWriteTokens: 0,
245
+ totalCost: 0,
246
+ };
247
+ this.toolStartedAt.clear();
248
+ }
249
+
250
+ // ------- per-variant translators ------------------------------------
251
+
252
+ private translateAssistantMessage(message: AgentMessage): AgentEvent[] {
253
+ const out: AgentEvent[] = [];
254
+ const text = extractTextPart(message);
255
+ if (text !== undefined) {
256
+ out.push({ type: "content_end", contentType: "text", text });
257
+ }
258
+ const reasoning = extractReasoningPart(message);
259
+ if (reasoning !== undefined) {
260
+ out.push({
261
+ type: "content_end",
262
+ contentType: "reasoning",
263
+ reasoning: reasoning.reasoning,
264
+ });
265
+ }
266
+ return out;
267
+ }
268
+
269
+ private translateToolStarted(event: {
270
+ toolCall: { toolCallId: string; toolName: string; input: unknown };
271
+ }): AgentEvent[] {
272
+ this.toolStartedAt.set(event.toolCall.toolCallId, Date.now());
273
+ return [
274
+ {
275
+ type: "content_start",
276
+ contentType: "tool",
277
+ toolName: event.toolCall.toolName,
278
+ toolCallId: event.toolCall.toolCallId,
279
+ input: event.toolCall.input,
280
+ },
281
+ ];
282
+ }
283
+
284
+ private translateToolFinished(event: {
285
+ toolCall: { toolCallId: string; toolName: string };
286
+ message: AgentMessage;
287
+ }): AgentEvent[] {
288
+ const startedAt = this.toolStartedAt.get(event.toolCall.toolCallId);
289
+ const durationMs =
290
+ startedAt === undefined ? undefined : Date.now() - startedAt;
291
+ this.toolStartedAt.delete(event.toolCall.toolCallId);
292
+ const result = extractToolResultPart(event.message);
293
+ const output = result?.output;
294
+ const error = deriveToolError(result);
295
+ return [
296
+ {
297
+ type: "content_end",
298
+ contentType: "tool",
299
+ toolName: event.toolCall.toolName,
300
+ toolCallId: event.toolCall.toolCallId,
301
+ output,
302
+ error,
303
+ durationMs,
304
+ },
305
+ ];
306
+ }
307
+
308
+ private translateUsage(next: AgentUsage): AgentEvent[] {
309
+ const deltaInput = next.inputTokens - this.lastUsage.inputTokens;
310
+ const deltaOutput = next.outputTokens - this.lastUsage.outputTokens;
311
+ const deltaCacheRead =
312
+ next.cacheReadTokens - this.lastUsage.cacheReadTokens;
313
+ const deltaCacheWrite =
314
+ next.cacheWriteTokens - this.lastUsage.cacheWriteTokens;
315
+ const prevCost = this.lastUsage.totalCost ?? 0;
316
+ const nextCost = next.totalCost ?? 0;
317
+ const deltaCost = nextCost - prevCost;
318
+ this.lastUsage = {
319
+ inputTokens: next.inputTokens,
320
+ outputTokens: next.outputTokens,
321
+ cacheReadTokens: next.cacheReadTokens,
322
+ cacheWriteTokens: next.cacheWriteTokens,
323
+ totalCost: next.totalCost,
324
+ };
325
+ return [
326
+ {
327
+ type: "usage",
328
+ inputTokens: Math.max(0, deltaInput),
329
+ outputTokens: Math.max(0, deltaOutput),
330
+ cacheReadTokens:
331
+ deltaCacheRead === 0 ? undefined : Math.max(0, deltaCacheRead),
332
+ cacheWriteTokens:
333
+ deltaCacheWrite === 0 ? undefined : Math.max(0, deltaCacheWrite),
334
+ cost: deltaCost === 0 ? undefined : deltaCost,
335
+ totalInputTokens: next.inputTokens,
336
+ totalOutputTokens: next.outputTokens,
337
+ totalCacheReadTokens:
338
+ next.cacheReadTokens === 0 ? undefined : next.cacheReadTokens,
339
+ totalCacheWriteTokens:
340
+ next.cacheWriteTokens === 0 ? undefined : next.cacheWriteTokens,
341
+ totalCost: next.totalCost,
342
+ },
343
+ ];
344
+ }
345
+
346
+ private translateRunFinished(result: {
347
+ status: "completed" | "aborted" | "failed";
348
+ outputText: string;
349
+ iterations: number;
350
+ usage: AgentUsage;
351
+ }): AgentEvent[] {
352
+ const usage: LegacyAgentUsage = {
353
+ inputTokens: result.usage.inputTokens,
354
+ outputTokens: result.usage.outputTokens,
355
+ cacheReadTokens:
356
+ result.usage.cacheReadTokens === 0
357
+ ? undefined
358
+ : result.usage.cacheReadTokens,
359
+ cacheWriteTokens:
360
+ result.usage.cacheWriteTokens === 0
361
+ ? undefined
362
+ : result.usage.cacheWriteTokens,
363
+ totalCost: result.usage.totalCost,
364
+ };
365
+ return [
366
+ {
367
+ type: "done",
368
+ reason: statusToLegacyFinishReason(result.status),
369
+ text: result.outputText,
370
+ iterations: result.iterations,
371
+ usage,
372
+ },
373
+ ];
374
+ }
375
+ }
376
+
377
+ // =============================================================================
378
+ // Stateless convenience export
379
+ // =============================================================================
380
+
381
+ /**
382
+ * Stateless translator. Works correctly for every variant except
383
+ * those that require bookkeeping:
384
+ *
385
+ * - `usage-updated` — deltas cannot be computed without a prior
386
+ * snapshot; this function treats the prior snapshot as zero (so
387
+ * delta == accumulated). Adequate for a single event, incorrect
388
+ * across multiple.
389
+ * - `tool-finished` — `durationMs` is reported as `undefined`
390
+ * because the corresponding `tool-started` was never observed by
391
+ * this one-shot adapter.
392
+ *
393
+ * Production code must use `RuntimeEventAdapter` for multi-event
394
+ * runs; this function exists for ad-hoc unit tests and one-shot
395
+ * translations where bookkeeping does not matter.
396
+ *
397
+ * Returns `undefined` when the event maps to zero legacy events
398
+ * (`run-started`, `message-added`, or an `assistant-message` that
399
+ * carries no text/reasoning parts). When an event produces multiple
400
+ * legacy events (e.g. `assistant-message` with both text and
401
+ * reasoning parts), only the first is returned; callers needing the
402
+ * full array must use `RuntimeEventAdapter.translate()`.
403
+ */
404
+ export function toLegacyAgentEvent(
405
+ event: AgentRuntimeEvent,
406
+ ): AgentEvent | undefined {
407
+ const adapter = new RuntimeEventAdapter();
408
+ const translated = adapter.translate(event);
409
+ return translated[0];
410
+ }
411
+
412
+ export { textFromMessage };
@@ -1,45 +1,60 @@
1
1
  import type * as LlmsProviders from "@clinebot/llms";
2
2
  import type {
3
3
  AgentResult,
4
+ RuntimeConfigExtensionKind,
4
5
  ToolApprovalRequest,
5
6
  ToolApprovalResult,
6
7
  } from "@clinebot/shared";
8
+ import type { ToolExecutors } from "../extensions/tools";
7
9
  import type { HookEventPayload } from "../hooks";
10
+ import type { ProviderSettings } from "../llms/provider-settings";
8
11
  import type { SessionManifest } from "../session/session-manifest";
9
12
  import type { SessionSource } from "../types/common";
10
13
  import type { CoreSessionConfig } from "../types/config";
11
- import type { CoreSessionEvent } from "../types/events";
14
+ import type { CoreSessionEvent, SessionPendingPrompt } from "../types/events";
12
15
  import type { SessionRecord } from "../types/sessions";
13
16
 
14
- export interface RuntimeSessionConfig {
15
- sessionId?: string;
16
- providerId: string;
17
- modelId: string;
18
- apiKey?: string;
19
- cwd: string;
20
- workspaceRoot?: string;
21
- systemPrompt: string;
22
- mode: CoreSessionConfig["mode"];
23
- rules?: CoreSessionConfig["rules"];
24
- maxIterations?: CoreSessionConfig["maxIterations"];
25
- enableTools: boolean;
26
- enableSpawnAgent: boolean;
27
- enableAgentTeams: boolean;
28
- disableMcpSettingsTools?: boolean;
29
- teamName?: string;
30
- missionLogIntervalSteps?: number;
31
- missionLogIntervalMs?: number;
32
- }
17
+ type LocalOnlyCoreSessionConfigKeys =
18
+ | "hooks"
19
+ | "logger"
20
+ | "telemetry"
21
+ | "extensionContext"
22
+ | "extraTools"
23
+ | "extensions"
24
+ | "onTeamEvent"
25
+ | "onConsecutiveMistakeLimitReached";
26
+
27
+ export type RuntimeSessionConfig = Omit<
28
+ CoreSessionConfig,
29
+ LocalOnlyCoreSessionConfigKeys | "checkpoint" | "compaction"
30
+ > & {
31
+ checkpoint?: Omit<
32
+ NonNullable<CoreSessionConfig["checkpoint"]>,
33
+ "createCheckpoint"
34
+ >;
35
+ compaction?: Omit<NonNullable<CoreSessionConfig["compaction"]>, "compact">;
36
+ };
33
37
 
34
- export type LocalRuntimeConfigOverrides = Omit<
38
+ export type LocalRuntimeConfigOverrides = Pick<
35
39
  CoreSessionConfig,
36
- keyof RuntimeSessionConfig
37
- >;
40
+ LocalOnlyCoreSessionConfigKeys
41
+ > & {
42
+ checkpoint?: Pick<
43
+ NonNullable<CoreSessionConfig["checkpoint"]>,
44
+ "createCheckpoint"
45
+ > &
46
+ Partial<NonNullable<CoreSessionConfig["checkpoint"]>>;
47
+ compaction?: Pick<NonNullable<CoreSessionConfig["compaction"]>, "compact"> &
48
+ Partial<NonNullable<CoreSessionConfig["compaction"]>>;
49
+ };
38
50
 
39
51
  export interface LocalRuntimeStartOptions {
40
52
  configOverrides?: Partial<LocalRuntimeConfigOverrides>;
53
+ modelCatalogDefaults?: Partial<NonNullable<ProviderSettings["modelCatalog"]>>;
41
54
  userInstructionWatcher?: import("../extensions/config").UserInstructionConfigWatcher;
55
+ configExtensions?: RuntimeConfigExtensionKind[];
42
56
  onTeamRestored?: () => void;
57
+ defaultToolExecutors?: Partial<ToolExecutors>;
43
58
  }
44
59
 
45
60
  export interface StartSessionInput {
@@ -52,8 +67,9 @@ export interface StartSessionInput {
52
67
  userImages?: string[];
53
68
  userFiles?: string[];
54
69
  /**
55
- * Local runtime bootstrap options. These are intentionally isolated under a
56
- * local-only bag so the transport-facing host contract stays transport-safe.
70
+ * Host-local bootstrap options. These are intentionally isolated from the
71
+ * transport-neutral runtime session config so all runtime hosts share the
72
+ * same execution contract while still allowing host-specific preparation.
57
73
  */
58
74
  localRuntime?: LocalRuntimeStartOptions;
59
75
  toolPolicies?: import("@clinebot/shared").AgentConfig["toolPolicies"];
@@ -67,26 +83,39 @@ export function splitCoreSessionConfig(config: CoreSessionConfig): {
67
83
  localRuntime?: LocalRuntimeStartOptions;
68
84
  } {
69
85
  const {
70
- sessionId,
71
- providerId,
72
- modelId,
73
- apiKey,
74
- cwd,
75
- workspaceRoot,
76
- systemPrompt,
77
- mode,
78
- rules,
79
- maxIterations,
80
- enableTools,
81
- enableSpawnAgent,
82
- enableAgentTeams,
83
- disableMcpSettingsTools,
84
- teamName,
85
- missionLogIntervalSteps,
86
- missionLogIntervalMs,
87
- ...localConfigOverrides
86
+ hooks,
87
+ logger,
88
+ telemetry,
89
+ extensionContext,
90
+ extraTools,
91
+ extensions,
92
+ onTeamEvent,
93
+ onConsecutiveMistakeLimitReached,
94
+ checkpoint,
95
+ compaction,
96
+ ...transportConfig
88
97
  } = config;
89
98
 
99
+ const localConfigOverrides: Partial<LocalRuntimeConfigOverrides> = {};
100
+ if (hooks) localConfigOverrides.hooks = hooks;
101
+ if (logger) localConfigOverrides.logger = logger;
102
+ if (telemetry) localConfigOverrides.telemetry = telemetry;
103
+ if (extensionContext)
104
+ localConfigOverrides.extensionContext = extensionContext;
105
+ if (extraTools) localConfigOverrides.extraTools = extraTools;
106
+ if (extensions) localConfigOverrides.extensions = extensions;
107
+ if (onTeamEvent) localConfigOverrides.onTeamEvent = onTeamEvent;
108
+ if (onConsecutiveMistakeLimitReached) {
109
+ localConfigOverrides.onConsecutiveMistakeLimitReached =
110
+ onConsecutiveMistakeLimitReached;
111
+ }
112
+ if (checkpoint?.createCheckpoint) {
113
+ localConfigOverrides.checkpoint = checkpoint;
114
+ }
115
+ if (compaction?.compact) {
116
+ localConfigOverrides.compaction = compaction;
117
+ }
118
+
90
119
  const localRuntime =
91
120
  Object.keys(localConfigOverrides).length > 0
92
121
  ? {
@@ -97,23 +126,21 @@ export function splitCoreSessionConfig(config: CoreSessionConfig): {
97
126
 
98
127
  return {
99
128
  config: {
100
- ...(sessionId ? { sessionId } : {}),
101
- providerId,
102
- modelId,
103
- ...(apiKey ? { apiKey } : {}),
104
- cwd,
105
- ...(workspaceRoot ? { workspaceRoot } : {}),
106
- systemPrompt,
107
- mode,
108
- rules,
109
- maxIterations,
110
- enableTools,
111
- enableSpawnAgent,
112
- enableAgentTeams,
113
- disableMcpSettingsTools,
114
- teamName,
115
- missionLogIntervalSteps,
116
- missionLogIntervalMs,
129
+ ...transportConfig,
130
+ ...(checkpoint ? { checkpoint: { enabled: checkpoint.enabled } } : {}),
131
+ ...(compaction
132
+ ? {
133
+ compaction: {
134
+ enabled: compaction.enabled,
135
+ strategy: compaction.strategy,
136
+ thresholdRatio: compaction.thresholdRatio,
137
+ reserveTokens: compaction.reserveTokens,
138
+ preserveRecentTokens: compaction.preserveRecentTokens,
139
+ contextWindowTokens: compaction.contextWindowTokens,
140
+ summarizer: compaction.summarizer,
141
+ },
142
+ }
143
+ : {}),
117
144
  },
118
145
  ...(localRuntime ? { localRuntime } : {}),
119
146
  };
@@ -143,6 +170,36 @@ export interface SessionAccumulatedUsage {
143
170
  totalCost: number;
144
171
  }
145
172
 
173
+ export interface PendingPromptMutationResult {
174
+ sessionId: string;
175
+ prompts: SessionPendingPrompt[];
176
+ prompt?: SessionPendingPrompt;
177
+ updated?: boolean;
178
+ removed?: boolean;
179
+ }
180
+
181
+ export type PendingPromptsAction = "list" | "update" | "delete";
182
+
183
+ export interface PendingPromptsListInput {
184
+ sessionId: string;
185
+ }
186
+
187
+ export interface PendingPromptsUpdateInput {
188
+ sessionId: string;
189
+ promptId: string;
190
+ prompt?: string;
191
+ delivery?: "queue" | "steer";
192
+ }
193
+
194
+ export interface PendingPromptsDeleteInput {
195
+ sessionId: string;
196
+ promptId: string;
197
+ }
198
+
199
+ export interface RuntimeHostSubscribeOptions {
200
+ sessionId?: string;
201
+ }
202
+
146
203
  /**
147
204
  * RuntimeHost is the transport/runtime boundary for core session execution.
148
205
  * Callers must normalize broad local config into `RuntimeSessionConfig`
@@ -152,6 +209,18 @@ export interface RuntimeHost {
152
209
  readonly runtimeAddress?: string;
153
210
  start(input: StartSessionInput): Promise<StartSessionResult>;
154
211
  send(input: SendSessionInput): Promise<AgentResult | undefined>;
212
+ pendingPrompts(
213
+ action: "list",
214
+ input: PendingPromptsListInput,
215
+ ): Promise<SessionPendingPrompt[]>;
216
+ pendingPrompts(
217
+ action: "update",
218
+ input: PendingPromptsUpdateInput,
219
+ ): Promise<PendingPromptMutationResult>;
220
+ pendingPrompts(
221
+ action: "delete",
222
+ input: PendingPromptsDeleteInput,
223
+ ): Promise<PendingPromptMutationResult>;
155
224
  getAccumulatedUsage(
156
225
  sessionId: string,
157
226
  ): Promise<SessionAccumulatedUsage | undefined>;
@@ -171,8 +240,11 @@ export interface RuntimeHost {
171
240
  ): Promise<{ updated: boolean }>;
172
241
  readMessages(sessionId: string): Promise<LlmsProviders.Message[]>;
173
242
  handleHookEvent(payload: HookEventPayload): Promise<void>;
174
- subscribe(listener: (event: CoreSessionEvent) => void): () => void;
243
+ subscribe(
244
+ listener: (event: CoreSessionEvent) => void,
245
+ options?: RuntimeHostSubscribeOptions,
246
+ ): () => void;
175
247
  updateSessionModel?(sessionId: string, modelId: string): Promise<void>;
176
248
  }
177
249
 
178
- export type RuntimeHostMode = "auto" | "rpc" | "local";
250
+ export type RuntimeHostMode = "auto" | "local" | "hub" | "remote";