@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,357 +0,0 @@
1
- import type { AutomationEventEnvelope, BasicLogger } from "@clinebot/shared";
2
- import type {
3
- CronEventLogRecord,
4
- CronRunRecord,
5
- CronSpecRecord,
6
- SqliteCronStore,
7
- } from "./sqlite-cron-store";
8
-
9
- /**
10
- * Durable ingress for normalized automation events.
11
- *
12
- * This layer persists the incoming event before matching, then materializes
13
- * queued `cron_runs` for matching event specs. It deliberately does not
14
- * execute agents; the normal runner claim loop owns execution.
15
- */
16
-
17
- export interface CronEventIngressOptions {
18
- store: SqliteCronStore;
19
- now?: () => number;
20
- logger?: BasicLogger;
21
- }
22
-
23
- export type CronEventSuppressionReason =
24
- | "duplicate_event"
25
- | "filter_mismatch"
26
- | "dedupe_window"
27
- | "cooldown";
28
-
29
- export interface CronEventSuppression {
30
- specId?: string;
31
- externalId?: string;
32
- reason: CronEventSuppressionReason;
33
- dedupeKey?: string;
34
- }
35
-
36
- export interface CronEventIngressResult {
37
- event: CronEventLogRecord;
38
- duplicate: boolean;
39
- matchedSpecs: CronSpecRecord[];
40
- queuedRuns: CronRunRecord[];
41
- suppressions: CronEventSuppression[];
42
- }
43
-
44
- function isRecord(value: unknown): value is Record<string, unknown> {
45
- return !!value && typeof value === "object" && !Array.isArray(value);
46
- }
47
-
48
- function trimOrUndefined(value: string | undefined): string | undefined {
49
- const trimmed = value?.trim();
50
- return trimmed ? trimmed : undefined;
51
- }
52
-
53
- function normalizeIso(value: string | undefined, fallback: string): string {
54
- const candidate = value?.trim();
55
- if (!candidate) return fallback;
56
- const ms = Date.parse(candidate);
57
- if (!Number.isFinite(ms)) return fallback;
58
- return new Date(ms).toISOString();
59
- }
60
-
61
- function addSeconds(iso: string, seconds: number): string {
62
- return new Date(
63
- new Date(iso).getTime() + Math.max(0, Math.floor(seconds)) * 1000,
64
- ).toISOString();
65
- }
66
-
67
- function subtractSeconds(iso: string, seconds: number): string {
68
- return new Date(
69
- new Date(iso).getTime() - Math.max(0, Math.floor(seconds)) * 1000,
70
- ).toISOString();
71
- }
72
-
73
- function maxIso(a: string | undefined, b: string): string {
74
- if (!a) return b;
75
- return new Date(a).getTime() >= new Date(b).getTime() ? a : b;
76
- }
77
-
78
- function normalizeEvent(
79
- event: AutomationEventEnvelope,
80
- receivedAt: string,
81
- ): AutomationEventEnvelope {
82
- const eventId = event.eventId.trim();
83
- const eventType = event.eventType.trim();
84
- const source = event.source.trim();
85
- const subject = trimOrUndefined(event.subject);
86
- const dedupeKey =
87
- trimOrUndefined(event.dedupeKey) ??
88
- `${eventType}:${source}:${subject ?? eventId}`;
89
- return {
90
- eventId,
91
- eventType,
92
- source,
93
- subject,
94
- occurredAt: normalizeIso(event.occurredAt, receivedAt),
95
- workspaceRoot: trimOrUndefined(event.workspaceRoot),
96
- payload: isRecord(event.payload) ? event.payload : undefined,
97
- attributes: isRecord(event.attributes) ? event.attributes : undefined,
98
- dedupeKey,
99
- };
100
- }
101
-
102
- function getPath(value: unknown, path: string): unknown {
103
- if (!path) return undefined;
104
- const parts = path.split(".");
105
- let current: unknown = value;
106
- for (const part of parts) {
107
- if (!isRecord(current)) return undefined;
108
- current = current[part];
109
- }
110
- return current;
111
- }
112
-
113
- function resolveFilterValue(
114
- event: AutomationEventEnvelope,
115
- filterKey: string,
116
- ): unknown {
117
- if (event.attributes && Object.hasOwn(event.attributes, filterKey)) {
118
- return event.attributes[filterKey];
119
- }
120
- if (event.payload && Object.hasOwn(event.payload, filterKey)) {
121
- return event.payload[filterKey];
122
- }
123
- const candidate = {
124
- eventId: event.eventId,
125
- eventType: event.eventType,
126
- source: event.source,
127
- subject: event.subject,
128
- occurredAt: event.occurredAt,
129
- workspaceRoot: event.workspaceRoot,
130
- dedupeKey: event.dedupeKey,
131
- attributes: event.attributes,
132
- payload: event.payload,
133
- };
134
- const direct = getPath(candidate, filterKey);
135
- if (direct !== undefined) return direct;
136
- if (event.attributes) {
137
- const fromAttributes = getPath(event.attributes, filterKey);
138
- if (fromAttributes !== undefined) return fromAttributes;
139
- }
140
- if (event.payload) {
141
- return getPath(event.payload, filterKey);
142
- }
143
- return undefined;
144
- }
145
-
146
- function matchesExpected(actual: unknown, expected: unknown): boolean {
147
- if (Array.isArray(expected)) {
148
- return expected.some((item) => matchesExpected(actual, item));
149
- }
150
- if (Array.isArray(actual)) {
151
- return actual.some((item) => matchesExpected(item, expected));
152
- }
153
- if (isRecord(expected)) {
154
- if (!isRecord(actual)) return false;
155
- return Object.entries(expected).every(([key, value]) =>
156
- matchesExpected(actual[key], value),
157
- );
158
- }
159
- return Object.is(actual, expected);
160
- }
161
-
162
- export function automationEventMatchesFilters(
163
- event: AutomationEventEnvelope,
164
- filters: Record<string, unknown> | undefined,
165
- ): boolean {
166
- if (!filters || Object.keys(filters).length === 0) return true;
167
- return Object.entries(filters).every(([key, expected]) =>
168
- matchesExpected(resolveFilterValue(event, key), expected),
169
- );
170
- }
171
-
172
- export class CronEventIngress {
173
- private readonly store: SqliteCronStore;
174
- private readonly nowFn: () => number;
175
- private readonly logger?: BasicLogger;
176
-
177
- constructor(options: CronEventIngressOptions) {
178
- this.store = options.store;
179
- this.nowFn = options.now ?? (() => Date.now());
180
- this.logger = options.logger;
181
- }
182
-
183
- public ingestEvent(event: AutomationEventEnvelope): CronEventIngressResult {
184
- const receivedAt = new Date(this.nowFn()).toISOString();
185
- const normalized = normalizeEvent(event, receivedAt);
186
- const inserted = this.store.insertEventLog(normalized, {
187
- receivedAtIso: receivedAt,
188
- });
189
- if (!inserted.created) {
190
- this.logger?.debug("cron.event.duplicate", {
191
- eventId: inserted.record.eventId,
192
- eventType: inserted.record.eventType,
193
- source: inserted.record.source,
194
- });
195
- return {
196
- event: inserted.record,
197
- duplicate: true,
198
- matchedSpecs: [],
199
- queuedRuns: [],
200
- suppressions: [
201
- {
202
- reason: "duplicate_event",
203
- dedupeKey: inserted.record.dedupeKey,
204
- },
205
- ],
206
- };
207
- }
208
-
209
- try {
210
- const allCandidateSpecs = this.store.listEventSpecsForType(
211
- normalized.eventType,
212
- );
213
- const suppressions: CronEventSuppression[] = [];
214
- const matchedSpecs: CronSpecRecord[] = [];
215
- const queuedRuns: CronRunRecord[] = [];
216
-
217
- for (const spec of allCandidateSpecs) {
218
- if (!automationEventMatchesFilters(normalized, spec.filters)) {
219
- suppressions.push({
220
- specId: spec.specId,
221
- externalId: spec.externalId,
222
- reason: "filter_mismatch",
223
- dedupeKey: normalized.dedupeKey,
224
- });
225
- continue;
226
- }
227
- matchedSpecs.push(spec);
228
- const run = this.materializeForSpec(
229
- spec,
230
- normalized,
231
- inserted.record.receivedAt,
232
- );
233
- if (run.run) {
234
- queuedRuns.push(run.run);
235
- } else {
236
- suppressions.push({
237
- specId: spec.specId,
238
- externalId: spec.externalId,
239
- reason: run.reason,
240
- dedupeKey: normalized.dedupeKey,
241
- });
242
- }
243
- }
244
-
245
- const status =
246
- matchedSpecs.length === 0
247
- ? "unmatched"
248
- : queuedRuns.length > 0
249
- ? "queued"
250
- : "suppressed";
251
- this.store.updateEventLogProcessing(inserted.record.eventId, {
252
- status,
253
- matchedSpecCount: matchedSpecs.length,
254
- queuedRunCount: queuedRuns.length,
255
- suppressedCount: suppressions.filter(
256
- (s) => s.reason !== "filter_mismatch",
257
- ).length,
258
- });
259
- const updated = this.store.getEventLog(inserted.record.eventId);
260
- this.logger?.debug("cron.event.processed", {
261
- eventId: inserted.record.eventId,
262
- eventType: inserted.record.eventType,
263
- status,
264
- matchedSpecCount: matchedSpecs.length,
265
- queuedRunCount: queuedRuns.length,
266
- });
267
- return {
268
- event: updated ?? inserted.record,
269
- duplicate: false,
270
- matchedSpecs,
271
- queuedRuns,
272
- suppressions,
273
- };
274
- } catch (err) {
275
- this.store.updateEventLogProcessing(inserted.record.eventId, {
276
- status: "failed",
277
- error: err instanceof Error ? err.message : String(err),
278
- });
279
- if (this.logger?.error) {
280
- this.logger.error("cron.event.failed", {
281
- eventId: inserted.record.eventId,
282
- eventType: inserted.record.eventType,
283
- error: err,
284
- });
285
- }
286
- throw err;
287
- }
288
- }
289
-
290
- private materializeForSpec(
291
- spec: CronSpecRecord,
292
- event: AutomationEventEnvelope,
293
- receivedAt: string,
294
- ): {
295
- run?: CronRunRecord;
296
- reason: Exclude<
297
- CronEventSuppressionReason,
298
- "duplicate_event" | "filter_mismatch"
299
- >;
300
- } {
301
- const dedupeKey = event.dedupeKey ?? event.eventId;
302
- const debounceSeconds = spec.debounceSeconds ?? 0;
303
- if (debounceSeconds > 0) {
304
- const existing = this.store.findQueuedEventRunForDedupe({
305
- specId: spec.specId,
306
- dedupeKey,
307
- });
308
- if (existing) {
309
- const scheduledFor = maxIso(
310
- existing.scheduledFor,
311
- addSeconds(receivedAt, debounceSeconds),
312
- );
313
- const updated = this.store.updateQueuedEventRunForDebounce({
314
- runId: existing.runId,
315
- triggerEventId: event.eventId,
316
- scheduledFor,
317
- });
318
- if (updated) return { run: updated, reason: "dedupe_window" };
319
- }
320
- }
321
-
322
- const dedupeWindowSeconds = spec.dedupeWindowSeconds ?? 0;
323
- if (
324
- dedupeWindowSeconds > 0 &&
325
- this.store.hasRecentEventRunForDedupe({
326
- specId: spec.specId,
327
- dedupeKey,
328
- sinceIso: subtractSeconds(receivedAt, dedupeWindowSeconds),
329
- })
330
- ) {
331
- return { reason: "dedupe_window" };
332
- }
333
-
334
- const cooldownSeconds = spec.cooldownSeconds ?? 0;
335
- if (
336
- cooldownSeconds > 0 &&
337
- this.store.hasRecentEventRunForSpec({
338
- specId: spec.specId,
339
- sinceIso: subtractSeconds(receivedAt, cooldownSeconds),
340
- })
341
- ) {
342
- return { reason: "cooldown" };
343
- }
344
-
345
- const run = this.store.enqueueRun({
346
- specId: spec.specId,
347
- specRevision: spec.revision,
348
- triggerKind: "event",
349
- triggerEventId: event.eventId,
350
- scheduledFor:
351
- debounceSeconds > 0
352
- ? addSeconds(receivedAt, debounceSeconds)
353
- : receivedAt,
354
- });
355
- return { run, reason: "dedupe_window" };
356
- }
357
- }
@@ -1,97 +0,0 @@
1
- import type { CronSpecRecord, SqliteCronStore } from "./sqlite-cron-store";
2
-
3
- /**
4
- * Queue materialization rules shared between the reconciler, watcher, and
5
- * periodic runner tick. Execution stays trigger-agnostic once a row is
6
- * queued; this module is the only place that decides when to create a row.
7
- */
8
-
9
- export interface CronMaterializerOptions {
10
- store: SqliteCronStore;
11
- now?: () => number;
12
- }
13
-
14
- export interface MaterializeSummary {
15
- oneOffQueued: number;
16
- scheduleQueued: number;
17
- }
18
-
19
- export class CronMaterializer {
20
- private readonly store: SqliteCronStore;
21
- private readonly nowFn: () => number;
22
-
23
- constructor(options: CronMaterializerOptions) {
24
- this.store = options.store;
25
- this.nowFn = options.now ?? (() => Date.now());
26
- }
27
-
28
- /**
29
- * Run materialization for every valid/enabled spec. Typically called at
30
- * startup (after reconciliation) and on each runner tick.
31
- */
32
- public materializeAll(): MaterializeSummary {
33
- const summary: MaterializeSummary = {
34
- oneOffQueued: 0,
35
- scheduleQueued: 0,
36
- };
37
-
38
- const oneOffs = this.store.listSpecs({
39
- triggerKind: "one_off",
40
- enabled: true,
41
- parseStatus: "valid",
42
- });
43
- for (const spec of oneOffs) {
44
- if (this.materializeOneOff(spec)) summary.oneOffQueued += 1;
45
- }
46
-
47
- const schedules = this.store.listSpecs({
48
- triggerKind: "schedule",
49
- enabled: true,
50
- parseStatus: "valid",
51
- });
52
- for (const spec of schedules) {
53
- try {
54
- if (this.materializeSchedule(spec)) summary.scheduleQueued += 1;
55
- } catch {
56
- // Keep one stale/invalid persisted schedule from blocking other specs.
57
- }
58
- }
59
-
60
- return summary;
61
- }
62
-
63
- /**
64
- * Ensure a single one-off spec has exactly one run record for its current
65
- * revision unless an explicit rerun path creates a different trigger kind.
66
- * Returns true if a new queued run was created.
67
- */
68
- public materializeOneOff(spec: CronSpecRecord): boolean {
69
- if (spec.triggerKind !== "one_off") return false;
70
- if (!spec.enabled || spec.removed) return false;
71
- if (this.store.hasOneOffRunForRevision(spec.specId, spec.revision)) {
72
- return false;
73
- }
74
- this.store.enqueueRun({
75
- specId: spec.specId,
76
- specRevision: spec.revision,
77
- triggerKind: "one_off",
78
- scheduledFor: new Date(this.nowFn()).toISOString(),
79
- });
80
- return true;
81
- }
82
-
83
- /**
84
- * Materialize schedule runs. Implements the "one overdue catch-up on
85
- * startup, then advance" policy described in PLAN.md.
86
- */
87
- public materializeSchedule(spec: CronSpecRecord): boolean {
88
- if (spec.triggerKind !== "schedule") return false;
89
- if (!spec.enabled || spec.removed) return false;
90
- if (!spec.scheduleExpr) return false;
91
-
92
- return this.store.materializeDueScheduleRun({
93
- specId: spec.specId,
94
- nowMs: this.nowFn(),
95
- }).queued;
96
- }
97
- }
@@ -1,241 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
- import { relative } from "node:path";
3
- import type { CronSpecParseResult } from "@clinebot/shared";
4
- import {
5
- type ResolveCronSpecsDirOptions,
6
- resolveCronSpecsDir,
7
- } from "@clinebot/shared/storage";
8
- import { type ParseCronSpecInput, parseCronSpecFile } from "./cron-spec-parser";
9
- import { getNextCronTime } from "./scheduler";
10
- import type {
11
- CronSpecRecord,
12
- SqliteCronStore,
13
- UpsertSpecResult,
14
- } from "./sqlite-cron-store";
15
-
16
- /**
17
- * Scan the configured cron specs directory on disk, parse every file, and
18
- * upsert spec state into the cron DB. This is the startup source of truth:
19
- * watcher events are triggers to re-run reconciliation for one file, not a
20
- * replacement.
21
- */
22
-
23
- export interface CronReconcilerOptions {
24
- store: SqliteCronStore;
25
- /**
26
- * Cron spec source location. Defaults to global `~/.cline/cron`.
27
- * Pass `{ scope: "workspace", workspaceRoot }` later to enable
28
- * workspace-level cron sources without changing reconciler internals.
29
- */
30
- specs?: ResolveCronSpecsDirOptions;
31
- /** @deprecated Use `specs: { scope: "workspace", workspaceRoot }`. */
32
- workspaceRoot?: string;
33
- }
34
-
35
- export interface ReconcileChange {
36
- relativePath: string;
37
- result: UpsertSpecResult;
38
- parse: CronSpecParseResult;
39
- }
40
-
41
- export interface ReconcileSummary {
42
- scanned: number;
43
- upserted: number;
44
- invalidParses: number;
45
- removed: number;
46
- changes: ReconcileChange[];
47
- }
48
-
49
- function toPosixRelative(fromDir: string, absolutePath: string): string {
50
- return relative(fromDir, absolutePath).replace(/\\/g, "/");
51
- }
52
-
53
- function walk(dir: string): string[] {
54
- if (!existsSync(dir)) return [];
55
- const result: string[] = [];
56
- const stack: string[] = [dir];
57
- while (stack.length > 0) {
58
- const current = stack.pop();
59
- if (!current) continue;
60
- let entries: import("node:fs").Dirent[];
61
- try {
62
- entries = readdirSync(current, { withFileTypes: true });
63
- } catch {
64
- continue;
65
- }
66
- for (const entry of entries) {
67
- const full = `${current}/${entry.name}`;
68
- if (entry.isDirectory()) {
69
- // Skip the generated reports subdirectory — not spec sources.
70
- if (entry.name === "reports") continue;
71
- stack.push(full);
72
- continue;
73
- }
74
- if (!entry.isFile()) continue;
75
- if (!entry.name.endsWith(".md")) continue;
76
- result.push(full);
77
- }
78
- }
79
- return result;
80
- }
81
-
82
- export class CronReconciler {
83
- private readonly store: SqliteCronStore;
84
- private readonly cronDir: string;
85
-
86
- constructor(options: CronReconcilerOptions) {
87
- this.store = options.store;
88
- this.cronDir = resolveCronSpecsDir(
89
- options.specs ??
90
- (options.workspaceRoot
91
- ? { scope: "workspace", workspaceRoot: options.workspaceRoot }
92
- : undefined),
93
- );
94
- }
95
-
96
- public getCronDir(): string {
97
- return this.cronDir;
98
- }
99
-
100
- /**
101
- * Reconcile every file under the cron specs directory into the DB and mark specs
102
- * whose source files no longer exist as `removed=1`.
103
- */
104
- public async reconcileAll(): Promise<ReconcileSummary> {
105
- const summary: ReconcileSummary = {
106
- scanned: 0,
107
- upserted: 0,
108
- invalidParses: 0,
109
- removed: 0,
110
- changes: [],
111
- };
112
-
113
- const files = walk(this.cronDir);
114
- const seenPaths = new Set<string>();
115
-
116
- for (const abs of files) {
117
- const rel = toPosixRelative(this.cronDir, abs);
118
- seenPaths.add(rel);
119
- summary.scanned += 1;
120
- const change = await this.reconcileFile(rel, abs);
121
- if (change) {
122
- summary.changes.push(change);
123
- summary.upserted += 1;
124
- if (change.parse.error) summary.invalidParses += 1;
125
- }
126
- }
127
-
128
- const existing = this.store.listSpecs({
129
- includeRemoved: false,
130
- limit: 10_000,
131
- });
132
- for (const spec of existing) {
133
- if (!seenPaths.has(spec.sourcePath)) {
134
- this.handleFileDeleted(spec);
135
- summary.removed += 1;
136
- }
137
- }
138
-
139
- this.refreshScheduleNextRunAt();
140
-
141
- return summary;
142
- }
143
-
144
- /**
145
- * Reconcile a single file (absolute path). `relativePath` is expected to
146
- * be POSIX-relative to the cron specs directory. Returns the reconciliation change
147
- * or undefined if the file could not be read.
148
- */
149
- public async reconcileFile(
150
- relativePath: string,
151
- absolutePath: string,
152
- ): Promise<ReconcileChange | undefined> {
153
- const existing = this.store.getSpecBySourcePath(relativePath);
154
- let raw: string;
155
- let mtimeMs: number | undefined;
156
- try {
157
- raw = readFileSync(absolutePath, "utf8");
158
- mtimeMs = statSync(absolutePath).mtimeMs;
159
- } catch {
160
- return undefined;
161
- }
162
- const input: ParseCronSpecInput = { relativePath, raw };
163
- const parse = parseCronSpecFile(input);
164
- const result = this.store.upsertSpec({
165
- externalId: parse.externalId,
166
- sourcePath: relativePath,
167
- triggerKind: parse.triggerKind,
168
- sourceMtimeMs: mtimeMs,
169
- sourceHash: parse.contentHash,
170
- parseStatus: parse.error ? "invalid" : "valid",
171
- parseError: parse.error,
172
- spec: parse.spec,
173
- });
174
-
175
- // For valid schedule specs, compute next_run_at if missing or reset
176
- // when schedule_expr changed.
177
- if (
178
- !parse.error &&
179
- parse.triggerKind === "schedule" &&
180
- result.record.enabled
181
- ) {
182
- this.applyScheduleNextRunAt(result.record, {
183
- forceReset:
184
- !existing ||
185
- existing.removed ||
186
- !existing.enabled ||
187
- existing.scheduleExpr !== result.record.scheduleExpr ||
188
- existing.timezone !== result.record.timezone,
189
- });
190
- }
191
-
192
- return { relativePath, result, parse };
193
- }
194
-
195
- /**
196
- * Handle a file that disappeared from disk between reconciliations.
197
- * Marks the spec as removed and cancels any queued runs for it.
198
- */
199
- public handleFileDeleted(spec: CronSpecRecord): void {
200
- this.store.markSpecRemoved(spec.specId);
201
- this.store.cancelQueuedRunsForSpec(spec.specId);
202
- }
203
-
204
- /**
205
- * Refresh next_run_at for every enabled schedule spec.
206
- * Used at startup to handle the "one overdue catch-up on startup then
207
- * advance to next slot" policy.
208
- */
209
- public refreshScheduleNextRunAt(): void {
210
- const schedules = this.store.listSpecs({
211
- triggerKind: "schedule",
212
- enabled: true,
213
- parseStatus: "valid",
214
- });
215
- for (const spec of schedules) {
216
- this.applyScheduleNextRunAt(spec, { forceReset: false });
217
- }
218
- }
219
-
220
- private applyScheduleNextRunAt(
221
- spec: CronSpecRecord,
222
- options: { forceReset: boolean },
223
- ): void {
224
- if (!spec.scheduleExpr) return;
225
- if (!options.forceReset && spec.nextRunAt) return;
226
- try {
227
- const now = Date.now();
228
- const base = spec.lastRunAt
229
- ? Math.max(now, new Date(spec.lastRunAt).getTime())
230
- : now;
231
- const nextMs = getNextCronTime(spec.scheduleExpr, base, spec.timezone);
232
- const nextIso = new Date(nextMs).toISOString();
233
- if (spec.nextRunAt !== nextIso) {
234
- this.store.updateSpecNextRunAt(spec.specId, nextIso);
235
- }
236
- } catch {
237
- // Invalid cron pattern — leave next_run_at as is; the upsert's
238
- // parse_status already reflects the spec correctness.
239
- }
240
- }
241
- }