@clinebot/core 0.0.35 → 0.0.36
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/README.md +1 -2
- package/dist/ClineCore.d.ts +53 -39
- package/dist/ClineCore.d.ts.map +1 -1
- package/dist/account/index.d.ts +1 -1
- package/dist/account/index.d.ts.map +1 -1
- package/dist/account/rpc.d.ts +6 -6
- package/dist/account/rpc.d.ts.map +1 -1
- package/dist/cron/index.d.ts +6 -0
- package/dist/cron/index.d.ts.map +1 -0
- package/dist/cron/resource-limiter.d.ts +9 -0
- package/dist/cron/resource-limiter.d.ts.map +1 -0
- package/dist/cron/schedule-command-service.d.ts +10 -0
- package/dist/cron/schedule-command-service.d.ts.map +1 -0
- package/dist/cron/schedule-service.d.ts +100 -0
- package/dist/cron/schedule-service.d.ts.map +1 -0
- package/dist/cron/scheduler.d.ts +66 -0
- package/dist/cron/scheduler.d.ts.map +1 -0
- package/dist/cron/sqlite-schedule-store.d.ts +52 -0
- package/dist/cron/sqlite-schedule-store.d.ts.map +1 -0
- package/dist/extensions/config/agent-config-loader.d.ts +4 -3
- package/dist/extensions/config/agent-config-loader.d.ts.map +1 -1
- package/dist/extensions/config/runtime-commands.d.ts +1 -0
- package/dist/extensions/config/runtime-commands.d.ts.map +1 -1
- package/dist/extensions/config/user-instruction-config-loader.d.ts +1 -0
- package/dist/extensions/config/user-instruction-config-loader.d.ts.map +1 -1
- package/dist/extensions/context/agentic-compaction.d.ts +2 -2
- package/dist/extensions/context/agentic-compaction.d.ts.map +1 -1
- package/dist/extensions/context/compaction-shared.d.ts +5 -4
- package/dist/extensions/context/compaction-shared.d.ts.map +1 -1
- package/dist/extensions/context/compaction.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-config-loader.d.ts +9 -2
- package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-loader.d.ts +5 -3
- package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-module-import.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-sandbox.d.ts +15 -2
- package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-targeting.d.ts +7 -0
- package/dist/extensions/plugin/plugin-targeting.d.ts.map +1 -0
- package/dist/extensions/plugin-sandbox-bootstrap.js +211 -211
- package/dist/extensions/tools/definitions.d.ts +1 -1
- package/dist/extensions/tools/definitions.d.ts.map +1 -1
- package/dist/extensions/tools/executors/apply-patch.d.ts +3 -1
- package/dist/extensions/tools/executors/apply-patch.d.ts.map +1 -1
- package/dist/extensions/tools/executors/search.d.ts +1 -1
- package/dist/extensions/tools/executors/search.d.ts.map +1 -1
- package/dist/extensions/tools/index.d.ts +2 -0
- package/dist/extensions/tools/index.d.ts.map +1 -1
- package/dist/extensions/tools/presets.d.ts +26 -43
- package/dist/extensions/tools/presets.d.ts.map +1 -1
- package/dist/extensions/tools/runtime.d.ts +25 -0
- package/dist/extensions/tools/runtime.d.ts.map +1 -0
- package/dist/extensions/tools/schemas.d.ts.map +1 -1
- package/dist/extensions/tools/team/team-tools.d.ts +1 -0
- package/dist/extensions/tools/team/team-tools.d.ts.map +1 -1
- package/dist/hooks/hook-file-hooks.d.ts +4 -1
- package/dist/hooks/hook-file-hooks.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/subprocess.d.ts +8 -1
- package/dist/hooks/subprocess.d.ts.map +1 -1
- package/dist/hub/browser-websocket.d.ts +18 -0
- package/dist/hub/browser-websocket.d.ts.map +1 -0
- package/dist/hub/client.d.ts +45 -0
- package/dist/hub/client.d.ts.map +1 -0
- package/dist/hub/connect.d.ts +15 -0
- package/dist/hub/connect.d.ts.map +1 -0
- package/dist/hub/daemon-entry.d.ts +2 -0
- package/dist/hub/daemon-entry.d.ts.map +1 -0
- package/dist/hub/daemon-entry.js +1045 -0
- package/dist/hub/daemon.d.ts +5 -0
- package/dist/hub/daemon.d.ts.map +1 -0
- package/dist/hub/defaults.d.ts +13 -0
- package/dist/hub/defaults.d.ts.map +1 -0
- package/dist/hub/discovery.d.ts +29 -0
- package/dist/hub/discovery.d.ts.map +1 -0
- package/dist/hub/index.d.ts +15 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +1044 -0
- package/dist/hub/native-transport.d.ts +17 -0
- package/dist/hub/native-transport.d.ts.map +1 -0
- package/dist/hub/runtime-handlers.d.ts +11 -0
- package/dist/hub/runtime-handlers.d.ts.map +1 -0
- package/dist/hub/server.d.ts +86 -0
- package/dist/hub/server.d.ts.map +1 -0
- package/dist/hub/session-client.d.ts +87 -0
- package/dist/hub/session-client.d.ts.map +1 -0
- package/dist/hub/start-shared-server.d.ts +19 -0
- package/dist/hub/start-shared-server.d.ts.map +1 -0
- package/dist/hub/transport.d.ts +8 -0
- package/dist/hub/transport.d.ts.map +1 -0
- package/dist/hub/ui-client.d.ts +44 -0
- package/dist/hub/ui-client.d.ts.map +1 -0
- package/dist/hub/workspace.d.ts +4 -0
- package/dist/hub/workspace.d.ts.map +1 -0
- package/dist/index.d.ts +26 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +498 -476
- package/dist/llms/configured-provider-registry.d.ts +28 -0
- package/dist/llms/configured-provider-registry.d.ts.map +1 -0
- package/dist/llms/provider-defaults.d.ts +27 -0
- package/dist/llms/provider-defaults.d.ts.map +1 -0
- package/dist/llms/provider-settings.d.ts +202 -0
- package/dist/llms/provider-settings.d.ts.map +1 -0
- package/dist/llms/runtime-config.d.ts +4 -0
- package/dist/llms/runtime-config.d.ts.map +1 -0
- package/dist/llms/runtime-registry.d.ts +20 -0
- package/dist/llms/runtime-registry.d.ts.map +1 -0
- package/dist/llms/runtime-types.d.ts +85 -0
- package/dist/llms/runtime-types.d.ts.map +1 -0
- package/dist/runtime/host.d.ts +1 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/rules.d.ts +1 -0
- package/dist/runtime/rules.d.ts.map +1 -1
- package/dist/runtime/runtime-builder.d.ts.map +1 -1
- package/dist/runtime/runtime-host.d.ts +22 -24
- package/dist/runtime/runtime-host.d.ts.map +1 -1
- package/dist/runtime/runtime-oauth-token-manager.d.ts.map +1 -1
- package/dist/runtime/session-runtime.d.ts +1 -19
- package/dist/runtime/session-runtime.d.ts.map +1 -1
- package/dist/services/global-settings.d.ts +12 -0
- package/dist/services/global-settings.d.ts.map +1 -0
- package/dist/services/local-runtime-bootstrap.d.ts +9 -3
- package/dist/services/local-runtime-bootstrap.d.ts.map +1 -1
- package/dist/services/plugin-tools.d.ts +16 -0
- package/dist/services/plugin-tools.d.ts.map +1 -0
- package/dist/services/providers/local-provider-registry.d.ts +4 -4
- package/dist/services/providers/local-provider-registry.d.ts.map +1 -1
- package/dist/services/providers/local-provider-service.d.ts +13 -13
- package/dist/services/providers/local-provider-service.d.ts.map +1 -1
- package/dist/services/session-data.d.ts +1 -1
- package/dist/services/session-data.d.ts.map +1 -1
- package/dist/services/storage/provider-settings-legacy-migration.d.ts +1 -1
- package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -1
- package/dist/services/telemetry/index.js +28 -15
- package/dist/services/workspace-manifest.d.ts +11 -0
- package/dist/services/workspace-manifest.d.ts.map +1 -1
- package/dist/session/persistence-service.d.ts +11 -23
- package/dist/session/persistence-service.d.ts.map +1 -1
- package/dist/session/session-manifest-store.d.ts +22 -0
- package/dist/session/session-manifest-store.d.ts.map +1 -0
- package/dist/session/session-row.d.ts +93 -0
- package/dist/session/session-row.d.ts.map +1 -0
- package/dist/session/session-service.d.ts +2 -102
- package/dist/session/session-service.d.ts.map +1 -1
- package/dist/session/subagent-session-manager.d.ts +36 -0
- package/dist/session/subagent-session-manager.d.ts.map +1 -0
- package/dist/session/team-persistence-store.d.ts +24 -0
- package/dist/session/team-persistence-store.d.ts.map +1 -0
- package/dist/transports/hub.d.ts +47 -0
- package/dist/transports/hub.d.ts.map +1 -0
- package/dist/transports/local.d.ts +10 -6
- package/dist/transports/local.d.ts.map +1 -1
- package/dist/transports/remote.d.ts +10 -0
- package/dist/transports/remote.d.ts.map +1 -0
- package/dist/transports/runtime-host-support.d.ts +3 -2
- package/dist/transports/runtime-host-support.d.ts.map +1 -1
- package/dist/types/chat-schema.d.ts +10 -12
- package/dist/types/chat-schema.d.ts.map +1 -1
- package/dist/types/config.d.ts +8 -7
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/provider-settings.d.ts +4 -5
- package/dist/types/provider-settings.d.ts.map +1 -1
- package/dist/types/session.d.ts +2 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +20 -6
- package/src/ClineCore.ts +68 -40
- package/src/account/index.ts +3 -3
- package/src/account/rpc.ts +12 -12
- package/src/cron/index.ts +5 -0
- package/src/cron/resource-limiter.ts +46 -0
- package/src/cron/schedule-command-service.ts +193 -0
- package/src/cron/schedule-service.ts +703 -0
- package/src/cron/scheduler.ts +637 -0
- package/src/cron/sqlite-schedule-store.ts +708 -0
- package/src/extensions/config/agent-config-loader.ts +17 -7
- package/src/extensions/config/runtime-commands.ts +6 -0
- package/src/extensions/config/user-instruction-config-loader.ts +1 -0
- package/src/extensions/context/agentic-compaction.ts +3 -3
- package/src/extensions/context/basic-compaction.ts +2 -2
- package/src/extensions/context/compaction-shared.ts +5 -4
- package/src/extensions/context/compaction.ts +3 -3
- package/src/extensions/plugin/plugin-config-loader.ts +17 -2
- package/src/extensions/plugin/plugin-loader.ts +48 -4
- package/src/extensions/plugin/plugin-module-import.ts +0 -2
- package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +93 -39
- package/src/extensions/plugin/plugin-sandbox.ts +47 -27
- package/src/extensions/plugin/plugin-targeting.ts +32 -0
- package/src/extensions/tools/definitions.ts +30 -49
- package/src/extensions/tools/executors/apply-patch.ts +69 -80
- package/src/extensions/tools/executors/search.ts +195 -3
- package/src/extensions/tools/index.ts +10 -0
- package/src/extensions/tools/presets.ts +31 -46
- package/src/extensions/tools/runtime.ts +261 -0
- package/src/extensions/tools/schemas.ts +4 -2
- package/src/extensions/tools/team/team-tools.ts +21 -0
- package/src/hooks/hook-file-hooks.ts +8 -2
- package/src/hooks/index.ts +0 -7
- package/src/hooks/subprocess-runner.ts +1 -1
- package/src/hooks/subprocess.ts +9 -0
- package/src/hub/browser-websocket.ts +137 -0
- package/src/hub/client.ts +574 -0
- package/src/hub/connect.ts +156 -0
- package/src/hub/daemon-entry.ts +87 -0
- package/src/hub/daemon.ts +181 -0
- package/src/hub/defaults.ts +43 -0
- package/src/hub/discovery.ts +247 -0
- package/src/hub/index.ts +14 -0
- package/src/hub/native-transport.ts +31 -0
- package/src/hub/runtime-handlers.ts +140 -0
- package/src/hub/server.ts +1888 -0
- package/src/hub/session-client.ts +460 -0
- package/src/hub/start-shared-server.ts +58 -0
- package/src/hub/transport.ts +14 -0
- package/src/hub/ui-client.ts +122 -0
- package/src/hub/workspace.ts +19 -0
- package/src/index.ts +124 -68
- package/src/llms/configured-provider-registry.ts +193 -0
- package/src/llms/provider-defaults.ts +637 -0
- package/src/llms/provider-settings.ts +263 -0
- package/src/llms/runtime-config.ts +43 -0
- package/src/llms/runtime-registry.ts +171 -0
- package/src/llms/runtime-types.ts +121 -0
- package/src/runtime/host.ts +107 -269
- package/src/runtime/index.ts +1 -0
- package/src/runtime/rules.ts +12 -0
- package/src/runtime/runtime-builder.ts +24 -8
- package/src/runtime/runtime-host.ts +89 -61
- package/src/runtime/runtime-oauth-token-manager.ts +11 -15
- package/src/runtime/session-runtime.ts +0 -24
- package/src/services/global-settings.ts +122 -0
- package/src/services/local-runtime-bootstrap.ts +51 -13
- package/src/services/plugin-tools.ts +85 -0
- package/src/services/providers/local-provider-registry.ts +6 -6
- package/src/services/providers/local-provider-service.ts +42 -37
- package/src/services/session-data.ts +15 -9
- package/src/services/storage/provider-settings-legacy-migration.ts +6 -4
- package/src/services/storage/provider-settings-manager.ts +1 -1
- package/src/services/workspace-manifest.ts +18 -0
- package/src/session/file-session-service.ts +1 -1
- package/src/session/index.ts +6 -27
- package/src/session/persistence-service.ts +119 -504
- package/src/session/session-manifest-store.ts +158 -0
- package/src/session/session-row.ts +199 -0
- package/src/session/session-service.ts +17 -376
- package/src/session/session-team-coordination.ts +1 -1
- package/src/session/subagent-session-manager.ts +397 -0
- package/src/session/team-persistence-store.ts +176 -0
- package/src/transports/hub.ts +656 -0
- package/src/transports/local.ts +135 -40
- package/src/transports/remote.ts +26 -0
- package/src/transports/runtime-host-support.ts +63 -9
- package/src/types/chat-schema.ts +4 -5
- package/src/types/config.ts +8 -7
- package/src/types/provider-settings.ts +11 -7
- package/src/types/session.ts +2 -4
- package/src/types.ts +27 -1
- package/dist/hooks/persistent.d.ts +0 -64
- package/dist/hooks/persistent.d.ts.map +0 -1
- package/dist/runtime/rpc-runtime-ensure.d.ts +0 -65
- package/dist/runtime/rpc-runtime-ensure.d.ts.map +0 -1
- package/dist/runtime/rpc-spawn-lease.d.ts +0 -8
- package/dist/runtime/rpc-spawn-lease.d.ts.map +0 -1
- package/dist/session/rpc-session-service.d.ts +0 -16
- package/dist/session/rpc-session-service.d.ts.map +0 -1
- package/dist/session/sqlite-rpc-session-backend.d.ts +0 -31
- package/dist/session/sqlite-rpc-session-backend.d.ts.map +0 -1
- package/dist/transports/rpc.d.ts +0 -51
- package/dist/transports/rpc.d.ts.map +0 -1
- package/src/ClineCore.test.ts +0 -226
- package/src/account/cline-account-service.test.ts +0 -185
- package/src/account/featurebase-token.test.ts +0 -175
- package/src/account/rpc.test.ts +0 -63
- package/src/auth/bounded-ttl-cache.test.ts +0 -38
- package/src/auth/client.test.ts +0 -69
- package/src/auth/cline.test.ts +0 -267
- package/src/auth/codex.test.ts +0 -170
- package/src/auth/oca.test.ts +0 -340
- package/src/auth/server.test.ts +0 -287
- package/src/auth/utils.test.ts +0 -128
- package/src/extensions/config/agent-config-loader.test.ts +0 -236
- package/src/extensions/config/hooks-config-loader.test.ts +0 -20
- package/src/extensions/config/runtime-commands.test.ts +0 -115
- package/src/extensions/config/unified-config-file-watcher.test.ts +0 -196
- package/src/extensions/config/user-instruction-config-loader.test.ts +0 -246
- package/src/extensions/context/compaction.test.ts +0 -483
- package/src/extensions/mcp/config-loader.test.ts +0 -238
- package/src/extensions/mcp/manager.test.ts +0 -105
- package/src/extensions/plugin/plugin-config-loader.test.ts +0 -184
- package/src/extensions/plugin/plugin-loader.test.ts +0 -292
- package/src/extensions/plugin/plugin-sandbox.test.ts +0 -423
- package/src/extensions/tools/definitions.test.ts +0 -780
- package/src/extensions/tools/executors/bash.test.ts +0 -87
- package/src/extensions/tools/executors/editor.test.ts +0 -35
- package/src/extensions/tools/executors/file-read.test.ts +0 -125
- package/src/extensions/tools/model-tool-routing.test.ts +0 -86
- package/src/extensions/tools/presets.test.ts +0 -70
- package/src/extensions/tools/team/multi-agent.lifecycle.test.ts +0 -455
- package/src/extensions/tools/team/spawn-agent-tool.test.ts +0 -381
- package/src/extensions/tools/team/team-tools.test.ts +0 -918
- package/src/hooks/checkpoint-hooks.test.ts +0 -168
- package/src/hooks/hook-file-hooks.test.ts +0 -311
- package/src/hooks/persistent.ts +0 -661
- package/src/runtime/history.test.ts +0 -114
- package/src/runtime/host.test.ts +0 -230
- package/src/runtime/rpc-runtime-ensure.test.ts +0 -123
- package/src/runtime/rpc-runtime-ensure.ts +0 -659
- package/src/runtime/rpc-spawn-lease.test.ts +0 -81
- package/src/runtime/rpc-spawn-lease.ts +0 -156
- package/src/runtime/runtime-builder.team-persistence.test.ts +0 -245
- package/src/runtime/runtime-builder.test.ts +0 -615
- package/src/runtime/runtime-oauth-token-manager.test.ts +0 -137
- package/src/runtime/runtime-parity.test.ts +0 -143
- package/src/services/providers/local-provider-service.test.ts +0 -1062
- package/src/services/session-data.test.ts +0 -160
- package/src/services/storage/provider-settings-legacy-migration.test.ts +0 -424
- package/src/services/storage/provider-settings-manager.test.ts +0 -191
- package/src/services/telemetry/OpenTelemetryAdapter.test.ts +0 -157
- package/src/services/telemetry/OpenTelemetryProvider.test.ts +0 -326
- package/src/services/telemetry/TelemetryLoggerSink.test.ts +0 -42
- package/src/services/telemetry/TelemetryService.test.ts +0 -134
- package/src/services/telemetry/distinct-id.test.ts +0 -57
- package/src/services/workspace/file-indexer.d.ts +0 -11
- package/src/services/workspace/file-indexer.test.ts +0 -156
- package/src/services/workspace/mention-enricher.test.ts +0 -106
- package/src/session/persistence-service.test.ts +0 -300
- package/src/session/rpc-session-service.ts +0 -114
- package/src/session/session-service.team-persistence.test.ts +0 -48
- package/src/session/sqlite-rpc-session-backend.ts +0 -301
- package/src/transports/local.e2e.test.ts +0 -380
- package/src/transports/local.test.ts +0 -2559
- package/src/transports/rpc.test.ts +0 -82
- package/src/transports/rpc.ts +0 -665
package/src/transports/local.ts
CHANGED
|
@@ -29,6 +29,7 @@ import type { HookEventPayload } from "../hooks";
|
|
|
29
29
|
import { DefaultRuntimeBuilder } from "../runtime/runtime-builder";
|
|
30
30
|
import type {
|
|
31
31
|
RuntimeHost,
|
|
32
|
+
RuntimeHostSubscribeOptions,
|
|
32
33
|
SendSessionInput,
|
|
33
34
|
SessionAccumulatedUsage,
|
|
34
35
|
StartSessionInput,
|
|
@@ -47,6 +48,7 @@ import {
|
|
|
47
48
|
handleAgentEvent,
|
|
48
49
|
} from "../services/agent-events";
|
|
49
50
|
import { resolveWorkspacePath } from "../services/config";
|
|
51
|
+
import { filterDisabledTools } from "../services/global-settings";
|
|
50
52
|
import { prepareLocalRuntimeBootstrap } from "../services/local-runtime-bootstrap";
|
|
51
53
|
import { nowIso } from "../services/session-artifacts";
|
|
52
54
|
import {
|
|
@@ -73,15 +75,14 @@ import {
|
|
|
73
75
|
} from "../services/usage";
|
|
74
76
|
import { enrichPromptWithMentions } from "../services/workspace";
|
|
75
77
|
import type { FileSessionService } from "../session/file-session-service";
|
|
76
|
-
import type { RpcCoreSessionService } from "../session/rpc-session-service";
|
|
77
78
|
import {
|
|
78
79
|
type SessionManifest,
|
|
79
80
|
SessionManifestSchema,
|
|
80
81
|
} from "../session/session-manifest";
|
|
82
|
+
import type { SessionRow } from "../session/session-row";
|
|
81
83
|
import type {
|
|
82
84
|
CoreSessionService,
|
|
83
85
|
RootSessionArtifacts,
|
|
84
|
-
SessionRow,
|
|
85
86
|
} from "../session/session-service";
|
|
86
87
|
import {
|
|
87
88
|
buildTeamRunContinuationPrompt,
|
|
@@ -106,10 +107,7 @@ import {
|
|
|
106
107
|
replaySubagentHookEvent,
|
|
107
108
|
} from "./runtime-host-support";
|
|
108
109
|
|
|
109
|
-
type SessionBackend =
|
|
110
|
-
| CoreSessionService
|
|
111
|
-
| RpcCoreSessionService
|
|
112
|
-
| FileSessionService;
|
|
110
|
+
type SessionBackend = CoreSessionService | FileSessionService;
|
|
113
111
|
|
|
114
112
|
const MAX_SCAN_LIMIT = 5000;
|
|
115
113
|
const MAX_USER_FILE_BYTES = 20 * 1_000 * 1_024;
|
|
@@ -129,13 +127,57 @@ async function loadUserFileContent(path: string): Promise<string> {
|
|
|
129
127
|
return content;
|
|
130
128
|
}
|
|
131
129
|
|
|
130
|
+
function toActiveSessionRecord(session: ActiveSession): SessionRecord {
|
|
131
|
+
return {
|
|
132
|
+
sessionId: session.sessionId,
|
|
133
|
+
source: session.source,
|
|
134
|
+
pid: process.pid,
|
|
135
|
+
startedAt: session.startedAt,
|
|
136
|
+
endedAt: null,
|
|
137
|
+
exitCode: null,
|
|
138
|
+
status: "running",
|
|
139
|
+
interactive: session.interactive,
|
|
140
|
+
provider: session.config.providerId,
|
|
141
|
+
model: session.config.modelId,
|
|
142
|
+
cwd: session.config.cwd,
|
|
143
|
+
workspaceRoot: resolveWorkspacePath(session.config),
|
|
144
|
+
teamName: session.config.teamName?.trim() || undefined,
|
|
145
|
+
enableTools: session.config.enableTools,
|
|
146
|
+
enableSpawn: session.config.enableSpawnAgent,
|
|
147
|
+
enableTeams: session.config.enableAgentTeams,
|
|
148
|
+
parentSessionId:
|
|
149
|
+
typeof session.sessionMetadata?.parentSessionId === "string"
|
|
150
|
+
? session.sessionMetadata.parentSessionId
|
|
151
|
+
: undefined,
|
|
152
|
+
parentAgentId:
|
|
153
|
+
typeof session.sessionMetadata?.parentAgentId === "string"
|
|
154
|
+
? session.sessionMetadata.parentAgentId
|
|
155
|
+
: undefined,
|
|
156
|
+
agentId:
|
|
157
|
+
typeof session.sessionMetadata?.agentId === "string"
|
|
158
|
+
? session.sessionMetadata.agentId
|
|
159
|
+
: undefined,
|
|
160
|
+
conversationId:
|
|
161
|
+
typeof session.sessionMetadata?.conversationId === "string"
|
|
162
|
+
? session.sessionMetadata.conversationId
|
|
163
|
+
: undefined,
|
|
164
|
+
isSubagent:
|
|
165
|
+
typeof session.sessionMetadata?.isSubagent === "boolean"
|
|
166
|
+
? session.sessionMetadata.isSubagent
|
|
167
|
+
: false,
|
|
168
|
+
prompt: session.pendingPrompt,
|
|
169
|
+
metadata: session.sessionMetadata,
|
|
170
|
+
messagesPath: session.artifacts?.messagesPath,
|
|
171
|
+
updatedAt: session.startedAt,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
|
|
132
175
|
export interface LocalRuntimeHostOptions {
|
|
133
176
|
distinctId?: string;
|
|
134
177
|
sessionService: SessionBackend;
|
|
135
178
|
runtimeBuilder?: RuntimeBuilder;
|
|
136
179
|
createAgent?: (config: AgentConfig) => Agent;
|
|
137
180
|
defaultToolExecutors?: Partial<ToolExecutors>;
|
|
138
|
-
teamToolsFactory?: import("../runtime/session-runtime").TeamToolsFactory;
|
|
139
181
|
toolPolicies?: AgentConfig["toolPolicies"];
|
|
140
182
|
providerSettingsManager?: ProviderSettingsManager;
|
|
141
183
|
oauthTokenManager?: RuntimeOAuthTokenManager;
|
|
@@ -143,6 +185,12 @@ export interface LocalRuntimeHostOptions {
|
|
|
143
185
|
requestToolApproval?: (
|
|
144
186
|
request: ToolApprovalRequest,
|
|
145
187
|
) => Promise<ToolApprovalResult>;
|
|
188
|
+
/**
|
|
189
|
+
* Default custom `fetch` implementation threaded into every
|
|
190
|
+
* `ProviderConfig.fetch` built during local session bootstrap. Used by
|
|
191
|
+
* the AI gateway providers when issuing HTTP requests.
|
|
192
|
+
*/
|
|
193
|
+
fetch?: typeof fetch;
|
|
146
194
|
}
|
|
147
195
|
|
|
148
196
|
export class LocalRuntimeHost implements RuntimeHost {
|
|
@@ -151,11 +199,11 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
151
199
|
private readonly runtimeBuilder: RuntimeBuilder;
|
|
152
200
|
private readonly createAgentInstance: (config: AgentConfig) => Agent;
|
|
153
201
|
private readonly defaultToolExecutors?: Partial<ToolExecutors>;
|
|
154
|
-
private readonly teamToolsFactory?: import("../runtime/session-runtime").TeamToolsFactory;
|
|
155
202
|
private readonly defaultToolPolicies?: AgentConfig["toolPolicies"];
|
|
156
203
|
private readonly providerSettingsManager: ProviderSettingsManager;
|
|
157
204
|
private readonly oauthTokenManager: RuntimeOAuthTokenManager;
|
|
158
205
|
private readonly defaultTelemetry?: ITelemetryService;
|
|
206
|
+
private readonly defaultFetch?: typeof fetch;
|
|
159
207
|
private readonly defaultRequestToolApproval?: (
|
|
160
208
|
request: ToolApprovalRequest,
|
|
161
209
|
) => Promise<ToolApprovalResult>;
|
|
@@ -176,7 +224,6 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
176
224
|
this.createAgentInstance =
|
|
177
225
|
options.createAgent ?? ((config) => new Agent(config));
|
|
178
226
|
this.defaultToolExecutors = options.defaultToolExecutors;
|
|
179
|
-
this.teamToolsFactory = options.teamToolsFactory;
|
|
180
227
|
this.defaultToolPolicies = options.toolPolicies;
|
|
181
228
|
this.providerSettingsManager =
|
|
182
229
|
options.providerSettingsManager ?? new ProviderSettingsManager();
|
|
@@ -188,6 +235,7 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
188
235
|
});
|
|
189
236
|
this.defaultTelemetry = options.telemetry;
|
|
190
237
|
this.defaultTelemetry?.setDistinctId(distinctId);
|
|
238
|
+
this.defaultFetch = options.fetch;
|
|
191
239
|
this.defaultRequestToolApproval = options.requestToolApproval;
|
|
192
240
|
}
|
|
193
241
|
|
|
@@ -198,21 +246,7 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
198
246
|
const startedAt = nowIso();
|
|
199
247
|
const requestedSessionId = input.config.sessionId?.trim() ?? "";
|
|
200
248
|
const sessionId = requestedSessionId || createSessionId();
|
|
201
|
-
const
|
|
202
|
-
? await this.getRow(sessionId)
|
|
203
|
-
: undefined;
|
|
204
|
-
const startInput: StartSessionInput =
|
|
205
|
-
resumedRow &&
|
|
206
|
-
!input.config.teamName?.trim() &&
|
|
207
|
-
resumedRow.teamName?.trim()
|
|
208
|
-
? {
|
|
209
|
-
...input,
|
|
210
|
-
config: {
|
|
211
|
-
...input.config,
|
|
212
|
-
teamName: resumedRow.teamName,
|
|
213
|
-
},
|
|
214
|
-
}
|
|
215
|
-
: input;
|
|
249
|
+
const startInput: StartSessionInput = input;
|
|
216
250
|
this.usageBySession.set(sessionId, createInitialAccumulatedUsage());
|
|
217
251
|
|
|
218
252
|
const sessionsDir =
|
|
@@ -250,6 +284,8 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
250
284
|
messages_path: messagesPath,
|
|
251
285
|
});
|
|
252
286
|
|
|
287
|
+
const sessionToolExecutors =
|
|
288
|
+
input.localRuntime?.defaultToolExecutors ?? this.defaultToolExecutors;
|
|
253
289
|
let bootstrap!: Awaited<ReturnType<typeof prepareLocalRuntimeBootstrap>>;
|
|
254
290
|
bootstrap = await prepareLocalRuntimeBootstrap({
|
|
255
291
|
input: startInput,
|
|
@@ -257,16 +293,17 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
257
293
|
sessionId,
|
|
258
294
|
providerSettingsManager: this.providerSettingsManager,
|
|
259
295
|
defaultTelemetry: this.defaultTelemetry,
|
|
260
|
-
defaultToolExecutors:
|
|
261
|
-
teamToolsFactory: this.teamToolsFactory,
|
|
296
|
+
defaultToolExecutors: sessionToolExecutors,
|
|
262
297
|
defaultToolPolicies: this.defaultToolPolicies,
|
|
263
298
|
defaultRequestToolApproval: this.defaultRequestToolApproval,
|
|
299
|
+
defaultFetch: this.defaultFetch,
|
|
264
300
|
onPluginEvent: (event) => void this.handlePluginEvent(sessionId, event),
|
|
265
301
|
onTeamEvent: (event: TeamEvent) => {
|
|
266
302
|
void this.handleTeamEvent(sessionId, event);
|
|
267
303
|
bootstrap.config.onTeamEvent?.(event);
|
|
268
304
|
},
|
|
269
|
-
createSpawnTool: () =>
|
|
305
|
+
createSpawnTool: () =>
|
|
306
|
+
this.createSpawnTool(bootstrap.config, sessionId, sessionToolExecutors),
|
|
270
307
|
readSessionMetadata: async () =>
|
|
271
308
|
(await this.get(sessionId))?.metadata as
|
|
272
309
|
| Record<string, unknown>
|
|
@@ -404,6 +441,18 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
404
441
|
|
|
405
442
|
async send(input: SendSessionInput): Promise<AgentResult | undefined> {
|
|
406
443
|
const session = this.getSessionOrThrow(input.sessionId);
|
|
444
|
+
const canStartRun =
|
|
445
|
+
typeof (session.agent as Agent & { canStartRun?: () => boolean })
|
|
446
|
+
.canStartRun === "function"
|
|
447
|
+
? (
|
|
448
|
+
session.agent as Agent & {
|
|
449
|
+
canStartRun: () => boolean;
|
|
450
|
+
}
|
|
451
|
+
).canStartRun()
|
|
452
|
+
: true;
|
|
453
|
+
const delivery =
|
|
454
|
+
input.delivery ??
|
|
455
|
+
(session.interactive && !canStartRun ? ("queue" as const) : undefined);
|
|
407
456
|
session.config.telemetry?.capture({
|
|
408
457
|
event: "session.input_sent",
|
|
409
458
|
properties: {
|
|
@@ -411,13 +460,13 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
411
460
|
promptLength: input.prompt.length,
|
|
412
461
|
userImageCount: input.userImages?.length ?? 0,
|
|
413
462
|
userFileCount: input.userFiles?.length ?? 0,
|
|
414
|
-
delivery:
|
|
463
|
+
delivery: delivery ?? "immediate",
|
|
415
464
|
},
|
|
416
465
|
});
|
|
417
|
-
if (
|
|
466
|
+
if (delivery === "queue" || delivery === "steer") {
|
|
418
467
|
this.enqueuePendingPrompt(input.sessionId, {
|
|
419
468
|
prompt: input.prompt,
|
|
420
|
-
delivery
|
|
469
|
+
delivery,
|
|
421
470
|
userImages: input.userImages,
|
|
422
471
|
userFiles: input.userFiles,
|
|
423
472
|
});
|
|
@@ -506,13 +555,25 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
506
555
|
}
|
|
507
556
|
|
|
508
557
|
async get(sessionId: string): Promise<SessionRecord | undefined> {
|
|
558
|
+
const active = this.sessions.get(sessionId);
|
|
559
|
+
if (active) {
|
|
560
|
+
return toActiveSessionRecord(active);
|
|
561
|
+
}
|
|
509
562
|
const row = await this.getRow(sessionId);
|
|
510
563
|
return row ? toSessionRecord(row) : undefined;
|
|
511
564
|
}
|
|
512
565
|
|
|
513
566
|
async list(limit = 200): Promise<SessionRecord[]> {
|
|
514
567
|
const rows = await this.listRows(limit);
|
|
515
|
-
|
|
568
|
+
const persisted = rows.map(toSessionRecord);
|
|
569
|
+
const seen = new Set(persisted.map((row) => row.sessionId));
|
|
570
|
+
for (const active of this.sessions.values()) {
|
|
571
|
+
if (seen.has(active.sessionId)) {
|
|
572
|
+
continue;
|
|
573
|
+
}
|
|
574
|
+
persisted.unshift(toActiveSessionRecord(active));
|
|
575
|
+
}
|
|
576
|
+
return persisted.slice(0, limit);
|
|
516
577
|
}
|
|
517
578
|
|
|
518
579
|
async delete(sessionId: string): Promise<boolean> {
|
|
@@ -570,8 +631,11 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
570
631
|
});
|
|
571
632
|
}
|
|
572
633
|
|
|
573
|
-
subscribe(
|
|
574
|
-
|
|
634
|
+
subscribe(
|
|
635
|
+
listener: (event: CoreSessionEvent) => void,
|
|
636
|
+
options?: RuntimeHostSubscribeOptions,
|
|
637
|
+
): () => void {
|
|
638
|
+
return this.events.subscribe(listener, options);
|
|
575
639
|
}
|
|
576
640
|
|
|
577
641
|
async updateSessionModel(sessionId: string, modelId: string): Promise<void> {
|
|
@@ -844,12 +908,39 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
844
908
|
}
|
|
845
909
|
notifyTeamRunWaiters(session);
|
|
846
910
|
|
|
911
|
+
const cleanupErrors: unknown[] = [];
|
|
912
|
+
const recordCleanupError = (stage: string, error: unknown) => {
|
|
913
|
+
cleanupErrors.push(error);
|
|
914
|
+
session.config.logger?.log("Session shutdown cleanup failed", {
|
|
915
|
+
sessionId: session.sessionId,
|
|
916
|
+
stage,
|
|
917
|
+
error,
|
|
918
|
+
severity: "warn",
|
|
919
|
+
});
|
|
920
|
+
};
|
|
921
|
+
|
|
847
922
|
if (session.artifacts) {
|
|
848
|
-
|
|
849
|
-
|
|
923
|
+
try {
|
|
924
|
+
await this.updateStatus(session, input.status, input.exitCode);
|
|
925
|
+
} catch (error) {
|
|
926
|
+
recordCleanupError("update_status", error);
|
|
927
|
+
}
|
|
928
|
+
try {
|
|
929
|
+
await session.agent.shutdown(input.shutdownReason);
|
|
930
|
+
} catch (error) {
|
|
931
|
+
recordCleanupError("agent_shutdown", error);
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
try {
|
|
935
|
+
await Promise.resolve(session.runtime.shutdown(input.shutdownReason));
|
|
936
|
+
} catch (error) {
|
|
937
|
+
recordCleanupError("runtime_shutdown", error);
|
|
938
|
+
}
|
|
939
|
+
try {
|
|
940
|
+
await session.pluginSandboxShutdown?.();
|
|
941
|
+
} catch (error) {
|
|
942
|
+
recordCleanupError("plugin_sandbox_shutdown", error);
|
|
850
943
|
}
|
|
851
|
-
await Promise.resolve(session.runtime.shutdown(input.shutdownReason));
|
|
852
|
-
await session.pluginSandboxShutdown?.();
|
|
853
944
|
this.sessions.delete(session.sessionId);
|
|
854
945
|
this.emit({
|
|
855
946
|
type: "ended",
|
|
@@ -859,6 +950,9 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
859
950
|
ts: Date.now(),
|
|
860
951
|
},
|
|
861
952
|
});
|
|
953
|
+
if (cleanupErrors.length > 0 && input.status === "failed") {
|
|
954
|
+
throw cleanupErrors[0];
|
|
955
|
+
}
|
|
862
956
|
}
|
|
863
957
|
|
|
864
958
|
private async updateStatus(
|
|
@@ -1142,6 +1236,7 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
1142
1236
|
private createSpawnTool(
|
|
1143
1237
|
config: CoreSessionConfig,
|
|
1144
1238
|
rootSessionId: string,
|
|
1239
|
+
toolExecutors?: Partial<ToolExecutors>,
|
|
1145
1240
|
): Tool {
|
|
1146
1241
|
const createSubAgentTools = () => {
|
|
1147
1242
|
const tools: Tool[] = config.enableTools
|
|
@@ -1152,13 +1247,13 @@ export class LocalRuntimeHost implements RuntimeHost {
|
|
|
1152
1247
|
mode: config.mode,
|
|
1153
1248
|
})
|
|
1154
1249
|
],
|
|
1155
|
-
executors:
|
|
1250
|
+
executors: toolExecutors,
|
|
1156
1251
|
})
|
|
1157
1252
|
: [];
|
|
1158
1253
|
if (config.enableSpawnAgent) {
|
|
1159
|
-
tools.push(this.createSpawnTool(config, rootSessionId));
|
|
1254
|
+
tools.push(this.createSpawnTool(config, rootSessionId, toolExecutors));
|
|
1160
1255
|
}
|
|
1161
|
-
return tools;
|
|
1256
|
+
return filterDisabledTools(tools);
|
|
1162
1257
|
};
|
|
1163
1258
|
|
|
1164
1259
|
return createSpawnAgentTool({
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { normalizeHubWebSocketUrl } from "../hub/client";
|
|
2
|
+
import { HubRuntimeHost, type HubRuntimeHostOptions } from "./hub";
|
|
3
|
+
|
|
4
|
+
export interface RemoteRuntimeHostOptions
|
|
5
|
+
extends Omit<HubRuntimeHostOptions, "url"> {
|
|
6
|
+
endpoint: string;
|
|
7
|
+
workspaceRoot?: string;
|
|
8
|
+
cwd?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class RemoteRuntimeHost extends HubRuntimeHost {
|
|
12
|
+
constructor(options: RemoteRuntimeHostOptions) {
|
|
13
|
+
super(
|
|
14
|
+
{
|
|
15
|
+
url: normalizeHubWebSocketUrl(options.endpoint),
|
|
16
|
+
authToken: options.authToken,
|
|
17
|
+
clientType: options.clientType ?? "core-remote-runtime",
|
|
18
|
+
displayName: options.displayName ?? "core remote runtime",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
workspaceRoot: options.workspaceRoot,
|
|
22
|
+
cwd: options.cwd,
|
|
23
|
+
},
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,23 +1,41 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import type * as LlmsProviders from "@clinebot/llms";
|
|
4
|
+
import { formatDisplayUserInput } from "@clinebot/shared";
|
|
4
5
|
import type { HookEventPayload } from "../hooks";
|
|
5
|
-
import type {
|
|
6
|
+
import type {
|
|
7
|
+
RuntimeHostSubscribeOptions,
|
|
8
|
+
SessionAccumulatedUsage,
|
|
9
|
+
} from "../runtime/runtime-host";
|
|
6
10
|
import type { CoreSessionEvent } from "../types/events";
|
|
7
11
|
|
|
8
12
|
export class RuntimeHostEventBus {
|
|
9
|
-
private readonly listeners = new Set<
|
|
13
|
+
private readonly listeners = new Set<{
|
|
14
|
+
listener: (event: CoreSessionEvent) => void;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
}>();
|
|
10
17
|
|
|
11
|
-
subscribe(
|
|
12
|
-
|
|
18
|
+
subscribe(
|
|
19
|
+
listener: (event: CoreSessionEvent) => void,
|
|
20
|
+
options?: RuntimeHostSubscribeOptions,
|
|
21
|
+
): () => void {
|
|
22
|
+
const entry = {
|
|
23
|
+
listener,
|
|
24
|
+
sessionId: options?.sessionId?.trim() || undefined,
|
|
25
|
+
};
|
|
26
|
+
this.listeners.add(entry);
|
|
13
27
|
return () => {
|
|
14
|
-
this.listeners.delete(
|
|
28
|
+
this.listeners.delete(entry);
|
|
15
29
|
};
|
|
16
30
|
}
|
|
17
31
|
|
|
18
32
|
emit(event: CoreSessionEvent): void {
|
|
19
|
-
|
|
20
|
-
|
|
33
|
+
const sessionId = event.payload.sessionId?.trim();
|
|
34
|
+
for (const entry of this.listeners) {
|
|
35
|
+
if (entry.sessionId && entry.sessionId !== sessionId) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
entry.listener(event);
|
|
21
39
|
}
|
|
22
40
|
}
|
|
23
41
|
|
|
@@ -35,10 +53,14 @@ export async function readPersistedMessagesFile(
|
|
|
35
53
|
const raw = (await readFile(path, "utf8")).trim();
|
|
36
54
|
if (!raw) return [];
|
|
37
55
|
const parsed = JSON.parse(raw) as unknown;
|
|
38
|
-
if (Array.isArray(parsed))
|
|
56
|
+
if (Array.isArray(parsed)) {
|
|
57
|
+
return sanitizeDisplayMessages(parsed as LlmsProviders.Message[]);
|
|
58
|
+
}
|
|
39
59
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
40
60
|
const messages = (parsed as { messages?: unknown }).messages;
|
|
41
|
-
if (Array.isArray(messages))
|
|
61
|
+
if (Array.isArray(messages)) {
|
|
62
|
+
return sanitizeDisplayMessages(messages as LlmsProviders.Message[]);
|
|
63
|
+
}
|
|
42
64
|
}
|
|
43
65
|
return [];
|
|
44
66
|
} catch {
|
|
@@ -46,6 +68,38 @@ export async function readPersistedMessagesFile(
|
|
|
46
68
|
}
|
|
47
69
|
}
|
|
48
70
|
|
|
71
|
+
function sanitizeDisplayMessage(
|
|
72
|
+
message: LlmsProviders.Message,
|
|
73
|
+
): LlmsProviders.Message {
|
|
74
|
+
if (message.role !== "user") {
|
|
75
|
+
return message;
|
|
76
|
+
}
|
|
77
|
+
if (typeof message.content === "string") {
|
|
78
|
+
return {
|
|
79
|
+
...message,
|
|
80
|
+
content: formatDisplayUserInput(message.content),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
...message,
|
|
85
|
+
content: message.content.map((part) => {
|
|
86
|
+
if (part.type !== "text" || typeof part.text !== "string") {
|
|
87
|
+
return part;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
...part,
|
|
91
|
+
text: formatDisplayUserInput(part.text),
|
|
92
|
+
};
|
|
93
|
+
}),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function sanitizeDisplayMessages(
|
|
98
|
+
messages: LlmsProviders.Message[],
|
|
99
|
+
): LlmsProviders.Message[] {
|
|
100
|
+
return messages.map(sanitizeDisplayMessage);
|
|
101
|
+
}
|
|
102
|
+
|
|
49
103
|
export function cloneAccumulatedUsage(
|
|
50
104
|
usage: SessionAccumulatedUsage | undefined,
|
|
51
105
|
): SessionAccumulatedUsage | undefined {
|
package/src/types/chat-schema.ts
CHANGED
|
@@ -11,12 +11,11 @@ export const ChatSessionConfigSchema = z.object({
|
|
|
11
11
|
rules: z.string().optional(),
|
|
12
12
|
maxIterations: z.number().int().positive().optional(),
|
|
13
13
|
enableTools: z.boolean(),
|
|
14
|
-
enableSpawn: z.boolean(),
|
|
15
|
-
enableTeams: z.boolean(),
|
|
14
|
+
enableSpawn: z.boolean().optional(),
|
|
15
|
+
enableTeams: z.boolean().optional(),
|
|
16
16
|
autoApproveTools: z.boolean().optional(),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
missionTimeIntervalMs: z.number().int().positive(),
|
|
17
|
+
missionStepInterval: z.number().int().positive().optional(),
|
|
18
|
+
missionTimeIntervalMs: z.number().int().positive().optional(),
|
|
20
19
|
});
|
|
21
20
|
|
|
22
21
|
export const ChatSessionStatusSchema = z.enum([
|
package/src/types/config.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { ModelInfo } from "@clinebot/llms";
|
|
2
2
|
import type {
|
|
3
3
|
AgentConfig,
|
|
4
4
|
AgentHooks,
|
|
@@ -17,6 +17,7 @@ import type {
|
|
|
17
17
|
} from "@clinebot/shared";
|
|
18
18
|
import type { ToolRoutingRule } from "../extensions/tools/model-tool-routing";
|
|
19
19
|
import type { TeamEvent } from "../extensions/tools/team";
|
|
20
|
+
import type { ProviderConfig } from "./provider-settings";
|
|
20
21
|
|
|
21
22
|
export type CoreAgentMode = AgentMode;
|
|
22
23
|
|
|
@@ -26,8 +27,8 @@ export interface CoreModelConfig {
|
|
|
26
27
|
apiKey?: string;
|
|
27
28
|
baseUrl?: string;
|
|
28
29
|
headers?: Record<string, string>;
|
|
29
|
-
providerConfig?:
|
|
30
|
-
knownModels?: Record<string,
|
|
30
|
+
providerConfig?: ProviderConfig;
|
|
31
|
+
knownModels?: Record<string, ModelInfo>;
|
|
31
32
|
/**
|
|
32
33
|
* Request model-side thinking/reasoning when supported.
|
|
33
34
|
*/
|
|
@@ -35,7 +36,7 @@ export interface CoreModelConfig {
|
|
|
35
36
|
/**
|
|
36
37
|
* Explicit reasoning effort override for capable models.
|
|
37
38
|
*/
|
|
38
|
-
reasoningEffort?:
|
|
39
|
+
reasoningEffort?: ProviderConfig["reasoningEffort"];
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
export interface CoreRuntimeFeatures {
|
|
@@ -55,7 +56,7 @@ export interface CoreCompactionContext {
|
|
|
55
56
|
model: {
|
|
56
57
|
id: string;
|
|
57
58
|
provider: string;
|
|
58
|
-
info?:
|
|
59
|
+
info?: ModelInfo;
|
|
59
60
|
};
|
|
60
61
|
contextWindowTokens: number;
|
|
61
62
|
triggerTokens: number;
|
|
@@ -73,8 +74,8 @@ export interface CoreCompactionSummarizerConfig {
|
|
|
73
74
|
apiKey?: string;
|
|
74
75
|
baseUrl?: string;
|
|
75
76
|
headers?: Record<string, string>;
|
|
76
|
-
knownModels?: Record<string,
|
|
77
|
-
providerConfig?:
|
|
77
|
+
knownModels?: Record<string, ModelInfo>;
|
|
78
|
+
providerConfig?: ProviderConfig;
|
|
78
79
|
maxOutputTokens?: number;
|
|
79
80
|
}
|
|
80
81
|
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import * as LlmsProviders from "@clinebot/llms";
|
|
2
1
|
import { z } from "zod";
|
|
2
|
+
import {
|
|
3
|
+
type ProviderConfig,
|
|
4
|
+
type ProviderSettings,
|
|
5
|
+
ProviderSettingsSchema,
|
|
6
|
+
toProviderConfig,
|
|
7
|
+
} from "../llms/provider-settings";
|
|
3
8
|
|
|
4
|
-
export type ProviderConfig
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export const toProviderConfig = LlmsProviders.toProviderConfig;
|
|
9
|
+
export type { ProviderConfig, ProviderSettings };
|
|
10
|
+
export const ProviderSettingsSchemaTyped: z.ZodType<ProviderSettings> =
|
|
11
|
+
ProviderSettingsSchema;
|
|
12
|
+
export { toProviderConfig };
|
|
9
13
|
|
|
10
14
|
export type ProviderTokenSource = "manual" | "oauth" | "migration";
|
|
11
15
|
|
|
@@ -23,7 +27,7 @@ export interface StoredProviderSettings {
|
|
|
23
27
|
|
|
24
28
|
export const StoredProviderSettingsEntrySchema: z.ZodType<StoredProviderSettingsEntry> =
|
|
25
29
|
z.object({
|
|
26
|
-
settings:
|
|
30
|
+
settings: ProviderSettingsSchema,
|
|
27
31
|
updatedAt: z.string().datetime(),
|
|
28
32
|
tokenSource: z.enum(["manual", "oauth", "migration"]).default("manual"),
|
|
29
33
|
});
|
package/src/types/session.ts
CHANGED
|
@@ -2,10 +2,8 @@ import type { Agent } from "@clinebot/agents";
|
|
|
2
2
|
import type * as LlmsProviders from "@clinebot/llms";
|
|
3
3
|
import type { SessionAccumulatedUsage } from "../runtime/runtime-host";
|
|
4
4
|
import type { BuiltRuntime } from "../runtime/session-runtime";
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
SessionRow,
|
|
8
|
-
} from "../session/session-service";
|
|
5
|
+
import type { SessionRow } from "../session/session-row";
|
|
6
|
+
import type { RootSessionArtifacts } from "../session/session-service";
|
|
9
7
|
import type { SessionSource, SessionStatus } from "./common";
|
|
10
8
|
import type { CoreSessionConfig } from "./config";
|
|
11
9
|
|
package/src/types.ts
CHANGED
|
@@ -3,7 +3,8 @@ export {
|
|
|
3
3
|
ClineCore,
|
|
4
4
|
type ClineCoreOptions,
|
|
5
5
|
type ClineCoreStartInput,
|
|
6
|
-
type
|
|
6
|
+
type HubOptions,
|
|
7
|
+
type RemoteOptions,
|
|
7
8
|
} from "./ClineCore";
|
|
8
9
|
export type {
|
|
9
10
|
LoadAgentPluginFromPathOptions,
|
|
@@ -66,6 +67,18 @@ export {
|
|
|
66
67
|
UnifiedConfigFileWatcher,
|
|
67
68
|
WORKFLOWS_CONFIG_DIRECTORY_NAME,
|
|
68
69
|
} from "./extensions/config";
|
|
70
|
+
export type {
|
|
71
|
+
BuiltinToolAvailabilityContext,
|
|
72
|
+
ToolCatalogEntry,
|
|
73
|
+
} from "./extensions/tools";
|
|
74
|
+
export {
|
|
75
|
+
getCoreAcpToolNames,
|
|
76
|
+
getCoreBuiltinToolCatalog,
|
|
77
|
+
getCoreDefaultEnabledToolIds,
|
|
78
|
+
getCoreHeadlessToolNames,
|
|
79
|
+
resolveCoreSelectedToolIds,
|
|
80
|
+
TEAM_TOOL_NAMES,
|
|
81
|
+
} from "./extensions/tools";
|
|
69
82
|
export type { SessionBackend } from "./runtime/host";
|
|
70
83
|
export type {
|
|
71
84
|
RuntimeHost,
|
|
@@ -87,7 +100,20 @@ export type {
|
|
|
87
100
|
SubprocessSandboxOptions,
|
|
88
101
|
} from "./runtime/subprocess-sandbox";
|
|
89
102
|
export { SubprocessSandbox } from "./runtime/subprocess-sandbox";
|
|
103
|
+
export type { GlobalSettings } from "./services/global-settings";
|
|
104
|
+
export {
|
|
105
|
+
filterDisabledTools,
|
|
106
|
+
filterExtensionToolRegistrations,
|
|
107
|
+
isToolDisabledGlobally,
|
|
108
|
+
readGlobalSettings,
|
|
109
|
+
resolveDisabledToolNames,
|
|
110
|
+
toggleDisabledTool,
|
|
111
|
+
writeGlobalSettings,
|
|
112
|
+
} from "./services/global-settings";
|
|
113
|
+
export type { PluginToolSummary } from "./services/plugin-tools";
|
|
114
|
+
export { listPluginTools } from "./services/plugin-tools";
|
|
90
115
|
export type { SessionManifest } from "./session/session-manifest";
|
|
116
|
+
export type { SessionRow } from "./session/session-row";
|
|
91
117
|
export type {
|
|
92
118
|
CreateRootSessionWithArtifactsInput,
|
|
93
119
|
RootSessionArtifacts,
|