PicoBot/Cargo.toml
xiaoxixi 554d4b15ac feat: wire run quota and signal delivery persistence; remove redundant compat code
- RunQuota now enforced: background admission acquires the run permit
  (global→session) and the runner holds it until terminal commit;
  foreground never takes run permits so nested limit=1 cannot deadlock
- RuntimeAdmission activity guard held by background runners for the
  whole run; admission checked before any durable write
- signal_contract_json/signal_delivery persisted at run admission so
  definition-level steer delivery actually takes effect (was silently
  falling back to queue)
- terminal completion payload carries the run's emitted signal IDs
  (design §12.3) so the main Agent can recognise duplicates
- ROOT caller_scope_id is the literal "ROOT" (design §9.6)
- legacy general delegation returns a deprecation/migration hint

Cleanup:
- remove unused AgentCaller enum and run_parallel wrapper
- remove unreachable http_get_only prompt machinery (http_request is
  RootOnly and never enters sub-agent registries)
- drop never-read EmittedSignal fields; derive WakeupSource from
  TurnInputSource instead of duplicating match arms
- replace the /stop oneshot compatibility bridge with a plain turn_busy
  flag; the worker's forced-cancel path now selects on the cancellation
  token (implementation doc §11.1)

Version 1.8.0
2026-08-11 15:24:49 +08:00

64 lines
1.7 KiB
TOML

[package]
name = "picobot"
version = "1.8.0"
edition = "2024"
[dependencies]
reqwest = { version = "0.13.4", default-features = false, features = ["json", "rustls", "multipart"] }
serde = { version = "1.0", features = ["derive"] }
regex = "1.13"
serde_json = "1.0"
serde_yaml = "0.9"
async-trait = "0.1"
thiserror = "2.0.19"
tokio = { version = "1.53", features = ["full"] }
tokio-util = { version = "0.7", features = ["rt", "io"] }
dashmap = "6.2"
uuid = { version = "1.24", features = ["v4"] }
axum = { version = "0.8", features = ["ws", "multipart"] }
tokio-tungstenite = { version = "0.30.0", features = ["rustls-tls-webpki-roots", "rustls"] }
futures-util = "0.3"
clap = { version = "4", features = ["derive"] }
dirs = "6.0.0"
prost = "0.14"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "local-time"] }
tracing-appender = "0.2"
time = { version = "0.3", features = ["formatting", "local-offset"] }
anyhow = "1.0"
mime_guess = "2.0"
base64 = "0.23"
sha2 = "0.11"
tempfile = "3"
cron = "0.17"
chrono-tz = "0.10"
ratatui = "0.30"
crossterm = { version = "0.29", features = ["event-stream"] }
termimad = "0.35"
textwrap = "0.16"
unicode-width = "0.2"
chrono = "0.4"
sqlx = { version = "0.9", features = ["sqlite", "macros", "chrono", "runtime-tokio"] }
jieba-rs = "0.10"
which = "8"
rmcp = { version = "2.2", default-features = false, features = [
"client",
"transport-child-process",
"transport-streamable-http-client-reqwest",
"which-command",
] }
http = "1"
encoding_rs = "0.8"
zstd = "0.13"
tar = "0.4"
portable-pty = "0.9"
[dev-dependencies]
dotenv = "0.15"
tower = "0.5"
tokio = { version = "1.53", features = ["test-util"] }
[build-dependencies]
zstd = "0.13"
tar = "0.4"