@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,257 @@
1
+ /**
2
+ * Lifecycle-hook registration wiring for the legacy `AgentHooks` and
3
+ * `AgentExtension` surfaces onto a `HookEngine`.
4
+ *
5
+ * @see PLAN.md §3.1 — moved from `packages/agents/src/runtime/hook-registry.ts`.
6
+ * @see PLAN.md §3.3.3 — OLD `config.hooks.*` → NEW placement.
7
+ *
8
+ * Verbatim port: pure wiring with no state. After the migration this is
9
+ * invoked by `HookBridge` and the legacy-agent facade's `addTools`
10
+ * pathway. Lives under `packages/core/src/hooks/` per §3.1.
11
+ */
12
+
13
+ import type {
14
+ AgentConfig,
15
+ AgentExtension,
16
+ AgentExtensionHookStage,
17
+ AgentHookControl,
18
+ HookEngine,
19
+ HookHandler,
20
+ } from "@clinebot/shared";
21
+
22
+ type LifecycleConfig = Pick<AgentConfig, "hooks" | "extensions">;
23
+
24
+ type ExtensionStageHandlerSpec = {
25
+ handler: (
26
+ extension: AgentExtension,
27
+ event: { payload: unknown },
28
+ ) => Promise<AgentHookControl | undefined> | AgentHookControl | undefined;
29
+ name: string;
30
+ };
31
+
32
+ const EXTENSION_STAGE_HANDLERS: Record<
33
+ AgentExtensionHookStage,
34
+ ExtensionStageHandlerSpec
35
+ > = {
36
+ input: {
37
+ name: "onInput",
38
+ handler: (extension, event) =>
39
+ extension.onInput?.(event.payload as never) as
40
+ | AgentHookControl
41
+ | undefined,
42
+ },
43
+ session_start: {
44
+ name: "onSessionStart",
45
+ handler: (extension, event) =>
46
+ extension.onSessionStart?.(event.payload as never) as
47
+ | AgentHookControl
48
+ | undefined,
49
+ },
50
+ run_start: {
51
+ name: "onRunStart",
52
+ handler: (extension, event) =>
53
+ extension.onRunStart?.(event.payload as never) as
54
+ | AgentHookControl
55
+ | undefined,
56
+ },
57
+ iteration_start: {
58
+ name: "onIterationStart",
59
+ handler: (extension, event) =>
60
+ extension.onIterationStart?.(event.payload as never) as
61
+ | AgentHookControl
62
+ | undefined,
63
+ },
64
+ turn_start: {
65
+ name: "onTurnStart",
66
+ handler: (extension, event) =>
67
+ extension.onTurnStart?.(event.payload as never) as
68
+ | AgentHookControl
69
+ | undefined,
70
+ },
71
+ before_agent_start: {
72
+ name: "onBeforeAgentStart",
73
+ handler: (extension, event) =>
74
+ extension.onBeforeAgentStart?.(event.payload as never) as
75
+ | AgentHookControl
76
+ | undefined,
77
+ },
78
+ tool_call_before: {
79
+ name: "onToolCall",
80
+ handler: (extension, event) =>
81
+ extension.onToolCall?.(event.payload as never) as
82
+ | AgentHookControl
83
+ | undefined,
84
+ },
85
+ tool_call_after: {
86
+ name: "onToolResult",
87
+ handler: (extension, event) =>
88
+ extension.onToolResult?.(event.payload as never) as
89
+ | AgentHookControl
90
+ | undefined,
91
+ },
92
+ turn_end: {
93
+ name: "onTurnEnd",
94
+ handler: (extension, event) =>
95
+ extension.onTurnEnd?.(event.payload as never) as
96
+ | AgentHookControl
97
+ | undefined,
98
+ },
99
+ stop_error: {
100
+ name: "onAgentError",
101
+ handler: (extension, event) =>
102
+ extension.onAgentError?.(event.payload as never) as
103
+ | AgentHookControl
104
+ | undefined,
105
+ },
106
+ iteration_end: {
107
+ name: "onIterationEnd",
108
+ handler: async (extension, event) => {
109
+ await extension.onIterationEnd?.(event.payload as never);
110
+ return undefined;
111
+ },
112
+ },
113
+ run_end: {
114
+ name: "onRunEnd",
115
+ handler: async (extension, event) => {
116
+ await extension.onRunEnd?.(event.payload as never);
117
+ return undefined;
118
+ },
119
+ },
120
+ session_shutdown: {
121
+ name: "onSessionShutdown",
122
+ handler: (extension, event) =>
123
+ extension.onSessionShutdown?.(event.payload as never) as
124
+ | AgentHookControl
125
+ | undefined,
126
+ },
127
+ error: {
128
+ name: "onError",
129
+ handler: async (extension, event) => {
130
+ await extension.onError?.(event.payload as never);
131
+ return undefined;
132
+ },
133
+ },
134
+ runtime_event: {
135
+ name: "onRuntimeEvent",
136
+ handler: async (extension, event) => {
137
+ await extension.onRuntimeEvent?.(event.payload as never);
138
+ return undefined;
139
+ },
140
+ },
141
+ };
142
+
143
+ export function registerLifecycleHandlers(
144
+ hookEngine: HookEngine,
145
+ config: LifecycleConfig,
146
+ ): void {
147
+ const register = (handler: HookHandler): void => {
148
+ hookEngine.register(handler);
149
+ };
150
+ const hooks = config.hooks;
151
+ if (hooks?.onSessionStart)
152
+ register({
153
+ name: "hooks.onSessionStart",
154
+ stage: "session_start",
155
+ handle: (event) => hooks.onSessionStart?.(event.payload as never),
156
+ });
157
+ if (hooks?.onRunStart)
158
+ register({
159
+ name: "hooks.onRunStart",
160
+ stage: "run_start",
161
+ handle: (event) => hooks.onRunStart?.(event.payload as never),
162
+ });
163
+ if (hooks?.onRunEnd)
164
+ register({
165
+ name: "hooks.onRunEnd",
166
+ stage: "run_end",
167
+ handle: async (event) => {
168
+ await hooks.onRunEnd?.(event.payload as never);
169
+ return undefined;
170
+ },
171
+ });
172
+ if (hooks?.onIterationStart)
173
+ register({
174
+ name: "hooks.onIterationStart",
175
+ stage: "iteration_start",
176
+ handle: (event) => hooks.onIterationStart?.(event.payload as never),
177
+ });
178
+ if (hooks?.onIterationEnd)
179
+ register({
180
+ name: "hooks.onIterationEnd",
181
+ stage: "iteration_end",
182
+ handle: async (event) => {
183
+ await hooks.onIterationEnd?.(event.payload as never);
184
+ return undefined;
185
+ },
186
+ });
187
+ if (hooks?.onTurnStart)
188
+ register({
189
+ name: "hooks.onTurnStart",
190
+ stage: "turn_start",
191
+ handle: (event) => hooks.onTurnStart?.(event.payload as never),
192
+ });
193
+ if (hooks?.onBeforeAgentStart) {
194
+ register({
195
+ name: "hooks.onBeforeAgentStart",
196
+ stage: "before_agent_start",
197
+ handle: (event) => hooks.onBeforeAgentStart?.(event.payload as never),
198
+ });
199
+ }
200
+ if (hooks?.onTurnEnd) {
201
+ register({
202
+ name: "hooks.onTurnEnd",
203
+ stage: "turn_end",
204
+ handle: (event) => hooks.onTurnEnd?.(event.payload as never),
205
+ });
206
+ }
207
+ if (hooks?.onStopError)
208
+ register({
209
+ name: "hooks.onStopError",
210
+ stage: "stop_error",
211
+ handle: (event) => hooks.onStopError?.(event.payload as never),
212
+ });
213
+ if (hooks?.onToolCallStart)
214
+ register({
215
+ name: "hooks.onToolCallStart",
216
+ stage: "tool_call_before",
217
+ handle: (event) => hooks.onToolCallStart?.(event.payload as never),
218
+ });
219
+ if (hooks?.onToolCallEnd)
220
+ register({
221
+ name: "hooks.onToolCallEnd",
222
+ stage: "tool_call_after",
223
+ handle: (event) => hooks.onToolCallEnd?.(event.payload as never),
224
+ });
225
+ if (hooks?.onSessionShutdown)
226
+ register({
227
+ name: "hooks.onSessionShutdown",
228
+ stage: "session_shutdown",
229
+ handle: (event) => hooks.onSessionShutdown?.(event.payload as never),
230
+ });
231
+ if (hooks?.onError)
232
+ register({
233
+ name: "hooks.onError",
234
+ stage: "error",
235
+ handle: async (event) => {
236
+ await hooks.onError?.(event.payload as never);
237
+ return undefined;
238
+ },
239
+ });
240
+ for (const [index, extension] of (config.extensions ?? []).entries()) {
241
+ if (extension.disabled) continue;
242
+ if (!extension.manifest.capabilities.includes("hooks")) continue;
243
+ const order = String(index).padStart(4, "0");
244
+ const extensionName = extension.name || `extension_${order}`;
245
+ const base = `${order}:${extensionName}`;
246
+ const subscribedStages = new Set(extension.manifest.hookStages ?? []);
247
+ for (const stage of subscribedStages) {
248
+ const stageHandler = EXTENSION_STAGE_HANDLERS[stage];
249
+ if (!stageHandler) continue;
250
+ register({
251
+ name: `${base}.${stageHandler.name}`,
252
+ stage,
253
+ handle: (event) => stageHandler.handler(extension, event),
254
+ });
255
+ }
256
+ }
257
+ }
@@ -1,10 +1,3 @@
1
- export {
2
- createPersistentSubprocessHooks,
3
- PersistentHookClient,
4
- type PersistentHookClientOptions,
5
- type PersistentSubprocessHookControl,
6
- type PersistentSubprocessHooksOptions,
7
- } from "./persistent";
8
1
  export {
9
2
  createSubprocessHooks,
10
3
  type HookEventName,
@@ -113,7 +113,7 @@ export async function runSubprocessEvent(
113
113
  ): Promise<RunSubprocessEventResult | undefined> {
114
114
  const command = augmentNodeCommandForDebug(options.command, {
115
115
  env: options.env,
116
- debugRole: "hook-worker",
116
+ debugRole: "hook",
117
117
  });
118
118
  if (!Array.isArray(command) || command.length === 0) {
119
119
  throw new Error("runSubprocessEvent requires a non-empty command");
@@ -26,6 +26,7 @@ import {
26
26
  type ToolCallHookPayload,
27
27
  type ToolResultHookPayload,
28
28
  type UserPromptSubmitData,
29
+ type WorkspaceInfo,
29
30
  } from "@clinebot/shared";
30
31
  import { z } from "zod";
31
32
  import {
@@ -133,6 +134,13 @@ export async function runHook(
133
134
  export interface SubprocessHooksOptions {
134
135
  command?: string[];
135
136
  cwd?: string;
137
+ /**
138
+ * Structured workspace and git metadata forwarded into every hook payload
139
+ * as `workspaceInfo`. Obtained from `generateWorkspaceInfo` at session
140
+ * startup and passed here so hook scripts can inspect branch, commit, and
141
+ * remote without running their own `git` commands.
142
+ */
143
+ workspaceInfo?: WorkspaceInfo;
136
144
  env?: NodeJS.ProcessEnv;
137
145
  timeoutMs?: number;
138
146
  onDispatchError?: (error: Error, payload: HookEventPayload) => void;
@@ -240,6 +248,7 @@ function basePayload(
240
248
  parentAgentId: ctx.parentAgentId,
241
249
  }),
242
250
  workspaceRoots: workspaceRoot ? [workspaceRoot] : [],
251
+ workspaceInfo: options.workspaceInfo,
243
252
  userId,
244
253
  agent_id: ctx.agentId,
245
254
  parent_agent_id: ctx.parentAgentId,
@@ -0,0 +1,159 @@
1
+ import type {
2
+ HubClientRegistration,
3
+ HubEventEnvelope,
4
+ HubReplyEnvelope,
5
+ HubTransportFrame,
6
+ } from "@clinebot/shared";
7
+ import { safeJsonParse } from "@clinebot/shared";
8
+ import type { HubCommandTransport } from "./transport";
9
+
10
+ export interface BrowserHubSocketLike {
11
+ send(data: string): void;
12
+ addEventListener(
13
+ type: "message",
14
+ listener: (event: { data: string }) => void,
15
+ ): void;
16
+ addEventListener(type: "close", listener: () => void): void;
17
+ removeEventListener(
18
+ type: "message",
19
+ listener: (event: { data: string }) => void,
20
+ ): void;
21
+ removeEventListener(type: "close", listener: () => void): void;
22
+ }
23
+
24
+ export class BrowserWebSocketHubAdapter {
25
+ constructor(private readonly transport: HubCommandTransport) {}
26
+
27
+ attach(socket: BrowserHubSocketLike): () => void {
28
+ const subscriptions = new Map<string, () => void>();
29
+ const registeredClientIds = new Set<string>();
30
+ let closed = false;
31
+
32
+ const sendFrame = (frame: HubTransportFrame): void => {
33
+ try {
34
+ socket.send(JSON.stringify(frame));
35
+ } catch (error) {
36
+ console.error(
37
+ `[hub] failed to send websocket frame: ${
38
+ error instanceof Error
39
+ ? error.stack || error.message
40
+ : String(error)
41
+ }`,
42
+ );
43
+ }
44
+ };
45
+
46
+ const onEvent = (envelope: HubEventEnvelope): void => {
47
+ sendFrame({ kind: "event", envelope });
48
+ };
49
+
50
+ const onMessage = async (event: { data: string }): Promise<void> => {
51
+ try {
52
+ const frame = JSON.parse(event.data) as HubTransportFrame;
53
+ switch (frame.kind) {
54
+ case "command": {
55
+ const reply = await this.transport.command(frame.envelope);
56
+ if (frame.envelope.command === "client.register" && reply.ok) {
57
+ const registration = (frame.envelope.payload ??
58
+ {}) as unknown as HubClientRegistration;
59
+ const clientId =
60
+ registration.clientId?.trim() ||
61
+ frame.envelope.clientId?.trim();
62
+ if (clientId) {
63
+ registeredClientIds.add(clientId);
64
+ }
65
+ } else if (
66
+ frame.envelope.command === "client.unregister" &&
67
+ reply.ok
68
+ ) {
69
+ const clientId = frame.envelope.clientId?.trim();
70
+ if (clientId) {
71
+ registeredClientIds.delete(clientId);
72
+ }
73
+ }
74
+ sendFrame({
75
+ kind: "reply",
76
+ envelope: reply satisfies HubReplyEnvelope,
77
+ });
78
+ break;
79
+ }
80
+ case "stream.subscribe": {
81
+ const key = `${frame.clientId}:${frame.sessionId ?? "*"}`;
82
+ if (subscriptions.has(key)) {
83
+ break;
84
+ }
85
+ const unsubscribe = await this.transport.subscribe(
86
+ frame.clientId,
87
+ onEvent,
88
+ { sessionId: frame.sessionId },
89
+ );
90
+ subscriptions.set(key, unsubscribe);
91
+ break;
92
+ }
93
+ case "stream.unsubscribe": {
94
+ const key = `${frame.clientId}:${frame.sessionId ?? "*"}`;
95
+ subscriptions.get(key)?.();
96
+ subscriptions.delete(key);
97
+ break;
98
+ }
99
+ case "reply":
100
+ case "event":
101
+ break;
102
+ }
103
+ } catch (error) {
104
+ const parsed =
105
+ typeof event.data === "string"
106
+ ? safeJsonParse<HubTransportFrame>(event.data)
107
+ : undefined;
108
+ if (!parsed || parsed.kind !== "command") {
109
+ console.error(
110
+ `[hub] rejected malformed websocket frame: ${
111
+ error instanceof Error
112
+ ? error.stack || error.message
113
+ : String(error)
114
+ }`,
115
+ );
116
+ return;
117
+ }
118
+ sendFrame({
119
+ kind: "reply",
120
+ envelope: {
121
+ ...parsed.envelope,
122
+ ok: false,
123
+ error: {
124
+ code: "command_failed",
125
+ message:
126
+ error instanceof Error ? error.message : "Unknown hub error",
127
+ },
128
+ } satisfies HubReplyEnvelope,
129
+ });
130
+ }
131
+ };
132
+
133
+ const onClose = (): void => {
134
+ if (closed) {
135
+ return;
136
+ }
137
+ closed = true;
138
+ for (const unsubscribe of subscriptions.values()) {
139
+ unsubscribe();
140
+ }
141
+ subscriptions.clear();
142
+ for (const clientId of registeredClientIds) {
143
+ void this.transport.command({
144
+ version: "v1",
145
+ command: "client.unregister",
146
+ clientId,
147
+ });
148
+ }
149
+ registeredClientIds.clear();
150
+ socket.removeEventListener("message", onMessage);
151
+ socket.removeEventListener("close", onClose);
152
+ };
153
+
154
+ socket.addEventListener("message", onMessage);
155
+ socket.addEventListener("close", onClose);
156
+
157
+ return onClose;
158
+ }
159
+ }