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
//! Domain-scoped state traits for `AppState` decomposition.
//!
//! Phase 1 of the AppState god-object decomposition: define traits that
//! declare which domain surfaces a function actually needs. Functions
//! should accept `impl HasInference + HasAgent` instead of `&AppState`
//! when they only need those two domains.
//!
//! Phase 2 (future): extract sub-states from AppState and implement
//! these traits on the narrower types, enabling true separation.
use Arc;
use RwLock;
use ApprovalManager;
use CapabilityRegistry;
use PolicyEngine;
use MemoryRetriever;
use SubagentRegistry;
use ToolRegistry;
use ChannelRouter;
use RoboticusConfig;
use Database;
use LlmService;
use SemanticClassifier;
use PluginRegistry;
use WalletService;
/// Core infrastructure: database, config, HMAC, rate limiting.
/// LLM inference: model routing, quality tracking, latency, caching.
/// Agent tools: tool registry, capabilities, policy, approvals, plugins.
/// Memory and retrieval: memory retriever, ANN index, obsidian vault.
/// Channel adapters: router and per-platform adapters.
/// Wallet and financial services.
// ── AppState implementations ─────────────────────────────────────────
use AppState;