-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCargo.toml
More file actions
161 lines (137 loc) · 4.06 KB
/
Cargo.toml
File metadata and controls
161 lines (137 loc) · 4.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
[package]
name = "operator"
version = "0.1.30"
edition = "2021"
description = "Multi-agent orchestration dashboard for gbqr.us"
authors = ["gbqr.us"]
license = "MIT"
default-run = "operator"
[lib]
name = "operator"
path = "src/lib.rs"
[[bin]]
name = "operator"
path = "src/main.rs"
[[bin]]
name = "generate_types"
path = "src/bin/generate_types.rs"
[dependencies]
# TUI
ratatui = "0.29"
crossterm = "0.28"
tui-textarea = "0.7"
# Templating
handlebars = "6"
# Async runtime
tokio = { version = "1", features = ["full"] }
# File watching
notify = "7"
# Configuration
config = "0.14"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
toml = "0.8"
# Schema and TypeScript generation
schemars = { version = "1.0", features = ["chrono04", "uuid1", "preserve_order"] }
ts-rs = { version = "10", features = ["uuid-impl", "chrono-impl", "no-serde-warnings", "serde-json-impl"] }
# CLI
clap = { version = "4", features = ["derive"] }
# Utilities
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4", "serde"] }
anyhow = "1"
thiserror = "2"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-appender = "0.2"
dirs = "5"
glob = "0.3"
regex = "1"
once_cell = "1"
lazy_static = "1"
backon = "1"
which = "7"
# System info (for core count)
sysinfo = "0.32"
# Cryptography (for content hashing)
sha2 = "0.10"
# HTTP client for API calls
reqwest = { version = "0.12", features = ["json", "rustls-tls", "blocking"] }
# Async traits
async-trait = "0.1"
# REST API
axum = { version = "0.7", features = ["macros", "tokio", "tracing"] }
tokio-stream = "0.1"
futures-util = "0.3"
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace"] }
http-body-util = "0.1"
# OpenAPI documentation
utoipa = { version = "5", features = ["axum_extras", "uuid", "chrono"] }
utoipa-swagger-ui = { version = "8", features = ["axum"] }
[dev-dependencies]
tempfile = "3"
[lints.rust]
unsafe_code = "deny"
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
# Nursery lints for cohesion
cognitive_complexity = "warn"
redundant_clone = "warn"
# Allow noisy pedantic lints that don't add value here
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
return_self_not_must_use = "allow"
struct_excessive_bools = "allow"
too_many_lines = "allow"
cast_possible_truncation = "allow"
cast_sign_loss = "allow"
cast_precision_loss = "allow"
cast_lossless = "allow"
wildcard_imports = "allow"
# TUI/builder patterns make these too noisy
unused_self = "allow"
trivially_copy_pass_by_ref = "allow"
needless_pass_by_value = "allow"
similar_names = "allow"
struct_field_names = "allow"
# String building in TUI renderers
format_push_string = "allow"
# Many functions wrap for future error paths
unnecessary_wraps = "allow"
# Common in async code stubs
unused_async = "allow"
# Doc links with quotes are fine
doc_link_with_quotes = "allow"
# Allow cast_possible_wrap for u64→i64 in timestamps
cast_possible_wrap = "allow"
# Match arms kept separate for readability in TUI event handlers
match_same_arms = "allow"
# clone_from is less readable than reassignment
assigning_clones = "allow"
# let-else not always clearer
manual_let_else = "allow"
# Items after statements common in this codebase
items_after_statements = "allow"
# &Option<T> is idiomatic in this codebase for optional refs
ref_option = "allow"
# Excessive bools in setup functions are intentional
fn_params_excessive_bools = "allow"
# HashMap without explicit hasher is fine for non-perf-critical code
implicit_hasher = "allow"
# map_or readability is subjective
map_unwrap_or = "allow"
# for_each vs for loop is stylistic
needless_for_each = "allow"
# Explicit continue aids readability in complex loops
needless_continue = "allow"
# Wildcard matches are intentional for future-proofing
match_wildcard_for_single_variants = "allow"
# Platform-specific notifications
[target.'cfg(target_os = "macos")'.dependencies]
mac-notification-sys = "0.6"
[target.'cfg(target_os = "linux")'.dependencies]
notify-rust = "4"