Files
gyandoot-v2/Cargo.toml
Tara Menon dd21654555 P1 deep-dive: platform, security, subagents, skills, profile + installer fix
PLATFORM (gyandoot-platform):
- Telegram adapter: Long-polling, sendMessage, sendDocument, chat actions
- Discord adapter: REST polling, Bearer auth, channel discovery
- Webhook adapter: Hyper v1 HTTP server, HMAC-SHA256 verification
- CLI UX: Robot head banner, spinner, confirm prompts, colored output

SECURITY (gyandoot-security):
- CredentialVault: AES-256-GCM encrypted per-key files in ~/.gyandoot/vault/
- Sanitizer: PII redaction (email, phone, API keys, IPs), control char stripping
- ThreatDetector: Prompt injection, jailbreak, exfiltration detection with severity

SUBAGENTS (gyandoot-subagents):
- SubAgentWorker: Isolated agent loop with tool filtering and workdir
- SubAgentManager: Bounded concurrency via tokio::Semaphore
- Full lifecycle tracking and result collection

SKILLS (gyandoot-skills):
- SkillsManager: scan, load, inject_skills with YAML frontmatter parsing
- Preprocessor:  template resolution
- SkillBundle: JSON bundle serialization

PROFILE (gyandoot-profile):
- Profile struct with builder and validation
- ConfigResolver: env > symlink > profile > default chain
- ProfileManager: create, list, switch, delete, CRUD with real filesystem ops

INSTALLER FIX: Fixed camofox-browser directory escaping bug that caused
'could not find Cargo.toml' on macOS. Always CD back to project root.
2026-06-11 21:18:42 +05:30

83 lines
2.5 KiB
TOML

[package]
name = "gyandoot"
version = "2.0.0"
edition = "2021"
license = "MIT"
description = "GyanDoot v2.0 — AI Agent Platform"
[workspace]
resolver = "2"
members = [
"crates/gyandoot-core",
"crates/gyandoot-agent",
"crates/gyandoot-providers",
"crates/gyandoot-memory",
"crates/gyandoot-platform",
"crates/gyandoot-security",
"crates/gyandoot-kanban",
"crates/gyandoot-subagents",
"crates/gyandoot-skills",
"crates/gyandoot-profile",
"crates/gyandoot-gateway",
"crates/gyandoot-browser",
"crates/gyandoot-tui",
]
[workspace.package]
version = "2.0.0"
edition = "2021"
license = "MIT"
repository = "https://github.com/nousresearch/gyandoot-v2"
[workspace.dependencies]
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1"
clap = { version = "4", features = ["derive", "env"] }
thiserror = "2"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "multipart"] }
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
async-trait = "0.1"
dirs = "6"
serde_yaml = "0.9"
tempfile = "3"
rand = "0.8"
sha2 = "0.10"
hmac = "0.12"
aes-gcm = "0.10"
base64 = "0.22"
tokio-stream = "0.1"
futures = "0.3"
toml = "0.8"
hyper = { version = "1", features = ["server", "http1"] }
hex = "0.4"
atty = "0.2"
http-body-util = "0.1"
hyper-util = { version = "0.1", features = ["server", "http1"] }
[dependencies]
gyandoot-core = { path = "crates/gyandoot-core" }
gyandoot-agent = { path = "crates/gyandoot-agent" }
gyandoot-providers = { path = "crates/gyandoot-providers" }
gyandoot-memory = { path = "crates/gyandoot-memory" }
gyandoot-platform = { path = "crates/gyandoot-platform" }
gyandoot-security = { path = "crates/gyandoot-security" }
gyandoot-kanban = { path = "crates/gyandoot-kanban" }
gyandoot-subagents = { path = "crates/gyandoot-subagents" }
gyandoot-skills = { path = "crates/gyandoot-skills" }
gyandoot-profile = { path = "crates/gyandoot-profile" }
gyandoot-gateway = { path = "crates/gyandoot-gateway" }
gyandoot-browser = { path = "crates/gyandoot-browser" }
gyandoot-tui = { path = "crates/gyandoot-tui" }
tokio.workspace = true
serde.workspace = true
serde_json.workspace = true
clap.workspace = true
anyhow.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
dirs.workspace = true