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
[]
= "net-cli"
= "0.33.0"
= "2021"
= "Unified `net-mesh` command-line tool for the Net mesh"
= "Apache-2.0"
= "https://github.com/ai-2070/net"
= true
[[]]
= "net-mesh"
= "src/main.rs"
[]
# `keychain` turns on the OS-keychain secret value store so `net forwarding
# set-value` can persist a forwarded secret (it enables `net-mesh-mcp`'s own
# `keychain` feature). NOT a default: it pulls the `keyring` dependency and
# needs a keychain-capable host, so the standard build stays lean. The
# `set-value` subcommand is always present; without this feature it returns a
# clear "rebuild with --features keychain" error instead of silently missing.
= ["net-mesh-mcp/keychain"]
[]
= { = "net-mesh-sdk", = "0.33.0", = "../sdk", = false, = [
"net",
"nat-traversal",
"cortex",
"compute",
"groups",
"meshos",
"deck",
"dataforts",
"meshdb",
"aggregator",
"tool",
] }
# The MCP edge adapter powers `net wrap` (wrap a stdio MCP server as mesh
# capabilities). The CLI is the packaging point — it links the adapter the
# same way it links the SDK; the adapter itself still rides on the SDK only.
= { = "0.33.0", = "../adapters/mcp" }
# Clap derives the argv parser from typed structs; `env` enables
# `NET_MESH_*` env-var fallback for global flags (`--profile` etc.).
= { = "4", = ["derive", "env"] }
# `clap_complete` powers `net-mesh completion <shell>`; `clap_mangen`
# powers `net-mesh man`. Release tarballs run those subcommands
# post-build to capture the output into `share/bash-completion/...`
# and `share/man/man1/net-mesh.1`.
= "4"
= "0.3"
# Multi-thread tokio for the SDK; macros for `#[tokio::main]`.
= { = "1", = [
"macros",
"rt-multi-thread",
"sync",
"time",
"signal",
"fs",
"io-std",
"io-util",
] }
# Serde stack for output dispatch + identity/config file parsing.
= { = "1", = ["derive"] }
= "1"
= "0.9"
# Pretty terminal tables for `--output table` (Phase 1: read-only
# views).
= "7"
# Progress display for `net transfer recv-blob` / `recv-dir`. The SDK
# fetch is a single await with no per-chunk callback, so this drives a
# steady-tick spinner while the fetch runs, then a final one-line
# summary — live feedback for the directory-transfer demo without
# fabricating per-chunk counts the substrate doesn't surface. Drawn to
# stderr and suppressed under `--quiet` / non-TTY so it never pollutes
# `--output json` on stdout.
= "0.18"
# Tracing-subscriber wires `-v` / `-vv` / `-vvv` to env-filter
# levels. Format pinned to compact for stderr.
= { = "0.3", = ["env-filter", "fmt"] }
= "0.1"
# XDG paths + TOML for the config + identity stores.
= "6"
= "1.0"
# Streaming combinators used by the audit/log/failures ndjson
# outputs and the snapshot watch loop.
= "0.3"
# Hex codec for identity material (seed / public key / signature).
= "0.4"
# SHA-256 for the operator-visible identity fingerprint. ssh
# uses SHA-256 for the analogous `ssh-keygen -lf` surface; we
# mirror the algorithm so operators recognize the fingerprint
# format at a glance.
= "0.11"
# Typed errors at the config / identity boundary.
= "2"
# `cargo binstall net-cli` resolves prebuilt tarballs against the
# `release-binaries-cli.yml` workflow's GitHub Release assets.
# Defaults to the binstall convention except for the tag prefix
# (`cli-v*`, not `net-cli-v*`) and the binary name (the crate is
# `net-cli` but the binary inside is `net-mesh`).
[]
= "{ repo }/releases/download/cli-v{ version }/{ name }-v{ version }-{ target }.{ archive-suffix }"
= "{ name }-v{ version }-{ target }/net-mesh{ binary-ext }"
= "tgz"
[]
= "zip"
[]
# Drive the binary in integration tests.
= "2"
= "3"
= "3"
# Async test helpers — `#[tokio::test]` + the SDK's in-process
# cluster fixtures.
= { = "1", = [
"rt-multi-thread",
"macros",
"time",
"test-util",
] }
# Boot the aggregator-daemon in-process for the remote-attach
# integration test (`tests/aggregator_remote.rs`). The CLI
# subprocess handshakes against this booted daemon's MeshNode.
#
# Path-only on purpose — net-aggregator-daemon is a binary
# crate that doesn't publish to crates.io, so giving this
# dev-dep a `version = ...` field would make `cargo publish
# --dry-run` (and any real publish) fail at the dependency-
# resolution step. With only `path` set, cargo drops the
# dev-dep entirely when packaging.
= { = "../aggregator-daemon" }