Files
cline/package.json
T
Bee 6d7e745fb7 feat(core, llms): add provider-aware web search tools (#13075)
* feat(core, llms): Cline custom provider & web search

* fix(llms): preserve reasoning model token parameter

* fix(llms): keep ClinePass provider options on the wire in the shared Cline provider

The shared Cline provider hardcoded the AI SDK provider name to "cline",
but the openai-compatible model reads request-body passthrough options from
providerOptions[<name>]. Option routing emits ClinePass options under the
"cline-pass"/"clinePass" buckets, so gateway reasoning (extended thinking
budgets) silently stopped reaching the wire for cline-pass after it moved
off the generic openai-compatible module.

Thread the gateway provider id through as the provider name, and restore
strictJsonSchema: false for the new "cline" provider-options target so the
wire format matches the previous openai-compatible behavior. Add cline-pass
coverage at both the option-routing and request-body levels.

* feat(sdk): persist provider-executed tool activity (#13077)

* feat(core, llms): Cline custom provider & web search

* fix(llms): preserve reasoning model token parameter

* feat(sdk): persist provider-executed tool activity

* fix(vscode): restore state proto and settings section reverted by merge

The merge of origin/bee/websearch into this branch resolved conflicts by
keeping this branch's pre-#13126 copies of apps/vscode files, which
deleted the auto_approve_all_toggled = 174 proto field (without reserving
the number) and dropped a formatting line in FeatureSettingsSection.tsx.
Neither file is in scope for this PR. Restore both to main's content so
the proto source matches the checked-in generated code again.

* chore(vscode): match main byte-for-byte in FeatureSettingsSection.tsx

The pre-commit biome hook strips a blank line that exists on main, which
kept this out-of-scope file in the PR diff. Commit the exact main content
with --no-verify so the PR no longer touches apps/vscode at all.

---------

Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>

* refactor(llms): key ClinePass provider options to the shared cline bucket

Both Cline gateway ids (cline and cline-pass) are served by the same
shared "cline" AI SDK provider and hit the same Cline API, so threading
the gateway provider id through as the AI SDK provider name (78dc6f3e7)
was unnecessary indirection. Revert the name threading and instead
normalize option-routing bucket keys: buildProviderAndAliasPatch now
keys both Cline gateway ids to the shared "cline" providerOptions
bucket, which is the only bucket the openai-compatible model reads for
request-body passthrough.

Also tighten the regression coverage that motivated the original fix:
the previous effort-based test rows were vacuously satisfied through the
portable-reasoning early return (effort reasoning never reaches provider
option buckets by design). The rows now use explicit reasoning budgets,
which do flow through the gateway bucket path, and the wire-level test
composes real provider options end to end instead of hand-feeding
buckets.

* revert(llms): drop the cline strictJsonSchema special case in generic-compatible

Restores buildCompatibleProviderOptions to its pre-78dc6f3e7 state. The
strictJsonSchema passthrough is verified inert for the gateway (nothing
in @cline/llms sets a response format), so keeping a hardcoded provider
target in the generic helper bought nothing. If structured outputs are
ever added, strictness for the cline target can be decided deliberately
then.

* fix(llms): claim native web search for openai-native, not the openai alias

supportsModelTool listed "openai", but that id aliases to
openai-compatible (PROVIDER_ID_ALIASES), whose module has no native web
search. The actual native OpenAI builtin id is "openai-native", which is
served by the OpenAI Responses module that does implement
buildModelTools with provider.tools.webSearch(). Without this, the
web_search tool was never offered to native OpenAI users, and was
wrongly offered for the compatible alias.

* refactor(llms): declare model tools in provider manifests

* feat(sdk): project provider tool activity in session history

---------

Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
2026-08-13 18:12:10 -07:00

97 lines
4.3 KiB
JSON

{
"name": "@cline/packages",
"private": true,
"workspaces": [
"sdk/packages/*",
"apps/*",
"apps/vscode/webview-ui",
"apps/vscode/testing-platform",
"apps/cline-hub/src/webview",
"apps/examples/*",
"apps/examples/vscode/src/webview",
"sdk/examples",
"sdk/examples/plugins/*"
],
"scripts": {
"prepare": "husky",
"build": "bun run clean && bun install && bun run build:sdk && bun -F @cline/cli build",
"build:sdk": "bun --production -F './sdk/packages/*' build",
"build:apps": "bun -F './apps/**' --production build",
"build:models": "bun -F @cline/llms generate:models && bun format --write",
"dev": "bun --conditions=development run build:sdk && bun run cli && bun run cli hub stop",
"cli": "bun --conditions=development --cwd apps/cli dev",
"code": "bun --conditions=development -F @cline/code dev",
"clean": "bun run sdk/scripts/clean.ts",
"types": "bun --parallel -F '*' typecheck",
"test": "bun --parallel -F './sdk/packages/**' -F @cline/cli -F @cline/cline-hub -F @cline/vscode test",
"test:unit": "bash -lc 'set -euo pipefail; bun -F @cline/agents test & p1=$!; bun -F @cline/llms test & p2=$!; bun -F @cline/core test:unit & p3=$!; bun -F @cline/cli test:unit & p4=$!; bun -F @cline/cline-hub test & p5=$!; bun -F @cline/vscode test & p6=$!; wait $p1; wait $p2; wait $p3; wait $p4; wait $p5; wait $p6'",
"test:e2e": "bun -F @cline/core test:e2e && bun -F @cline/cli test:e2e",
"test:e2e:interactive": "bun -F @cline/cli test:e2e:interactive",
"verify:routines": "zsh -lc 'cd sdk/packages/core && bunx vitest run src/cron/schedule-service.test.ts --config vitest.config.ts'",
"verify:workos-device-auth": "bun sdk/scripts/verify-workos-device-auth.ts",
"biome": "bunx --bun @biomejs/biome",
"format": "bun biome format sdk/ apps/cli/ apps/cline-hub/ apps/examples/",
"lint": "bun biome lint sdk/ apps/cli/ apps/cline-hub/ apps/examples/",
"fix": "bun biome check --write --unsafe --diagnostic-level=error sdk/ apps/cli/ apps/cline-hub/ apps/examples/",
"check": "bun biome check --diagnostic-level=error sdk/ apps/cli/ apps/cline-hub/ apps/examples/ && bun run build:sdk && bun run -F @cline/cli build && bun -F @cline/cline-hub build:webview && bun --parallel -F './sdk/packages/**' -F @cline/cli -F @cline/cline-hub typecheck && bun sdk/scripts/check-publish.ts",
"version": "bun run types && bun sdk/scripts/version.ts",
"release": "bun sdk/scripts/release.ts"
},
"lint-staged": {
"sdk/**": [
"sh -c 'bun run types'",
"bun biome check --no-errors-on-unmatched --files-ignore-unknown=true"
],
"apps/{cli,cline-hub,examples}/**": [
"sh -c 'bun run types'",
"bun biome check --no-errors-on-unmatched --files-ignore-unknown=true"
]
},
"module": "index.ts",
"type": "module",
"engines": {
"bun": "1.3.13",
"node": ">=22"
},
"devDependencies": {
"@biomejs/biome": "2.4.5",
"@types/bun": "^1.3.13",
"@types/node": "^25.3.5",
"husky": "^9.1.7",
"lint-staged": "^16.3.2",
"vitest": "^4.0.18"
},
"peerDependencies": {
"nanoid": "^5.1.7",
"typescript": "^5.9.3"
},
"overrides": {
"axios": "1.18.0",
"fast-uri": ">=3.1.4",
"undici@>=6.0.0 <7.0.0": "6.28.0",
"@opentui/core": "0.4.3",
"@opentui/react": "0.4.3",
"tar-fs": ">=3.1.1",
"tar": "^7.5.2",
"js-yaml": "^4.1.1",
"serialize-javascript": ">=7.0.3",
"protobufjs": "7.6.5",
"mermaid": "11.16.0",
"diff": "8.0.4",
"@sap-cloud-sdk/connectivity": "4.6.0",
"@sap-cloud-sdk/http-client": "4.6.0",
"@sap-cloud-sdk/openapi": "4.6.0",
"@sap-cloud-sdk/resilience": "4.6.0",
"@sap-cloud-sdk/util": "4.6.0"
},
"trustedDependencies": [
"better-sqlite3",
"grpc-tools"
],
"packageManager": "bun@1.3.13",
"patchedDependencies": {
"@opentui-ui/dialog@0.1.2": "patches/@opentui-ui%2Fdialog@0.1.2.patch",
"ollama-ai-provider-v2@4.0.1": "patches/ollama-ai-provider-v2@4.0.1.patch"
}
}