Skip to content

Commit d1aa004

Browse files
authored
Merge pull request #108 from 7df-lab/dev/agent_client_protocol_0617
Add ACP client protocol support
2 parents df1a01b + 3f1adc3 commit d1aa004

232 files changed

Lines changed: 24020 additions & 3338 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 252 additions & 60 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@ resolver = "3"
3131
[workspace.package]
3232
edition = "2024"
3333
license = "MIT"
34-
rust-version = "1.85"
34+
rust-version = "1.88.0"
3535
version = "0.1.21"
3636

3737
[workspace.dependencies]
38+
agent-client-protocol = "0.14.0"
3839
ansi-to-tui = "7.0.0"
3940
anyhow = "1"
4041
arboard = { version = "3", features = ["wayland-data-control"] }
@@ -130,6 +131,7 @@ tokio = { version = "1", features = ["full"] }
130131
tokio-stream = "0.1"
131132
tokio-util = "0.7.18"
132133
toml = "0.8"
134+
tray-icon = { version = "0.24.1", default-features = false }
133135
tracing = "0.1"
134136
tracing-appender = "0.2"
135137
tracing-subscriber = { version = "0.3", features = [
@@ -172,6 +174,11 @@ vt100 = "0.16.2"
172174
walkdir = "2.5.0"
173175
webbrowser = "1.0"
174176
which = "8"
177+
windows-sys = { version = "0.61", features = [
178+
"Win32_Foundation",
179+
"Win32_System_Threading",
180+
"Win32_UI_WindowsAndMessaging",
181+
] }
175182

176183
[patch.crates-io]
177184
crossterm = { git = "https://github.com/nornagon/crossterm", branch = "nornagon/color-query" }

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2026 wangtsiao
3+
Copyright (c) 2026 Qi'ao Wang (wangtsiao@gmail.com)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.ja.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ default_reasoning_effort = "high"
250250
"channel": "Custom",
251251
"provider": "openai_chat_completions",
252252
"description": "Custom OpenAI-compatible coding model.",
253-
"thinking_capability": "unsupported",
253+
"reasoning_capability": "unsupported",
254254
"context_window": 200000,
255255
"effective_context_window_percent": 95,
256256
"max_tokens": 4096,

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ Example `models.json` entry:
266266
"channel": "Custom",
267267
"provider": "openai_chat_completions",
268268
"description": "Custom OpenAI-compatible coding model.",
269-
"thinking_capability": "unsupported",
269+
"reasoning_capability": "unsupported",
270270
"context_window": 200000,
271271
"effective_context_window_percent": 95,
272272
"max_tokens": 4096,

README.ru.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ default_reasoning_effort = "high"
268268
"channel": "Custom",
269269
"provider": "openai_chat_completions",
270270
"description": "Custom OpenAI-compatible coding model.",
271-
"thinking_capability": "unsupported",
271+
"reasoning_capability": "unsupported",
272272
"context_window": 200000,
273273
"effective_context_window_percent": 95,
274274
"max_tokens": 4096,

apps/web/content/docs/configuration/model-bindings.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ default_reasoning_effort = "high"
3636
## Slug Versus Model Name
3737

3838
`model_slug` is the Devo-side identity. It maps to local model metadata such as
39-
context window, thinking support, and display defaults.
39+
context window, reasoning support, and display defaults.
4040

4141
`model_name` is the provider-side value sent in the API request.
4242

apps/web/content/docs/configuration/model-bindings.zh.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ default_reasoning_effort = "high"
3434

3535
## Slug 与模型名
3636

37-
`model_slug` 是 Devo 侧的身份。它映射到本地模型元数据,例如 context window、thinking 支持和显示默认值。
37+
`model_slug` 是 Devo 侧的身份。它映射到本地模型元数据,例如 context window、reasoning 支持和显示默认值。
3838

3939
`model_name` 是 provider 侧的值,会放进 API 请求。
4040

apps/web/content/docs/configuration/model-resolution.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ After a binding resolves, Devo resolves provider settings:
6060
4. confirm the binding's `invocation_method` is allowed by provider
6161
`wire_apis`;
6262
5. read the provider credential id from `auth.json`;
63-
6. merge provider base URL, headers, selected model name, thinking selection,
63+
6. merge provider base URL, headers, selected model name, reasoning effort selection,
6464
context settings, and HTTP proxy settings.
6565

6666
If no provider can be resolved, Devo reports:
@@ -69,9 +69,9 @@ If no provider can be resolved, Devo reports:
6969
No provider configured. Run `devo onboard` to complete setup.
7070
```
7171

72-
## Thinking Selection
72+
## Reasoning Effort Selection
7373

74-
The active thinking selection can come from config or model selection. Devo
74+
The active reasoning effort selection can come from config or model selection. Devo
7575
stores it as a user-facing value such as `disabled`, `enabled`, `high`, or
7676
`max`, then resolves it into provider-specific request fields for the selected
7777
wire API.
@@ -85,5 +85,5 @@ For models with variants, Devo builds a provider request model map scoped to the
8585
selected provider. This prevents another provider with the same local slug from
8686
changing the wire model name for the active provider.
8787

88-
This matters when a thinking variant has a different provider-side model name
88+
This matters when a reasoning variant has a different provider-side model name
8989
than the base model.

apps/web/content/docs/configuration/model-resolution.zh.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,22 @@ Binding 解析完成后,Devo 继续解析 provider 设置:
5353
3. 确认 binding 已启用;
5454
4. 确认 binding 的 `invocation_method` 被 provider `wire_apis` 允许;
5555
5.`auth.json` 读取 provider credential id;
56-
6. 合并 provider base URL、headers、选中的模型名、thinking selection、context 设置和 HTTP proxy 设置。
56+
6. 合并 provider base URL、headers、选中的模型名、reasoning effort selection、context 设置和 HTTP proxy 设置。
5757

5858
如果无法解析 provider,Devo 会报告:
5959

6060
```text
6161
No provider configured. Run `devo onboard` to complete setup.
6262
```
6363

64-
## Thinking Selection
64+
## Reasoning Effort Selection
6565

66-
当前 thinking selection 可以来自配置或模型选择。Devo 将它保存为用户可理解的值,例如 `disabled``enabled``high``max`,再为选中的 wire API 解析成 provider-specific 请求字段。
66+
当前 reasoning effort selection 可以来自配置或模型选择。Devo 将它保存为用户可理解的值,例如 `disabled``enabled``high``max`,再为选中的 wire API 解析成 provider-specific 请求字段。
6767

6868
当没有更强的 session 或 turn selection 时,会使用 binding 上的 `default_reasoning_effort`
6969

7070
## Request Model Map
7171

7272
对于带变体的模型,Devo 会构造一个按当前 provider 作用域限定的 provider request model map。这避免另一个 provider 上相同的本地 slug 改变当前 provider 的 wire model name。
7373

74-
thinking 变体的 provider-side model name 与基础模型不同时,这一点很重要。
74+
reasoning 变体的 provider-side model name 与基础模型不同时,这一点很重要。

0 commit comments

Comments
 (0)