idlewatch 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/.env.example +73 -0
  2. package/.github/workflows/ci.yml +99 -0
  3. package/.github/workflows/release-macos-trusted.yml +103 -0
  4. package/README.md +336 -0
  5. package/bin/idlewatch-agent.js +1053 -0
  6. package/docs/onboarding-external.md +58 -0
  7. package/docs/packaging/macos-dmg.md +199 -0
  8. package/docs/packaging/macos-launch-agent.md +70 -0
  9. package/docs/qa/archive/mac-qa-log-2026-02-17.md +5838 -0
  10. package/docs/qa/mac-qa-log.md +2864 -0
  11. package/docs/telemetry/idle-stale-policy.md +57 -0
  12. package/docs/telemetry/openclaw-mapping.md +80 -0
  13. package/package.json +76 -0
  14. package/scripts/build-dmg.sh +65 -0
  15. package/scripts/install-macos-launch-agent.sh +78 -0
  16. package/scripts/lib/telemetry-row-parser.mjs +100 -0
  17. package/scripts/package-macos.sh +228 -0
  18. package/scripts/uninstall-macos-launch-agent.sh +30 -0
  19. package/scripts/validate-all.sh +142 -0
  20. package/scripts/validate-bin.mjs +25 -0
  21. package/scripts/validate-dmg-checksum.sh +37 -0
  22. package/scripts/validate-dmg-install.sh +155 -0
  23. package/scripts/validate-dry-run-schema.mjs +257 -0
  24. package/scripts/validate-onboarding.mjs +63 -0
  25. package/scripts/validate-openclaw-cache-recovery-e2e.mjs +113 -0
  26. package/scripts/validate-openclaw-release-gates.mjs +51 -0
  27. package/scripts/validate-openclaw-stats-ingestion.mjs +372 -0
  28. package/scripts/validate-openclaw-usage-health.mjs +95 -0
  29. package/scripts/validate-packaged-artifact.mjs +233 -0
  30. package/scripts/validate-packaged-bundled-runtime.sh +191 -0
  31. package/scripts/validate-packaged-metadata.sh +43 -0
  32. package/scripts/validate-packaged-openclaw-cache-recovery-e2e.mjs +153 -0
  33. package/scripts/validate-packaged-openclaw-release-gates.mjs +72 -0
  34. package/scripts/validate-packaged-openclaw-stats-ingestion.mjs +402 -0
  35. package/scripts/validate-packaged-sourcemaps.mjs +82 -0
  36. package/scripts/validate-packaged-usage-alert-rate-e2e.mjs +98 -0
  37. package/scripts/validate-packaged-usage-probe-noise-e2e.mjs +87 -0
  38. package/scripts/validate-packaged-usage-recovery-e2e.mjs +90 -0
  39. package/scripts/validate-trusted-prereqs.sh +44 -0
  40. package/scripts/validate-usage-alert-rate-e2e.mjs +91 -0
  41. package/scripts/validate-usage-freshness-e2e.mjs +81 -0
  42. package/skill/SKILL.md +43 -0
  43. package/src/config.js +100 -0
  44. package/src/enrollment.js +176 -0
  45. package/src/gpu.js +115 -0
  46. package/src/memory.js +67 -0
  47. package/src/openclaw-cache.js +51 -0
  48. package/src/openclaw-usage.js +1020 -0
  49. package/src/telemetry-mapping.js +54 -0
  50. package/src/usage-alert.js +41 -0
  51. package/src/usage-freshness.js +31 -0
  52. package/test/config.test.mjs +112 -0
  53. package/test/fixtures/gpu-agx.txt +2 -0
  54. package/test/fixtures/gpu-iogpu.txt +2 -0
  55. package/test/fixtures/gpu-top-grep.txt +2 -0
  56. package/test/fixtures/openclaw-fleet-sample-v1.json +68 -0
  57. package/test/fixtures/openclaw-mixed-equal-score-status-vs-generic-iso-ts.txt +2 -0
  58. package/test/fixtures/openclaw-mixed-equal-score-status-vs-generic-newest.txt +2 -0
  59. package/test/fixtures/openclaw-mixed-equal-score-status-vs-generic-string-ts.txt +2 -0
  60. package/test/fixtures/openclaw-mixed-status-then-generic-output.txt +2 -0
  61. package/test/fixtures/openclaw-stats-current-wrapper.json +12 -0
  62. package/test/fixtures/openclaw-stats-current-wrapper2.json +15 -0
  63. package/test/fixtures/openclaw-stats-data-wrapper.json +21 -0
  64. package/test/fixtures/openclaw-stats-nested-session-wrapper.json +23 -0
  65. package/test/fixtures/openclaw-stats-payload-wrapper.json +1 -0
  66. package/test/fixtures/openclaw-stats-status-current-wrapper.json +19 -0
  67. package/test/fixtures/openclaw-stats.json +17 -0
  68. package/test/fixtures/openclaw-status-ansi-complex-noise.txt +3 -0
  69. package/test/fixtures/openclaw-status-ansi-noise.txt +2 -0
  70. package/test/fixtures/openclaw-status-control-noise.txt +1 -0
  71. package/test/fixtures/openclaw-status-data-wrapper.json +20 -0
  72. package/test/fixtures/openclaw-status-dcs-noise.txt +1 -0
  73. package/test/fixtures/openclaw-status-epoch-seconds.json +15 -0
  74. package/test/fixtures/openclaw-status-mixed-noise.txt +1 -0
  75. package/test/fixtures/openclaw-status-multi-json.txt +3 -0
  76. package/test/fixtures/openclaw-status-nested-recent.json +19 -0
  77. package/test/fixtures/openclaw-status-noisy-default-then-usage.txt +2 -0
  78. package/test/fixtures/openclaw-status-noisy.txt +3 -0
  79. package/test/fixtures/openclaw-status-osc-noise.txt +1 -0
  80. package/test/fixtures/openclaw-status-result-session.json +15 -0
  81. package/test/fixtures/openclaw-status-session-map-with-defaults.json +23 -0
  82. package/test/fixtures/openclaw-status-session-map.json +28 -0
  83. package/test/fixtures/openclaw-status-session-model-name.json +18 -0
  84. package/test/fixtures/openclaw-status-snake-session-wrapper.json +13 -0
  85. package/test/fixtures/openclaw-status-stats-current-sessions-snake-tokens.json +25 -0
  86. package/test/fixtures/openclaw-status-stats-current-sessions.json +28 -0
  87. package/test/fixtures/openclaw-status-stats-current-usage-time-camelcase.json +19 -0
  88. package/test/fixtures/openclaw-status-stats-session-default-model.json +27 -0
  89. package/test/fixtures/openclaw-status-status-wrapper.json +13 -0
  90. package/test/fixtures/openclaw-status-strings.json +38 -0
  91. package/test/fixtures/openclaw-status-ts-ms-alias.json +14 -0
  92. package/test/fixtures/openclaw-status-updated-at-ms-alias.json +14 -0
  93. package/test/fixtures/openclaw-status-usage-timestamp-ms-alias.json +14 -0
  94. package/test/fixtures/openclaw-status-usage-ts-alias.json +14 -0
  95. package/test/fixtures/openclaw-status-wrap-session-object.json +24 -0
  96. package/test/fixtures/openclaw-status.json +41 -0
  97. package/test/fixtures/openclaw-usage-model-name-generic.json +9 -0
  98. package/test/gpu.test.mjs +58 -0
  99. package/test/memory.test.mjs +35 -0
  100. package/test/openclaw-cache.test.mjs +48 -0
  101. package/test/openclaw-env.test.mjs +365 -0
  102. package/test/openclaw-usage.test.mjs +555 -0
  103. package/test/telemetry-mapping.test.mjs +69 -0
  104. package/test/telemetry-row-parser.test.mjs +44 -0
  105. package/test/usage-alert.test.mjs +73 -0
  106. package/test/usage-freshness.test.mjs +63 -0
  107. package/test/validate-dry-run-schema.test.mjs +146 -0
  108. package/tui/Cargo.lock +801 -0
  109. package/tui/Cargo.toml +11 -0
  110. package/tui/src/main.rs +368 -0
package/tui/Cargo.lock ADDED
@@ -0,0 +1,801 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "allocator-api2"
7
+ version = "0.2.21"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
10
+
11
+ [[package]]
12
+ name = "anyhow"
13
+ version = "1.0.102"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
16
+
17
+ [[package]]
18
+ name = "bitflags"
19
+ version = "2.11.0"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
22
+
23
+ [[package]]
24
+ name = "cassowary"
25
+ version = "0.3.0"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
28
+
29
+ [[package]]
30
+ name = "castaway"
31
+ version = "0.2.4"
32
+ source = "registry+https://github.com/rust-lang/crates.io-index"
33
+ checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
34
+ dependencies = [
35
+ "rustversion",
36
+ ]
37
+
38
+ [[package]]
39
+ name = "cfg-if"
40
+ version = "1.0.4"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
43
+
44
+ [[package]]
45
+ name = "compact_str"
46
+ version = "0.8.1"
47
+ source = "registry+https://github.com/rust-lang/crates.io-index"
48
+ checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32"
49
+ dependencies = [
50
+ "castaway",
51
+ "cfg-if",
52
+ "itoa",
53
+ "rustversion",
54
+ "ryu",
55
+ "static_assertions",
56
+ ]
57
+
58
+ [[package]]
59
+ name = "crossterm"
60
+ version = "0.28.1"
61
+ source = "registry+https://github.com/rust-lang/crates.io-index"
62
+ checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
63
+ dependencies = [
64
+ "bitflags",
65
+ "crossterm_winapi",
66
+ "mio",
67
+ "parking_lot",
68
+ "rustix",
69
+ "signal-hook",
70
+ "signal-hook-mio",
71
+ "winapi",
72
+ ]
73
+
74
+ [[package]]
75
+ name = "crossterm_winapi"
76
+ version = "0.9.1"
77
+ source = "registry+https://github.com/rust-lang/crates.io-index"
78
+ checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
79
+ dependencies = [
80
+ "winapi",
81
+ ]
82
+
83
+ [[package]]
84
+ name = "darling"
85
+ version = "0.23.0"
86
+ source = "registry+https://github.com/rust-lang/crates.io-index"
87
+ checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
88
+ dependencies = [
89
+ "darling_core",
90
+ "darling_macro",
91
+ ]
92
+
93
+ [[package]]
94
+ name = "darling_core"
95
+ version = "0.23.0"
96
+ source = "registry+https://github.com/rust-lang/crates.io-index"
97
+ checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
98
+ dependencies = [
99
+ "ident_case",
100
+ "proc-macro2",
101
+ "quote",
102
+ "strsim",
103
+ "syn",
104
+ ]
105
+
106
+ [[package]]
107
+ name = "darling_macro"
108
+ version = "0.23.0"
109
+ source = "registry+https://github.com/rust-lang/crates.io-index"
110
+ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
111
+ dependencies = [
112
+ "darling_core",
113
+ "quote",
114
+ "syn",
115
+ ]
116
+
117
+ [[package]]
118
+ name = "dirs"
119
+ version = "5.0.1"
120
+ source = "registry+https://github.com/rust-lang/crates.io-index"
121
+ checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
122
+ dependencies = [
123
+ "dirs-sys",
124
+ ]
125
+
126
+ [[package]]
127
+ name = "dirs-sys"
128
+ version = "0.4.1"
129
+ source = "registry+https://github.com/rust-lang/crates.io-index"
130
+ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
131
+ dependencies = [
132
+ "libc",
133
+ "option-ext",
134
+ "redox_users",
135
+ "windows-sys 0.48.0",
136
+ ]
137
+
138
+ [[package]]
139
+ name = "either"
140
+ version = "1.15.0"
141
+ source = "registry+https://github.com/rust-lang/crates.io-index"
142
+ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
143
+
144
+ [[package]]
145
+ name = "equivalent"
146
+ version = "1.0.2"
147
+ source = "registry+https://github.com/rust-lang/crates.io-index"
148
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
149
+
150
+ [[package]]
151
+ name = "errno"
152
+ version = "0.3.14"
153
+ source = "registry+https://github.com/rust-lang/crates.io-index"
154
+ checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
155
+ dependencies = [
156
+ "libc",
157
+ "windows-sys 0.61.2",
158
+ ]
159
+
160
+ [[package]]
161
+ name = "foldhash"
162
+ version = "0.1.5"
163
+ source = "registry+https://github.com/rust-lang/crates.io-index"
164
+ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
165
+
166
+ [[package]]
167
+ name = "getrandom"
168
+ version = "0.2.17"
169
+ source = "registry+https://github.com/rust-lang/crates.io-index"
170
+ checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
171
+ dependencies = [
172
+ "cfg-if",
173
+ "libc",
174
+ "wasi",
175
+ ]
176
+
177
+ [[package]]
178
+ name = "hashbrown"
179
+ version = "0.15.5"
180
+ source = "registry+https://github.com/rust-lang/crates.io-index"
181
+ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
182
+ dependencies = [
183
+ "allocator-api2",
184
+ "equivalent",
185
+ "foldhash",
186
+ ]
187
+
188
+ [[package]]
189
+ name = "heck"
190
+ version = "0.5.0"
191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
192
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
193
+
194
+ [[package]]
195
+ name = "ident_case"
196
+ version = "1.0.1"
197
+ source = "registry+https://github.com/rust-lang/crates.io-index"
198
+ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
199
+
200
+ [[package]]
201
+ name = "idlewatch-setup"
202
+ version = "0.1.0"
203
+ dependencies = [
204
+ "anyhow",
205
+ "crossterm",
206
+ "dirs",
207
+ "ratatui",
208
+ "serde_json",
209
+ ]
210
+
211
+ [[package]]
212
+ name = "indoc"
213
+ version = "2.0.7"
214
+ source = "registry+https://github.com/rust-lang/crates.io-index"
215
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
216
+ dependencies = [
217
+ "rustversion",
218
+ ]
219
+
220
+ [[package]]
221
+ name = "instability"
222
+ version = "0.3.11"
223
+ source = "registry+https://github.com/rust-lang/crates.io-index"
224
+ checksum = "357b7205c6cd18dd2c86ed312d1e70add149aea98e7ef72b9fdf0270e555c11d"
225
+ dependencies = [
226
+ "darling",
227
+ "indoc",
228
+ "proc-macro2",
229
+ "quote",
230
+ "syn",
231
+ ]
232
+
233
+ [[package]]
234
+ name = "itertools"
235
+ version = "0.13.0"
236
+ source = "registry+https://github.com/rust-lang/crates.io-index"
237
+ checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
238
+ dependencies = [
239
+ "either",
240
+ ]
241
+
242
+ [[package]]
243
+ name = "itoa"
244
+ version = "1.0.17"
245
+ source = "registry+https://github.com/rust-lang/crates.io-index"
246
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
247
+
248
+ [[package]]
249
+ name = "libc"
250
+ version = "0.2.182"
251
+ source = "registry+https://github.com/rust-lang/crates.io-index"
252
+ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
253
+
254
+ [[package]]
255
+ name = "libredox"
256
+ version = "0.1.14"
257
+ source = "registry+https://github.com/rust-lang/crates.io-index"
258
+ checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a"
259
+ dependencies = [
260
+ "libc",
261
+ ]
262
+
263
+ [[package]]
264
+ name = "linux-raw-sys"
265
+ version = "0.4.15"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
268
+
269
+ [[package]]
270
+ name = "lock_api"
271
+ version = "0.4.14"
272
+ source = "registry+https://github.com/rust-lang/crates.io-index"
273
+ checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
274
+ dependencies = [
275
+ "scopeguard",
276
+ ]
277
+
278
+ [[package]]
279
+ name = "log"
280
+ version = "0.4.29"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
283
+
284
+ [[package]]
285
+ name = "lru"
286
+ version = "0.12.5"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
289
+ dependencies = [
290
+ "hashbrown",
291
+ ]
292
+
293
+ [[package]]
294
+ name = "memchr"
295
+ version = "2.8.0"
296
+ source = "registry+https://github.com/rust-lang/crates.io-index"
297
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
298
+
299
+ [[package]]
300
+ name = "mio"
301
+ version = "1.1.1"
302
+ source = "registry+https://github.com/rust-lang/crates.io-index"
303
+ checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
304
+ dependencies = [
305
+ "libc",
306
+ "log",
307
+ "wasi",
308
+ "windows-sys 0.61.2",
309
+ ]
310
+
311
+ [[package]]
312
+ name = "option-ext"
313
+ version = "0.2.0"
314
+ source = "registry+https://github.com/rust-lang/crates.io-index"
315
+ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
316
+
317
+ [[package]]
318
+ name = "parking_lot"
319
+ version = "0.12.5"
320
+ source = "registry+https://github.com/rust-lang/crates.io-index"
321
+ checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
322
+ dependencies = [
323
+ "lock_api",
324
+ "parking_lot_core",
325
+ ]
326
+
327
+ [[package]]
328
+ name = "parking_lot_core"
329
+ version = "0.9.12"
330
+ source = "registry+https://github.com/rust-lang/crates.io-index"
331
+ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
332
+ dependencies = [
333
+ "cfg-if",
334
+ "libc",
335
+ "redox_syscall",
336
+ "smallvec",
337
+ "windows-link",
338
+ ]
339
+
340
+ [[package]]
341
+ name = "paste"
342
+ version = "1.0.15"
343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
344
+ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
345
+
346
+ [[package]]
347
+ name = "proc-macro2"
348
+ version = "1.0.106"
349
+ source = "registry+https://github.com/rust-lang/crates.io-index"
350
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
351
+ dependencies = [
352
+ "unicode-ident",
353
+ ]
354
+
355
+ [[package]]
356
+ name = "quote"
357
+ version = "1.0.45"
358
+ source = "registry+https://github.com/rust-lang/crates.io-index"
359
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
360
+ dependencies = [
361
+ "proc-macro2",
362
+ ]
363
+
364
+ [[package]]
365
+ name = "ratatui"
366
+ version = "0.29.0"
367
+ source = "registry+https://github.com/rust-lang/crates.io-index"
368
+ checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b"
369
+ dependencies = [
370
+ "bitflags",
371
+ "cassowary",
372
+ "compact_str",
373
+ "crossterm",
374
+ "indoc",
375
+ "instability",
376
+ "itertools",
377
+ "lru",
378
+ "paste",
379
+ "strum",
380
+ "unicode-segmentation",
381
+ "unicode-truncate",
382
+ "unicode-width 0.2.0",
383
+ ]
384
+
385
+ [[package]]
386
+ name = "redox_syscall"
387
+ version = "0.5.18"
388
+ source = "registry+https://github.com/rust-lang/crates.io-index"
389
+ checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
390
+ dependencies = [
391
+ "bitflags",
392
+ ]
393
+
394
+ [[package]]
395
+ name = "redox_users"
396
+ version = "0.4.6"
397
+ source = "registry+https://github.com/rust-lang/crates.io-index"
398
+ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
399
+ dependencies = [
400
+ "getrandom",
401
+ "libredox",
402
+ "thiserror",
403
+ ]
404
+
405
+ [[package]]
406
+ name = "rustix"
407
+ version = "0.38.44"
408
+ source = "registry+https://github.com/rust-lang/crates.io-index"
409
+ checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
410
+ dependencies = [
411
+ "bitflags",
412
+ "errno",
413
+ "libc",
414
+ "linux-raw-sys",
415
+ "windows-sys 0.59.0",
416
+ ]
417
+
418
+ [[package]]
419
+ name = "rustversion"
420
+ version = "1.0.22"
421
+ source = "registry+https://github.com/rust-lang/crates.io-index"
422
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
423
+
424
+ [[package]]
425
+ name = "ryu"
426
+ version = "1.0.23"
427
+ source = "registry+https://github.com/rust-lang/crates.io-index"
428
+ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
429
+
430
+ [[package]]
431
+ name = "scopeguard"
432
+ version = "1.2.0"
433
+ source = "registry+https://github.com/rust-lang/crates.io-index"
434
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
435
+
436
+ [[package]]
437
+ name = "serde"
438
+ version = "1.0.228"
439
+ source = "registry+https://github.com/rust-lang/crates.io-index"
440
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
441
+ dependencies = [
442
+ "serde_core",
443
+ ]
444
+
445
+ [[package]]
446
+ name = "serde_core"
447
+ version = "1.0.228"
448
+ source = "registry+https://github.com/rust-lang/crates.io-index"
449
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
450
+ dependencies = [
451
+ "serde_derive",
452
+ ]
453
+
454
+ [[package]]
455
+ name = "serde_derive"
456
+ version = "1.0.228"
457
+ source = "registry+https://github.com/rust-lang/crates.io-index"
458
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
459
+ dependencies = [
460
+ "proc-macro2",
461
+ "quote",
462
+ "syn",
463
+ ]
464
+
465
+ [[package]]
466
+ name = "serde_json"
467
+ version = "1.0.149"
468
+ source = "registry+https://github.com/rust-lang/crates.io-index"
469
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
470
+ dependencies = [
471
+ "itoa",
472
+ "memchr",
473
+ "serde",
474
+ "serde_core",
475
+ "zmij",
476
+ ]
477
+
478
+ [[package]]
479
+ name = "signal-hook"
480
+ version = "0.3.18"
481
+ source = "registry+https://github.com/rust-lang/crates.io-index"
482
+ checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
483
+ dependencies = [
484
+ "libc",
485
+ "signal-hook-registry",
486
+ ]
487
+
488
+ [[package]]
489
+ name = "signal-hook-mio"
490
+ version = "0.2.5"
491
+ source = "registry+https://github.com/rust-lang/crates.io-index"
492
+ checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
493
+ dependencies = [
494
+ "libc",
495
+ "mio",
496
+ "signal-hook",
497
+ ]
498
+
499
+ [[package]]
500
+ name = "signal-hook-registry"
501
+ version = "1.4.8"
502
+ source = "registry+https://github.com/rust-lang/crates.io-index"
503
+ checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
504
+ dependencies = [
505
+ "errno",
506
+ "libc",
507
+ ]
508
+
509
+ [[package]]
510
+ name = "smallvec"
511
+ version = "1.15.1"
512
+ source = "registry+https://github.com/rust-lang/crates.io-index"
513
+ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
514
+
515
+ [[package]]
516
+ name = "static_assertions"
517
+ version = "1.1.0"
518
+ source = "registry+https://github.com/rust-lang/crates.io-index"
519
+ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
520
+
521
+ [[package]]
522
+ name = "strsim"
523
+ version = "0.11.1"
524
+ source = "registry+https://github.com/rust-lang/crates.io-index"
525
+ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
526
+
527
+ [[package]]
528
+ name = "strum"
529
+ version = "0.26.3"
530
+ source = "registry+https://github.com/rust-lang/crates.io-index"
531
+ checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
532
+ dependencies = [
533
+ "strum_macros",
534
+ ]
535
+
536
+ [[package]]
537
+ name = "strum_macros"
538
+ version = "0.26.4"
539
+ source = "registry+https://github.com/rust-lang/crates.io-index"
540
+ checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
541
+ dependencies = [
542
+ "heck",
543
+ "proc-macro2",
544
+ "quote",
545
+ "rustversion",
546
+ "syn",
547
+ ]
548
+
549
+ [[package]]
550
+ name = "syn"
551
+ version = "2.0.117"
552
+ source = "registry+https://github.com/rust-lang/crates.io-index"
553
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
554
+ dependencies = [
555
+ "proc-macro2",
556
+ "quote",
557
+ "unicode-ident",
558
+ ]
559
+
560
+ [[package]]
561
+ name = "thiserror"
562
+ version = "1.0.69"
563
+ source = "registry+https://github.com/rust-lang/crates.io-index"
564
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
565
+ dependencies = [
566
+ "thiserror-impl",
567
+ ]
568
+
569
+ [[package]]
570
+ name = "thiserror-impl"
571
+ version = "1.0.69"
572
+ source = "registry+https://github.com/rust-lang/crates.io-index"
573
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
574
+ dependencies = [
575
+ "proc-macro2",
576
+ "quote",
577
+ "syn",
578
+ ]
579
+
580
+ [[package]]
581
+ name = "unicode-ident"
582
+ version = "1.0.24"
583
+ source = "registry+https://github.com/rust-lang/crates.io-index"
584
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
585
+
586
+ [[package]]
587
+ name = "unicode-segmentation"
588
+ version = "1.12.0"
589
+ source = "registry+https://github.com/rust-lang/crates.io-index"
590
+ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
591
+
592
+ [[package]]
593
+ name = "unicode-truncate"
594
+ version = "1.1.0"
595
+ source = "registry+https://github.com/rust-lang/crates.io-index"
596
+ checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf"
597
+ dependencies = [
598
+ "itertools",
599
+ "unicode-segmentation",
600
+ "unicode-width 0.1.14",
601
+ ]
602
+
603
+ [[package]]
604
+ name = "unicode-width"
605
+ version = "0.1.14"
606
+ source = "registry+https://github.com/rust-lang/crates.io-index"
607
+ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
608
+
609
+ [[package]]
610
+ name = "unicode-width"
611
+ version = "0.2.0"
612
+ source = "registry+https://github.com/rust-lang/crates.io-index"
613
+ checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
614
+
615
+ [[package]]
616
+ name = "wasi"
617
+ version = "0.11.1+wasi-snapshot-preview1"
618
+ source = "registry+https://github.com/rust-lang/crates.io-index"
619
+ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
620
+
621
+ [[package]]
622
+ name = "winapi"
623
+ version = "0.3.9"
624
+ source = "registry+https://github.com/rust-lang/crates.io-index"
625
+ checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
626
+ dependencies = [
627
+ "winapi-i686-pc-windows-gnu",
628
+ "winapi-x86_64-pc-windows-gnu",
629
+ ]
630
+
631
+ [[package]]
632
+ name = "winapi-i686-pc-windows-gnu"
633
+ version = "0.4.0"
634
+ source = "registry+https://github.com/rust-lang/crates.io-index"
635
+ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
636
+
637
+ [[package]]
638
+ name = "winapi-x86_64-pc-windows-gnu"
639
+ version = "0.4.0"
640
+ source = "registry+https://github.com/rust-lang/crates.io-index"
641
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
642
+
643
+ [[package]]
644
+ name = "windows-link"
645
+ version = "0.2.1"
646
+ source = "registry+https://github.com/rust-lang/crates.io-index"
647
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
648
+
649
+ [[package]]
650
+ name = "windows-sys"
651
+ version = "0.48.0"
652
+ source = "registry+https://github.com/rust-lang/crates.io-index"
653
+ checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
654
+ dependencies = [
655
+ "windows-targets 0.48.5",
656
+ ]
657
+
658
+ [[package]]
659
+ name = "windows-sys"
660
+ version = "0.59.0"
661
+ source = "registry+https://github.com/rust-lang/crates.io-index"
662
+ checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
663
+ dependencies = [
664
+ "windows-targets 0.52.6",
665
+ ]
666
+
667
+ [[package]]
668
+ name = "windows-sys"
669
+ version = "0.61.2"
670
+ source = "registry+https://github.com/rust-lang/crates.io-index"
671
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
672
+ dependencies = [
673
+ "windows-link",
674
+ ]
675
+
676
+ [[package]]
677
+ name = "windows-targets"
678
+ version = "0.48.5"
679
+ source = "registry+https://github.com/rust-lang/crates.io-index"
680
+ checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
681
+ dependencies = [
682
+ "windows_aarch64_gnullvm 0.48.5",
683
+ "windows_aarch64_msvc 0.48.5",
684
+ "windows_i686_gnu 0.48.5",
685
+ "windows_i686_msvc 0.48.5",
686
+ "windows_x86_64_gnu 0.48.5",
687
+ "windows_x86_64_gnullvm 0.48.5",
688
+ "windows_x86_64_msvc 0.48.5",
689
+ ]
690
+
691
+ [[package]]
692
+ name = "windows-targets"
693
+ version = "0.52.6"
694
+ source = "registry+https://github.com/rust-lang/crates.io-index"
695
+ checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
696
+ dependencies = [
697
+ "windows_aarch64_gnullvm 0.52.6",
698
+ "windows_aarch64_msvc 0.52.6",
699
+ "windows_i686_gnu 0.52.6",
700
+ "windows_i686_gnullvm",
701
+ "windows_i686_msvc 0.52.6",
702
+ "windows_x86_64_gnu 0.52.6",
703
+ "windows_x86_64_gnullvm 0.52.6",
704
+ "windows_x86_64_msvc 0.52.6",
705
+ ]
706
+
707
+ [[package]]
708
+ name = "windows_aarch64_gnullvm"
709
+ version = "0.48.5"
710
+ source = "registry+https://github.com/rust-lang/crates.io-index"
711
+ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
712
+
713
+ [[package]]
714
+ name = "windows_aarch64_gnullvm"
715
+ version = "0.52.6"
716
+ source = "registry+https://github.com/rust-lang/crates.io-index"
717
+ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
718
+
719
+ [[package]]
720
+ name = "windows_aarch64_msvc"
721
+ version = "0.48.5"
722
+ source = "registry+https://github.com/rust-lang/crates.io-index"
723
+ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
724
+
725
+ [[package]]
726
+ name = "windows_aarch64_msvc"
727
+ version = "0.52.6"
728
+ source = "registry+https://github.com/rust-lang/crates.io-index"
729
+ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
730
+
731
+ [[package]]
732
+ name = "windows_i686_gnu"
733
+ version = "0.48.5"
734
+ source = "registry+https://github.com/rust-lang/crates.io-index"
735
+ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
736
+
737
+ [[package]]
738
+ name = "windows_i686_gnu"
739
+ version = "0.52.6"
740
+ source = "registry+https://github.com/rust-lang/crates.io-index"
741
+ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
742
+
743
+ [[package]]
744
+ name = "windows_i686_gnullvm"
745
+ version = "0.52.6"
746
+ source = "registry+https://github.com/rust-lang/crates.io-index"
747
+ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
748
+
749
+ [[package]]
750
+ name = "windows_i686_msvc"
751
+ version = "0.48.5"
752
+ source = "registry+https://github.com/rust-lang/crates.io-index"
753
+ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
754
+
755
+ [[package]]
756
+ name = "windows_i686_msvc"
757
+ version = "0.52.6"
758
+ source = "registry+https://github.com/rust-lang/crates.io-index"
759
+ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
760
+
761
+ [[package]]
762
+ name = "windows_x86_64_gnu"
763
+ version = "0.48.5"
764
+ source = "registry+https://github.com/rust-lang/crates.io-index"
765
+ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
766
+
767
+ [[package]]
768
+ name = "windows_x86_64_gnu"
769
+ version = "0.52.6"
770
+ source = "registry+https://github.com/rust-lang/crates.io-index"
771
+ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
772
+
773
+ [[package]]
774
+ name = "windows_x86_64_gnullvm"
775
+ version = "0.48.5"
776
+ source = "registry+https://github.com/rust-lang/crates.io-index"
777
+ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
778
+
779
+ [[package]]
780
+ name = "windows_x86_64_gnullvm"
781
+ version = "0.52.6"
782
+ source = "registry+https://github.com/rust-lang/crates.io-index"
783
+ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
784
+
785
+ [[package]]
786
+ name = "windows_x86_64_msvc"
787
+ version = "0.48.5"
788
+ source = "registry+https://github.com/rust-lang/crates.io-index"
789
+ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
790
+
791
+ [[package]]
792
+ name = "windows_x86_64_msvc"
793
+ version = "0.52.6"
794
+ source = "registry+https://github.com/rust-lang/crates.io-index"
795
+ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
796
+
797
+ [[package]]
798
+ name = "zmij"
799
+ version = "1.0.21"
800
+ source = "registry+https://github.com/rust-lang/crates.io-index"
801
+ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"