Skip to content

Commit 8e57e9a

Browse files
authored
feat: chat cli UI revamp prep (#3112)
* creates crate for new UI layer * defines protocol types according to agui * defines conduit constructs * initial conduit integration with old loop * adjusts spinners to be compatible with conduit * adds mvp for new ui layer * adds settings for different UI mode * adds content extraction logic for legacy mode * instruments tool call to emit structured message * hides cursor during spinner * instruments assistant text to emit structured events * handles tool call rejection structured event * flushes stderr and stdout accordingly to old behavior
1 parent ee7a68b commit 8e57e9a

File tree

27 files changed

+1938
-241
lines changed

27 files changed

+1938
-241
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
resolver = "3"
3-
members = ["crates/amzn-codewhisperer-client", "crates/amzn-codewhisperer-streaming-client", "crates/amzn-consolas-client", "crates/amzn-qdeveloper-streaming-client", "crates/amzn-toolkit-telemetry-client", "crates/aws-toolkit-telemetry-definitions", "crates/chat-cli", "crates/semantic-search-client"]
3+
members = ["crates/amzn-codewhisperer-client", "crates/amzn-codewhisperer-streaming-client", "crates/amzn-consolas-client", "crates/amzn-qdeveloper-streaming-client", "crates/amzn-toolkit-telemetry-client", "crates/aws-toolkit-telemetry-definitions", "crates/chat-cli", "crates/semantic-search-client", "crates/chat-cli-ui"]
44
default-members = ["crates/chat-cli"]
55

66
[workspace.package]
@@ -132,6 +132,7 @@ schemars = "1.0.4"
132132
jsonschema = "0.30.0"
133133
zip = "2.2.0"
134134
rmcp = { version = "0.8.0", features = ["client", "transport-sse-client-reqwest", "reqwest", "transport-streamable-http-client-reqwest", "transport-child-process", "tower", "auth"] }
135+
chat-cli-ui = { path = "crates/chat-cli-ui" }
135136

136137
[workspace.lints.rust]
137138
future_incompatible = "warn"

crates/chat-cli-ui/Cargo.toml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
[package]
2+
name = "chat-cli-ui"
3+
authors.workspace = true
4+
edition.workspace = true
5+
homepage.workspace = true
6+
publish.workspace = true
7+
version.workspace = true
8+
license.workspace = true
9+
10+
[lints]
11+
workspace = true
12+
13+
[dependencies]
14+
tracing.workspace = true
15+
tracing-appender.workspace = true
16+
tracing-subscriber.workspace = true
17+
thiserror.workspace = true
18+
serde.workspace = true
19+
serde_json.workspace = true
20+
chrono.workspace = true
21+
crossterm.workspace = true
22+
tokio.workspace = true
23+
eyre.workspace = true
24+
tokio-util.workspace = true
25+
futures.workspace = true
26+
ratatui = "0.29.0"
27+
28+
[target.'cfg(unix)'.dependencies]
29+
nix.workspace = true
30+
skim.workspace = true
31+
32+
[target.'cfg(target_os = "macos")'.dependencies]
33+
objc2.workspace = true
34+
objc2-app-kit.workspace = true
35+
objc2-foundation.workspace = true
36+
security-framework.workspace = true
37+
38+
[target.'cfg(windows)'.dependencies]
39+
windows.workspace = true
40+
winreg.workspace = true

0 commit comments

Comments
 (0)