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
[]
# `magi` on crates.io is an 882-byte placeholder with no repository, and
# crates.io does not reclaim names. Same workaround as yukimemi/yui, which
# publishes as `yui-cli`: the repo, the binary and the library all stay `magi`,
# only the published package name carries the suffix.
= "magi-cli"
= "0.201.2"
= "2024"
= "1.85"
= ["yukimemi <yukimemi@gmail.com>"]
= "MIT"
= "Blind multi-agent implementation competition: N agents implement, M judges rank blind, deliberate, vote privately, winner survives double review + E2E gate"
= "https://github.com/yukimemi/magi"
= "README.md"
= ["command-line-utilities", "development-tools"]
= ["ai", "agent", "code-review", "git", "worktree"]
[]
= "magi"
= "src/lib.rs"
[[]]
= "magi"
= "src/main.rs"
[]
= { = "4.6.7", = ["derive"] }
= "4.6.11"
= { = "1.0.229", = ["derive"] }
= "1.0.154"
= "0.10.9"
= "1.1.8"
= "1.0.104"
= "2.0.21"
= "0.1.44"
= { = "0.3.23", = ["env-filter"] }
= { = "1.54.1", = [
"rt",
"rt-multi-thread",
"macros",
"process",
"time",
"fs",
"io-util",
"sync",
# `signal`: the daemon's loop shuts down on Ctrl-C, which needs a portable
# signal handler. Without it an unattended run has no clean stop.
"signal",
] }
# TUI. Versions match the rest of the fleet (shoka, rvpm), including
# `ansi-to-tui`, which lets the detail pane render `report::run`'s own coloured
# output instead of reimplementing the report against ratatui spans.
= "0.30.2"
= { = "0.29", = ["events"] }
= "8.0.1"
= { = "0.2.38", = ["serde"] }
= "7.0.0"
= "0.7.5"
= { = "0.2.2", = ["merge"] }
# Web UI. `axum` for the API and its built-in SSE, `tokio-stream` to turn the
# change-notification channel into the stream SSE wants. No `tower-http` and no
# JS toolchain: the front end is three files embedded with `include_str!`, so
# `cargo install magi-cli` yields a working phone UI with nothing else to fetch.
= "0.8.9"
= "0.1.19"
# GFM markdown -> node tree for the web UI (see `md`). `default-features =
# false` because the crate's defaults pull in `syntect` for fenced-code
# syntax highlighting, which magi does not want: a fence is shown as plain
# text, never colored, so there is nothing for a highlighter to do here.
= { = "0.57.0", = false }
# Process liveness and start time (`proc`). Only the process table: no CPU,
# disk, network or component probing, and no subprocess to shell out to.
= { = "0.39.6", = false, = ["system"] }
# `kill(pid, 0)`: an existence witness independent of `sysinfo` (`proc`).
[]
= "0.2.191"
[]
= "1.4.1"
= "3.27.0"
# `tests/web_render.rs` drives headless Chrome over the DevTools protocol with a
# small hand-written client (`tests/web_render/cdp.rs`). Dev-only: the shipped
# binary gains no dependency and no browser requirement.
= "0.30.0"
= { = "0.3.34", = false, = ["sink"] }
# Worker generations hash the whole executable (`worker::pin_source`, then
# again to verify an existing generation). A debug test binary is ~130 MB and
# unoptimized SHA-256 made each pin take ~6 s on an M1 and long enough on CI
# runners to time out the first web request that starts a worker
# (tests/web_resume_worker.rs). Optimizing only the hash crate keeps the rest
# of a debug build debuggable.
[]
= 3