@clinebot/core 0.0.36 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/ClineCore.d.ts +312 -3
  2. package/dist/ClineCore.d.ts.map +1 -1
  3. package/dist/account/cline-account-service.d.ts.map +1 -1
  4. package/dist/cron/cron-event-ingress.d.ts +38 -0
  5. package/dist/cron/cron-event-ingress.d.ts.map +1 -0
  6. package/dist/cron/cron-materializer.d.ts +36 -0
  7. package/dist/cron/cron-materializer.d.ts.map +1 -0
  8. package/dist/cron/cron-reconciler.d.ts +62 -0
  9. package/dist/cron/cron-reconciler.d.ts.map +1 -0
  10. package/dist/cron/cron-report-writer.d.ts +41 -0
  11. package/dist/cron/cron-report-writer.d.ts.map +1 -0
  12. package/dist/cron/cron-runner.d.ts +43 -0
  13. package/dist/cron/cron-runner.d.ts.map +1 -0
  14. package/dist/cron/cron-schema.d.ts +3 -0
  15. package/dist/cron/cron-schema.d.ts.map +1 -0
  16. package/dist/cron/cron-service.d.ts +57 -0
  17. package/dist/cron/cron-service.d.ts.map +1 -0
  18. package/dist/cron/cron-spec-parser.d.ts +27 -0
  19. package/dist/cron/cron-spec-parser.d.ts.map +1 -0
  20. package/dist/cron/cron-watcher.d.ts +23 -0
  21. package/dist/cron/cron-watcher.d.ts.map +1 -0
  22. package/dist/cron/scheduler.d.ts +3 -1
  23. package/dist/cron/scheduler.d.ts.map +1 -1
  24. package/dist/cron/sqlite-cron-store.d.ts +230 -0
  25. package/dist/cron/sqlite-cron-store.d.ts.map +1 -0
  26. package/dist/extensions/plugin/plugin-config-loader.d.ts +7 -1
  27. package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
  28. package/dist/extensions/plugin/plugin-loader.d.ts +10 -6
  29. package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
  30. package/dist/extensions/plugin/plugin-sandbox.d.ts +7 -1
  31. package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
  32. package/dist/extensions/plugin-sandbox-bootstrap.js +236 -275
  33. package/dist/extensions/tools/constants.d.ts +1 -0
  34. package/dist/extensions/tools/constants.d.ts.map +1 -1
  35. package/dist/extensions/tools/definitions.d.ts +2 -3
  36. package/dist/extensions/tools/definitions.d.ts.map +1 -1
  37. package/dist/extensions/tools/executors/editor.d.ts.map +1 -1
  38. package/dist/extensions/tools/helpers.d.ts +1 -0
  39. package/dist/extensions/tools/helpers.d.ts.map +1 -1
  40. package/dist/extensions/tools/index.d.ts +1 -2
  41. package/dist/extensions/tools/index.d.ts.map +1 -1
  42. package/dist/extensions/tools/presets.d.ts +1 -1
  43. package/dist/extensions/tools/schemas.d.ts +25 -3
  44. package/dist/extensions/tools/schemas.d.ts.map +1 -1
  45. package/dist/extensions/tools/team/delegated-agent.d.ts +2 -2
  46. package/dist/extensions/tools/team/delegated-agent.d.ts.map +1 -1
  47. package/dist/extensions/tools/team/multi-agent.d.ts +7 -3
  48. package/dist/extensions/tools/team/multi-agent.d.ts.map +1 -1
  49. package/dist/extensions/tools/team/team-tools.d.ts.map +1 -1
  50. package/dist/extensions/tools/types.d.ts +0 -5
  51. package/dist/extensions/tools/types.d.ts.map +1 -1
  52. package/dist/hooks/hook-bridge.d.ts +118 -0
  53. package/dist/hooks/hook-bridge.d.ts.map +1 -0
  54. package/dist/hooks/hook-file-hooks.d.ts +2 -1
  55. package/dist/hooks/hook-file-hooks.d.ts.map +1 -1
  56. package/dist/hooks/hook-registry.d.ts +16 -0
  57. package/dist/hooks/hook-registry.d.ts.map +1 -0
  58. package/dist/hub/browser-websocket.d.ts.map +1 -1
  59. package/dist/hub/client.d.ts +7 -1
  60. package/dist/hub/client.d.ts.map +1 -1
  61. package/dist/hub/daemon-entry.js +721 -461
  62. package/dist/hub/daemon.d.ts.map +1 -1
  63. package/dist/hub/defaults.d.ts +8 -4
  64. package/dist/hub/defaults.d.ts.map +1 -1
  65. package/dist/hub/index.js +665 -415
  66. package/dist/hub/runtime-handlers.d.ts.map +1 -1
  67. package/dist/hub/server.d.ts +18 -0
  68. package/dist/hub/server.d.ts.map +1 -1
  69. package/dist/hub/session-client.d.ts +3 -0
  70. package/dist/hub/session-client.d.ts.map +1 -1
  71. package/dist/hub/start-shared-server.d.ts.map +1 -1
  72. package/dist/hub/ui-client.d.ts +1 -0
  73. package/dist/hub/ui-client.d.ts.map +1 -1
  74. package/dist/index.d.ts +9 -7
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +756 -467
  77. package/dist/llms/cline-recommended-models.d.ts +20 -0
  78. package/dist/llms/cline-recommended-models.d.ts.map +1 -0
  79. package/dist/llms/handler-factory.d.ts +16 -0
  80. package/dist/llms/handler-factory.d.ts.map +1 -0
  81. package/dist/llms/provider-defaults.d.ts.map +1 -1
  82. package/dist/llms/provider-settings.d.ts +45 -2
  83. package/dist/llms/provider-settings.d.ts.map +1 -1
  84. package/dist/llms/runtime-registry.d.ts.map +1 -1
  85. package/dist/runtime/agent-config-adapter.d.ts +148 -0
  86. package/dist/runtime/agent-config-adapter.d.ts.map +1 -0
  87. package/dist/runtime/agent-runtime-config-builder.d.ts +96 -0
  88. package/dist/runtime/agent-runtime-config-builder.d.ts.map +1 -0
  89. package/dist/runtime/history.d.ts +6 -0
  90. package/dist/runtime/history.d.ts.map +1 -1
  91. package/dist/runtime/host.d.ts.map +1 -1
  92. package/dist/runtime/loop-detection.d.ts +59 -0
  93. package/dist/runtime/loop-detection.d.ts.map +1 -0
  94. package/dist/runtime/mistake-tracker.d.ts +69 -0
  95. package/dist/runtime/mistake-tracker.d.ts.map +1 -0
  96. package/dist/runtime/runtime-builder.d.ts.map +1 -1
  97. package/dist/runtime/runtime-event-adapter.d.ts +102 -0
  98. package/dist/runtime/runtime-event-adapter.d.ts.map +1 -0
  99. package/dist/runtime/runtime-host.d.ts +28 -3
  100. package/dist/runtime/runtime-host.d.ts.map +1 -1
  101. package/dist/runtime/session-runtime-orchestrator.d.ts +261 -0
  102. package/dist/runtime/session-runtime-orchestrator.d.ts.map +1 -0
  103. package/dist/runtime/session-runtime.d.ts +16 -3
  104. package/dist/runtime/session-runtime.d.ts.map +1 -1
  105. package/dist/runtime/user-input-builder.d.ts +24 -0
  106. package/dist/runtime/user-input-builder.d.ts.map +1 -0
  107. package/dist/services/index.js +28 -0
  108. package/dist/services/local-runtime-bootstrap.d.ts.map +1 -1
  109. package/dist/services/plugin-tools.d.ts.map +1 -1
  110. package/dist/services/providers/local-provider-registry.d.ts +197 -21
  111. package/dist/services/providers/local-provider-registry.d.ts.map +1 -1
  112. package/dist/services/providers/local-provider-service.d.ts +3 -1
  113. package/dist/services/providers/local-provider-service.d.ts.map +1 -1
  114. package/dist/services/session-data.d.ts.map +1 -1
  115. package/dist/services/session-telemetry.d.ts +7 -2
  116. package/dist/services/session-telemetry.d.ts.map +1 -1
  117. package/dist/services/storage/file-team-store.d.ts.map +1 -1
  118. package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -1
  119. package/dist/services/storage/provider-settings-manager.d.ts +1 -0
  120. package/dist/services/storage/provider-settings-manager.d.ts.map +1 -1
  121. package/dist/services/storage/sqlite-team-store.d.ts.map +1 -1
  122. package/dist/session/conversation-store.d.ts +30 -0
  123. package/dist/session/conversation-store.d.ts.map +1 -0
  124. package/dist/session/message-builder.d.ts +65 -0
  125. package/dist/session/message-builder.d.ts.map +1 -0
  126. package/dist/session/session-manifest.d.ts +1 -1
  127. package/dist/transports/hub.d.ts +14 -3
  128. package/dist/transports/hub.d.ts.map +1 -1
  129. package/dist/transports/local.d.ts +14 -4
  130. package/dist/transports/local.d.ts.map +1 -1
  131. package/dist/transports/remote.d.ts.map +1 -1
  132. package/dist/types/chat-schema.d.ts +5 -5
  133. package/dist/types/config.d.ts +9 -0
  134. package/dist/types/config.d.ts.map +1 -1
  135. package/dist/types/events.d.ts +7 -6
  136. package/dist/types/events.d.ts.map +1 -1
  137. package/dist/types/provider-settings.d.ts +2 -2
  138. package/dist/types/provider-settings.d.ts.map +1 -1
  139. package/dist/types/session.d.ts +5 -2
  140. package/dist/types/session.d.ts.map +1 -1
  141. package/dist/types.d.ts +4 -4
  142. package/dist/types.d.ts.map +1 -1
  143. package/package.json +4 -4
  144. package/src/ClineCore.ts +691 -6
  145. package/src/account/cline-account-service.ts +44 -6
  146. package/src/cron/cron-event-ingress.ts +357 -0
  147. package/src/cron/cron-materializer.ts +97 -0
  148. package/src/cron/cron-reconciler.ts +241 -0
  149. package/src/cron/cron-report-writer.ts +153 -0
  150. package/src/cron/cron-runner.ts +495 -0
  151. package/src/cron/cron-schema.ts +127 -0
  152. package/src/cron/cron-service.ts +163 -0
  153. package/src/cron/cron-spec-parser.ts +489 -0
  154. package/src/cron/cron-watcher.ts +102 -0
  155. package/src/cron/index.ts +10 -0
  156. package/src/cron/scheduler.ts +141 -6
  157. package/src/cron/sqlite-cron-store.ts +1286 -0
  158. package/src/extensions/plugin/plugin-config-loader.ts +21 -1
  159. package/src/extensions/plugin/plugin-loader.ts +25 -9
  160. package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +151 -1
  161. package/src/extensions/plugin/plugin-sandbox.ts +131 -7
  162. package/src/extensions/tools/constants.ts +2 -0
  163. package/src/extensions/tools/definitions.ts +31 -22
  164. package/src/extensions/tools/executors/editor.ts +4 -3
  165. package/src/extensions/tools/helpers.ts +24 -0
  166. package/src/extensions/tools/index.ts +1 -2
  167. package/src/extensions/tools/presets.ts +1 -1
  168. package/src/extensions/tools/schemas.ts +13 -18
  169. package/src/extensions/tools/team/delegated-agent.ts +8 -3
  170. package/src/extensions/tools/team/multi-agent.ts +135 -19
  171. package/src/extensions/tools/team/team-tools.ts +151 -91
  172. package/src/extensions/tools/types.ts +0 -6
  173. package/src/hooks/hook-bridge.ts +489 -0
  174. package/src/hooks/hook-file-hooks.ts +58 -3
  175. package/src/hooks/hook-registry.ts +257 -0
  176. package/src/hub/browser-websocket.ts +26 -4
  177. package/src/hub/client.ts +72 -13
  178. package/src/hub/daemon-entry.ts +35 -0
  179. package/src/hub/daemon.ts +117 -14
  180. package/src/hub/defaults.ts +39 -12
  181. package/src/hub/runtime-handlers.ts +4 -3
  182. package/src/hub/server.ts +506 -77
  183. package/src/hub/session-client.ts +43 -1
  184. package/src/hub/start-shared-server.ts +3 -0
  185. package/src/hub/ui-client.ts +4 -0
  186. package/src/index.ts +46 -1
  187. package/src/llms/cline-recommended-models.ts +167 -0
  188. package/src/llms/handler-factory.ts +56 -0
  189. package/src/llms/provider-defaults.ts +17 -1
  190. package/src/llms/provider-settings.ts +48 -1
  191. package/src/llms/runtime-registry.ts +1 -0
  192. package/src/runtime/agent-config-adapter.ts +636 -0
  193. package/src/runtime/agent-runtime-config-builder.ts +205 -0
  194. package/src/runtime/error-feedback.ts +142 -0
  195. package/src/runtime/history.ts +137 -0
  196. package/src/runtime/host.ts +22 -0
  197. package/src/runtime/loop-detection.ts +162 -0
  198. package/src/runtime/mistake-tracker.ts +221 -0
  199. package/src/runtime/runtime-builder.ts +61 -5
  200. package/src/runtime/runtime-event-adapter.ts +412 -0
  201. package/src/runtime/runtime-host.ts +45 -1
  202. package/src/runtime/session-runtime-orchestrator.ts +1253 -0
  203. package/src/runtime/session-runtime.ts +16 -2
  204. package/src/runtime/user-input-builder.ts +167 -0
  205. package/src/services/local-runtime-bootstrap.ts +128 -22
  206. package/src/services/plugin-tools.ts +1 -0
  207. package/src/services/providers/local-provider-registry.ts +273 -57
  208. package/src/services/providers/local-provider-service.ts +67 -7
  209. package/src/services/session-data.ts +16 -14
  210. package/src/services/session-telemetry.ts +6 -15
  211. package/src/services/storage/file-team-store.ts +1 -5
  212. package/src/services/storage/provider-settings-legacy-migration.ts +8 -47
  213. package/src/services/storage/provider-settings-manager.ts +16 -1
  214. package/src/services/storage/sqlite-team-store.ts +1 -5
  215. package/src/session/conversation-store.ts +77 -0
  216. package/src/session/message-builder.ts +941 -0
  217. package/src/transports/hub.ts +458 -33
  218. package/src/transports/local.ts +296 -65
  219. package/src/transports/remote.ts +1 -0
  220. package/src/types/config.ts +9 -0
  221. package/src/types/events.ts +8 -6
  222. package/src/types/index.ts +3 -0
  223. package/src/types/provider-settings.ts +8 -1
  224. package/src/types/session.ts +5 -2
  225. package/src/types.ts +15 -1
  226. package/dist/cron/index.d.ts +0 -6
  227. package/dist/cron/index.d.ts.map +0 -1
  228. package/dist/services/telemetry/index.js +0 -28
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Adapter from the new `AgentRuntimeEvent` union (13 variants, defined
3
+ * in `@clinebot/shared/src/agent.ts`) to the legacy `AgentEvent` union
4
+ * (9 top-level types, defined in
5
+ * `@clinebot/shared/src/agents/types.ts`) consumed by today's
6
+ * `Agent.subscribeEvents` callback.
7
+ *
8
+ * @see PLAN.md §3.1 — new file introduced alongside the core runtime port.
9
+ * @see PLAN.md §3.3.2 — variant-by-variant OLD → NEW mapping.
10
+ * @see PLAN.md §3.2.4 — called from `Agent.subscribeEvents` inside the
11
+ * legacy-agent facade.
12
+ *
13
+ * --- IMPLEMENTATION NOTE — PLAN §3.3.2 text/reasoning-delta rows ----------
14
+ *
15
+ * PLAN.md §3.3.2 describes `assistant-text-delta` as "first delta →
16
+ * content_start, subsequent → content_update". The **actual** legacy
17
+ * shape forbids this: `AgentContentUpdateEvent.contentType` is
18
+ * hard-typed as `"tool"` in
19
+ * `packages/shared/src/agents/types.ts:87`, and the legacy
20
+ * turn-processor
21
+ * (`packages/agents/src/runtime/turn-processor.ts:82-87,113-118`)
22
+ * emits a `content_start` event for **every** text delta and for
23
+ * **every** reasoning delta — not just the first. This adapter
24
+ * preserves that observable behavior (what every legacy consumer
25
+ * relies on today) over the description in §3.3.2.
26
+ *
27
+ * text deltas → content_start { contentType:"text", text,
28
+ * accumulated } (per delta)
29
+ * reasoning deltas → content_start { contentType:"reasoning",
30
+ * reasoning, redacted } (per delta)
31
+ * assistant-message → one content_end { contentType:"text", text }
32
+ * if any text parts; one
33
+ * content_end { contentType:"reasoning", reasoning }
34
+ * if any reasoning parts
35
+ * (turn-processor.ts:157-170).
36
+ *
37
+ * --- STATEFUL BOOK-KEEPING ------------------------------------------------
38
+ *
39
+ * 1. Rolling usage totals. `usage-updated` carries the already-
40
+ * accumulated snapshot (agent-runtime.ts:668-683). Legacy
41
+ * `AgentUsageEvent` wants both per-turn delta and accumulated
42
+ * totals; the adapter subtracts the previous accumulated value
43
+ * from the incoming one to produce the delta.
44
+ * 2. Tool timing. `tool-finished` does not carry `durationMs`. The
45
+ * adapter records `Date.now()` on `tool-started` (keyed by
46
+ * `toolCallId`) and computes `durationMs` at `tool-finished`.
47
+ * Matches `tool-orchestrator.ts:112-131`.
48
+ *
49
+ * Both are scoped to a single adapter instance and cleared by
50
+ * `reset()`.
51
+ */
52
+ import type { AgentEvent, AgentMessage, AgentRuntimeEvent } from "@clinebot/shared";
53
+ declare function textFromMessage(message: AgentMessage | undefined): string;
54
+ /**
55
+ * Per-subscriber adapter instance. Constructed once per
56
+ * `Agent.subscribeEvents` registration (or per `SessionRuntime`),
57
+ * used for the lifetime of that subscription, and `reset()` at the
58
+ * start of every new run.
59
+ *
60
+ * `translate(event)` returns zero, one, or two `AgentEvent`s. An
61
+ * array is needed because a single `assistant-message` may yield both
62
+ * a text `content_end` and a reasoning `content_end`. Empty array
63
+ * means the event is intentionally suppressed (§3.3.2 rows
64
+ * `run-started`, `message-added`).
65
+ */
66
+ export declare class RuntimeEventAdapter {
67
+ private lastUsage;
68
+ private toolStartedAt;
69
+ translate(event: AgentRuntimeEvent): AgentEvent[];
70
+ reset(): void;
71
+ private translateAssistantMessage;
72
+ private translateToolStarted;
73
+ private translateToolFinished;
74
+ private translateUsage;
75
+ private translateRunFinished;
76
+ }
77
+ /**
78
+ * Stateless translator. Works correctly for every variant except
79
+ * those that require bookkeeping:
80
+ *
81
+ * - `usage-updated` — deltas cannot be computed without a prior
82
+ * snapshot; this function treats the prior snapshot as zero (so
83
+ * delta == accumulated). Adequate for a single event, incorrect
84
+ * across multiple.
85
+ * - `tool-finished` — `durationMs` is reported as `undefined`
86
+ * because the corresponding `tool-started` was never observed by
87
+ * this one-shot adapter.
88
+ *
89
+ * Production code must use `RuntimeEventAdapter` for multi-event
90
+ * runs; this function exists for ad-hoc unit tests and one-shot
91
+ * translations where bookkeeping does not matter.
92
+ *
93
+ * Returns `undefined` when the event maps to zero legacy events
94
+ * (`run-started`, `message-added`, or an `assistant-message` that
95
+ * carries no text/reasoning parts). When an event produces multiple
96
+ * legacy events (e.g. `assistant-message` with both text and
97
+ * reasoning parts), only the first is returned; callers needing the
98
+ * full array must use `RuntimeEventAdapter.translate()`.
99
+ */
100
+ export declare function toLegacyAgentEvent(event: AgentRuntimeEvent): AgentEvent | undefined;
101
+ export { textFromMessage };
102
+ //# sourceMappingURL=runtime-event-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-event-adapter.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-event-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,EACX,UAAU,EAEV,YAAY,EAEZ,iBAAiB,EAKjB,MAAM,kBAAkB,CAAC;AAuC1B,iBAAS,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAKlE;AAsCD;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,SAAS,CAMf;IAEF,OAAO,CAAC,aAAa,CAA6B;IAElD,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAuEjD,KAAK,IAAI,IAAI;IAab,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,cAAc;IAsCtB,OAAO,CAAC,oBAAoB;CA6B5B;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,iBAAiB,GACtB,UAAU,GAAG,SAAS,CAIxB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import type * as LlmsProviders from "@clinebot/llms";
2
- import type { AgentResult, ToolApprovalRequest, ToolApprovalResult } from "@clinebot/shared";
2
+ import type { AgentResult, RuntimeConfigExtensionKind, ToolApprovalRequest, ToolApprovalResult } from "@clinebot/shared";
3
3
  import type { ToolExecutors } from "../extensions/tools";
4
4
  import type { HookEventPayload } from "../hooks";
5
5
  import type { ProviderSettings } from "../llms/provider-settings";
6
6
  import type { SessionManifest } from "../session/session-manifest";
7
7
  import type { SessionSource } from "../types/common";
8
8
  import type { CoreSessionConfig } from "../types/config";
9
- import type { CoreSessionEvent } from "../types/events";
9
+ import type { CoreSessionEvent, SessionPendingPrompt } from "../types/events";
10
10
  import type { SessionRecord } from "../types/sessions";
11
- type LocalOnlyCoreSessionConfigKeys = "hooks" | "logger" | "telemetry" | "extraTools" | "extensions" | "onTeamEvent" | "onConsecutiveMistakeLimitReached";
11
+ type LocalOnlyCoreSessionConfigKeys = "hooks" | "logger" | "telemetry" | "extensionContext" | "extraTools" | "extensions" | "onTeamEvent" | "onConsecutiveMistakeLimitReached";
12
12
  export type RuntimeSessionConfig = Omit<CoreSessionConfig, LocalOnlyCoreSessionConfigKeys | "checkpoint" | "compaction"> & {
13
13
  checkpoint?: Omit<NonNullable<CoreSessionConfig["checkpoint"]>, "createCheckpoint">;
14
14
  compaction?: Omit<NonNullable<CoreSessionConfig["compaction"]>, "compact">;
@@ -21,6 +21,7 @@ export interface LocalRuntimeStartOptions {
21
21
  configOverrides?: Partial<LocalRuntimeConfigOverrides>;
22
22
  modelCatalogDefaults?: Partial<NonNullable<ProviderSettings["modelCatalog"]>>;
23
23
  userInstructionWatcher?: import("../extensions/config").UserInstructionConfigWatcher;
24
+ configExtensions?: RuntimeConfigExtensionKind[];
24
25
  onTeamRestored?: () => void;
25
26
  defaultToolExecutors?: Partial<ToolExecutors>;
26
27
  }
@@ -67,6 +68,27 @@ export interface SessionAccumulatedUsage {
67
68
  cacheWriteTokens: number;
68
69
  totalCost: number;
69
70
  }
71
+ export interface PendingPromptMutationResult {
72
+ sessionId: string;
73
+ prompts: SessionPendingPrompt[];
74
+ prompt?: SessionPendingPrompt;
75
+ updated?: boolean;
76
+ removed?: boolean;
77
+ }
78
+ export type PendingPromptsAction = "list" | "update" | "delete";
79
+ export interface PendingPromptsListInput {
80
+ sessionId: string;
81
+ }
82
+ export interface PendingPromptsUpdateInput {
83
+ sessionId: string;
84
+ promptId: string;
85
+ prompt?: string;
86
+ delivery?: "queue" | "steer";
87
+ }
88
+ export interface PendingPromptsDeleteInput {
89
+ sessionId: string;
90
+ promptId: string;
91
+ }
70
92
  export interface RuntimeHostSubscribeOptions {
71
93
  sessionId?: string;
72
94
  }
@@ -79,6 +101,9 @@ export interface RuntimeHost {
79
101
  readonly runtimeAddress?: string;
80
102
  start(input: StartSessionInput): Promise<StartSessionResult>;
81
103
  send(input: SendSessionInput): Promise<AgentResult | undefined>;
104
+ pendingPrompts(action: "list", input: PendingPromptsListInput): Promise<SessionPendingPrompt[]>;
105
+ pendingPrompts(action: "update", input: PendingPromptsUpdateInput): Promise<PendingPromptMutationResult>;
106
+ pendingPrompts(action: "delete", input: PendingPromptsDeleteInput): Promise<PendingPromptMutationResult>;
82
107
  getAccumulatedUsage(sessionId: string): Promise<SessionAccumulatedUsage | undefined>;
83
108
  abort(sessionId: string, reason?: unknown): Promise<void>;
84
109
  stop(sessionId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-host.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EACX,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,KAAK,8BAA8B,GAChC,OAAO,GACP,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,kCAAkC,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,iBAAiB,EACjB,8BAA8B,GAAG,YAAY,GAAG,YAAY,CAC5D,GAAG;IACH,UAAU,CAAC,EAAE,IAAI,CAChB,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAC5C,kBAAkB,CAClB,CAAC;IACF,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC7C,iBAAiB,EACjB,8BAA8B,CAC9B,GAAG;IACH,UAAU,CAAC,EAAE,IAAI,CAChB,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAC5C,kBAAkB,CAClB,GACA,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,GACzE,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvD,oBAAoB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9E,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,EAAE,4BAA4B,CAAC;IACrF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,kBAAkB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACtE,mBAAmB,CAAC,EAAE,CACrB,OAAO,EAAE,mBAAmB,KACxB,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAClE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,CAAC,EAAE,wBAAwB,CAAC;CACxC,CA4DA;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAChE,mBAAmB,CAClB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAChD,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,CACL,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,GACC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,SAAS,CACR,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,EAC3C,OAAO,CAAC,EAAE,2BAA2B,GACnC,MAAM,IAAI,CAAC;IACd,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"runtime-host.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Per-session `SessionRuntime` orchestrator (PLAN.md §3.2.3).
3
+ *
4
+ * Owns all cross-turn state for one logical agent session:
5
+ *
6
+ * - `ConversationStore` — message transcript + session-started gate
7
+ * - `MistakeTracker` — per-session consecutive-mistake counter
8
+ * - `LoopDetectionTracker` — per-session repeated-tool-call detector
9
+ * - `MessageBuilder` — provider-message assembly cache
10
+ * - `HookEngine` + `HookBridge` — legacy `AgentHooks`/`AgentExtension[]`
11
+ * → runtime-hook synthesis
12
+ * - `RuntimeEventAdapter` — per-run stateful `AgentRuntimeEvent`
13
+ * → legacy `AgentEvent` translator
14
+ * - listener registry — host subscribers see legacy `AgentEvent`s
15
+ * - pending tool set, abort — per-run lifecycle housekeeping
16
+ *
17
+ * A fresh `AgentRuntime` is instantiated per run via
18
+ * `createAgentRuntime(createAgentRuntimeConfig({...}))`; it is the
19
+ * only class that depends on `@clinebot/agents`. All session-level
20
+ * state outlives any one `AgentRuntime`, making OAuth-retry + run
21
+ * replay feasible (§3.2.2 invariant #3).
22
+ *
23
+ * NOTE: this class lives alongside the pre-existing
24
+ * `packages/core/src/runtime/session-runtime.ts`, which exports
25
+ * transport-level `SessionRuntime`/`RuntimeBuilder` interfaces
26
+ * consumed by `LocalRuntimeHost`. Both coexist through Step 8/9; the
27
+ * transport-level interface is retired in Step 10 (§3.6 Step 10).
28
+ *
29
+ * @see PLAN.md §3.2.3 — public surface.
30
+ * @see PLAN.md §3.2.2 — call graph and invariants.
31
+ * @see PLAN.md §3.6 Step 8d — landing commit.
32
+ */
33
+ import type { AgentRuntime } from "@clinebot/agents";
34
+ import { createAgentRuntime } from "@clinebot/agents";
35
+ import { type AgentConfig, type AgentEvent, type AgentExtensionRegistry, type AgentResult, type BasicLogger, HookEngine, type ITelemetryService, type Message, type MessageWithMetadata, type Tool } from "@clinebot/shared";
36
+ import { MessageBuilder } from "../session/message-builder";
37
+ /**
38
+ * Listener invoked for every legacy `AgentEvent` produced by the
39
+ * session runtime. Use `subscribeEvents(listener)` — it returns an
40
+ * `unsubscribe` function.
41
+ */
42
+ export type SessionEventListener = (event: AgentEvent) => void;
43
+ /** Subset of host-side deps needed by the session orchestrator. */
44
+ export interface SessionRuntimeOrchestratorDeps {
45
+ readonly logger?: BasicLogger;
46
+ readonly telemetry?: ITelemetryService;
47
+ /** Optional pre-constructed `HookEngine`. A fresh one is built when omitted. */
48
+ readonly hookEngine?: HookEngine;
49
+ /**
50
+ * Test hook: override the `AgentRuntime` factory. Production
51
+ * callers leave this undefined and get the real `createAgentRuntime`.
52
+ */
53
+ readonly createAgentRuntimeImpl?: (config: Parameters<typeof createAgentRuntime>[0]) => AgentRuntime;
54
+ }
55
+ /** Connection overrides applied via `updateConnection`. */
56
+ export interface ConnectionOverrides {
57
+ providerId?: string;
58
+ modelId?: string;
59
+ apiKey?: string;
60
+ baseUrl?: string;
61
+ headers?: Record<string, string>;
62
+ providerConfig?: unknown;
63
+ reasoningEffort?: AgentConfig["reasoningEffort"];
64
+ thinking?: boolean;
65
+ thinkingBudgetTokens?: number;
66
+ }
67
+ /**
68
+ * Per-session orchestrator. Construct once per agent session; call
69
+ * `run` / `continue` repeatedly. The class matches the subset of
70
+ * legacy `Agent` surface that `legacy-agent-facade` needs in Step 8e.
71
+ *
72
+ * Named `SessionRuntime` to match PLAN.md §3.2.3. To avoid a symbol
73
+ * collision with the pre-existing transport-level `SessionRuntime`
74
+ * interface in `session-runtime.ts`, this file is **not** re-exported
75
+ * from `runtime/index.ts` or `src/index.ts`. Consumers (facade in
76
+ * Step 8e) import directly from this module.
77
+ */
78
+ export declare class SessionRuntime {
79
+ private config;
80
+ private readonly agentId;
81
+ private readonly parentAgentId?;
82
+ private readonly logger?;
83
+ readonly telemetry?: ITelemetryService;
84
+ private readonly hookEngine;
85
+ private readonly hookBridge;
86
+ private readonly conversation;
87
+ private readonly mistakeTracker;
88
+ private readonly loopTracker;
89
+ /**
90
+ * True when `execution.loopDetection === false` at construction
91
+ * time. Loop inspection is skipped entirely — the tracker still
92
+ * exists for API compatibility but is never fed.
93
+ */
94
+ private readonly loopDetectionDisabled;
95
+ readonly messageBuilder: MessageBuilder;
96
+ /**
97
+ * Contribution registry that hosts extension-provided tools,
98
+ * commands, message builders, and providers. Lazily initialized
99
+ * on first run (parity with legacy `Agent.ensureExtensionsInitialized`
100
+ * at `packages/agents/src/agent.ts:1122-1147`).
101
+ */
102
+ private readonly contributionRegistry;
103
+ private extensionsInitialized;
104
+ private readonly listeners;
105
+ private readonly createAgentRuntimeImpl;
106
+ /** Stable run id shared with the HookBridge during an active run. */
107
+ private activeRunId;
108
+ /** True while a run is in flight. `canStartRun()` is the negation. */
109
+ private running;
110
+ /** True once `abort()` has been requested for the active run. */
111
+ private abortRequested;
112
+ /** Last abort reason requested for the active run. */
113
+ private abortReason;
114
+ /** Reference to the current run's `AgentRuntime` so `abort` can forward. */
115
+ private activeRuntime;
116
+ /** Promise for the current run so shutdown can await an aborted run's drain. */
117
+ private activeRunPromise;
118
+ /** Per-run `Agent → AgentEvent` adapter; `reset()` each run. */
119
+ private readonly eventAdapter;
120
+ /** Session-shutdown gate — rejects late runs. */
121
+ private shutdownCalled;
122
+ /** Running tally of tool-call records for `AgentResult.toolCalls`. */
123
+ private currentRunToolCalls;
124
+ /** Aggregated usage across the current run. */
125
+ private currentRunUsage;
126
+ /** Tool-start timestamps for `ToolCallRecord.durationMs`. */
127
+ private toolStartedAt;
128
+ /** Tool-call input snapshot for `ToolCallRecord.input`. */
129
+ private toolInputs;
130
+ /**
131
+ * Per-turn tool outcome counters used by the MistakeTracker wiring.
132
+ * Reset on every `turn-started` event; consumed on `turn-finished`
133
+ * to feed `mistakeTracker.record` when every tool call erred and no
134
+ * successful call landed. Matches legacy `agent.ts` tool-failure
135
+ * mistake-feed path (§3.4.6 + pre-Step-9 oracle lines 972-997).
136
+ */
137
+ private currentTurnSuccessfulTools;
138
+ private currentTurnFailedTools;
139
+ private currentTurnFailureDetails;
140
+ /**
141
+ * Serial queue for `MistakeTracker.record(...)` + loop-detection
142
+ * side-effects fired from the sync `handleRuntimeEvent` stream. The
143
+ * tracker's `record()` is async but the runtime event stream is
144
+ * synchronous, so we chain tracker work onto a promise and await it
145
+ * in `executeRun` before returning the `AgentResult`.
146
+ */
147
+ private activeTrackerWork;
148
+ /** True when tracker logic has issued an abort for the active run. */
149
+ private trackerAbortInFlight;
150
+ constructor(config: AgentConfig, deps?: SessionRuntimeOrchestratorDeps);
151
+ getAgentId(): string;
152
+ getConversationId(): string;
153
+ getMessages(): MessageWithMetadata[];
154
+ /** True when no run is currently active and the session is not shut down. */
155
+ canStartRun(): boolean;
156
+ /**
157
+ * Snapshot of the contribution registry (tools, commands, and other
158
+ * extension contributions).
159
+ *
160
+ * Before the first run, the registry is in the `validate` phase:
161
+ * extensions are validated but their `setup()` callbacks have not
162
+ * run yet, so the snapshot only reflects eagerly-declared
163
+ * contributions. After the first `run()`/`continue()`, the
164
+ * registry is initialized (§`ensureExtensionsInitialized`), and
165
+ * the snapshot reflects everything extensions registered via
166
+ * `api.registerTool` / `registerCommand` / `registerMessageBuilder`
167
+ * / `registerProvider` / `registerAutomationEventType`.
168
+ */
169
+ getExtensionRegistry(): AgentExtensionRegistry<Tool, Message[]>;
170
+ /** Append additional tools to every subsequent turn's runtime config. */
171
+ addTools(tools: Tool[]): void;
172
+ /** Mutate provider / reasoning fields for subsequent runs. */
173
+ updateConnection(overrides: ConnectionOverrides): void;
174
+ clearHistory(): void;
175
+ restore(messages: readonly MessageWithMetadata[]): void;
176
+ private resetConversationBoundaryTrackers;
177
+ /**
178
+ * Subscribe to **legacy** `AgentEvent`s. The session runtime
179
+ * translates the new `AgentRuntimeEvent` stream via
180
+ * `RuntimeEventAdapter` before fanout, so consumers see the
181
+ * pre-swap shape.
182
+ */
183
+ subscribeEvents(listener: SessionEventListener): () => void;
184
+ abort(reason?: unknown): void;
185
+ /**
186
+ * Shut the session down. Fires `hook.session_shutdown` exactly once
187
+ * (legacy parity with `Agent.shutdown` at pre-Step-9 `agent.ts:325`)
188
+ * and drains any in-flight async hooks through the hook engine.
189
+ *
190
+ * @param reason Optional caller-supplied reason string (e.g.
191
+ * `"session_complete"`, `"session_error"`,
192
+ * `"session_stop"`, `"ctrl_d"`). Propagated into
193
+ * the `session_shutdown` hook payload as
194
+ * `AgentHookSessionShutdownContext.reason` so hook
195
+ * handlers (e.g. hook-file runners) can route on
196
+ * it — this matches the legacy `Agent.shutdown(reason)`
197
+ * contract and keeps `isAbortReason(ctx.reason)`
198
+ * checks in `hook-file-hooks.ts` working.
199
+ * @param timeoutMs Optional drain timeout forwarded to
200
+ * `HookEngine.shutdown`. Defaults to the engine's
201
+ * own default (3000 ms) when omitted.
202
+ */
203
+ shutdown(reason?: string, timeoutMs?: number): Promise<void>;
204
+ run(userMessage: string, userImages?: string[], userFiles?: string[]): Promise<AgentResult>;
205
+ continue(userMessage?: string, userImages?: string[], userFiles?: string[]): Promise<AgentResult>;
206
+ private executeRun;
207
+ private executeRunInternal;
208
+ /**
209
+ * Build an aborted `AgentResult` without invoking the AgentRuntime.
210
+ * Used by the `hook.session_start` / `hook.input` cancel paths —
211
+ * legacy parity: a hook that returns `{ cancel: true }` short-circuits
212
+ * the run and yields `finishReason: "aborted"`.
213
+ */
214
+ private finalizeAbortedRun;
215
+ /**
216
+ * Initialize the contribution registry once per session. Runs
217
+ * extension `setup()` callbacks so they can `registerTool`,
218
+ * `registerCommand`, `registerMessageBuilder`, and
219
+ * `registerProvider`. Matches legacy `Agent.ensureExtensionsInitialized`
220
+ * at pre-Step-9 `agent.ts:1122-1147`:
221
+ *
222
+ * - on `hookErrorMode === "throw"`, setup failures propagate;
223
+ * - otherwise setup failures emit a recoverable `error` event
224
+ * via the legacy event channel and leave the registry
225
+ * partially initialized.
226
+ *
227
+ * Idempotent: subsequent calls are no-ops once the registry has
228
+ * been activated.
229
+ */
230
+ private ensureExtensionsInitialized;
231
+ private prepareMessagesForApi;
232
+ private handleRuntimeEvent;
233
+ private emitLegacyEvent;
234
+ /**
235
+ * Feed the `LoopDetectionTracker` with a tool-call and react to
236
+ * the returned verdict. Parity with pre-Step-9 agent.ts L917-954:
237
+ *
238
+ * - `"soft"` → append a recovery notice telling the model to
239
+ * change approach;
240
+ * - `"hard"` → feed `MistakeTracker.record` with
241
+ * `forceAtLimit:true`. When the tracker returns
242
+ * `action: "stop"`, append the stop notice and
243
+ * abort the active runtime.
244
+ */
245
+ private inspectLoopForToolCall;
246
+ /**
247
+ * Enqueue a mistake-record onto the serial tracker work chain. The
248
+ * runtime event stream is synchronous but `MistakeTracker.record`
249
+ * is async — chaining onto a shared promise preserves ordering
250
+ * (legacy parity) and lets `executeRun` await draining before
251
+ * returning the `AgentResult`.
252
+ *
253
+ * When the tracker returns `action: "stop"`, append the stop notice
254
+ * to the conversation and abort the active runtime so the run ends
255
+ * with `finishReason: "aborted"`.
256
+ */
257
+ private enqueueMistakeRecord;
258
+ private buildLegacyResult;
259
+ private dispatchRunEnd;
260
+ }
261
+ //# sourceMappingURL=session-runtime-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-runtime-orchestrator.d.ts","sourceRoot":"","sources":["../../src/runtime/session-runtime-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
- import type { Agent } from "@clinebot/agents";
2
- import type { AgentConfig, AgentHooks, AgentResult, BasicLogger, ITelemetryService, Tool } from "@clinebot/shared";
1
+ import type { AgentConfig, AgentHooks, AgentResult, BasicLogger, ITelemetryService, RuntimeConfigExtensionKind, Tool } from "@clinebot/shared";
3
2
  import type { UserInstructionConfigWatcher } from "../extensions/config";
4
3
  import type { ToolExecutors } from "../extensions/tools";
5
4
  import type { AgentTeamsRuntime, DelegatedAgentConfigProvider, TeamEvent } from "../extensions/tools/team";
6
5
  import type { CoreSessionConfig } from "../types/config";
6
+ /**
7
+ * Internal structural alias for the lead-agent handle that
8
+ * {@link BuiltRuntime.registerLeadAgent} hands off to
9
+ * `runtime-builder.ts`. Narrowed to only the `.addTools()` surface the
10
+ * callback exercises; avoids depending on `@clinebot/agents`' `Agent`
11
+ * class during the PLAN.md §3.6 Step 5 type-only migration. When
12
+ * SessionRuntime is rebuilt in Step 6, this field is expected to be
13
+ * dropped entirely per §3.5 row #2.
14
+ */
15
+ type LeadAgentHandle = {
16
+ addTools(tools: Tool[]): unknown;
17
+ };
7
18
  export interface BuiltRuntime {
8
19
  tools: Tool[];
9
20
  hooks?: AgentHooks;
@@ -13,7 +24,7 @@ export interface BuiltRuntime {
13
24
  teamRestoredFromPersistence?: boolean;
14
25
  delegatedAgentConfigProvider?: DelegatedAgentConfigProvider;
15
26
  completionGuard?: () => string | undefined;
16
- registerLeadAgent?: (agent: Agent) => void;
27
+ registerLeadAgent?: (agent: LeadAgentHandle) => void;
17
28
  shutdown: (reason: string) => Promise<void> | void;
18
29
  }
19
30
  export interface RuntimeBuilderInput {
@@ -24,6 +35,7 @@ export interface RuntimeBuilderInput {
24
35
  createSpawnTool?: () => Tool;
25
36
  onTeamRestored?: () => void;
26
37
  userInstructionWatcher?: UserInstructionConfigWatcher;
38
+ configExtensions?: RuntimeConfigExtensionKind[];
27
39
  defaultToolExecutors?: Partial<ToolExecutors>;
28
40
  logger?: BasicLogger;
29
41
  telemetry?: ITelemetryService;
@@ -40,4 +52,5 @@ export interface SessionRuntime {
40
52
  stop(sessionId: string): Promise<void>;
41
53
  poll(): Promise<string[]>;
42
54
  }
55
+ export {};
43
56
  //# sourceMappingURL=session-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/session-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACX,iBAAiB,EACjB,4BAA4B,EAC5B,SAAS,EACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD,oBAAoB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;CACxE;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAC1E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"session-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/session-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACX,iBAAiB,EACjB,4BAA4B,EAC5B,SAAS,EACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;GAQG;AACH,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD,gBAAgB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAChD,oBAAoB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;CACxE;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAC1E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1B"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * User-input / first-turn content assembler.
3
+ *
4
+ * @see PLAN.md §3.1 — moved from `packages/agents/src/utils/agent-input.ts`.
5
+ * @see PLAN.md §3.2.4 — called from the `Agent.run/continue` facade via
6
+ * the `buildInitialUserContent` helper.
7
+ *
8
+ * Pure port. Opens the first user ContentBlock[] for a turn, loading user
9
+ * file contents via the injected `userFileContentLoader` (already
10
+ * core-owned per §3.1 notes on `packages/core/src/transports/local.ts`).
11
+ */
12
+ import type * as LlmsProviders from "@clinebot/llms";
13
+ export declare function buildInitialUserContent(userMessage: string, userImages?: string[], userFiles?: string[], userFileContentLoader?: (path: string) => Promise<string>): Promise<string | LlmsProviders.ContentBlock[]>;
14
+ /**
15
+ * Normalize a user message shape into a plain string when possible.
16
+ *
17
+ * @see PLAN.md §3.1 — exported from the user-input-builder module so
18
+ * SessionRuntime can use it to sanitise ad-hoc input.
19
+ *
20
+ * Accepts either a string or a LlmsProviders.Message; returns the best-effort
21
+ * concatenated plain-text body. Non-text content is ignored.
22
+ */
23
+ export declare function normalizeUserMessage(input: string | LlmsProviders.Message | undefined): string;
24
+ //# sourceMappingURL=user-input-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-input-builder.d.ts","sourceRoot":"","sources":["../../src/runtime/user-input-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAErD,wBAAsB,uBAAuB,CAC5C,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,CAsBhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,GAAG,SAAS,GAC/C,MAAM,CAwBR"}