@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.
- package/dist/ClineCore.d.ts +312 -3
- package/dist/ClineCore.d.ts.map +1 -1
- package/dist/account/cline-account-service.d.ts.map +1 -1
- package/dist/cron/cron-event-ingress.d.ts +38 -0
- package/dist/cron/cron-event-ingress.d.ts.map +1 -0
- package/dist/cron/cron-materializer.d.ts +36 -0
- package/dist/cron/cron-materializer.d.ts.map +1 -0
- package/dist/cron/cron-reconciler.d.ts +62 -0
- package/dist/cron/cron-reconciler.d.ts.map +1 -0
- package/dist/cron/cron-report-writer.d.ts +41 -0
- package/dist/cron/cron-report-writer.d.ts.map +1 -0
- package/dist/cron/cron-runner.d.ts +43 -0
- package/dist/cron/cron-runner.d.ts.map +1 -0
- package/dist/cron/cron-schema.d.ts +3 -0
- package/dist/cron/cron-schema.d.ts.map +1 -0
- package/dist/cron/cron-service.d.ts +57 -0
- package/dist/cron/cron-service.d.ts.map +1 -0
- package/dist/cron/cron-spec-parser.d.ts +27 -0
- package/dist/cron/cron-spec-parser.d.ts.map +1 -0
- package/dist/cron/cron-watcher.d.ts +23 -0
- package/dist/cron/cron-watcher.d.ts.map +1 -0
- package/dist/cron/scheduler.d.ts +3 -1
- package/dist/cron/scheduler.d.ts.map +1 -1
- package/dist/cron/sqlite-cron-store.d.ts +230 -0
- package/dist/cron/sqlite-cron-store.d.ts.map +1 -0
- package/dist/extensions/plugin/plugin-config-loader.d.ts +7 -1
- package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-loader.d.ts +10 -6
- package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-sandbox.d.ts +7 -1
- package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
- package/dist/extensions/plugin-sandbox-bootstrap.js +236 -275
- package/dist/extensions/tools/constants.d.ts +1 -0
- package/dist/extensions/tools/constants.d.ts.map +1 -1
- package/dist/extensions/tools/definitions.d.ts +2 -3
- package/dist/extensions/tools/definitions.d.ts.map +1 -1
- package/dist/extensions/tools/executors/editor.d.ts.map +1 -1
- package/dist/extensions/tools/helpers.d.ts +1 -0
- package/dist/extensions/tools/helpers.d.ts.map +1 -1
- package/dist/extensions/tools/index.d.ts +1 -2
- package/dist/extensions/tools/index.d.ts.map +1 -1
- package/dist/extensions/tools/presets.d.ts +1 -1
- package/dist/extensions/tools/schemas.d.ts +25 -3
- package/dist/extensions/tools/schemas.d.ts.map +1 -1
- package/dist/extensions/tools/team/delegated-agent.d.ts +2 -2
- package/dist/extensions/tools/team/delegated-agent.d.ts.map +1 -1
- package/dist/extensions/tools/team/multi-agent.d.ts +7 -3
- package/dist/extensions/tools/team/multi-agent.d.ts.map +1 -1
- package/dist/extensions/tools/team/team-tools.d.ts.map +1 -1
- package/dist/extensions/tools/types.d.ts +0 -5
- package/dist/extensions/tools/types.d.ts.map +1 -1
- package/dist/hooks/hook-bridge.d.ts +118 -0
- package/dist/hooks/hook-bridge.d.ts.map +1 -0
- package/dist/hooks/hook-file-hooks.d.ts +2 -1
- package/dist/hooks/hook-file-hooks.d.ts.map +1 -1
- package/dist/hooks/hook-registry.d.ts +16 -0
- package/dist/hooks/hook-registry.d.ts.map +1 -0
- package/dist/hub/browser-websocket.d.ts.map +1 -1
- package/dist/hub/client.d.ts +7 -1
- package/dist/hub/client.d.ts.map +1 -1
- package/dist/hub/daemon-entry.js +721 -461
- package/dist/hub/daemon.d.ts.map +1 -1
- package/dist/hub/defaults.d.ts +8 -4
- package/dist/hub/defaults.d.ts.map +1 -1
- package/dist/hub/index.js +665 -415
- package/dist/hub/runtime-handlers.d.ts.map +1 -1
- package/dist/hub/server.d.ts +18 -0
- package/dist/hub/server.d.ts.map +1 -1
- package/dist/hub/session-client.d.ts +3 -0
- package/dist/hub/session-client.d.ts.map +1 -1
- package/dist/hub/start-shared-server.d.ts.map +1 -1
- package/dist/hub/ui-client.d.ts +1 -0
- package/dist/hub/ui-client.d.ts.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +756 -467
- package/dist/llms/cline-recommended-models.d.ts +20 -0
- package/dist/llms/cline-recommended-models.d.ts.map +1 -0
- package/dist/llms/handler-factory.d.ts +16 -0
- package/dist/llms/handler-factory.d.ts.map +1 -0
- package/dist/llms/provider-defaults.d.ts.map +1 -1
- package/dist/llms/provider-settings.d.ts +45 -2
- package/dist/llms/provider-settings.d.ts.map +1 -1
- package/dist/llms/runtime-registry.d.ts.map +1 -1
- package/dist/runtime/agent-config-adapter.d.ts +148 -0
- package/dist/runtime/agent-config-adapter.d.ts.map +1 -0
- package/dist/runtime/agent-runtime-config-builder.d.ts +96 -0
- package/dist/runtime/agent-runtime-config-builder.d.ts.map +1 -0
- package/dist/runtime/history.d.ts +6 -0
- package/dist/runtime/history.d.ts.map +1 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/loop-detection.d.ts +59 -0
- package/dist/runtime/loop-detection.d.ts.map +1 -0
- package/dist/runtime/mistake-tracker.d.ts +69 -0
- package/dist/runtime/mistake-tracker.d.ts.map +1 -0
- package/dist/runtime/runtime-builder.d.ts.map +1 -1
- package/dist/runtime/runtime-event-adapter.d.ts +102 -0
- package/dist/runtime/runtime-event-adapter.d.ts.map +1 -0
- package/dist/runtime/runtime-host.d.ts +28 -3
- package/dist/runtime/runtime-host.d.ts.map +1 -1
- package/dist/runtime/session-runtime-orchestrator.d.ts +261 -0
- package/dist/runtime/session-runtime-orchestrator.d.ts.map +1 -0
- package/dist/runtime/session-runtime.d.ts +16 -3
- package/dist/runtime/session-runtime.d.ts.map +1 -1
- package/dist/runtime/user-input-builder.d.ts +24 -0
- package/dist/runtime/user-input-builder.d.ts.map +1 -0
- package/dist/services/index.js +28 -0
- package/dist/services/local-runtime-bootstrap.d.ts.map +1 -1
- package/dist/services/plugin-tools.d.ts.map +1 -1
- package/dist/services/providers/local-provider-registry.d.ts +197 -21
- package/dist/services/providers/local-provider-registry.d.ts.map +1 -1
- package/dist/services/providers/local-provider-service.d.ts +3 -1
- package/dist/services/providers/local-provider-service.d.ts.map +1 -1
- package/dist/services/session-data.d.ts.map +1 -1
- package/dist/services/session-telemetry.d.ts +7 -2
- package/dist/services/session-telemetry.d.ts.map +1 -1
- package/dist/services/storage/file-team-store.d.ts.map +1 -1
- package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -1
- package/dist/services/storage/provider-settings-manager.d.ts +1 -0
- package/dist/services/storage/provider-settings-manager.d.ts.map +1 -1
- package/dist/services/storage/sqlite-team-store.d.ts.map +1 -1
- package/dist/session/conversation-store.d.ts +30 -0
- package/dist/session/conversation-store.d.ts.map +1 -0
- package/dist/session/message-builder.d.ts +65 -0
- package/dist/session/message-builder.d.ts.map +1 -0
- package/dist/session/session-manifest.d.ts +1 -1
- package/dist/transports/hub.d.ts +14 -3
- package/dist/transports/hub.d.ts.map +1 -1
- package/dist/transports/local.d.ts +14 -4
- package/dist/transports/local.d.ts.map +1 -1
- package/dist/transports/remote.d.ts.map +1 -1
- package/dist/types/chat-schema.d.ts +5 -5
- package/dist/types/config.d.ts +9 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/events.d.ts +7 -6
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/provider-settings.d.ts +2 -2
- package/dist/types/provider-settings.d.ts.map +1 -1
- package/dist/types/session.d.ts +5 -2
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/ClineCore.ts +691 -6
- package/src/account/cline-account-service.ts +44 -6
- package/src/cron/cron-event-ingress.ts +357 -0
- package/src/cron/cron-materializer.ts +97 -0
- package/src/cron/cron-reconciler.ts +241 -0
- package/src/cron/cron-report-writer.ts +153 -0
- package/src/cron/cron-runner.ts +495 -0
- package/src/cron/cron-schema.ts +127 -0
- package/src/cron/cron-service.ts +163 -0
- package/src/cron/cron-spec-parser.ts +489 -0
- package/src/cron/cron-watcher.ts +102 -0
- package/src/cron/index.ts +10 -0
- package/src/cron/scheduler.ts +141 -6
- package/src/cron/sqlite-cron-store.ts +1286 -0
- package/src/extensions/plugin/plugin-config-loader.ts +21 -1
- package/src/extensions/plugin/plugin-loader.ts +25 -9
- package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +151 -1
- package/src/extensions/plugin/plugin-sandbox.ts +131 -7
- package/src/extensions/tools/constants.ts +2 -0
- package/src/extensions/tools/definitions.ts +31 -22
- package/src/extensions/tools/executors/editor.ts +4 -3
- package/src/extensions/tools/helpers.ts +24 -0
- package/src/extensions/tools/index.ts +1 -2
- package/src/extensions/tools/presets.ts +1 -1
- package/src/extensions/tools/schemas.ts +13 -18
- package/src/extensions/tools/team/delegated-agent.ts +8 -3
- package/src/extensions/tools/team/multi-agent.ts +135 -19
- package/src/extensions/tools/team/team-tools.ts +151 -91
- package/src/extensions/tools/types.ts +0 -6
- package/src/hooks/hook-bridge.ts +489 -0
- package/src/hooks/hook-file-hooks.ts +58 -3
- package/src/hooks/hook-registry.ts +257 -0
- package/src/hub/browser-websocket.ts +26 -4
- package/src/hub/client.ts +72 -13
- package/src/hub/daemon-entry.ts +35 -0
- package/src/hub/daemon.ts +117 -14
- package/src/hub/defaults.ts +39 -12
- package/src/hub/runtime-handlers.ts +4 -3
- package/src/hub/server.ts +506 -77
- package/src/hub/session-client.ts +43 -1
- package/src/hub/start-shared-server.ts +3 -0
- package/src/hub/ui-client.ts +4 -0
- package/src/index.ts +46 -1
- package/src/llms/cline-recommended-models.ts +167 -0
- package/src/llms/handler-factory.ts +56 -0
- package/src/llms/provider-defaults.ts +17 -1
- package/src/llms/provider-settings.ts +48 -1
- package/src/llms/runtime-registry.ts +1 -0
- package/src/runtime/agent-config-adapter.ts +636 -0
- package/src/runtime/agent-runtime-config-builder.ts +205 -0
- package/src/runtime/error-feedback.ts +142 -0
- package/src/runtime/history.ts +137 -0
- package/src/runtime/host.ts +22 -0
- package/src/runtime/loop-detection.ts +162 -0
- package/src/runtime/mistake-tracker.ts +221 -0
- package/src/runtime/runtime-builder.ts +61 -5
- package/src/runtime/runtime-event-adapter.ts +412 -0
- package/src/runtime/runtime-host.ts +45 -1
- package/src/runtime/session-runtime-orchestrator.ts +1253 -0
- package/src/runtime/session-runtime.ts +16 -2
- package/src/runtime/user-input-builder.ts +167 -0
- package/src/services/local-runtime-bootstrap.ts +128 -22
- package/src/services/plugin-tools.ts +1 -0
- package/src/services/providers/local-provider-registry.ts +273 -57
- package/src/services/providers/local-provider-service.ts +67 -7
- package/src/services/session-data.ts +16 -14
- package/src/services/session-telemetry.ts +6 -15
- package/src/services/storage/file-team-store.ts +1 -5
- package/src/services/storage/provider-settings-legacy-migration.ts +8 -47
- package/src/services/storage/provider-settings-manager.ts +16 -1
- package/src/services/storage/sqlite-team-store.ts +1 -5
- package/src/session/conversation-store.ts +77 -0
- package/src/session/message-builder.ts +941 -0
- package/src/transports/hub.ts +458 -33
- package/src/transports/local.ts +296 -65
- package/src/transports/remote.ts +1 -0
- package/src/types/config.ts +9 -0
- package/src/types/events.ts +8 -6
- package/src/types/index.ts +3 -0
- package/src/types/provider-settings.ts +8 -1
- package/src/types/session.ts +5 -2
- package/src/types.ts +15 -1
- package/dist/cron/index.d.ts +0 -6
- package/dist/cron/index.d.ts.map +0 -1
- 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;
|
|
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 {
|
|
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:
|
|
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,
|
|
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"}
|