@clinebot/core 0.0.34 → 0.0.35
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 +12 -8
- package/dist/ClineCore.d.ts +48 -29
- package/dist/ClineCore.d.ts.map +1 -1
- package/dist/extensions/config/agent-config-loader.d.ts +2 -2
- package/dist/extensions/config/agent-config-loader.d.ts.map +1 -1
- package/dist/extensions/config/agent-config-parser.d.ts +1 -1
- package/dist/extensions/config/agent-config-parser.d.ts.map +1 -1
- package/dist/extensions/config/hooks-config-loader.d.ts +2 -2
- package/dist/extensions/config/hooks-config-loader.d.ts.map +1 -1
- package/dist/extensions/config/index.d.ts +3 -3
- package/dist/extensions/config/index.d.ts.map +1 -1
- package/dist/extensions/config/user-instruction-config-loader.d.ts +2 -2
- package/dist/extensions/config/user-instruction-config-loader.d.ts.map +1 -1
- package/dist/extensions/plugin-sandbox-bootstrap.js +248 -248
- package/dist/extensions/tools/constants.d.ts.map +1 -0
- package/dist/extensions/tools/definitions.d.ts.map +1 -0
- package/dist/extensions/tools/executors/apply-patch-parser.d.ts.map +1 -0
- package/dist/extensions/tools/executors/apply-patch.d.ts.map +1 -0
- package/dist/extensions/tools/executors/bash.d.ts.map +1 -0
- package/dist/extensions/tools/executors/editor.d.ts.map +1 -0
- package/dist/extensions/tools/executors/file-read.d.ts.map +1 -0
- package/dist/extensions/tools/executors/index.d.ts.map +1 -0
- package/dist/extensions/tools/executors/search.d.ts.map +1 -0
- package/dist/extensions/tools/executors/web-fetch.d.ts.map +1 -0
- package/dist/extensions/tools/helpers.d.ts.map +1 -0
- package/dist/extensions/tools/index.d.ts.map +1 -0
- package/dist/{tools → extensions/tools}/model-tool-routing.d.ts +1 -1
- package/dist/extensions/tools/model-tool-routing.d.ts.map +1 -0
- package/dist/{tools → extensions/tools}/presets.d.ts +1 -2
- package/dist/extensions/tools/presets.d.ts.map +1 -0
- package/dist/extensions/tools/schemas.d.ts.map +1 -0
- package/dist/extensions/tools/team/delegated-agent.d.ts.map +1 -0
- package/dist/extensions/tools/team/index.d.ts.map +1 -0
- package/dist/{team → extensions/tools/team}/multi-agent.d.ts +1 -3
- package/dist/extensions/tools/team/multi-agent.d.ts.map +1 -0
- package/dist/extensions/tools/team/projections.d.ts.map +1 -0
- package/dist/extensions/tools/team/runtime.d.ts.map +1 -0
- package/dist/{team → extensions/tools/team}/spawn-agent-tool.d.ts +0 -1
- package/dist/extensions/tools/team/spawn-agent-tool.d.ts.map +1 -0
- package/dist/extensions/tools/team/subagent-prompts.d.ts.map +1 -0
- package/dist/extensions/tools/team/team-tools.d.ts.map +1 -0
- package/dist/{tools → extensions/tools}/types.d.ts +4 -3
- package/dist/extensions/tools/types.d.ts.map +1 -0
- package/dist/{runtime → hooks}/checkpoint-hooks.d.ts +7 -0
- package/dist/hooks/checkpoint-hooks.d.ts.map +1 -0
- package/dist/{runtime → hooks}/hook-file-hooks.d.ts +0 -2
- package/dist/hooks/hook-file-hooks.d.ts.map +1 -0
- package/dist/hooks/subprocess.d.ts +3 -130
- package/dist/hooks/subprocess.d.ts.map +1 -1
- package/dist/index.d.ts +35 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +381 -379
- package/dist/runtime/history.d.ts +4 -0
- package/dist/runtime/history.d.ts.map +1 -0
- package/dist/runtime/host.d.ts +9 -0
- package/dist/runtime/host.d.ts.map +1 -0
- package/dist/{session → runtime}/rpc-runtime-ensure.d.ts +13 -1
- package/dist/{session → runtime}/rpc-runtime-ensure.d.ts.map +1 -1
- package/dist/{session → runtime}/rpc-spawn-lease.d.ts.map +1 -1
- package/dist/runtime/runtime-builder.d.ts.map +1 -1
- package/dist/{session/session-manager.d.ts → runtime/runtime-host.d.ts} +55 -12
- package/dist/runtime/runtime-host.d.ts.map +1 -0
- package/dist/{session → runtime}/runtime-oauth-token-manager.d.ts +1 -1
- package/dist/{session → runtime}/runtime-oauth-token-manager.d.ts.map +1 -1
- package/dist/runtime/session-runtime.d.ts +2 -2
- package/dist/runtime/session-runtime.d.ts.map +1 -1
- package/dist/{session/session-agent-events.d.ts → services/agent-events.d.ts} +4 -4
- package/dist/services/agent-events.d.ts.map +1 -0
- package/dist/services/config.d.ts +3 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/local-runtime-bootstrap.d.ts +41 -0
- package/dist/services/local-runtime-bootstrap.d.ts.map +1 -0
- package/dist/services/providers/local-provider-registry.d.ts.map +1 -0
- package/dist/services/providers/local-provider-service.d.ts.map +1 -0
- package/dist/{session → services}/session-artifacts.d.ts +0 -4
- package/dist/services/session-artifacts.d.ts.map +1 -0
- package/dist/{session/utils/helpers.d.ts → services/session-data.d.ts} +19 -27
- package/dist/services/session-data.d.ts.map +1 -0
- package/dist/{session → services}/session-telemetry.d.ts +2 -2
- package/dist/services/session-telemetry.d.ts.map +1 -0
- package/dist/{storage → services/storage}/file-team-store.d.ts +2 -2
- package/dist/services/storage/file-team-store.d.ts.map +1 -0
- package/dist/{storage → services/storage}/provider-settings-legacy-migration.d.ts +1 -1
- package/dist/services/storage/provider-settings-legacy-migration.d.ts.map +1 -0
- package/dist/{storage → services/storage}/provider-settings-manager.d.ts +1 -1
- package/dist/services/storage/provider-settings-manager.d.ts.map +1 -0
- package/dist/{storage → services/storage}/sqlite-session-store.d.ts +3 -3
- package/dist/services/storage/sqlite-session-store.d.ts.map +1 -0
- package/dist/{storage → services/storage}/sqlite-team-store.d.ts +2 -2
- package/dist/services/storage/sqlite-team-store.d.ts.map +1 -0
- package/dist/{storage → services/storage}/team-store.d.ts +1 -1
- package/dist/services/storage/team-store.d.ts.map +1 -0
- package/dist/services/telemetry/ITelemetryAdapter.d.ts.map +1 -0
- package/dist/services/telemetry/OpenTelemetryAdapter.d.ts.map +1 -0
- package/dist/services/telemetry/OpenTelemetryProvider.d.ts.map +1 -0
- package/dist/services/telemetry/TelemetryLoggerSink.d.ts.map +1 -0
- package/dist/services/telemetry/TelemetryService.d.ts.map +1 -0
- package/dist/services/telemetry/core-events.d.ts.map +1 -0
- package/dist/services/telemetry/distinct-id.d.ts.map +1 -0
- package/dist/services/telemetry/index.d.ts.map +1 -0
- package/dist/{telemetry → services/telemetry}/index.js +6 -6
- package/dist/{session/utils → services}/usage.d.ts +1 -1
- package/dist/services/usage.d.ts.map +1 -0
- package/dist/services/workspace/file-indexer.d.ts.map +1 -0
- package/dist/services/workspace/index.d.ts.map +1 -0
- package/dist/services/workspace/mention-enricher.d.ts.map +1 -0
- package/dist/services/workspace-manifest.d.ts.map +1 -0
- package/dist/session/file-session-service.d.ts +4 -1
- package/dist/session/file-session-service.d.ts.map +1 -1
- package/dist/session/persistence-service.d.ts +8 -6
- package/dist/session/persistence-service.d.ts.map +1 -1
- package/dist/session/rpc-session-service.d.ts +3 -0
- package/dist/session/rpc-session-service.d.ts.map +1 -1
- package/dist/session/session-service.d.ts +8 -9
- package/dist/session/session-service.d.ts.map +1 -1
- package/dist/session/session-team-coordination.d.ts +4 -4
- package/dist/session/session-team-coordination.d.ts.map +1 -1
- package/dist/session/sqlite-rpc-session-backend.d.ts.map +1 -1
- package/dist/{session/default-session-manager.d.ts → transports/local.d.ts} +24 -14
- package/dist/transports/local.d.ts.map +1 -0
- package/dist/transports/rpc.d.ts +51 -0
- package/dist/transports/rpc.d.ts.map +1 -0
- package/dist/transports/runtime-host-support.d.ts +21 -0
- package/dist/transports/runtime-host-support.d.ts.map +1 -0
- package/dist/types/chat-schema.d.ts.map +1 -0
- package/dist/types/config.d.ts +2 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/{session/utils/types.d.ts → types/session.d.ts} +15 -6
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/sessions.d.ts +19 -0
- package/dist/types/sessions.d.ts.map +1 -1
- package/dist/types/storage.d.ts +1 -3
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types.d.ts +7 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -12
- package/src/ClineCore.test.ts +95 -19
- package/src/ClineCore.ts +120 -50
- package/src/auth/cline.ts +1 -1
- package/src/auth/codex.ts +1 -1
- package/src/auth/oca.ts +1 -1
- package/src/extensions/config/agent-config-loader.test.ts +3 -3
- package/src/extensions/config/agent-config-loader.ts +1 -5
- package/src/extensions/config/agent-config-parser.ts +1 -1
- package/src/extensions/config/hooks-config-loader.ts +1 -2
- package/src/extensions/config/index.ts +0 -4
- package/src/extensions/config/user-instruction-config-loader.ts +0 -4
- package/src/extensions/plugin/plugin-config-loader.test.ts +6 -4
- package/src/{tools → extensions/tools}/definitions.ts +1 -1
- package/src/extensions/tools/executors/file-read.test.ts +125 -0
- package/src/{tools → extensions/tools}/executors/file-read.ts +29 -4
- package/src/{tools → extensions/tools}/executors/search.ts +1 -1
- package/src/{tools → extensions/tools}/model-tool-routing.ts +1 -1
- package/src/{tools → extensions/tools}/presets.ts +2 -3
- package/src/extensions/tools/team/multi-agent.lifecycle.test.ts +455 -0
- package/src/{team → extensions/tools/team}/multi-agent.ts +80 -17
- package/src/{team → extensions/tools/team}/spawn-agent-tool.test.ts +0 -6
- package/src/{team → extensions/tools/team}/spawn-agent-tool.ts +1 -7
- package/src/{team → extensions/tools/team}/subagent-prompts.ts +2 -2
- package/src/{team → extensions/tools/team}/team-tools.test.ts +43 -31
- package/src/{team → extensions/tools/team}/team-tools.ts +63 -53
- package/src/{tools → extensions/tools}/types.ts +5 -3
- package/src/{runtime → hooks}/checkpoint-hooks.ts +27 -0
- package/src/{runtime → hooks}/hook-file-hooks.ts +6 -11
- package/src/hooks/subprocess.ts +48 -257
- package/src/index.ts +167 -158
- package/src/runtime/history.test.ts +114 -0
- package/src/runtime/history.ts +237 -0
- package/src/runtime/host.test.ts +230 -0
- package/src/runtime/host.ts +362 -0
- package/src/runtime/rpc-runtime-ensure.test.ts +123 -0
- package/src/{session → runtime}/rpc-runtime-ensure.ts +165 -27
- package/src/{session → runtime}/rpc-spawn-lease.test.ts +33 -1
- package/src/{session → runtime}/rpc-spawn-lease.ts +54 -20
- package/src/runtime/runtime-builder.team-persistence.test.ts +6 -3
- package/src/runtime/runtime-builder.test.ts +3 -4
- package/src/runtime/runtime-builder.ts +13 -21
- package/src/runtime/runtime-host.ts +178 -0
- package/src/{session → runtime}/runtime-oauth-token-manager.ts +1 -1
- package/src/runtime/runtime-parity.test.ts +1 -1
- package/src/runtime/session-runtime.ts +2 -2
- package/src/{session/session-agent-events.ts → services/agent-events.ts} +7 -7
- package/src/services/config.ts +5 -0
- package/src/services/local-runtime-bootstrap.ts +280 -0
- package/src/{providers → services/providers}/local-provider-service.ts +4 -4
- package/src/{session → services}/session-artifacts.ts +7 -19
- package/src/{session/utils/helpers.test.ts → services/session-data.test.ts} +1 -1
- package/src/{session/utils/helpers.ts → services/session-data.ts} +76 -72
- package/src/{session → services}/session-telemetry.ts +7 -9
- package/src/services/storage/artifact-store.ts +1 -0
- package/src/{storage → services/storage}/file-team-store.ts +2 -2
- package/src/{storage → services/storage}/provider-settings-legacy-migration.test.ts +1 -1
- package/src/{storage → services/storage}/provider-settings-legacy-migration.ts +2 -2
- package/src/{storage → services/storage}/provider-settings-manager.ts +2 -2
- package/src/services/storage/session-store.ts +1 -0
- package/src/{storage → services/storage}/sqlite-session-store.ts +7 -12
- package/src/{storage → services/storage}/sqlite-team-store.ts +4 -4
- package/src/{storage → services/storage}/team-store.ts +1 -1
- package/src/{session/utils → services}/usage.ts +1 -1
- package/src/{input → services/workspace}/file-indexer.test.ts +30 -1
- package/src/{input → services/workspace}/file-indexer.ts +26 -2
- package/src/{input → services/workspace}/mention-enricher.test.ts +21 -0
- package/src/{input → services/workspace}/mention-enricher.ts +1 -1
- package/src/session/file-session-service.ts +9 -7
- package/src/session/index.ts +25 -17
- package/src/session/persistence-service.test.ts +86 -27
- package/src/session/persistence-service.ts +104 -103
- package/src/session/rpc-session-service.ts +9 -2
- package/src/session/session-service.team-persistence.test.ts +1 -1
- package/src/session/session-service.ts +32 -19
- package/src/session/session-team-coordination.ts +13 -6
- package/src/session/sqlite-rpc-session-backend.ts +4 -6
- package/src/session/workspace-manager.ts +1 -1
- package/src/{session/default-session-manager.e2e.test.ts → transports/local.e2e.test.ts} +13 -17
- package/src/{session/default-session-manager.test.ts → transports/local.test.ts} +316 -230
- package/src/{session/default-session-manager.ts → transports/local.ts} +137 -169
- package/src/transports/rpc.test.ts +82 -0
- package/src/transports/rpc.ts +665 -0
- package/src/transports/runtime-host-support.ts +86 -0
- package/src/types/config.ts +2 -2
- package/src/{session/utils/types.ts → types/session.ts} +18 -5
- package/src/types/sessions.ts +21 -0
- package/src/types/storage.ts +1 -6
- package/src/types.ts +25 -18
- package/dist/chat/chat-schema.d.ts.map +0 -1
- package/dist/input/file-indexer.d.ts.map +0 -1
- package/dist/input/index.d.ts.map +0 -1
- package/dist/input/mention-enricher.d.ts.map +0 -1
- package/dist/prompt/default-system.d.ts +0 -2
- package/dist/prompt/default-system.d.ts.map +0 -1
- package/dist/providers/local-provider-registry.d.ts.map +0 -1
- package/dist/providers/local-provider-service.d.ts.map +0 -1
- package/dist/runtime/checkpoint-hooks.d.ts.map +0 -1
- package/dist/runtime/hook-file-hooks.d.ts.map +0 -1
- package/dist/session/default-session-manager.d.ts.map +0 -1
- package/dist/session/session-agent-events.d.ts.map +0 -1
- package/dist/session/session-artifacts.d.ts.map +0 -1
- package/dist/session/session-config-builder.d.ts +0 -16
- package/dist/session/session-config-builder.d.ts.map +0 -1
- package/dist/session/session-host.d.ts +0 -15
- package/dist/session/session-host.d.ts.map +0 -1
- package/dist/session/session-manager.d.ts.map +0 -1
- package/dist/session/session-telemetry.d.ts.map +0 -1
- package/dist/session/utils/helpers.d.ts.map +0 -1
- package/dist/session/utils/types.d.ts.map +0 -1
- package/dist/session/utils/usage.d.ts.map +0 -1
- package/dist/session/workspace-manifest.d.ts.map +0 -1
- package/dist/storage/file-team-store.d.ts.map +0 -1
- package/dist/storage/provider-settings-legacy-migration.d.ts.map +0 -1
- package/dist/storage/provider-settings-manager.d.ts.map +0 -1
- package/dist/storage/sqlite-session-store.d.ts.map +0 -1
- package/dist/storage/sqlite-team-store.d.ts.map +0 -1
- package/dist/storage/team-store.d.ts.map +0 -1
- package/dist/team/delegated-agent.d.ts.map +0 -1
- package/dist/team/index.d.ts.map +0 -1
- package/dist/team/multi-agent.d.ts.map +0 -1
- package/dist/team/projections.d.ts.map +0 -1
- package/dist/team/runtime.d.ts.map +0 -1
- package/dist/team/spawn-agent-tool.d.ts.map +0 -1
- package/dist/team/subagent-prompts.d.ts.map +0 -1
- package/dist/team/team-tools.d.ts.map +0 -1
- package/dist/telemetry/ITelemetryAdapter.d.ts.map +0 -1
- package/dist/telemetry/OpenTelemetryAdapter.d.ts.map +0 -1
- package/dist/telemetry/OpenTelemetryProvider.d.ts.map +0 -1
- package/dist/telemetry/TelemetryLoggerSink.d.ts.map +0 -1
- package/dist/telemetry/TelemetryService.d.ts.map +0 -1
- package/dist/telemetry/core-events.d.ts.map +0 -1
- package/dist/telemetry/distinct-id.d.ts.map +0 -1
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/tools/constants.d.ts.map +0 -1
- package/dist/tools/definitions.d.ts.map +0 -1
- package/dist/tools/executors/apply-patch-parser.d.ts.map +0 -1
- package/dist/tools/executors/apply-patch.d.ts.map +0 -1
- package/dist/tools/executors/bash.d.ts.map +0 -1
- package/dist/tools/executors/editor.d.ts.map +0 -1
- package/dist/tools/executors/file-read.d.ts.map +0 -1
- package/dist/tools/executors/index.d.ts.map +0 -1
- package/dist/tools/executors/search.d.ts.map +0 -1
- package/dist/tools/executors/web-fetch.d.ts.map +0 -1
- package/dist/tools/helpers.d.ts.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/model-tool-routing.d.ts.map +0 -1
- package/dist/tools/presets.d.ts.map +0 -1
- package/dist/tools/schemas.d.ts.map +0 -1
- package/dist/tools/types.d.ts.map +0 -1
- package/src/prompt/default-system.ts +0 -21
- package/src/session/session-config-builder.ts +0 -172
- package/src/session/session-host.test.ts +0 -89
- package/src/session/session-host.ts +0 -213
- package/src/session/session-manager.ts +0 -74
- package/src/storage/artifact-store.ts +0 -1
- package/src/storage/session-store.ts +0 -1
- package/src/team/multi-agent.lifecycle.test.ts +0 -201
- package/src/tools/executors/file-read.test.ts +0 -49
- /package/dist/{tools → extensions/tools}/constants.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/definitions.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/apply-patch-parser.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/apply-patch.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/bash.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/editor.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/file-read.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/index.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/search.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/executors/web-fetch.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/helpers.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/index.d.ts +0 -0
- /package/dist/{tools → extensions/tools}/schemas.d.ts +0 -0
- /package/dist/{team → extensions/tools/team}/delegated-agent.d.ts +0 -0
- /package/dist/{team → extensions/tools/team}/index.d.ts +0 -0
- /package/dist/{team → extensions/tools/team}/projections.d.ts +0 -0
- /package/dist/{team → extensions/tools/team}/runtime.d.ts +0 -0
- /package/dist/{team → extensions/tools/team}/subagent-prompts.d.ts +0 -0
- /package/dist/{team → extensions/tools/team}/team-tools.d.ts +0 -0
- /package/dist/{session → runtime}/rpc-spawn-lease.d.ts +0 -0
- /package/dist/{providers → services/providers}/local-provider-registry.d.ts +0 -0
- /package/dist/{providers → services/providers}/local-provider-service.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/ITelemetryAdapter.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/OpenTelemetryAdapter.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/OpenTelemetryProvider.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/TelemetryLoggerSink.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/TelemetryService.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/core-events.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/distinct-id.d.ts +0 -0
- /package/dist/{telemetry → services/telemetry}/index.d.ts +0 -0
- /package/dist/{input → services/workspace}/file-indexer.d.ts +0 -0
- /package/dist/{input → services/workspace}/index.d.ts +0 -0
- /package/dist/{input → services/workspace}/mention-enricher.d.ts +0 -0
- /package/dist/{session → services}/workspace-manifest.d.ts +0 -0
- /package/dist/{chat → types}/chat-schema.d.ts +0 -0
- /package/src/{tools → extensions/tools}/constants.ts +0 -0
- /package/src/{tools → extensions/tools}/definitions.test.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/apply-patch-parser.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/apply-patch.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/bash.test.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/bash.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/editor.test.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/editor.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/index.ts +0 -0
- /package/src/{tools → extensions/tools}/executors/web-fetch.ts +0 -0
- /package/src/{tools → extensions/tools}/helpers.ts +0 -0
- /package/src/{tools → extensions/tools}/index.ts +0 -0
- /package/src/{tools → extensions/tools}/model-tool-routing.test.ts +0 -0
- /package/src/{tools → extensions/tools}/presets.test.ts +0 -0
- /package/src/{tools → extensions/tools}/schemas.ts +0 -0
- /package/src/{team → extensions/tools/team}/delegated-agent.ts +0 -0
- /package/src/{team → extensions/tools/team}/index.ts +0 -0
- /package/src/{team → extensions/tools/team}/projections.ts +0 -0
- /package/src/{team → extensions/tools/team}/runtime.ts +0 -0
- /package/src/{runtime → hooks}/checkpoint-hooks.test.ts +0 -0
- /package/src/{runtime → hooks}/hook-file-hooks.test.ts +0 -0
- /package/src/{session → runtime}/runtime-oauth-token-manager.test.ts +0 -0
- /package/src/{providers → services/providers}/local-provider-registry.ts +0 -0
- /package/src/{providers → services/providers}/local-provider-service.test.ts +0 -0
- /package/src/{storage → services/storage}/index.ts +0 -0
- /package/src/{storage → services/storage}/provider-settings-manager.test.ts +0 -0
- /package/src/{telemetry → services/telemetry}/ITelemetryAdapter.ts +0 -0
- /package/src/{telemetry → services/telemetry}/OpenTelemetryAdapter.test.ts +0 -0
- /package/src/{telemetry → services/telemetry}/OpenTelemetryAdapter.ts +0 -0
- /package/src/{telemetry → services/telemetry}/OpenTelemetryProvider.test.ts +0 -0
- /package/src/{telemetry → services/telemetry}/OpenTelemetryProvider.ts +0 -0
- /package/src/{telemetry → services/telemetry}/TelemetryLoggerSink.test.ts +0 -0
- /package/src/{telemetry → services/telemetry}/TelemetryLoggerSink.ts +0 -0
- /package/src/{telemetry → services/telemetry}/TelemetryService.test.ts +0 -0
- /package/src/{telemetry → services/telemetry}/TelemetryService.ts +0 -0
- /package/src/{telemetry → services/telemetry}/core-events.ts +0 -0
- /package/src/{telemetry → services/telemetry}/distinct-id.test.ts +0 -0
- /package/src/{telemetry → services/telemetry}/distinct-id.ts +0 -0
- /package/src/{telemetry → services/telemetry}/index.ts +0 -0
- /package/src/{input → services/workspace}/file-indexer.d.ts +0 -0
- /package/src/{input → services/workspace}/index.ts +0 -0
- /package/src/{session → services}/workspace-manifest.ts +0 -0
- /package/src/{chat → types}/chat-schema.ts +0 -0
package/dist/types.d.ts
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
export type { WorkspaceInfo, WorkspaceManifest } from "@clinebot/shared";
|
|
2
|
-
export { ClineCore, type ClineCoreOptions, type RpcOptions, } from "./ClineCore";
|
|
3
|
-
export type { ChatMessage, ChatSessionConfig, ChatSessionStatus, ChatSummary, ChatViewState, } from "./chat/chat-schema";
|
|
2
|
+
export { ClineCore, type ClineCoreOptions, type ClineCoreStartInput, type RpcOptions, } from "./ClineCore";
|
|
4
3
|
export type { LoadAgentPluginFromPathOptions, ResolveAgentPluginPathsOptions, } from "./extensions";
|
|
5
4
|
export { discoverPluginModulePaths, loadAgentPluginFromPath, loadAgentPluginsFromPaths, resolveAgentPluginPaths, resolveAndLoadAgentPlugins, resolvePluginConfigSearchPaths, } from "./extensions";
|
|
6
5
|
export type { AgentConfigWatcher, AgentConfigWatcherEvent, AgentYamlConfig, BuildAgentConfigOverridesOptions, CreateAgentConfigWatcherOptions, CreateInstructionWatcherOptions, CreateRulesConfigDefinitionOptions, CreateSkillsConfigDefinitionOptions, CreateUserInstructionConfigWatcherOptions, CreateWorkflowsConfigDefinitionOptions, ParseMarkdownFrontmatterResult, ParseYamlFrontmatterResult, RuleConfig, SkillConfig, UnifiedConfigDefinition, UnifiedConfigFileCandidate, UnifiedConfigFileContext, UnifiedConfigRecord, UnifiedConfigWatcherEvent, UnifiedConfigWatcherOptions, UserInstructionConfig, UserInstructionConfigType, UserInstructionConfigWatcher, UserInstructionConfigWatcherEvent, WorkflowConfig, } from "./extensions/config";
|
|
7
|
-
export { createAgentConfigDefinition, createAgentConfigWatcher, createRulesConfigDefinition, createSkillsConfigDefinition, createUserInstructionConfigWatcher, createWorkflowsConfigDefinition, parseAgentConfigFromYaml, parsePartialAgentConfigFromYaml, parseRuleConfigFromMarkdown, parseSkillConfigFromMarkdown, parseWorkflowConfigFromMarkdown, RULES_CONFIG_DIRECTORY_NAME, resolveAgentTools,
|
|
6
|
+
export { createAgentConfigDefinition, createAgentConfigWatcher, createRulesConfigDefinition, createSkillsConfigDefinition, createUserInstructionConfigWatcher, createWorkflowsConfigDefinition, parseAgentConfigFromYaml, parsePartialAgentConfigFromYaml, parseRuleConfigFromMarkdown, parseSkillConfigFromMarkdown, parseWorkflowConfigFromMarkdown, RULES_CONFIG_DIRECTORY_NAME, resolveAgentTools, resolveRulesConfigSearchPaths, resolveSkillsConfigSearchPaths, resolveWorkflowsConfigSearchPaths, SKILLS_CONFIG_DIRECTORY_NAME, toPartialAgentConfig, UnifiedConfigFileWatcher, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./extensions/config";
|
|
7
|
+
export type { SessionBackend } from "./runtime/host";
|
|
8
|
+
export type { RuntimeHost, RuntimeHost as SessionHost, RuntimeHostMode, SendSessionInput, SessionAccumulatedUsage, StartSessionInput, StartSessionResult, } from "./runtime/runtime-host";
|
|
8
9
|
export type { BuiltRuntime as RuntimeEnvironment, RuntimeBuilder, RuntimeBuilderInput, SessionRuntime, } from "./runtime/session-runtime";
|
|
9
10
|
export type { SandboxCallOptions, SubprocessSandboxOptions, } from "./runtime/subprocess-sandbox";
|
|
10
11
|
export { SubprocessSandbox } from "./runtime/subprocess-sandbox";
|
|
11
|
-
export type { SessionHost } from "./session/session-host";
|
|
12
|
-
export type { SendSessionInput, SessionAccumulatedUsage, SessionManager, StartSessionInput, StartSessionResult, } from "./session/session-manager";
|
|
13
12
|
export type { SessionManifest } from "./session/session-manifest";
|
|
14
13
|
export type { CreateRootSessionWithArtifactsInput, RootSessionArtifacts, } from "./session/session-service";
|
|
15
14
|
export type { WorkspaceManager, WorkspaceManagerEvent, } from "./session/workspace-manager";
|
|
15
|
+
export type { ChatMessage, ChatSessionConfig, ChatSessionStatus, ChatSummary, ChatViewState, } from "./types/chat-schema";
|
|
16
16
|
export type { SessionSource, SessionStatus } from "./types/common";
|
|
17
17
|
export type { CoreAgentMode, CoreModelConfig, CoreRuntimeFeatures, CoreSessionConfig, } from "./types/config";
|
|
18
18
|
export type { CoreSessionEvent, SessionChunkEvent, SessionEndedEvent, SessionTeamProgressEvent, SessionToolEvent, } from "./types/events";
|
|
19
|
-
export type {
|
|
19
|
+
export type { SessionMessagesArtifactUploader } from "./types/session";
|
|
20
|
+
export type { SessionHistoryMetadata, SessionHistoryRecord, SessionRecord, SessionRef, } from "./types/sessions";
|
|
20
21
|
export type { ArtifactStore, SessionStore, TeamStore } from "./types/storage";
|
|
21
22
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,UAAU,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,GAC9B,MAAM,cAAc,CAAC;AACtB,YAAY,EACX,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,yCAAyC,EACzC,sCAAsC,EACtC,8BAA8B,EAC9B,0BAA0B,EAC1B,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,kCAAkC,EAClC,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,iBAAiB,EACjB,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,EACjC,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EACX,WAAW,EACX,WAAW,IAAI,WAAW,EAC1B,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,YAAY,IAAI,kBAAkB,EAClC,cAAc,EACd,mBAAmB,EACnB,cAAc,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EACX,mCAAmC,EACnC,oBAAoB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,aAAa,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EACX,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,UAAU,GACV,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clinebot/core",
|
|
3
3
|
"description": "Cline Core SDK for Node Runtime",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.35",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -15,15 +15,10 @@
|
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"import": "./dist/index.js"
|
|
17
17
|
},
|
|
18
|
-
"./node": {
|
|
19
|
-
"development": "./src/index.ts",
|
|
20
|
-
"types": "./dist/index.d.ts",
|
|
21
|
-
"import": "./dist/index.js"
|
|
22
|
-
},
|
|
23
18
|
"./telemetry": {
|
|
24
|
-
"development": "./src/telemetry/index.ts",
|
|
25
|
-
"types": "./dist/telemetry/index.d.ts",
|
|
26
|
-
"import": "./dist/telemetry/index.js"
|
|
19
|
+
"development": "./src/services/telemetry/index.ts",
|
|
20
|
+
"types": "./dist/services/telemetry/index.d.ts",
|
|
21
|
+
"import": "./dist/services/telemetry/index.js"
|
|
27
22
|
}
|
|
28
23
|
},
|
|
29
24
|
"scripts": {
|
|
@@ -36,8 +31,8 @@
|
|
|
36
31
|
"test:watch": "vitest --config vitest.config.ts"
|
|
37
32
|
},
|
|
38
33
|
"dependencies": {
|
|
39
|
-
"@clinebot/agents": "0.0.
|
|
40
|
-
"@clinebot/llms": "0.0.
|
|
34
|
+
"@clinebot/agents": "0.0.35",
|
|
35
|
+
"@clinebot/llms": "0.0.35",
|
|
41
36
|
"@opentelemetry/api": "^1.9.0",
|
|
42
37
|
"@opentelemetry/api-logs": "^0.214.0",
|
|
43
38
|
"@opentelemetry/exporter-logs-otlp-http": "^0.214.0",
|
|
@@ -58,7 +53,7 @@
|
|
|
58
53
|
},
|
|
59
54
|
"devDependencies": {
|
|
60
55
|
"@clinebot/rpc": "0.0.28",
|
|
61
|
-
"@clinebot/shared": "0.0.
|
|
56
|
+
"@clinebot/shared": "0.0.35"
|
|
62
57
|
},
|
|
63
58
|
"engines": {
|
|
64
59
|
"node": ">=22"
|
package/src/ClineCore.test.ts
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import type { ClineCoreStartInput } from "./ClineCore";
|
|
2
3
|
import type {
|
|
3
4
|
StartSessionInput,
|
|
4
5
|
StartSessionResult,
|
|
5
|
-
} from "./
|
|
6
|
+
} from "./runtime/runtime-host";
|
|
6
7
|
|
|
7
|
-
const {
|
|
8
|
-
|
|
8
|
+
const { createRuntimeHostMock } = vi.hoisted(() => ({
|
|
9
|
+
createRuntimeHostMock: vi.fn(),
|
|
9
10
|
}));
|
|
10
11
|
|
|
11
|
-
vi.mock("./
|
|
12
|
-
|
|
12
|
+
vi.mock("./runtime/host", () => ({
|
|
13
|
+
createRuntimeHost: createRuntimeHostMock,
|
|
13
14
|
}));
|
|
14
15
|
|
|
15
16
|
import { ClineCore } from "./ClineCore";
|
|
16
17
|
|
|
17
|
-
function createStartInput():
|
|
18
|
+
function createStartInput(): ClineCoreStartInput {
|
|
18
19
|
return {
|
|
19
20
|
config: {
|
|
20
21
|
providerId: "anthropic",
|
|
@@ -23,6 +24,7 @@ function createStartInput(): StartSessionInput {
|
|
|
23
24
|
cwd: "/tmp/workspace",
|
|
24
25
|
workspaceRoot: "/tmp/workspace",
|
|
25
26
|
systemPrompt: "You are concise.",
|
|
27
|
+
mode: "act",
|
|
26
28
|
enableTools: true,
|
|
27
29
|
enableSpawnAgent: false,
|
|
28
30
|
enableAgentTeams: false,
|
|
@@ -37,15 +39,13 @@ function createStartResult(sessionId: string): StartSessionResult {
|
|
|
37
39
|
sessionId,
|
|
38
40
|
manifest: {} as StartSessionResult["manifest"],
|
|
39
41
|
manifestPath: `/tmp/${sessionId}.json`,
|
|
40
|
-
transcriptPath: `/tmp/${sessionId}.log`,
|
|
41
|
-
hookPath: `/tmp/${sessionId}.hooks.jsonl`,
|
|
42
42
|
messagesPath: `/tmp/${sessionId}.messages.json`,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
describe("ClineCore", () => {
|
|
47
47
|
beforeEach(() => {
|
|
48
|
-
|
|
48
|
+
createRuntimeHostMock.mockReset();
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
it("applies start-session bootstraps before delegating to the host", async () => {
|
|
@@ -53,9 +53,12 @@ describe("ClineCore", () => {
|
|
|
53
53
|
(event: { type: string; payload: { sessionId: string } }) => void
|
|
54
54
|
> = [];
|
|
55
55
|
const host = {
|
|
56
|
+
runtimeAddress: undefined,
|
|
56
57
|
start: vi.fn(async (input: StartSessionInput) => {
|
|
57
58
|
expect(input.config.systemPrompt).toBe("Bootstrapped prompt");
|
|
58
|
-
expect(input.
|
|
59
|
+
expect(input.localRuntime?.configOverrides?.extensions).toEqual([
|
|
60
|
+
expect.objectContaining({ name: "enterprise" }),
|
|
61
|
+
]);
|
|
59
62
|
return createStartResult("session-1");
|
|
60
63
|
}),
|
|
61
64
|
send: vi.fn(),
|
|
@@ -67,26 +70,28 @@ describe("ClineCore", () => {
|
|
|
67
70
|
list: vi.fn(),
|
|
68
71
|
delete: vi.fn(),
|
|
69
72
|
readMessages: vi.fn(),
|
|
70
|
-
readTranscript: vi.fn(),
|
|
71
|
-
readHooks: vi.fn(),
|
|
72
73
|
subscribe: vi.fn((listener) => {
|
|
73
74
|
listeners.push(listener);
|
|
74
75
|
return () => {};
|
|
75
76
|
}),
|
|
76
77
|
updateSessionModel: vi.fn(),
|
|
77
78
|
};
|
|
78
|
-
|
|
79
|
+
createRuntimeHostMock.mockResolvedValue(host);
|
|
79
80
|
|
|
80
81
|
const dispose = vi.fn(async () => {});
|
|
81
82
|
const applyToStartSessionInput = vi.fn(
|
|
82
|
-
async (input:
|
|
83
|
+
async (input: ClineCoreStartInput) => ({
|
|
83
84
|
...input,
|
|
84
85
|
config: {
|
|
85
86
|
...input.config,
|
|
86
87
|
systemPrompt: "Bootstrapped prompt",
|
|
87
88
|
extensions: [
|
|
88
|
-
{
|
|
89
|
-
|
|
89
|
+
{
|
|
90
|
+
name: "enterprise",
|
|
91
|
+
manifest: { capabilities: [] },
|
|
92
|
+
setup: vi.fn(),
|
|
93
|
+
},
|
|
94
|
+
],
|
|
90
95
|
},
|
|
91
96
|
}),
|
|
92
97
|
);
|
|
@@ -111,6 +116,7 @@ describe("ClineCore", () => {
|
|
|
111
116
|
| ((event: { type: string; payload: { sessionId: string } }) => void)
|
|
112
117
|
| undefined;
|
|
113
118
|
const host = {
|
|
119
|
+
runtimeAddress: "127.0.0.1:5317",
|
|
114
120
|
start: vi.fn(async () => createStartResult("session-2")),
|
|
115
121
|
send: vi.fn(),
|
|
116
122
|
getAccumulatedUsage: vi.fn(),
|
|
@@ -121,15 +127,13 @@ describe("ClineCore", () => {
|
|
|
121
127
|
list: vi.fn(),
|
|
122
128
|
delete: vi.fn(),
|
|
123
129
|
readMessages: vi.fn(),
|
|
124
|
-
readTranscript: vi.fn(),
|
|
125
|
-
readHooks: vi.fn(),
|
|
126
130
|
subscribe: vi.fn((nextListener) => {
|
|
127
131
|
listener = nextListener;
|
|
128
132
|
return () => {};
|
|
129
133
|
}),
|
|
130
134
|
updateSessionModel: vi.fn(),
|
|
131
135
|
};
|
|
132
|
-
|
|
136
|
+
createRuntimeHostMock.mockResolvedValue(host);
|
|
133
137
|
|
|
134
138
|
const dispose = vi.fn(async () => {});
|
|
135
139
|
const core = await ClineCore.create({
|
|
@@ -138,6 +142,7 @@ describe("ClineCore", () => {
|
|
|
138
142
|
dispose,
|
|
139
143
|
}),
|
|
140
144
|
});
|
|
145
|
+
expect(core.runtimeAddress).toBe("127.0.0.1:5317");
|
|
141
146
|
|
|
142
147
|
await core.start(createStartInput());
|
|
143
148
|
expect(dispose).not.toHaveBeenCalled();
|
|
@@ -147,4 +152,75 @@ describe("ClineCore", () => {
|
|
|
147
152
|
|
|
148
153
|
expect(dispose).toHaveBeenCalledTimes(1);
|
|
149
154
|
});
|
|
155
|
+
|
|
156
|
+
it("hydrates list rows through the core API", async () => {
|
|
157
|
+
const host = {
|
|
158
|
+
runtimeAddress: undefined,
|
|
159
|
+
start: vi.fn(),
|
|
160
|
+
send: vi.fn(),
|
|
161
|
+
getAccumulatedUsage: vi.fn(),
|
|
162
|
+
abort: vi.fn(),
|
|
163
|
+
stop: vi.fn(),
|
|
164
|
+
dispose: vi.fn(),
|
|
165
|
+
get: vi.fn(async () => undefined),
|
|
166
|
+
list: vi.fn(async () => [
|
|
167
|
+
{
|
|
168
|
+
sessionId: "session-3",
|
|
169
|
+
source: "cli",
|
|
170
|
+
pid: 1,
|
|
171
|
+
startedAt: "2026-04-21T02:17:46.169Z",
|
|
172
|
+
status: "completed",
|
|
173
|
+
interactive: false,
|
|
174
|
+
provider: "",
|
|
175
|
+
model: "",
|
|
176
|
+
cwd: "/tmp/workspace",
|
|
177
|
+
workspaceRoot: "/tmp/workspace",
|
|
178
|
+
enableTools: true,
|
|
179
|
+
enableSpawn: false,
|
|
180
|
+
enableTeams: false,
|
|
181
|
+
prompt: "hello",
|
|
182
|
+
metadata: {},
|
|
183
|
+
updatedAt: "2026-04-21T02:17:46.169Z",
|
|
184
|
+
},
|
|
185
|
+
]),
|
|
186
|
+
delete: vi.fn(),
|
|
187
|
+
update: vi.fn(),
|
|
188
|
+
readMessages: vi.fn(async () => [
|
|
189
|
+
{
|
|
190
|
+
role: "user",
|
|
191
|
+
content: [{ type: "text", text: "hello" }],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
role: "assistant",
|
|
195
|
+
content: [{ type: "text", text: "hi" }],
|
|
196
|
+
modelInfo: {
|
|
197
|
+
provider: "cline",
|
|
198
|
+
id: "anthropic/claude-sonnet-4.6",
|
|
199
|
+
},
|
|
200
|
+
metrics: {
|
|
201
|
+
cost: 0.02,
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
]),
|
|
205
|
+
handleHookEvent: vi.fn(),
|
|
206
|
+
subscribe: vi.fn(() => () => {}),
|
|
207
|
+
updateSessionModel: vi.fn(),
|
|
208
|
+
};
|
|
209
|
+
createRuntimeHostMock.mockResolvedValue(host);
|
|
210
|
+
|
|
211
|
+
const core = await ClineCore.create();
|
|
212
|
+
const [row] = await core.list(10);
|
|
213
|
+
|
|
214
|
+
expect(host.list).toHaveBeenCalledWith(10);
|
|
215
|
+
expect(host.readMessages).toHaveBeenCalledWith("session-3");
|
|
216
|
+
expect(row).toMatchObject({
|
|
217
|
+
sessionId: "session-3",
|
|
218
|
+
provider: "cline",
|
|
219
|
+
model: "anthropic/claude-sonnet-4.6",
|
|
220
|
+
metadata: {
|
|
221
|
+
title: "hello",
|
|
222
|
+
totalCost: 0.02,
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
});
|
|
150
226
|
});
|
package/src/ClineCore.ts
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
AgentConfig,
|
|
3
|
+
BasicLogger,
|
|
3
4
|
ITelemetryService,
|
|
4
5
|
ToolApprovalRequest,
|
|
5
6
|
ToolApprovalResult,
|
|
6
7
|
} from "@clinebot/shared";
|
|
8
|
+
import type { ToolExecutors } from "./extensions/tools";
|
|
9
|
+
import { hydrateSessionHistory } from "./runtime/history";
|
|
10
|
+
import type { SessionBackend } from "./runtime/host";
|
|
11
|
+
import { createRuntimeHost } from "./runtime/host";
|
|
12
|
+
import type {
|
|
13
|
+
LocalRuntimeStartOptions,
|
|
14
|
+
RuntimeHost,
|
|
15
|
+
RuntimeHostMode,
|
|
16
|
+
StartSessionInput,
|
|
17
|
+
StartSessionResult,
|
|
18
|
+
} from "./runtime/runtime-host";
|
|
19
|
+
import { splitCoreSessionConfig } from "./runtime/runtime-host";
|
|
7
20
|
import type { TeamToolsFactory } from "./runtime/session-runtime";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
type SessionBackend,
|
|
11
|
-
type SessionHost,
|
|
12
|
-
} from "./session/session-host";
|
|
13
|
-
import type { StartSessionInput } from "./session/session-manager";
|
|
14
|
-
import type { ToolExecutors } from "./tools";
|
|
21
|
+
import type { CoreSessionConfig } from "./types/config";
|
|
22
|
+
import type { SessionMessagesArtifactUploader } from "./types/session";
|
|
15
23
|
|
|
16
24
|
/** Advanced options for connecting to or spawning the Cline RPC server. */
|
|
17
25
|
export interface RpcOptions {
|
|
@@ -36,6 +44,14 @@ export interface RpcOptions {
|
|
|
36
44
|
connectDelayMs?: number;
|
|
37
45
|
}
|
|
38
46
|
|
|
47
|
+
export type { RuntimeHostMode };
|
|
48
|
+
|
|
49
|
+
export interface ClineCoreStartInput
|
|
50
|
+
extends Omit<StartSessionInput, "config" | "localRuntime"> {
|
|
51
|
+
config: CoreSessionConfig;
|
|
52
|
+
localRuntime?: LocalRuntimeStartOptions;
|
|
53
|
+
}
|
|
54
|
+
|
|
39
55
|
export interface ClineCoreOptions {
|
|
40
56
|
/**
|
|
41
57
|
* A human-readable name for this SDK client (e.g. `"my-app"`, `"acme-bot"`).
|
|
@@ -49,13 +65,13 @@ export interface ClineCoreOptions {
|
|
|
49
65
|
*/
|
|
50
66
|
distinctId?: string;
|
|
51
67
|
/**
|
|
52
|
-
* Controls how the
|
|
68
|
+
* Controls how the runtime host is selected:
|
|
53
69
|
* - `"auto"` (default) — connects to a running RPC server if available, starts one in the
|
|
54
|
-
* background if `rpc.autoStart` is true, and falls back to local
|
|
55
|
-
* - `"rpc"` — requires an RPC server; throws if one is not reachable.
|
|
56
|
-
* - `"local"` — always uses local
|
|
70
|
+
* background if `rpc.autoStart` is true, and falls back to local in-process execution.
|
|
71
|
+
* - `"rpc"` — requires an RPC runtime server; throws if one is not reachable.
|
|
72
|
+
* - `"local"` — always uses local in-process execution and local SQLite/file storage.
|
|
57
73
|
*/
|
|
58
|
-
backendMode?:
|
|
74
|
+
backendMode?: RuntimeHostMode;
|
|
59
75
|
/**
|
|
60
76
|
* RPC server connection options. Only relevant when `backendMode` is `"auto"` or `"rpc"`.
|
|
61
77
|
*/
|
|
@@ -70,6 +86,11 @@ export interface ClineCoreOptions {
|
|
|
70
86
|
* If omitted, telemetry is a no-op.
|
|
71
87
|
*/
|
|
72
88
|
telemetry?: ITelemetryService;
|
|
89
|
+
/**
|
|
90
|
+
* Optional structured logger for core-side operational diagnostics such as
|
|
91
|
+
* RPC backend startup, reuse, and fallback decisions.
|
|
92
|
+
*/
|
|
93
|
+
logger?: BasicLogger;
|
|
73
94
|
/**
|
|
74
95
|
* Per-tool approval policies that control whether a tool runs automatically,
|
|
75
96
|
* requires user confirmation, or is blocked entirely.
|
|
@@ -83,6 +104,11 @@ export interface ClineCoreOptions {
|
|
|
83
104
|
requestToolApproval?: (
|
|
84
105
|
request: ToolApprovalRequest,
|
|
85
106
|
) => Promise<ToolApprovalResult>;
|
|
107
|
+
/**
|
|
108
|
+
* Optional hook invoked after `messages.json` is persisted to disk.
|
|
109
|
+
* Consumers can use this to mirror session transcripts into remote storage.
|
|
110
|
+
*/
|
|
111
|
+
messagesArtifactUploader?: SessionMessagesArtifactUploader;
|
|
86
112
|
/**
|
|
87
113
|
* An already-constructed session backend to use instead of resolving one automatically.
|
|
88
114
|
* Intended for testing or embedding a custom persistence layer.
|
|
@@ -101,11 +127,10 @@ export interface ClineCoreOptions {
|
|
|
101
127
|
/**
|
|
102
128
|
* Optional hook invoked before each session starts.
|
|
103
129
|
* Use this to prepare workspace-scoped runtime state and then return an
|
|
104
|
-
* adapter that mutates the
|
|
105
|
-
* builds the runtime.
|
|
130
|
+
* adapter that mutates the shared session input before core starts the run.
|
|
106
131
|
*/
|
|
107
132
|
prepare?: (
|
|
108
|
-
input:
|
|
133
|
+
input: ClineCoreStartInput,
|
|
109
134
|
) =>
|
|
110
135
|
| Promise<StartSessionBootstrap | undefined>
|
|
111
136
|
| StartSessionBootstrap
|
|
@@ -114,8 +139,8 @@ export interface ClineCoreOptions {
|
|
|
114
139
|
|
|
115
140
|
export interface StartSessionBootstrap {
|
|
116
141
|
applyToStartSessionInput(
|
|
117
|
-
input:
|
|
118
|
-
): Promise<
|
|
142
|
+
input: ClineCoreStartInput,
|
|
143
|
+
): Promise<ClineCoreStartInput> | ClineCoreStartInput;
|
|
119
144
|
dispose?(): Promise<void> | void;
|
|
120
145
|
}
|
|
121
146
|
|
|
@@ -130,11 +155,11 @@ export interface StartSessionBootstrap {
|
|
|
130
155
|
* const session = await cline.start({ ... });
|
|
131
156
|
* ```
|
|
132
157
|
*/
|
|
133
|
-
export class ClineCore implements
|
|
158
|
+
export class ClineCore implements RuntimeHost {
|
|
134
159
|
readonly clientName: string | undefined;
|
|
135
|
-
|
|
160
|
+
readonly runtimeAddress: string | undefined;
|
|
161
|
+
private readonly host: RuntimeHost;
|
|
136
162
|
private readonly prepare: ClineCoreOptions["prepare"] | undefined;
|
|
137
|
-
private readonly teamToolsFactory: TeamToolsFactory | undefined;
|
|
138
163
|
private readonly activeSessionBootstraps = new Map<
|
|
139
164
|
string,
|
|
140
165
|
StartSessionBootstrap
|
|
@@ -142,15 +167,15 @@ export class ClineCore implements SessionHost {
|
|
|
142
167
|
private readonly unsubscribeBootstrapCleanup: () => void;
|
|
143
168
|
|
|
144
169
|
private constructor(
|
|
145
|
-
host:
|
|
170
|
+
host: RuntimeHost,
|
|
146
171
|
clientName: string | undefined,
|
|
172
|
+
runtimeAddress: string | undefined,
|
|
147
173
|
prepare: ClineCoreOptions["prepare"],
|
|
148
|
-
teamToolsFactory: TeamToolsFactory | undefined,
|
|
149
174
|
) {
|
|
150
175
|
this.clientName = clientName;
|
|
176
|
+
this.runtimeAddress = runtimeAddress;
|
|
151
177
|
this.host = host;
|
|
152
178
|
this.prepare = prepare;
|
|
153
|
-
this.teamToolsFactory = teamToolsFactory;
|
|
154
179
|
this.unsubscribeBootstrapCleanup = this.host.subscribe((event) => {
|
|
155
180
|
if (event.type !== "ended") {
|
|
156
181
|
return;
|
|
@@ -160,12 +185,12 @@ export class ClineCore implements SessionHost {
|
|
|
160
185
|
}
|
|
161
186
|
|
|
162
187
|
static async create(options: ClineCoreOptions = {}): Promise<ClineCore> {
|
|
163
|
-
const host = await
|
|
188
|
+
const host = await createRuntimeHost(options);
|
|
164
189
|
return new ClineCore(
|
|
165
190
|
host,
|
|
166
191
|
options.clientName,
|
|
192
|
+
host.runtimeAddress,
|
|
167
193
|
options.prepare,
|
|
168
|
-
options.teamToolsFactory,
|
|
169
194
|
);
|
|
170
195
|
}
|
|
171
196
|
|
|
@@ -178,16 +203,61 @@ export class ClineCore implements SessionHost {
|
|
|
178
203
|
await Promise.resolve(bootstrap.dispose?.());
|
|
179
204
|
}
|
|
180
205
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
206
|
+
private toClineCoreStartInput(
|
|
207
|
+
input: StartSessionInput | ClineCoreStartInput,
|
|
208
|
+
): ClineCoreStartInput {
|
|
209
|
+
const config = input.config as CoreSessionConfig;
|
|
210
|
+
return "providerId" in config
|
|
211
|
+
? {
|
|
212
|
+
...input,
|
|
213
|
+
config: {
|
|
214
|
+
...config,
|
|
215
|
+
...(input.localRuntime?.configOverrides ?? {}),
|
|
216
|
+
},
|
|
217
|
+
localRuntime: input.localRuntime
|
|
218
|
+
? {
|
|
219
|
+
...input.localRuntime,
|
|
220
|
+
configOverrides: input.localRuntime.configOverrides,
|
|
221
|
+
}
|
|
222
|
+
: undefined,
|
|
223
|
+
}
|
|
224
|
+
: (input as ClineCoreStartInput);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
private normalizeStartInput(input: ClineCoreStartInput): StartSessionInput {
|
|
228
|
+
const split = splitCoreSessionConfig(input.config);
|
|
229
|
+
const localRuntime =
|
|
230
|
+
split.localRuntime || input.localRuntime
|
|
231
|
+
? {
|
|
232
|
+
...(split.localRuntime ?? {}),
|
|
233
|
+
...(input.localRuntime ?? {}),
|
|
234
|
+
configOverrides: {
|
|
235
|
+
...(split.localRuntime?.configOverrides ?? {}),
|
|
236
|
+
...(input.localRuntime?.configOverrides ?? {}),
|
|
237
|
+
},
|
|
238
|
+
}
|
|
239
|
+
: undefined;
|
|
240
|
+
return {
|
|
241
|
+
...input,
|
|
242
|
+
...split,
|
|
243
|
+
...(localRuntime ? { localRuntime } : {}),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
start(input: StartSessionInput): Promise<StartSessionResult>;
|
|
248
|
+
start(input: ClineCoreStartInput): Promise<StartSessionResult>;
|
|
249
|
+
async start(
|
|
250
|
+
input: StartSessionInput | ClineCoreStartInput,
|
|
251
|
+
): Promise<StartSessionResult> {
|
|
252
|
+
const clineCoreInput = this.toClineCoreStartInput(input);
|
|
253
|
+
const bootstrap = await this.prepare?.(clineCoreInput);
|
|
186
254
|
try {
|
|
187
|
-
const
|
|
188
|
-
? await bootstrap.applyToStartSessionInput(
|
|
189
|
-
:
|
|
190
|
-
const result = await this.host.start(
|
|
255
|
+
const preparedInput = bootstrap
|
|
256
|
+
? await bootstrap.applyToStartSessionInput(clineCoreInput)
|
|
257
|
+
: clineCoreInput;
|
|
258
|
+
const result = await this.host.start(
|
|
259
|
+
this.normalizeStartInput(preparedInput),
|
|
260
|
+
);
|
|
191
261
|
if (bootstrap) {
|
|
192
262
|
const activeSession = await this.host.get(result.sessionId);
|
|
193
263
|
if (activeSession) {
|
|
@@ -201,16 +271,16 @@ export class ClineCore implements SessionHost {
|
|
|
201
271
|
await Promise.resolve(bootstrap?.dispose?.());
|
|
202
272
|
throw error;
|
|
203
273
|
}
|
|
204
|
-
}
|
|
205
|
-
send:
|
|
206
|
-
getAccumulatedUsage:
|
|
274
|
+
}
|
|
275
|
+
send: RuntimeHost["send"] = (...args) => this.host.send(...args);
|
|
276
|
+
getAccumulatedUsage: RuntimeHost["getAccumulatedUsage"] = (...args) =>
|
|
207
277
|
this.host.getAccumulatedUsage(...args);
|
|
208
|
-
abort:
|
|
209
|
-
stop:
|
|
278
|
+
abort: RuntimeHost["abort"] = (...args) => this.host.abort(...args);
|
|
279
|
+
stop: RuntimeHost["stop"] = async (sessionId) => {
|
|
210
280
|
await this.host.stop(sessionId);
|
|
211
281
|
await this.disposeSessionBootstrap(sessionId);
|
|
212
282
|
};
|
|
213
|
-
dispose:
|
|
283
|
+
dispose: RuntimeHost["dispose"] = async (...args) => {
|
|
214
284
|
try {
|
|
215
285
|
await this.host.dispose(...args);
|
|
216
286
|
} finally {
|
|
@@ -221,23 +291,23 @@ export class ClineCore implements SessionHost {
|
|
|
221
291
|
);
|
|
222
292
|
}
|
|
223
293
|
};
|
|
224
|
-
get:
|
|
225
|
-
list:
|
|
226
|
-
|
|
294
|
+
get: RuntimeHost["get"] = (...args) => this.host.get(...args);
|
|
295
|
+
list: RuntimeHost["list"] = async (limit = 200) =>
|
|
296
|
+
await hydrateSessionHistory(this.host, await this.host.list(limit));
|
|
297
|
+
delete: RuntimeHost["delete"] = async (sessionId) => {
|
|
227
298
|
const deleted = await this.host.delete(sessionId);
|
|
228
299
|
if (deleted) {
|
|
229
300
|
await this.disposeSessionBootstrap(sessionId);
|
|
230
301
|
}
|
|
231
302
|
return deleted;
|
|
232
303
|
};
|
|
233
|
-
|
|
304
|
+
update: RuntimeHost["update"] = (...args) => this.host.update(...args);
|
|
305
|
+
readMessages: RuntimeHost["readMessages"] = (...args) =>
|
|
234
306
|
this.host.readMessages(...args);
|
|
235
|
-
|
|
236
|
-
this.host.
|
|
237
|
-
|
|
238
|
-
this.host.readHooks(...args);
|
|
239
|
-
subscribe: SessionHost["subscribe"] = (...args) =>
|
|
307
|
+
handleHookEvent: RuntimeHost["handleHookEvent"] = (...args) =>
|
|
308
|
+
this.host.handleHookEvent(...args);
|
|
309
|
+
subscribe: RuntimeHost["subscribe"] = (...args) =>
|
|
240
310
|
this.host.subscribe(...args);
|
|
241
|
-
updateSessionModel:
|
|
311
|
+
updateSessionModel: RuntimeHost["updateSessionModel"] = (...args) =>
|
|
242
312
|
this.host.updateSessionModel?.(...args) ?? Promise.resolve();
|
|
243
313
|
}
|
package/src/auth/cline.ts
CHANGED
package/src/auth/codex.ts
CHANGED
package/src/auth/oca.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
captureAuthStarted,
|
|
7
7
|
captureAuthSucceeded,
|
|
8
8
|
identifyAccount,
|
|
9
|
-
} from "../telemetry/core-events";
|
|
9
|
+
} from "../services/telemetry/core-events";
|
|
10
10
|
import { BoundedTtlCache } from "./bounded-ttl-cache";
|
|
11
11
|
import { startLocalOAuthServer } from "./server";
|
|
12
12
|
import type {
|
|
@@ -2,6 +2,7 @@ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import type { Tool, ToolContext } from "@clinebot/shared";
|
|
5
|
+
import { resolveDocumentsExtensionPath } from "@clinebot/shared/storage";
|
|
5
6
|
import { afterEach, describe, expect, it } from "vitest";
|
|
6
7
|
import {
|
|
7
8
|
AGENT_CONFIG_DIRECTORY_NAME,
|
|
@@ -12,7 +13,6 @@ import {
|
|
|
12
13
|
resolveAgentConfigSearchPaths,
|
|
13
14
|
resolveAgentsConfigDirPath,
|
|
14
15
|
resolveAgentTools,
|
|
15
|
-
resolveDocumentsAgentConfigDirectoryPath,
|
|
16
16
|
toPartialAgentConfig,
|
|
17
17
|
} from "./agent-config-loader";
|
|
18
18
|
|
|
@@ -46,7 +46,7 @@ describe("agent config YAML loader", () => {
|
|
|
46
46
|
it("includes documents and settings search paths", () => {
|
|
47
47
|
process.env.CLINE_DATA_DIR = "/tmp/cline-data";
|
|
48
48
|
expect(resolveAgentConfigSearchPaths()).toEqual([
|
|
49
|
-
|
|
49
|
+
resolveDocumentsExtensionPath("Agents"),
|
|
50
50
|
join("/tmp/cline-data", "settings", AGENT_CONFIG_DIRECTORY_NAME),
|
|
51
51
|
]);
|
|
52
52
|
});
|
|
@@ -56,7 +56,7 @@ describe("agent config YAML loader", () => {
|
|
|
56
56
|
const definition = createAgentConfigDefinition();
|
|
57
57
|
expect(definition.type).toBe("agent");
|
|
58
58
|
expect(definition.directories).toEqual([
|
|
59
|
-
|
|
59
|
+
resolveDocumentsExtensionPath("Agents"),
|
|
60
60
|
join("/tmp/cline-data", "settings", AGENT_CONFIG_DIRECTORY_NAME),
|
|
61
61
|
]);
|
|
62
62
|
expect(definition.includeFile?.("agent.yaml", "/tmp/agent.yaml")).toBe(
|
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
AGENT_CONFIG_DIRECTORY_NAME,
|
|
3
3
|
resolveAgentConfigSearchPaths as resolveAgentConfigSearchPathsFromShared,
|
|
4
4
|
resolveAgentsConfigDirPath as resolveAgentsConfigDirPathFromShared,
|
|
5
|
-
resolveDocumentsAgentConfigDirectoryPath,
|
|
6
5
|
} from "@clinebot/shared/storage";
|
|
7
6
|
import {
|
|
8
7
|
type AgentYamlConfig,
|
|
@@ -38,10 +37,7 @@ export type AgentConfigWatcherEvent = UnifiedConfigWatcherEvent<
|
|
|
38
37
|
AgentYamlConfig
|
|
39
38
|
>;
|
|
40
39
|
|
|
41
|
-
export {
|
|
42
|
-
AGENT_CONFIG_DIRECTORY_NAME,
|
|
43
|
-
resolveDocumentsAgentConfigDirectoryPath,
|
|
44
|
-
};
|
|
40
|
+
export { AGENT_CONFIG_DIRECTORY_NAME };
|
|
45
41
|
|
|
46
42
|
export function resolveAgentsConfigDirPath(): string {
|
|
47
43
|
return resolveAgentsConfigDirPathFromShared();
|