@clinebot/core 0.0.37 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/README.md +11 -1
  2. package/dist/ClineCore.d.ts +18 -214
  3. package/dist/account/cline-account-service.d.ts +0 -1
  4. package/dist/account/index.d.ts +0 -1
  5. package/dist/account/rpc.d.ts +0 -1
  6. package/dist/account/types.d.ts +0 -1
  7. package/dist/auth/bounded-ttl-cache.d.ts +0 -1
  8. package/dist/auth/client.d.ts +0 -1
  9. package/dist/auth/cline.d.ts +0 -5
  10. package/dist/auth/codex.d.ts +0 -1
  11. package/dist/auth/oca.d.ts +0 -1
  12. package/dist/auth/server.d.ts +0 -1
  13. package/dist/auth/types.d.ts +0 -1
  14. package/dist/auth/utils.d.ts +0 -1
  15. package/dist/cline-core/automation.d.ts +34 -0
  16. package/dist/cline-core/runtime-services.d.ts +5 -0
  17. package/dist/cline-core/start-input.d.ts +10 -0
  18. package/dist/cline-core/telemetry.d.ts +10 -0
  19. package/dist/cline-core/types.d.ts +221 -0
  20. package/dist/cron/{cron-event-ingress.d.ts → events/cron-event-ingress.d.ts} +1 -2
  21. package/dist/cron/{cron-report-writer.d.ts → reports/cron-report-writer.d.ts} +1 -2
  22. package/dist/cron/{cron-materializer.d.ts → runner/cron-materializer.d.ts} +1 -2
  23. package/dist/cron/{cron-runner.d.ts → runner/cron-runner.d.ts} +6 -4
  24. package/dist/cron/{resource-limiter.d.ts → runner/resource-limiter.d.ts} +0 -1
  25. package/dist/cron/schedule/scheduler.d.ts +12 -0
  26. package/dist/cron/{cron-service.d.ts → service/cron-service.d.ts} +4 -5
  27. package/dist/cron/{schedule-command-service.d.ts → service/schedule-command-service.d.ts} +0 -1
  28. package/dist/cron/{schedule-service.d.ts → service/schedule-service.d.ts} +20 -22
  29. package/dist/cron/{cron-reconciler.d.ts → specs/cron-reconciler.d.ts} +1 -2
  30. package/dist/cron/{cron-spec-parser.d.ts → specs/cron-spec-parser.d.ts} +0 -1
  31. package/dist/cron/{cron-watcher.d.ts → specs/cron-watcher.d.ts} +0 -1
  32. package/dist/cron/{cron-schema.d.ts → store/cron-schema.d.ts} +0 -1
  33. package/dist/cron/{sqlite-cron-store.d.ts → store/sqlite-cron-store.d.ts} +12 -2
  34. package/dist/extensions/config/index.d.ts +4 -7
  35. package/dist/extensions/config/runtime-commands.d.ts +0 -1
  36. package/dist/extensions/config/skill-frontmatter-toggle.d.ts +11 -0
  37. package/dist/extensions/config/unified-config-file-watcher.d.ts +0 -1
  38. package/dist/extensions/config/user-instruction-config-loader.d.ts +0 -1
  39. package/dist/extensions/config/user-instruction-plugin.d.ts +25 -0
  40. package/dist/extensions/config/user-instruction-service.d.ts +23 -0
  41. package/dist/extensions/context/agentic-compaction.d.ts +0 -1
  42. package/dist/extensions/context/basic-compaction.d.ts +0 -1
  43. package/dist/extensions/context/compaction-shared.d.ts +0 -1
  44. package/dist/extensions/context/compaction.d.ts +0 -1
  45. package/dist/extensions/index.d.ts +0 -1
  46. package/dist/extensions/mcp/client.d.ts +0 -1
  47. package/dist/extensions/mcp/config-loader.d.ts +0 -1
  48. package/dist/extensions/mcp/index.d.ts +0 -1
  49. package/dist/extensions/mcp/manager.d.ts +0 -1
  50. package/dist/extensions/mcp/name-transform.d.ts +0 -1
  51. package/dist/extensions/mcp/policies.d.ts +0 -1
  52. package/dist/extensions/mcp/tools.d.ts +2 -3
  53. package/dist/extensions/mcp/types.d.ts +3 -4
  54. package/dist/extensions/plugin/plugin-config-loader.d.ts +0 -1
  55. package/dist/extensions/plugin/plugin-load-report.d.ts +0 -1
  56. package/dist/extensions/plugin/plugin-loader.d.ts +0 -1
  57. package/dist/extensions/plugin/plugin-module-import.d.ts +0 -1
  58. package/dist/extensions/plugin/plugin-sandbox.d.ts +0 -1
  59. package/dist/extensions/plugin/plugin-targeting.d.ts +0 -1
  60. package/dist/extensions/plugin-sandbox-bootstrap.js +1 -446
  61. package/dist/extensions/tools/constants.d.ts +0 -1
  62. package/dist/extensions/tools/definitions.d.ts +13 -14
  63. package/dist/extensions/tools/executors/apply-patch-parser.d.ts +0 -1
  64. package/dist/extensions/tools/executors/apply-patch.d.ts +0 -1
  65. package/dist/extensions/tools/executors/bash.d.ts +0 -1
  66. package/dist/extensions/tools/executors/editor.d.ts +0 -1
  67. package/dist/extensions/tools/executors/file-read.d.ts +0 -1
  68. package/dist/extensions/tools/executors/index.d.ts +0 -1
  69. package/dist/extensions/tools/executors/search.d.ts +0 -1
  70. package/dist/extensions/tools/executors/web-fetch.d.ts +0 -1
  71. package/dist/extensions/tools/helpers.d.ts +0 -1
  72. package/dist/extensions/tools/index.d.ts +2 -3
  73. package/dist/extensions/tools/model-tool-routing.d.ts +0 -1
  74. package/dist/extensions/tools/presets.d.ts +4 -5
  75. package/dist/extensions/tools/runtime.d.ts +0 -1
  76. package/dist/extensions/tools/schemas.d.ts +0 -1
  77. package/dist/extensions/tools/team/delegated-agent.d.ts +3 -4
  78. package/dist/extensions/tools/team/index.d.ts +0 -1
  79. package/dist/extensions/tools/team/multi-agent.d.ts +1 -2
  80. package/dist/extensions/tools/team/projections.d.ts +0 -1
  81. package/dist/extensions/tools/team/runtime.d.ts +0 -1
  82. package/dist/extensions/tools/team/spawn-agent-tool.d.ts +4 -5
  83. package/dist/extensions/tools/team/subagent-prompts.d.ts +0 -1
  84. package/dist/extensions/tools/team/team-tools.d.ts +7 -8
  85. package/dist/extensions/tools/types.d.ts +11 -12
  86. package/dist/hooks/checkpoint-hooks.d.ts +9 -2
  87. package/dist/hooks/hook-extension.d.ts +2 -0
  88. package/dist/{extensions/config/hooks-config-loader.d.ts → hooks/hook-file-config.d.ts} +1 -2
  89. package/dist/hooks/hook-file-hooks.d.ts +2 -2
  90. package/dist/hooks/index.d.ts +3 -1
  91. package/dist/hooks/subprocess-runner.d.ts +0 -1
  92. package/dist/hooks/subprocess.d.ts +0 -1
  93. package/dist/hub/{connect.d.ts → client/connect.d.ts} +1 -2
  94. package/dist/hub/{client.d.ts → client/index.d.ts} +41 -4
  95. package/dist/hub/{session-client.d.ts → client/session-client.d.ts} +41 -13
  96. package/dist/hub/{ui-client.d.ts → client/ui-client.d.ts} +1 -1
  97. package/dist/hub/daemon/entry.d.ts +1 -0
  98. package/dist/hub/daemon/entry.js +720 -0
  99. package/dist/hub/{daemon.d.ts → daemon/index.d.ts} +6 -3
  100. package/dist/hub/{runtime-handlers.d.ts → daemon/runtime-handlers.d.ts} +3 -2
  101. package/dist/hub/{start-shared-server.d.ts → daemon/start-shared-server.d.ts} +1 -2
  102. package/dist/hub/{defaults.d.ts → discovery/defaults.d.ts} +0 -1
  103. package/dist/hub/{discovery.d.ts → discovery/index.d.ts} +2 -1
  104. package/dist/hub/{workspace.d.ts → discovery/workspace.d.ts} +1 -2
  105. package/dist/hub/index.d.ts +28 -11
  106. package/dist/hub/index.js +484 -1061
  107. package/dist/hub/runtime-host/hub-runtime-host.d.ts +73 -0
  108. package/dist/{transports/remote.d.ts → hub/runtime-host/remote-runtime-host.d.ts} +1 -2
  109. package/dist/hub/{browser-websocket.d.ts → server/browser-websocket.d.ts} +1 -2
  110. package/dist/hub/{transport.d.ts → server/command-transport.d.ts} +0 -1
  111. package/dist/hub/server/handlers/approval-handlers.d.ts +17 -0
  112. package/dist/hub/server/handlers/capability-handlers.d.ts +12 -0
  113. package/dist/hub/server/handlers/client-handlers.d.ts +6 -0
  114. package/dist/hub/server/handlers/context.d.ts +56 -0
  115. package/dist/hub/server/handlers/run-handlers.d.ts +5 -0
  116. package/dist/hub/server/handlers/session-event-projector.d.ts +7 -0
  117. package/dist/hub/server/handlers/session-handlers.d.ts +20 -0
  118. package/dist/hub/server/hub-client-contributions.d.ts +19 -0
  119. package/dist/hub/server/hub-notifications.d.ts +7 -0
  120. package/dist/hub/server/hub-schedule-events.d.ts +2 -0
  121. package/dist/hub/server/hub-server-logging.d.ts +2 -0
  122. package/dist/hub/server/hub-server-options.d.ts +55 -0
  123. package/dist/hub/server/hub-server-transport.d.ts +34 -0
  124. package/dist/hub/server/hub-session-records.d.ts +8 -0
  125. package/dist/hub/server/hub-websocket-server.d.ts +6 -0
  126. package/dist/hub/server/index.d.ts +4 -0
  127. package/dist/hub/{native-transport.d.ts → server/native-transport.d.ts} +1 -2
  128. package/dist/index.d.ts +51 -41
  129. package/dist/index.js +214 -872
  130. package/dist/runtime/capabilities/index.d.ts +2 -0
  131. package/dist/runtime/capabilities/normalize-runtime-capabilities.d.ts +2 -0
  132. package/dist/runtime/capabilities/runtime-capabilities.d.ts +6 -0
  133. package/dist/runtime/config/agent-message-codec.d.ts +6 -0
  134. package/dist/runtime/{agent-runtime-config-builder.d.ts → config/agent-runtime-config-builder.d.ts} +12 -21
  135. package/dist/runtime/host/history.d.ts +18 -0
  136. package/dist/runtime/{host.d.ts → host/host.d.ts} +3 -4
  137. package/dist/runtime/host/local/agent-event-bridge.d.ts +29 -0
  138. package/dist/runtime/host/local/session-record.d.ts +6 -0
  139. package/dist/runtime/host/local/session-service-invoker.d.ts +4 -0
  140. package/dist/runtime/host/local/spawn-tool.d.ts +15 -0
  141. package/dist/runtime/host/local/user-files.d.ts +1 -0
  142. package/dist/runtime/host/local-runtime-host.d.ts +118 -0
  143. package/dist/{transports → runtime/host}/runtime-host-support.d.ts +3 -5
  144. package/dist/runtime/{runtime-host.d.ts → host/runtime-host.d.ts} +66 -31
  145. package/dist/runtime/{runtime-builder.d.ts → orchestration/runtime-builder.d.ts} +0 -1
  146. package/dist/runtime/{runtime-event-adapter.d.ts → orchestration/runtime-event-adapter.d.ts} +0 -1
  147. package/dist/runtime/{runtime-oauth-token-manager.d.ts → orchestration/runtime-oauth-token-manager.d.ts} +1 -2
  148. package/dist/runtime/{session-runtime-orchestrator.d.ts → orchestration/session-runtime-orchestrator.d.ts} +20 -63
  149. package/dist/runtime/{session-runtime.d.ts → orchestration/session-runtime.d.ts} +14 -12
  150. package/dist/runtime/{user-input-builder.d.ts → orchestration/user-input-builder.d.ts} +2 -11
  151. package/dist/runtime/{loop-detection.d.ts → safety/loop-detection.d.ts} +0 -1
  152. package/dist/runtime/{mistake-tracker.d.ts → safety/mistake-tracker.d.ts} +0 -1
  153. package/dist/runtime/{rules.d.ts → safety/rules.d.ts} +1 -2
  154. package/dist/runtime/{subprocess-sandbox.d.ts → tools/subprocess-sandbox.d.ts} +15 -1
  155. package/dist/runtime/{tool-approval.d.ts → tools/tool-approval.d.ts} +0 -1
  156. package/dist/runtime/turn-queue/pending-prompt-service.d.ts +64 -0
  157. package/dist/services/agent-events.d.ts +1 -2
  158. package/dist/services/config.d.ts +0 -1
  159. package/dist/services/global-settings.d.ts +27 -5
  160. package/dist/{llms → services/llms}/cline-recommended-models.d.ts +1 -2
  161. package/dist/{llms → services/llms}/configured-provider-registry.d.ts +0 -1
  162. package/dist/services/llms/handler-factory.d.ts +3 -0
  163. package/dist/{llms → services/llms}/provider-defaults.d.ts +2 -1
  164. package/dist/{llms → services/llms}/provider-settings.d.ts +5 -3
  165. package/dist/{llms → services/llms}/runtime-config.d.ts +0 -1
  166. package/dist/{llms → services/llms}/runtime-registry.d.ts +0 -1
  167. package/dist/{llms → services/llms}/runtime-types.d.ts +0 -1
  168. package/dist/services/local-runtime-bootstrap.d.ts +7 -9
  169. package/dist/services/plugin-tools.d.ts +0 -1
  170. package/dist/services/providers/local-provider-registry.d.ts +9 -10
  171. package/dist/services/providers/local-provider-service.d.ts +36 -3
  172. package/dist/services/providers/model-source.d.ts +3 -0
  173. package/dist/services/session-artifacts.d.ts +0 -1
  174. package/dist/services/session-data.d.ts +2 -3
  175. package/dist/services/session-telemetry.d.ts +0 -1
  176. package/dist/services/storage/file-team-store.d.ts +0 -1
  177. package/dist/services/storage/provider-settings-legacy-migration.d.ts +0 -1
  178. package/dist/services/storage/provider-settings-manager.d.ts +3 -4
  179. package/dist/services/storage/sqlite-session-store.d.ts +0 -1
  180. package/dist/services/storage/sqlite-team-store.d.ts +0 -1
  181. package/dist/services/storage/team-store.d.ts +0 -1
  182. package/dist/services/telemetry/ITelemetryAdapter.d.ts +0 -1
  183. package/dist/services/telemetry/OpenTelemetryAdapter.d.ts +0 -1
  184. package/dist/services/telemetry/OpenTelemetryProvider.d.ts +32 -1
  185. package/dist/services/telemetry/TelemetryLoggerSink.d.ts +0 -1
  186. package/dist/services/telemetry/TelemetryService.d.ts +0 -1
  187. package/dist/services/telemetry/core-events.d.ts +46 -3
  188. package/dist/services/telemetry/distinct-id.d.ts +0 -1
  189. package/dist/services/telemetry/index.d.ts +1 -2
  190. package/dist/services/telemetry/index.js +1 -0
  191. package/dist/services/usage.d.ts +10 -2
  192. package/dist/services/workspace/file-indexer.d.ts +0 -1
  193. package/dist/services/workspace/index.d.ts +0 -1
  194. package/dist/services/workspace/mention-enricher.d.ts +0 -1
  195. package/dist/{session → services/workspace}/workspace-manager.d.ts +0 -1
  196. package/dist/services/{workspace-manifest.d.ts → workspace/workspace-manifest.d.ts} +20 -5
  197. package/dist/services/workspace/workspace-telemetry.d.ts +18 -0
  198. package/dist/session/checkpoint-restore.d.ts +20 -0
  199. package/dist/session/{session-graph.d.ts → models/session-graph.d.ts} +2 -3
  200. package/dist/session/{session-manifest.d.ts → models/session-manifest.d.ts} +0 -1
  201. package/dist/session/{session-row.d.ts → models/session-row.d.ts} +2 -3
  202. package/dist/session/{file-session-service.d.ts → services/file-session-service.d.ts} +1 -2
  203. package/dist/session/{message-builder.d.ts → services/message-builder.d.ts} +7 -16
  204. package/dist/session/{persistence-service.d.ts → services/persistence-service.d.ts} +10 -11
  205. package/dist/session/{session-service.d.ts → services/session-service.d.ts} +4 -5
  206. package/dist/session/session-snapshot.d.ts +57 -0
  207. package/dist/session/session-versioning-service.d.ts +48 -0
  208. package/dist/session/{conversation-store.d.ts → stores/conversation-store.d.ts} +0 -1
  209. package/dist/session/{session-manifest-store.d.ts → stores/session-manifest-store.d.ts} +3 -4
  210. package/dist/session/{team-persistence-store.d.ts → stores/team-persistence-store.d.ts} +2 -3
  211. package/dist/session/team/index.d.ts +2 -0
  212. package/dist/session/{subagent-session-manager.d.ts → team/team-child-session-manager.d.ts} +7 -8
  213. package/dist/session/{session-team-coordination.d.ts → team/team-session-coordinator.d.ts} +3 -4
  214. package/dist/settings/index.d.ts +2 -0
  215. package/dist/settings/settings-service.d.ts +6 -0
  216. package/dist/settings/types.d.ts +42 -0
  217. package/dist/types/chat-schema.d.ts +24 -7
  218. package/dist/types/common.d.ts +0 -1
  219. package/dist/types/config.d.ts +2 -3
  220. package/dist/types/events.d.ts +8 -1
  221. package/dist/types/provider-settings.d.ts +2 -3
  222. package/dist/types/session.d.ts +22 -6
  223. package/dist/types/sessions.d.ts +0 -1
  224. package/dist/types/storage.d.ts +0 -1
  225. package/dist/types.d.ts +17 -14
  226. package/dist/version.d.ts +0 -1
  227. package/package.json +16 -12
  228. package/dist/ClineCore.d.ts.map +0 -1
  229. package/dist/account/cline-account-service.d.ts.map +0 -1
  230. package/dist/account/index.d.ts.map +0 -1
  231. package/dist/account/rpc.d.ts.map +0 -1
  232. package/dist/account/types.d.ts.map +0 -1
  233. package/dist/auth/bounded-ttl-cache.d.ts.map +0 -1
  234. package/dist/auth/client.d.ts.map +0 -1
  235. package/dist/auth/cline.d.ts.map +0 -1
  236. package/dist/auth/codex.d.ts.map +0 -1
  237. package/dist/auth/oca.d.ts.map +0 -1
  238. package/dist/auth/server.d.ts.map +0 -1
  239. package/dist/auth/types.d.ts.map +0 -1
  240. package/dist/auth/utils.d.ts.map +0 -1
  241. package/dist/cron/cron-event-ingress.d.ts.map +0 -1
  242. package/dist/cron/cron-materializer.d.ts.map +0 -1
  243. package/dist/cron/cron-reconciler.d.ts.map +0 -1
  244. package/dist/cron/cron-report-writer.d.ts.map +0 -1
  245. package/dist/cron/cron-runner.d.ts.map +0 -1
  246. package/dist/cron/cron-schema.d.ts.map +0 -1
  247. package/dist/cron/cron-service.d.ts.map +0 -1
  248. package/dist/cron/cron-spec-parser.d.ts.map +0 -1
  249. package/dist/cron/cron-watcher.d.ts.map +0 -1
  250. package/dist/cron/resource-limiter.d.ts.map +0 -1
  251. package/dist/cron/schedule-command-service.d.ts.map +0 -1
  252. package/dist/cron/schedule-service.d.ts.map +0 -1
  253. package/dist/cron/scheduler.d.ts +0 -68
  254. package/dist/cron/scheduler.d.ts.map +0 -1
  255. package/dist/cron/sqlite-cron-store.d.ts.map +0 -1
  256. package/dist/cron/sqlite-schedule-store.d.ts +0 -52
  257. package/dist/cron/sqlite-schedule-store.d.ts.map +0 -1
  258. package/dist/extensions/config/agent-config-loader.d.ts +0 -20
  259. package/dist/extensions/config/agent-config-loader.d.ts.map +0 -1
  260. package/dist/extensions/config/agent-config-parser.d.ts +0 -29
  261. package/dist/extensions/config/agent-config-parser.d.ts.map +0 -1
  262. package/dist/extensions/config/hooks-config-loader.d.ts.map +0 -1
  263. package/dist/extensions/config/index.d.ts.map +0 -1
  264. package/dist/extensions/config/runtime-commands.d.ts.map +0 -1
  265. package/dist/extensions/config/unified-config-file-watcher.d.ts.map +0 -1
  266. package/dist/extensions/config/user-instruction-config-loader.d.ts.map +0 -1
  267. package/dist/extensions/context/agentic-compaction.d.ts.map +0 -1
  268. package/dist/extensions/context/basic-compaction.d.ts.map +0 -1
  269. package/dist/extensions/context/compaction-shared.d.ts.map +0 -1
  270. package/dist/extensions/context/compaction.d.ts.map +0 -1
  271. package/dist/extensions/index.d.ts.map +0 -1
  272. package/dist/extensions/mcp/client.d.ts.map +0 -1
  273. package/dist/extensions/mcp/config-loader.d.ts.map +0 -1
  274. package/dist/extensions/mcp/index.d.ts.map +0 -1
  275. package/dist/extensions/mcp/manager.d.ts.map +0 -1
  276. package/dist/extensions/mcp/name-transform.d.ts.map +0 -1
  277. package/dist/extensions/mcp/policies.d.ts.map +0 -1
  278. package/dist/extensions/mcp/tools.d.ts.map +0 -1
  279. package/dist/extensions/mcp/types.d.ts.map +0 -1
  280. package/dist/extensions/plugin/plugin-config-loader.d.ts.map +0 -1
  281. package/dist/extensions/plugin/plugin-load-report.d.ts.map +0 -1
  282. package/dist/extensions/plugin/plugin-loader.d.ts.map +0 -1
  283. package/dist/extensions/plugin/plugin-module-import.d.ts.map +0 -1
  284. package/dist/extensions/plugin/plugin-sandbox.d.ts.map +0 -1
  285. package/dist/extensions/plugin/plugin-targeting.d.ts.map +0 -1
  286. package/dist/extensions/tools/constants.d.ts.map +0 -1
  287. package/dist/extensions/tools/definitions.d.ts.map +0 -1
  288. package/dist/extensions/tools/executors/apply-patch-parser.d.ts.map +0 -1
  289. package/dist/extensions/tools/executors/apply-patch.d.ts.map +0 -1
  290. package/dist/extensions/tools/executors/bash.d.ts.map +0 -1
  291. package/dist/extensions/tools/executors/editor.d.ts.map +0 -1
  292. package/dist/extensions/tools/executors/file-read.d.ts.map +0 -1
  293. package/dist/extensions/tools/executors/index.d.ts.map +0 -1
  294. package/dist/extensions/tools/executors/search.d.ts.map +0 -1
  295. package/dist/extensions/tools/executors/web-fetch.d.ts.map +0 -1
  296. package/dist/extensions/tools/helpers.d.ts.map +0 -1
  297. package/dist/extensions/tools/index.d.ts.map +0 -1
  298. package/dist/extensions/tools/model-tool-routing.d.ts.map +0 -1
  299. package/dist/extensions/tools/presets.d.ts.map +0 -1
  300. package/dist/extensions/tools/runtime.d.ts.map +0 -1
  301. package/dist/extensions/tools/schemas.d.ts.map +0 -1
  302. package/dist/extensions/tools/team/delegated-agent.d.ts.map +0 -1
  303. package/dist/extensions/tools/team/index.d.ts.map +0 -1
  304. package/dist/extensions/tools/team/multi-agent.d.ts.map +0 -1
  305. package/dist/extensions/tools/team/projections.d.ts.map +0 -1
  306. package/dist/extensions/tools/team/runtime.d.ts.map +0 -1
  307. package/dist/extensions/tools/team/spawn-agent-tool.d.ts.map +0 -1
  308. package/dist/extensions/tools/team/subagent-prompts.d.ts.map +0 -1
  309. package/dist/extensions/tools/team/team-tools.d.ts.map +0 -1
  310. package/dist/extensions/tools/types.d.ts.map +0 -1
  311. package/dist/hooks/checkpoint-hooks.d.ts.map +0 -1
  312. package/dist/hooks/hook-bridge.d.ts +0 -118
  313. package/dist/hooks/hook-bridge.d.ts.map +0 -1
  314. package/dist/hooks/hook-file-hooks.d.ts.map +0 -1
  315. package/dist/hooks/hook-registry.d.ts +0 -16
  316. package/dist/hooks/hook-registry.d.ts.map +0 -1
  317. package/dist/hooks/index.d.ts.map +0 -1
  318. package/dist/hooks/subprocess-runner.d.ts.map +0 -1
  319. package/dist/hooks/subprocess.d.ts.map +0 -1
  320. package/dist/hub/browser-websocket.d.ts.map +0 -1
  321. package/dist/hub/client.d.ts.map +0 -1
  322. package/dist/hub/connect.d.ts.map +0 -1
  323. package/dist/hub/daemon-entry.d.ts +0 -2
  324. package/dist/hub/daemon-entry.d.ts.map +0 -1
  325. package/dist/hub/daemon-entry.js +0 -1305
  326. package/dist/hub/daemon.d.ts.map +0 -1
  327. package/dist/hub/defaults.d.ts.map +0 -1
  328. package/dist/hub/discovery.d.ts.map +0 -1
  329. package/dist/hub/index.d.ts.map +0 -1
  330. package/dist/hub/native-transport.d.ts.map +0 -1
  331. package/dist/hub/runtime-handlers.d.ts.map +0 -1
  332. package/dist/hub/server.d.ts +0 -104
  333. package/dist/hub/server.d.ts.map +0 -1
  334. package/dist/hub/session-client.d.ts.map +0 -1
  335. package/dist/hub/start-shared-server.d.ts.map +0 -1
  336. package/dist/hub/transport.d.ts.map +0 -1
  337. package/dist/hub/ui-client.d.ts.map +0 -1
  338. package/dist/hub/workspace.d.ts.map +0 -1
  339. package/dist/index.d.ts.map +0 -1
  340. package/dist/llms/cline-recommended-models.d.ts.map +0 -1
  341. package/dist/llms/configured-provider-registry.d.ts.map +0 -1
  342. package/dist/llms/handler-factory.d.ts +0 -16
  343. package/dist/llms/handler-factory.d.ts.map +0 -1
  344. package/dist/llms/provider-defaults.d.ts.map +0 -1
  345. package/dist/llms/provider-settings.d.ts.map +0 -1
  346. package/dist/llms/runtime-config.d.ts.map +0 -1
  347. package/dist/llms/runtime-registry.d.ts.map +0 -1
  348. package/dist/llms/runtime-types.d.ts.map +0 -1
  349. package/dist/runtime/agent-config-adapter.d.ts +0 -148
  350. package/dist/runtime/agent-config-adapter.d.ts.map +0 -1
  351. package/dist/runtime/agent-runtime-config-builder.d.ts.map +0 -1
  352. package/dist/runtime/history.d.ts +0 -10
  353. package/dist/runtime/history.d.ts.map +0 -1
  354. package/dist/runtime/host.d.ts.map +0 -1
  355. package/dist/runtime/loop-detection.d.ts.map +0 -1
  356. package/dist/runtime/mistake-tracker.d.ts.map +0 -1
  357. package/dist/runtime/rules.d.ts.map +0 -1
  358. package/dist/runtime/runtime-builder.d.ts.map +0 -1
  359. package/dist/runtime/runtime-event-adapter.d.ts.map +0 -1
  360. package/dist/runtime/runtime-host.d.ts.map +0 -1
  361. package/dist/runtime/runtime-oauth-token-manager.d.ts.map +0 -1
  362. package/dist/runtime/session-runtime-orchestrator.d.ts.map +0 -1
  363. package/dist/runtime/session-runtime.d.ts.map +0 -1
  364. package/dist/runtime/subprocess-sandbox.d.ts.map +0 -1
  365. package/dist/runtime/tool-approval.d.ts.map +0 -1
  366. package/dist/runtime/user-input-builder.d.ts.map +0 -1
  367. package/dist/services/agent-events.d.ts.map +0 -1
  368. package/dist/services/config.d.ts.map +0 -1
  369. package/dist/services/global-settings.d.ts.map +0 -1
  370. package/dist/services/index.js +0 -28
  371. package/dist/services/local-runtime-bootstrap.d.ts.map +0 -1
  372. package/dist/services/plugin-tools.d.ts.map +0 -1
  373. package/dist/services/providers/local-provider-registry.d.ts.map +0 -1
  374. package/dist/services/providers/local-provider-service.d.ts.map +0 -1
  375. package/dist/services/session-artifacts.d.ts.map +0 -1
  376. package/dist/services/session-data.d.ts.map +0 -1
  377. package/dist/services/session-telemetry.d.ts.map +0 -1
  378. package/dist/services/storage/file-team-store.d.ts.map +0 -1
  379. package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +0 -1
  380. package/dist/services/storage/provider-settings-manager.d.ts.map +0 -1
  381. package/dist/services/storage/sqlite-session-store.d.ts.map +0 -1
  382. package/dist/services/storage/sqlite-team-store.d.ts.map +0 -1
  383. package/dist/services/storage/team-store.d.ts.map +0 -1
  384. package/dist/services/telemetry/ITelemetryAdapter.d.ts.map +0 -1
  385. package/dist/services/telemetry/OpenTelemetryAdapter.d.ts.map +0 -1
  386. package/dist/services/telemetry/OpenTelemetryProvider.d.ts.map +0 -1
  387. package/dist/services/telemetry/TelemetryLoggerSink.d.ts.map +0 -1
  388. package/dist/services/telemetry/TelemetryService.d.ts.map +0 -1
  389. package/dist/services/telemetry/core-events.d.ts.map +0 -1
  390. package/dist/services/telemetry/distinct-id.d.ts.map +0 -1
  391. package/dist/services/telemetry/index.d.ts.map +0 -1
  392. package/dist/services/usage.d.ts.map +0 -1
  393. package/dist/services/workspace/file-indexer.d.ts.map +0 -1
  394. package/dist/services/workspace/index.d.ts.map +0 -1
  395. package/dist/services/workspace/mention-enricher.d.ts.map +0 -1
  396. package/dist/services/workspace-manifest.d.ts.map +0 -1
  397. package/dist/session/conversation-store.d.ts.map +0 -1
  398. package/dist/session/file-session-service.d.ts.map +0 -1
  399. package/dist/session/message-builder.d.ts.map +0 -1
  400. package/dist/session/persistence-service.d.ts.map +0 -1
  401. package/dist/session/session-graph.d.ts.map +0 -1
  402. package/dist/session/session-manifest-store.d.ts.map +0 -1
  403. package/dist/session/session-manifest.d.ts.map +0 -1
  404. package/dist/session/session-row.d.ts.map +0 -1
  405. package/dist/session/session-service.d.ts.map +0 -1
  406. package/dist/session/session-team-coordination.d.ts.map +0 -1
  407. package/dist/session/subagent-session-manager.d.ts.map +0 -1
  408. package/dist/session/team-persistence-store.d.ts.map +0 -1
  409. package/dist/session/workspace-manager.d.ts.map +0 -1
  410. package/dist/transports/hub.d.ts +0 -58
  411. package/dist/transports/hub.d.ts.map +0 -1
  412. package/dist/transports/local.d.ts +0 -119
  413. package/dist/transports/local.d.ts.map +0 -1
  414. package/dist/transports/remote.d.ts.map +0 -1
  415. package/dist/transports/runtime-host-support.d.ts.map +0 -1
  416. package/dist/types/chat-schema.d.ts.map +0 -1
  417. package/dist/types/common.d.ts.map +0 -1
  418. package/dist/types/config.d.ts.map +0 -1
  419. package/dist/types/events.d.ts.map +0 -1
  420. package/dist/types/provider-settings.d.ts.map +0 -1
  421. package/dist/types/session.d.ts.map +0 -1
  422. package/dist/types/sessions.d.ts.map +0 -1
  423. package/dist/types/storage.d.ts.map +0 -1
  424. package/dist/types.d.ts.map +0 -1
  425. package/dist/version.d.ts.map +0 -1
  426. package/src/ClineCore.ts +0 -1026
  427. package/src/account/cline-account-service.ts +0 -338
  428. package/src/account/index.ts +0 -24
  429. package/src/account/rpc.ts +0 -185
  430. package/src/account/types.ts +0 -108
  431. package/src/auth/bounded-ttl-cache.ts +0 -53
  432. package/src/auth/client.ts +0 -46
  433. package/src/auth/cline.ts +0 -724
  434. package/src/auth/codex.ts +0 -491
  435. package/src/auth/oca.ts +0 -588
  436. package/src/auth/server.ts +0 -265
  437. package/src/auth/types.ts +0 -110
  438. package/src/auth/utils.ts +0 -247
  439. package/src/cron/cron-event-ingress.ts +0 -357
  440. package/src/cron/cron-materializer.ts +0 -97
  441. package/src/cron/cron-reconciler.ts +0 -241
  442. package/src/cron/cron-report-writer.ts +0 -153
  443. package/src/cron/cron-runner.ts +0 -495
  444. package/src/cron/cron-schema.ts +0 -127
  445. package/src/cron/cron-service.ts +0 -163
  446. package/src/cron/cron-spec-parser.ts +0 -489
  447. package/src/cron/cron-watcher.ts +0 -102
  448. package/src/cron/index.ts +0 -15
  449. package/src/cron/resource-limiter.ts +0 -46
  450. package/src/cron/schedule-command-service.ts +0 -193
  451. package/src/cron/schedule-service.ts +0 -703
  452. package/src/cron/scheduler.ts +0 -772
  453. package/src/cron/sqlite-cron-store.ts +0 -1286
  454. package/src/cron/sqlite-schedule-store.ts +0 -708
  455. package/src/extensions/config/agent-config-loader.ts +0 -114
  456. package/src/extensions/config/agent-config-parser.ts +0 -198
  457. package/src/extensions/config/hooks-config-loader.ts +0 -117
  458. package/src/extensions/config/index.ts +0 -77
  459. package/src/extensions/config/runtime-commands.ts +0 -82
  460. package/src/extensions/config/unified-config-file-watcher.ts +0 -496
  461. package/src/extensions/config/user-instruction-config-loader.ts +0 -549
  462. package/src/extensions/context/agentic-compaction.ts +0 -131
  463. package/src/extensions/context/basic-compaction.ts +0 -300
  464. package/src/extensions/context/compaction-shared.ts +0 -459
  465. package/src/extensions/context/compaction.ts +0 -226
  466. package/src/extensions/index.ts +0 -18
  467. package/src/extensions/mcp/client.ts +0 -420
  468. package/src/extensions/mcp/config-loader.ts +0 -219
  469. package/src/extensions/mcp/index.ts +0 -42
  470. package/src/extensions/mcp/manager.ts +0 -260
  471. package/src/extensions/mcp/name-transform.ts +0 -33
  472. package/src/extensions/mcp/policies.ts +0 -47
  473. package/src/extensions/mcp/tools.ts +0 -47
  474. package/src/extensions/mcp/types.ts +0 -116
  475. package/src/extensions/plugin/plugin-config-loader.ts +0 -140
  476. package/src/extensions/plugin/plugin-load-report.ts +0 -20
  477. package/src/extensions/plugin/plugin-loader.ts +0 -220
  478. package/src/extensions/plugin/plugin-module-import.ts +0 -276
  479. package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +0 -662
  480. package/src/extensions/plugin/plugin-sandbox.ts +0 -586
  481. package/src/extensions/plugin/plugin-targeting.ts +0 -32
  482. package/src/extensions/tools/constants.ts +0 -37
  483. package/src/extensions/tools/definitions.ts +0 -738
  484. package/src/extensions/tools/executors/apply-patch-parser.ts +0 -520
  485. package/src/extensions/tools/executors/apply-patch.ts +0 -348
  486. package/src/extensions/tools/executors/bash.ts +0 -207
  487. package/src/extensions/tools/executors/editor.ts +0 -220
  488. package/src/extensions/tools/executors/file-read.ts +0 -135
  489. package/src/extensions/tools/executors/index.ts +0 -87
  490. package/src/extensions/tools/executors/search.ts +0 -470
  491. package/src/extensions/tools/executors/web-fetch.ts +0 -259
  492. package/src/extensions/tools/helpers.ts +0 -154
  493. package/src/extensions/tools/index.ts +0 -183
  494. package/src/extensions/tools/model-tool-routing.ts +0 -134
  495. package/src/extensions/tools/presets.ts +0 -190
  496. package/src/extensions/tools/runtime.ts +0 -261
  497. package/src/extensions/tools/schemas.ts +0 -343
  498. package/src/extensions/tools/team/delegated-agent.ts +0 -136
  499. package/src/extensions/tools/team/index.ts +0 -5
  500. package/src/extensions/tools/team/multi-agent.ts +0 -1845
  501. package/src/extensions/tools/team/projections.ts +0 -283
  502. package/src/extensions/tools/team/runtime.ts +0 -54
  503. package/src/extensions/tools/team/spawn-agent-tool.ts +0 -201
  504. package/src/extensions/tools/team/subagent-prompts.ts +0 -41
  505. package/src/extensions/tools/team/team-tools.ts +0 -902
  506. package/src/extensions/tools/types.ts +0 -354
  507. package/src/hooks/checkpoint-hooks.ts +0 -238
  508. package/src/hooks/hook-bridge.ts +0 -489
  509. package/src/hooks/hook-file-hooks.ts +0 -934
  510. package/src/hooks/hook-registry.ts +0 -257
  511. package/src/hooks/index.ts +0 -18
  512. package/src/hooks/subprocess-runner.ts +0 -196
  513. package/src/hooks/subprocess.ts +0 -469
  514. package/src/hub/browser-websocket.ts +0 -159
  515. package/src/hub/client.ts +0 -633
  516. package/src/hub/connect.ts +0 -156
  517. package/src/hub/daemon-entry.ts +0 -122
  518. package/src/hub/daemon.ts +0 -284
  519. package/src/hub/defaults.ts +0 -70
  520. package/src/hub/discovery.ts +0 -247
  521. package/src/hub/index.ts +0 -14
  522. package/src/hub/native-transport.ts +0 -31
  523. package/src/hub/runtime-handlers.ts +0 -141
  524. package/src/hub/server.ts +0 -2317
  525. package/src/hub/session-client.ts +0 -502
  526. package/src/hub/start-shared-server.ts +0 -61
  527. package/src/hub/transport.ts +0 -14
  528. package/src/hub/ui-client.ts +0 -126
  529. package/src/hub/workspace.ts +0 -19
  530. package/src/index.ts +0 -688
  531. package/src/llms/cline-recommended-models.ts +0 -167
  532. package/src/llms/configured-provider-registry.ts +0 -193
  533. package/src/llms/handler-factory.ts +0 -56
  534. package/src/llms/provider-defaults.ts +0 -653
  535. package/src/llms/provider-settings.ts +0 -310
  536. package/src/llms/runtime-config.ts +0 -43
  537. package/src/llms/runtime-registry.ts +0 -172
  538. package/src/llms/runtime-types.ts +0 -121
  539. package/src/runtime/agent-config-adapter.ts +0 -636
  540. package/src/runtime/agent-runtime-config-builder.ts +0 -205
  541. package/src/runtime/error-feedback.ts +0 -142
  542. package/src/runtime/history.ts +0 -374
  543. package/src/runtime/host.ts +0 -222
  544. package/src/runtime/index.ts +0 -23
  545. package/src/runtime/loop-detection.ts +0 -162
  546. package/src/runtime/mistake-tracker.ts +0 -221
  547. package/src/runtime/rules.ts +0 -49
  548. package/src/runtime/runtime-builder.ts +0 -814
  549. package/src/runtime/runtime-event-adapter.ts +0 -412
  550. package/src/runtime/runtime-host.ts +0 -250
  551. package/src/runtime/runtime-oauth-token-manager.ts +0 -268
  552. package/src/runtime/session-runtime-orchestrator.ts +0 -1253
  553. package/src/runtime/session-runtime.ts +0 -69
  554. package/src/runtime/subprocess-sandbox.ts +0 -255
  555. package/src/runtime/tool-approval.ts +0 -102
  556. package/src/runtime/user-input-builder.ts +0 -167
  557. package/src/services/agent-events.ts +0 -256
  558. package/src/services/config.ts +0 -5
  559. package/src/services/global-settings.ts +0 -122
  560. package/src/services/local-runtime-bootstrap.ts +0 -424
  561. package/src/services/plugin-tools.ts +0 -86
  562. package/src/services/providers/local-provider-registry.ts +0 -456
  563. package/src/services/providers/local-provider-service.ts +0 -772
  564. package/src/services/session-artifacts.ts +0 -138
  565. package/src/services/session-data.ts +0 -398
  566. package/src/services/session-telemetry.ts +0 -89
  567. package/src/services/storage/artifact-store.ts +0 -1
  568. package/src/services/storage/file-team-store.ts +0 -250
  569. package/src/services/storage/index.ts +0 -11
  570. package/src/services/storage/provider-settings-legacy-migration.ts +0 -789
  571. package/src/services/storage/provider-settings-manager.ts +0 -167
  572. package/src/services/storage/session-store.ts +0 -1
  573. package/src/services/storage/sqlite-session-store.ts +0 -270
  574. package/src/services/storage/sqlite-team-store.ts +0 -537
  575. package/src/services/storage/team-store.ts +0 -36
  576. package/src/services/telemetry/ITelemetryAdapter.ts +0 -94
  577. package/src/services/telemetry/OpenTelemetryAdapter.ts +0 -348
  578. package/src/services/telemetry/OpenTelemetryProvider.ts +0 -415
  579. package/src/services/telemetry/TelemetryLoggerSink.ts +0 -121
  580. package/src/services/telemetry/TelemetryService.ts +0 -139
  581. package/src/services/telemetry/core-events.ts +0 -400
  582. package/src/services/telemetry/distinct-id.ts +0 -58
  583. package/src/services/telemetry/index.ts +0 -20
  584. package/src/services/usage.ts +0 -32
  585. package/src/services/workspace/file-indexer.ts +0 -351
  586. package/src/services/workspace/index.ts +0 -7
  587. package/src/services/workspace/mention-enricher.ts +0 -122
  588. package/src/services/workspace-manifest.ts +0 -72
  589. package/src/session/conversation-store.ts +0 -77
  590. package/src/session/file-session-service.ts +0 -282
  591. package/src/session/index.ts +0 -32
  592. package/src/session/message-builder.ts +0 -941
  593. package/src/session/persistence-service.ts +0 -559
  594. package/src/session/session-graph.ts +0 -92
  595. package/src/session/session-manifest-store.ts +0 -158
  596. package/src/session/session-manifest.ts +0 -29
  597. package/src/session/session-row.ts +0 -199
  598. package/src/session/session-service.ts +0 -324
  599. package/src/session/session-team-coordination.ts +0 -240
  600. package/src/session/subagent-session-manager.ts +0 -397
  601. package/src/session/team-persistence-store.ts +0 -176
  602. package/src/session/workspace-manager.ts +0 -100
  603. package/src/transports/hub.ts +0 -1081
  604. package/src/transports/local.ts +0 -1826
  605. package/src/transports/remote.ts +0 -27
  606. package/src/transports/runtime-host-support.ts +0 -140
  607. package/src/types/chat-schema.ts +0 -81
  608. package/src/types/common.ts +0 -26
  609. package/src/types/config.ts +0 -220
  610. package/src/types/events.ts +0 -80
  611. package/src/types/index.ts +0 -26
  612. package/src/types/provider-settings.ts +0 -54
  613. package/src/types/session.ts +0 -111
  614. package/src/types/sessions.ts +0 -37
  615. package/src/types/storage.ts +0 -56
  616. package/src/types.ts +0 -167
  617. package/src/version.ts +0 -3
@@ -1,708 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { join } from "node:path";
3
- import type {
4
- HubScheduleCreateInput,
5
- HubScheduleUpdateInput,
6
- ScheduleExecutionRecord,
7
- ScheduleExecutionStatus,
8
- ScheduleRecord,
9
- } from "@clinebot/shared";
10
- import {
11
- asOptionalString,
12
- asString,
13
- ensureSessionSchema,
14
- loadSqliteDb,
15
- nowIso,
16
- type SqliteDb,
17
- } from "@clinebot/shared/db";
18
- import { resolveDbDataDir } from "@clinebot/shared/storage";
19
- import { getNextCronTime } from "./scheduler";
20
-
21
- function defaultSessionsDbPath(): string {
22
- return join(resolveDbDataDir(), "sessions.db");
23
- }
24
-
25
- function parseJsonObject(
26
- value: string | undefined,
27
- ): Record<string, unknown> | undefined {
28
- if (!value) {
29
- return undefined;
30
- }
31
- try {
32
- const parsed = JSON.parse(value) as unknown;
33
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
34
- return parsed as Record<string, unknown>;
35
- }
36
- } catch {
37
- // Ignore malformed persisted JSON.
38
- }
39
- return undefined;
40
- }
41
-
42
- function parseJsonArray(value: string | undefined): string[] | undefined {
43
- if (!value) {
44
- return undefined;
45
- }
46
- try {
47
- const parsed = JSON.parse(value) as unknown;
48
- if (!Array.isArray(parsed)) {
49
- return undefined;
50
- }
51
- const tags = parsed
52
- .map((item) => (typeof item === "string" ? item.trim() : ""))
53
- .filter((item) => item.length > 0);
54
- return tags.length > 0 ? tags : undefined;
55
- } catch {
56
- return undefined;
57
- }
58
- }
59
-
60
- function normalizeExecutionStatus(
61
- value: string | undefined,
62
- ): ScheduleExecutionStatus {
63
- if (
64
- value === "pending" ||
65
- value === "running" ||
66
- value === "success" ||
67
- value === "completed" ||
68
- value === "failed" ||
69
- value === "timeout" ||
70
- value === "aborted"
71
- ) {
72
- return value;
73
- }
74
- return "failed";
75
- }
76
-
77
- export interface HubScheduleStoreOptions {
78
- sessionsDbPath?: string;
79
- }
80
-
81
- export interface ScheduleClaimRecord {
82
- schedule: ScheduleRecord;
83
- claimToken: string;
84
- triggeredAt: number;
85
- leaseUntilAt: number;
86
- }
87
-
88
- export interface ListSchedulesOptions {
89
- enabled?: boolean;
90
- limit?: number;
91
- tags?: string[];
92
- }
93
-
94
- export interface ListScheduleExecutionsOptions {
95
- scheduleId?: string;
96
- status?: ScheduleExecutionStatus;
97
- limit?: number;
98
- }
99
-
100
- export interface ScheduleExecutionStats {
101
- totalRuns: number;
102
- successRate: number;
103
- avgDurationSeconds: number;
104
- lastFailure?: ScheduleExecutionRecord;
105
- }
106
-
107
- export class SqliteHubScheduleStore {
108
- private readonly db: SqliteDb;
109
-
110
- constructor(options: HubScheduleStoreOptions = {}) {
111
- const path = options.sessionsDbPath ?? defaultSessionsDbPath();
112
- this.db = loadSqliteDb(path);
113
- ensureSessionSchema(this.db, { includeLegacyMigrations: true });
114
- }
115
-
116
- public close(): void {
117
- this.db.close?.();
118
- }
119
-
120
- public createSchedule(input: HubScheduleCreateInput): ScheduleRecord {
121
- const now = nowIso();
122
- const scheduleId = `sched_${randomUUID()}`;
123
- const cronPattern = input.cronPattern.trim();
124
- const nextRunAt =
125
- input.enabled === false
126
- ? undefined
127
- : getNextCronTime(cronPattern, Date.now());
128
- const record: ScheduleRecord = {
129
- scheduleId,
130
- name: input.name.trim(),
131
- cronPattern,
132
- prompt: input.prompt,
133
- workspaceRoot: input.workspaceRoot.trim(),
134
- cwd: input.cwd?.trim() || undefined,
135
- modelSelection: input.modelSelection
136
- ? JSON.parse(JSON.stringify(input.modelSelection))
137
- : undefined,
138
- enabled: input.enabled !== false,
139
- mode: input.mode ?? "act",
140
- systemPrompt: input.systemPrompt,
141
- maxIterations:
142
- typeof input.maxIterations === "number"
143
- ? Math.floor(input.maxIterations)
144
- : undefined,
145
- timeoutSeconds:
146
- typeof input.timeoutSeconds === "number"
147
- ? Math.floor(input.timeoutSeconds)
148
- : undefined,
149
- maxParallel:
150
- typeof input.maxParallel === "number"
151
- ? Math.max(1, Math.floor(input.maxParallel))
152
- : 1,
153
- createdAt: new Date(now).getTime(),
154
- updatedAt: new Date(now).getTime(),
155
- lastRunAt: undefined,
156
- nextRunAt,
157
- createdBy: input.createdBy?.trim() || undefined,
158
- tags: input.tags?.filter((tag) => tag.trim().length > 0),
159
- runtimeOptions: input.runtimeOptions
160
- ? JSON.parse(JSON.stringify(input.runtimeOptions))
161
- : undefined,
162
- metadata: input.metadata
163
- ? JSON.parse(JSON.stringify(input.metadata))
164
- : undefined,
165
- };
166
- this.db
167
- .prepare(
168
- `INSERT INTO schedules (
169
- schedule_id, name, cron_pattern, prompt,
170
- provider, model, mode, workspace_root, cwd, system_prompt,
171
- max_iterations, timeout_seconds, max_parallel,
172
- enabled, created_at, updated_at, last_run_at, next_run_at,
173
- claim_token, claim_started_at, claim_until_at,
174
- created_by, tags, metadata_json
175
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
176
- )
177
- .run(
178
- record.scheduleId,
179
- record.name,
180
- record.cronPattern,
181
- record.prompt,
182
- record.modelSelection?.providerId ?? "",
183
- record.modelSelection?.modelId ?? "",
184
- record.mode ?? "act",
185
- record.workspaceRoot,
186
- record.cwd ?? null,
187
- record.systemPrompt ?? null,
188
- record.maxIterations ?? null,
189
- record.timeoutSeconds ?? null,
190
- record.maxParallel ?? 1,
191
- record.enabled ? 1 : 0,
192
- now,
193
- now,
194
- null,
195
- record.nextRunAt ? new Date(record.nextRunAt).toISOString() : null,
196
- null,
197
- null,
198
- null,
199
- record.createdBy ?? null,
200
- record.tags ? JSON.stringify(record.tags) : null,
201
- JSON.stringify({
202
- ...(record.metadata ?? {}),
203
- ...(record.runtimeOptions
204
- ? { __hubRuntimeOptions: record.runtimeOptions }
205
- : {}),
206
- }),
207
- );
208
- return record;
209
- }
210
-
211
- public getSchedule(scheduleId: string): ScheduleRecord | undefined {
212
- const row = this.db
213
- .prepare("SELECT * FROM schedules WHERE schedule_id = ?")
214
- .get(scheduleId);
215
- return row ? this.toScheduleRecord(row) : undefined;
216
- }
217
-
218
- public listSchedules(options: ListSchedulesOptions = {}): ScheduleRecord[] {
219
- const whereClauses: string[] = [];
220
- const params: unknown[] = [];
221
- if (typeof options.enabled === "boolean") {
222
- whereClauses.push("enabled = ?");
223
- params.push(options.enabled ? 1 : 0);
224
- }
225
- if (options.tags && options.tags.length > 0) {
226
- for (const tag of options.tags) {
227
- whereClauses.push("tags LIKE ?");
228
- params.push(`%"${tag.trim()}"%`);
229
- }
230
- }
231
- const where =
232
- whereClauses.length > 0 ? `WHERE ${whereClauses.join(" AND ")}` : "";
233
- const limit =
234
- typeof options.limit === "number" && options.limit > 0
235
- ? Math.floor(options.limit)
236
- : 200;
237
- const rows = this.db
238
- .prepare(
239
- `SELECT * FROM schedules ${where} ORDER BY created_at DESC LIMIT ?`,
240
- )
241
- .all(...params, limit);
242
- return rows.map((row) => this.toScheduleRecord(row));
243
- }
244
-
245
- public updateSchedule(
246
- scheduleId: string,
247
- updates: HubScheduleUpdateInput,
248
- ): ScheduleRecord | undefined {
249
- const current = this.getSchedule(scheduleId);
250
- if (!current) {
251
- return undefined;
252
- }
253
- const next: ScheduleRecord = {
254
- ...current,
255
- name: updates.name?.trim() ?? current.name,
256
- cronPattern: updates.cronPattern?.trim() ?? current.cronPattern,
257
- prompt: updates.prompt ?? current.prompt,
258
- workspaceRoot:
259
- updates.workspaceRoot !== undefined
260
- ? updates.workspaceRoot.trim()
261
- : current.workspaceRoot,
262
- cwd:
263
- updates.cwd !== undefined
264
- ? updates.cwd.trim() || undefined
265
- : current.cwd,
266
- modelSelection:
267
- updates.modelSelection !== undefined
268
- ? JSON.parse(JSON.stringify(updates.modelSelection))
269
- : current.modelSelection,
270
- enabled: updates.enabled ?? current.enabled,
271
- mode: updates.mode ?? current.mode,
272
- systemPrompt:
273
- updates.systemPrompt === null
274
- ? undefined
275
- : updates.systemPrompt !== undefined
276
- ? updates.systemPrompt
277
- : current.systemPrompt,
278
- maxIterations:
279
- updates.maxIterations === null
280
- ? undefined
281
- : updates.maxIterations !== undefined
282
- ? Math.floor(updates.maxIterations)
283
- : current.maxIterations,
284
- timeoutSeconds:
285
- updates.timeoutSeconds === null
286
- ? undefined
287
- : updates.timeoutSeconds !== undefined
288
- ? Math.floor(updates.timeoutSeconds)
289
- : current.timeoutSeconds,
290
- maxParallel:
291
- updates.maxParallel !== undefined
292
- ? Math.max(1, Math.floor(updates.maxParallel))
293
- : current.maxParallel,
294
- updatedAt: Date.now(),
295
- createdBy:
296
- updates.createdBy === null
297
- ? undefined
298
- : updates.createdBy !== undefined
299
- ? updates.createdBy.trim() || undefined
300
- : current.createdBy,
301
- tags: updates.tags ?? current.tags,
302
- runtimeOptions:
303
- updates.runtimeOptions !== undefined
304
- ? JSON.parse(JSON.stringify(updates.runtimeOptions))
305
- : current.runtimeOptions,
306
- metadata:
307
- updates.metadata !== undefined
308
- ? JSON.parse(JSON.stringify(updates.metadata))
309
- : current.metadata,
310
- };
311
-
312
- const cronChanged = next.cronPattern !== current.cronPattern;
313
- const enabledChanged = next.enabled !== current.enabled;
314
- if (cronChanged || enabledChanged) {
315
- next.nextRunAt = next.enabled
316
- ? getNextCronTime(next.cronPattern, Date.now())
317
- : undefined;
318
- }
319
-
320
- const updatedAtIso = new Date(next.updatedAt).toISOString();
321
- this.db
322
- .prepare(
323
- `UPDATE schedules SET
324
- name = ?, cron_pattern = ?, prompt = ?,
325
- provider = ?, model = ?, mode = ?, workspace_root = ?, cwd = ?, system_prompt = ?,
326
- max_iterations = ?, timeout_seconds = ?, max_parallel = ?,
327
- enabled = ?, updated_at = ?, last_run_at = ?, next_run_at = ?,
328
- created_by = ?, tags = ?, metadata_json = ?
329
- WHERE schedule_id = ?`,
330
- )
331
- .run(
332
- next.name,
333
- next.cronPattern,
334
- next.prompt,
335
- next.modelSelection?.providerId ?? "",
336
- next.modelSelection?.modelId ?? "",
337
- next.mode ?? "act",
338
- next.workspaceRoot,
339
- next.cwd ?? null,
340
- next.systemPrompt ?? null,
341
- next.maxIterations ?? null,
342
- next.timeoutSeconds ?? null,
343
- next.maxParallel ?? 1,
344
- next.enabled ? 1 : 0,
345
- updatedAtIso,
346
- next.lastRunAt ? new Date(next.lastRunAt).toISOString() : null,
347
- next.nextRunAt ? new Date(next.nextRunAt).toISOString() : null,
348
- next.createdBy ?? null,
349
- next.tags ? JSON.stringify(next.tags) : null,
350
- JSON.stringify({
351
- ...(next.metadata ?? {}),
352
- ...(next.runtimeOptions
353
- ? { __hubRuntimeOptions: next.runtimeOptions }
354
- : {}),
355
- }),
356
- next.scheduleId,
357
- );
358
- return next;
359
- }
360
-
361
- public claimDueSchedules(
362
- referenceTimeIso: string,
363
- leaseDurationMs: number,
364
- limit = 50,
365
- ): ScheduleClaimRecord[] {
366
- const claimed: ScheduleClaimRecord[] = [];
367
- const boundedLimit = Math.max(1, Math.floor(limit));
368
- const boundedLeaseMs = Math.max(1_000, Math.floor(leaseDurationMs));
369
- const leaseUntilIso = new Date(
370
- new Date(referenceTimeIso).getTime() + boundedLeaseMs,
371
- ).toISOString();
372
- const dueRowsSql = `SELECT * FROM schedules
373
- WHERE enabled = 1
374
- AND next_run_at IS NOT NULL
375
- AND next_run_at <= ?
376
- AND (claim_until_at IS NULL OR claim_until_at <= ?)
377
- ORDER BY next_run_at ASC
378
- LIMIT ?`;
379
- const claimSql = `UPDATE schedules SET
380
- claim_token = ?, claim_started_at = ?, claim_until_at = ?, updated_at = ?
381
- WHERE schedule_id = ?
382
- AND enabled = 1
383
- AND next_run_at = ?
384
- AND (claim_until_at IS NULL OR claim_until_at <= ?)`;
385
- const claimStatement = this.db.prepare(claimSql);
386
- this.db.exec("BEGIN IMMEDIATE;");
387
- try {
388
- const rows = this.db
389
- .prepare(dueRowsSql)
390
- .all(referenceTimeIso, referenceTimeIso, boundedLimit);
391
- for (const row of rows) {
392
- const scheduleId = asString(row.schedule_id);
393
- const triggeredAtIso = asString(row.next_run_at);
394
- if (!scheduleId || !triggeredAtIso) {
395
- continue;
396
- }
397
- const claimToken = `claim_${randomUUID()}`;
398
- const changes =
399
- claimStatement.run(
400
- claimToken,
401
- referenceTimeIso,
402
- leaseUntilIso,
403
- referenceTimeIso,
404
- scheduleId,
405
- triggeredAtIso,
406
- referenceTimeIso,
407
- ).changes ?? 0;
408
- if (changes !== 1) {
409
- continue;
410
- }
411
- claimed.push({
412
- schedule: this.toScheduleRecord(row),
413
- claimToken,
414
- triggeredAt: new Date(triggeredAtIso).getTime(),
415
- leaseUntilAt: new Date(leaseUntilIso).getTime(),
416
- });
417
- }
418
- this.db.exec("COMMIT;");
419
- return claimed;
420
- } catch (error) {
421
- this.db.exec("ROLLBACK;");
422
- throw error;
423
- }
424
- }
425
-
426
- public renewScheduleClaim(
427
- scheduleId: string,
428
- claimToken: string,
429
- leaseUntilAt: string,
430
- ): boolean {
431
- const changes =
432
- this.db
433
- .prepare(
434
- `UPDATE schedules
435
- SET claim_until_at = ?, updated_at = ?
436
- WHERE schedule_id = ? AND claim_token = ?`,
437
- )
438
- .run(leaseUntilAt, nowIso(), scheduleId, claimToken).changes ?? 0;
439
- return changes === 1;
440
- }
441
-
442
- public completeScheduleClaim(
443
- scheduleId: string,
444
- claimToken: string,
445
- triggeredAtIso: string,
446
- ): boolean {
447
- const row = this.db
448
- .prepare(
449
- `SELECT cron_pattern, enabled
450
- FROM schedules
451
- WHERE schedule_id = ? AND claim_token = ?`,
452
- )
453
- .get(scheduleId, claimToken);
454
- if (!row) {
455
- return false;
456
- }
457
- const nextRunAt =
458
- Number(row.enabled ?? 0) === 1
459
- ? new Date(
460
- getNextCronTime(
461
- asString(row.cron_pattern),
462
- new Date(triggeredAtIso).getTime(),
463
- ),
464
- ).toISOString()
465
- : undefined;
466
- const changes =
467
- this.db
468
- .prepare(
469
- `UPDATE schedules SET
470
- last_run_at = ?, next_run_at = ?, claim_token = NULL, claim_started_at = NULL, claim_until_at = NULL, updated_at = ?
471
- WHERE schedule_id = ? AND claim_token = ?`,
472
- )
473
- .run(
474
- triggeredAtIso,
475
- nextRunAt ?? null,
476
- nowIso(),
477
- scheduleId,
478
- claimToken,
479
- ).changes ?? 0;
480
- return changes === 1;
481
- }
482
-
483
- public releaseScheduleClaim(scheduleId: string, claimToken: string): boolean {
484
- const changes =
485
- this.db
486
- .prepare(
487
- `UPDATE schedules
488
- SET claim_token = NULL, claim_started_at = NULL, claim_until_at = NULL, updated_at = ?
489
- WHERE schedule_id = ? AND claim_token = ?`,
490
- )
491
- .run(nowIso(), scheduleId, claimToken).changes ?? 0;
492
- return changes === 1;
493
- }
494
-
495
- public deleteSchedule(scheduleId: string): boolean {
496
- const changes =
497
- this.db
498
- .prepare("DELETE FROM schedules WHERE schedule_id = ?")
499
- .run(scheduleId).changes ?? 0;
500
- return changes > 0;
501
- }
502
-
503
- public recordExecution(execution: ScheduleExecutionRecord): void {
504
- const persistedSessionId =
505
- execution.sessionId && this.sessionExists(execution.sessionId)
506
- ? execution.sessionId
507
- : null;
508
- this.db
509
- .prepare(
510
- `INSERT OR REPLACE INTO schedule_executions (
511
- execution_id, schedule_id, session_id,
512
- triggered_at, started_at, ended_at, status,
513
- exit_code, error_message, iterations, tokens_used, cost_usd
514
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
515
- )
516
- .run(
517
- execution.executionId,
518
- execution.scheduleId,
519
- persistedSessionId,
520
- new Date(execution.triggeredAt).toISOString(),
521
- execution.startedAt
522
- ? new Date(execution.startedAt).toISOString()
523
- : null,
524
- execution.endedAt ? new Date(execution.endedAt).toISOString() : null,
525
- execution.status,
526
- execution.exitCode ?? null,
527
- execution.errorMessage ?? null,
528
- execution.iterations ?? null,
529
- execution.tokensUsed ?? null,
530
- execution.costUsd ?? null,
531
- );
532
- }
533
-
534
- private sessionExists(sessionId: string): boolean {
535
- const row = this.db
536
- .prepare("SELECT session_id FROM sessions WHERE session_id = ?")
537
- .get(sessionId);
538
- return !!row;
539
- }
540
-
541
- public listExecutions(
542
- options: ListScheduleExecutionsOptions,
543
- ): ScheduleExecutionRecord[] {
544
- const where: string[] = [];
545
- const params: unknown[] = [];
546
- if (options.scheduleId) {
547
- where.push("schedule_id = ?");
548
- params.push(options.scheduleId);
549
- }
550
- if (options.status) {
551
- where.push("status = ?");
552
- params.push(options.status);
553
- }
554
- const whereClause = where.length > 0 ? `WHERE ${where.join(" AND ")}` : "";
555
- const limit =
556
- typeof options.limit === "number" && options.limit > 0
557
- ? Math.floor(options.limit)
558
- : 50;
559
- const rows = this.db
560
- .prepare(
561
- `SELECT * FROM schedule_executions ${whereClause}
562
- ORDER BY triggered_at DESC LIMIT ?`,
563
- )
564
- .all(...params, limit);
565
- return rows.map((row) => this.toScheduleExecutionRecord(row));
566
- }
567
-
568
- public getExecutionStats(scheduleId: string): ScheduleExecutionStats {
569
- const all = this.listExecutions({ scheduleId, limit: 10_000 });
570
- if (all.length === 0) {
571
- return { totalRuns: 0, successRate: 0, avgDurationSeconds: 0 };
572
- }
573
- let success = 0;
574
- let withDuration = 0;
575
- let durationMsTotal = 0;
576
- let lastFailure: ScheduleExecutionRecord | undefined;
577
- for (const execution of all) {
578
- if (execution.status === "success" || execution.status === "completed") {
579
- success += 1;
580
- }
581
- if (
582
- !lastFailure &&
583
- execution.status !== "success" &&
584
- execution.status !== "completed"
585
- ) {
586
- lastFailure = execution;
587
- }
588
- if (execution.startedAt && execution.endedAt) {
589
- const durationMs = execution.endedAt - execution.startedAt;
590
- if (Number.isFinite(durationMs) && durationMs >= 0) {
591
- durationMsTotal += durationMs;
592
- withDuration += 1;
593
- }
594
- }
595
- }
596
- return {
597
- totalRuns: all.length,
598
- successRate: success / all.length,
599
- avgDurationSeconds:
600
- withDuration > 0 ? durationMsTotal / withDuration / 1000 : 0,
601
- lastFailure,
602
- };
603
- }
604
-
605
- public listUpcomingRuns(limit = 20): Array<{
606
- scheduleId: string;
607
- name: string;
608
- nextRunAt: string;
609
- }> {
610
- const rows = this.db
611
- .prepare(
612
- `SELECT schedule_id, name, next_run_at FROM schedules
613
- WHERE enabled = 1 AND next_run_at IS NOT NULL
614
- ORDER BY next_run_at ASC LIMIT ?`,
615
- )
616
- .all(Math.max(1, Math.floor(limit)));
617
- return rows
618
- .map((row) => ({
619
- scheduleId: asString(row.schedule_id),
620
- name: asString(row.name),
621
- nextRunAt: asString(row.next_run_at),
622
- }))
623
- .filter((item) => item.scheduleId && item.nextRunAt);
624
- }
625
-
626
- private toScheduleRecord(row: Record<string, unknown>): ScheduleRecord {
627
- const metadata = parseJsonObject(asOptionalString(row.metadata_json));
628
- const runtimeOptions =
629
- metadata?.__hubRuntimeOptions &&
630
- typeof metadata.__hubRuntimeOptions === "object" &&
631
- !Array.isArray(metadata.__hubRuntimeOptions)
632
- ? (metadata.__hubRuntimeOptions as ScheduleRecord["runtimeOptions"])
633
- : undefined;
634
- if (metadata && "__hubRuntimeOptions" in metadata) {
635
- delete metadata.__hubRuntimeOptions;
636
- }
637
- return {
638
- scheduleId: asString(row.schedule_id),
639
- name: asString(row.name),
640
- cronPattern: asString(row.cron_pattern),
641
- prompt: asString(row.prompt),
642
- workspaceRoot: asString(row.workspace_root),
643
- cwd: asOptionalString(row.cwd),
644
- modelSelection:
645
- asOptionalString(row.provider) || asOptionalString(row.model)
646
- ? {
647
- providerId: asOptionalString(row.provider) ?? "",
648
- modelId: asOptionalString(row.model) ?? "",
649
- }
650
- : undefined,
651
- enabled: Number(row.enabled ?? 0) === 1,
652
- mode:
653
- asOptionalString(row.mode) === "plan"
654
- ? "plan"
655
- : asOptionalString(row.mode) === "yolo"
656
- ? "yolo"
657
- : "act",
658
- systemPrompt: asOptionalString(row.system_prompt),
659
- maxIterations:
660
- typeof row.max_iterations === "number" ? row.max_iterations : undefined,
661
- timeoutSeconds:
662
- typeof row.timeout_seconds === "number"
663
- ? row.timeout_seconds
664
- : undefined,
665
- maxParallel:
666
- typeof row.max_parallel === "number" && row.max_parallel > 0
667
- ? row.max_parallel
668
- : 1,
669
- createdAt: new Date(asString(row.created_at)).getTime(),
670
- updatedAt: new Date(asString(row.updated_at)).getTime(),
671
- lastRunAt: asOptionalString(row.last_run_at)
672
- ? new Date(asString(row.last_run_at)).getTime()
673
- : undefined,
674
- nextRunAt: asOptionalString(row.next_run_at)
675
- ? new Date(asString(row.next_run_at)).getTime()
676
- : undefined,
677
- createdBy: asOptionalString(row.created_by),
678
- tags: parseJsonArray(asOptionalString(row.tags)),
679
- runtimeOptions,
680
- metadata: metadata as ScheduleRecord["metadata"],
681
- };
682
- }
683
-
684
- private toScheduleExecutionRecord(
685
- row: Record<string, unknown>,
686
- ): ScheduleExecutionRecord {
687
- return {
688
- executionId: asString(row.execution_id),
689
- scheduleId: asString(row.schedule_id),
690
- sessionId: asOptionalString(row.session_id),
691
- triggeredAt: new Date(asString(row.triggered_at)).getTime(),
692
- startedAt: asOptionalString(row.started_at)
693
- ? new Date(asString(row.started_at)).getTime()
694
- : undefined,
695
- endedAt: asOptionalString(row.ended_at)
696
- ? new Date(asString(row.ended_at)).getTime()
697
- : undefined,
698
- status: normalizeExecutionStatus(asOptionalString(row.status)),
699
- exitCode: typeof row.exit_code === "number" ? row.exit_code : undefined,
700
- errorMessage: asOptionalString(row.error_message),
701
- iterations:
702
- typeof row.iterations === "number" ? row.iterations : undefined,
703
- tokensUsed:
704
- typeof row.tokens_used === "number" ? row.tokens_used : undefined,
705
- costUsd: typeof row.cost_usd === "number" ? row.cost_usd : undefined,
706
- };
707
- }
708
- }