Coverage for  / home / runner / work / bijux-cli / bijux-cli / src / bijux_cli / cli / commands / payloads.py: 100%

171 statements  

« prev     ^ index     » next       coverage.py v7.13.2, created at 2026-01-26 17:59 +0000

1# SPDX-License-Identifier: Apache-2.0 

2# Copyright © 2025 Bijan Mousavi 

3 

4"""Dataclasses for structured CLI command payloads.""" 

5 

6from __future__ import annotations 

7 

8from dataclasses import dataclass 

9 

10 

11@dataclass(frozen=True) 

12class AuditPayload: 

13 """Structured payload for audit command results.""" 

14 

15 status: str 

16 file: str | None = None 

17 python: str | None = None 

18 platform: str | None = None 

19 

20 

21@dataclass(frozen=True) 

22class DoctorPayload: 

23 """Structured payload for doctor command results.""" 

24 

25 status: str 

26 summary: list[str] 

27 python: str | None = None 

28 platform: str | None = None 

29 

30 

31@dataclass(frozen=True) 

32class StatusPayload: 

33 """Structured payload for status command results.""" 

34 

35 status: str 

36 python: str | None = None 

37 platform: str | None = None 

38 ts: float | None = None 

39 

40 

41@dataclass(frozen=True) 

42class SleepPayload: 

43 """Structured payload for sleep command results.""" 

44 

45 slept: float 

46 python: str | None = None 

47 platform: str | None = None 

48 

49 

50@dataclass(frozen=True) 

51class VersionPayload: 

52 """Structured payload for version command results.""" 

53 

54 version: str 

55 python: str | None = None 

56 platform: str | None = None 

57 timestamp: float | None = None 

58 

59 

60@dataclass(frozen=True) 

61class MemorySummaryPayload: 

62 """Structured payload for memory summary results.""" 

63 

64 status: str 

65 count: int | None 

66 message: str 

67 python: str | None = None 

68 platform: str | None = None 

69 

70 

71@dataclass(frozen=True) 

72class MemoryItemPayload: 

73 """Structured payload for memory item results.""" 

74 

75 status: str 

76 key: str 

77 value: str 

78 python: str | None = None 

79 platform: str | None = None 

80 

81 

82@dataclass(frozen=True) 

83class MemoryDeletePayload: 

84 """Structured payload for memory delete results.""" 

85 

86 status: str 

87 key: str 

88 python: str | None = None 

89 platform: str | None = None 

90 

91 

92@dataclass(frozen=True) 

93class MemoryListPayload: 

94 """Structured payload for memory list results.""" 

95 

96 status: str 

97 keys: list[str] 

98 count: int 

99 python: str | None = None 

100 platform: str | None = None 

101 

102 

103@dataclass(frozen=True) 

104class MemoryClearPayload: 

105 """Structured payload for memory clear results.""" 

106 

107 status: str 

108 count: int 

109 python: str | None = None 

110 platform: str | None = None 

111 

112 

113@dataclass(frozen=True) 

114class HelpPayload: 

115 """Structured payload for help output.""" 

116 

117 help: str 

118 python: str | None = None 

119 platform: str | None = None 

120 runtime_ms: int | None = None 

121 

122 

123@dataclass(frozen=True) 

124class DevDiPayload: 

125 """Structured payload for dev DI output.""" 

126 

127 factories: list[dict[str, str | None]] 

128 services: list[dict[str, str | None]] 

129 python: str | None = None 

130 platform: str | None = None 

131 

132 

133@dataclass(frozen=True) 

134class DevPluginsPayload: 

135 """Structured payload for dev plugin listing.""" 

136 

137 plugins: list[dict[str, object]] 

138 python: str | None = None 

139 platform: str | None = None 

140 

141 

142@dataclass(frozen=True) 

143class DevStatusPayload: 

144 """Structured payload for dev status.""" 

145 

146 status: str 

147 mode: str | None = None 

148 python: str | None = None 

149 platform: str | None = None 

150 

151 

152@dataclass(frozen=True) 

153class ConfigGetPayload: 

154 """Structured payload for config get output.""" 

155 

156 value: str 

157 python: str | None = None 

158 platform: str | None = None 

159 

160 

161@dataclass(frozen=True) 

162class ConfigSetPayload: 

163 """Structured payload for config set output.""" 

164 

165 status: str 

166 key: str 

167 value: str 

168 python: str | None = None 

169 platform: str | None = None 

170 

171 

172@dataclass(frozen=True) 

173class ConfigLoadPayload: 

174 """Structured payload for config load output.""" 

175 

176 status: str 

177 file: str 

178 python: str | None = None 

179 platform: str | None = None 

180 

181 

182@dataclass(frozen=True) 

183class ConfigClearPayload: 

184 """Structured payload for config clear output.""" 

185 

186 status: str 

187 python: str | None = None 

188 platform: str | None = None 

189 

190 

191@dataclass(frozen=True) 

192class ConfigReloadPayload: 

193 """Structured payload for config reload output.""" 

194 

195 status: str 

196 python: str | None = None 

197 platform: str | None = None 

198 

199 

200@dataclass(frozen=True) 

201class ConfigUnsetPayload: 

202 """Structured payload for config unset output.""" 

203 

204 status: str 

205 key: str 

206 python: str | None = None 

207 platform: str | None = None 

208 

209 

210@dataclass(frozen=True) 

211class ConfigListPayload: 

212 """Structured payload for config list output.""" 

213 

214 items: list[dict[str, str]] 

215 python: str | None = None 

216 platform: str | None = None 

217 

218 

219@dataclass(frozen=True) 

220class ConfigExportPayload: 

221 """Structured payload for config export output.""" 

222 

223 status: str 

224 file: str 

225 format: str | None = None 

226 python: str | None = None 

227 platform: str | None = None 

228 

229 

230@dataclass(frozen=True) 

231class ConfigDumpPayload: 

232 """Structured payload for config dump output.""" 

233 

234 entries: dict[str, object] 

235 python: str | None = None 

236 platform: str | None = None 

237 

238 

239@dataclass(frozen=True) 

240class DocsSpecPayload: 

241 """Structured payload for docs spec output.""" 

242 

243 version: str 

244 commands: list[str] 

245 python: str | None = None 

246 platform: str | None = None 

247 

248 

249@dataclass(frozen=True) 

250class DocsWritePayload: 

251 """Structured payload for docs write output.""" 

252 

253 status: str 

254 file: str 

255 

256 

257@dataclass(frozen=True) 

258class HistoryImportPayload: 

259 """Structured payload for history import output.""" 

260 

261 status: str 

262 file: str 

263 python: str | None = None 

264 platform: str | None = None 

265 

266 

267@dataclass(frozen=True) 

268class HistoryExportPayload: 

269 """Structured payload for history export output.""" 

270 

271 status: str 

272 file: str 

273 python: str | None = None 

274 platform: str | None = None 

275 

276 

277@dataclass(frozen=True) 

278class HistoryEntriesPayload: 

279 """Structured payload for history list output.""" 

280 

281 entries: list[dict[str, object]] 

282 python: str | None = None 

283 platform: str | None = None 

284 

285 

286@dataclass(frozen=True) 

287class HistoryClearPayload: 

288 """Structured payload for history clear output.""" 

289 

290 status: str 

291 python: str | None = None 

292 platform: str | None = None 

293 

294 

295__all__ = [ 

296 "AuditPayload", 

297 "DoctorPayload", 

298 "StatusPayload", 

299 "SleepPayload", 

300 "VersionPayload", 

301 "MemorySummaryPayload", 

302 "MemoryItemPayload", 

303 "MemoryDeletePayload", 

304 "MemoryListPayload", 

305 "MemoryClearPayload", 

306 "HelpPayload", 

307 "DevDiPayload", 

308 "DevPluginsPayload", 

309 "DevStatusPayload", 

310 "ConfigGetPayload", 

311 "ConfigSetPayload", 

312 "ConfigLoadPayload", 

313 "ConfigClearPayload", 

314 "ConfigReloadPayload", 

315 "ConfigUnsetPayload", 

316 "ConfigListPayload", 

317 "ConfigExportPayload", 

318 "ConfigDumpPayload", 

319 "DocsSpecPayload", 

320 "DocsWritePayload", 

321 "HistoryImportPayload", 

322 "HistoryExportPayload", 

323 "HistoryEntriesPayload", 

324 "HistoryClearPayload", 

325]