netconverter-cli 0.4.0__tar.gz
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.
- netconverter_cli-0.4.0/.gitignore +9 -0
- netconverter_cli-0.4.0/CHANGELOG.md +189 -0
- netconverter_cli-0.4.0/LICENSE +21 -0
- netconverter_cli-0.4.0/PKG-INFO +167 -0
- netconverter_cli-0.4.0/QUICK_START.md +128 -0
- netconverter_cli-0.4.0/README.md +133 -0
- netconverter_cli-0.4.0/SECURITY.md +14 -0
- netconverter_cli-0.4.0/docs/COMMANDS.md +165 -0
- netconverter_cli-0.4.0/docs/PRIVACY.md +130 -0
- netconverter_cli-0.4.0/docs/RELEASING.md +88 -0
- netconverter_cli-0.4.0/docs/VERIFICATION.md +103 -0
- netconverter_cli-0.4.0/docs/connect/README.md +61 -0
- netconverter_cli-0.4.0/docs/connect/chatgpt.md +22 -0
- netconverter_cli-0.4.0/docs/connect/claude-ai.md +36 -0
- netconverter_cli-0.4.0/docs/connect/claude-code.md +31 -0
- netconverter_cli-0.4.0/docs/connect/claude-desktop.md +42 -0
- netconverter_cli-0.4.0/docs/connect/getting-access.md +82 -0
- netconverter_cli-0.4.0/docs/connect/other-assistants.md +32 -0
- netconverter_cli-0.4.0/examples/README.md +11 -0
- netconverter_cli-0.4.0/pyproject.toml +56 -0
- netconverter_cli-0.4.0/src/netconverter_cli/__init__.py +3 -0
- netconverter_cli-0.4.0/src/netconverter_cli/activity.py +83 -0
- netconverter_cli-0.4.0/src/netconverter_cli/api.py +257 -0
- netconverter_cli-0.4.0/src/netconverter_cli/backend.py +107 -0
- netconverter_cli-0.4.0/src/netconverter_cli/branding.py +79 -0
- netconverter_cli-0.4.0/src/netconverter_cli/catalog.py +162 -0
- netconverter_cli-0.4.0/src/netconverter_cli/clerk.py +602 -0
- netconverter_cli-0.4.0/src/netconverter_cli/cli.py +521 -0
- netconverter_cli-0.4.0/src/netconverter_cli/commands.py +63 -0
- netconverter_cli-0.4.0/src/netconverter_cli/connect.py +465 -0
- netconverter_cli-0.4.0/src/netconverter_cli/controller.py +331 -0
- netconverter_cli-0.4.0/src/netconverter_cli/credentials.py +94 -0
- netconverter_cli-0.4.0/src/netconverter_cli/guided.py +365 -0
- netconverter_cli-0.4.0/src/netconverter_cli/mcp_server.py +640 -0
- netconverter_cli-0.4.0/src/netconverter_cli/palette.py +16 -0
- netconverter_cli-0.4.0/src/netconverter_cli/presentation.py +254 -0
- netconverter_cli-0.4.0/src/netconverter_cli/privacy.py +105 -0
- netconverter_cli-0.4.0/src/netconverter_cli/providers.py +246 -0
- netconverter_cli-0.4.0/src/netconverter_cli/remote_mcp.py +175 -0
- netconverter_cli-0.4.0/src/netconverter_cli/setup.py +179 -0
- netconverter_cli-0.4.0/src/netconverter_cli/tui.py +607 -0
- netconverter_cli-0.4.0/src/netconverter_cli/update.py +344 -0
- netconverter_cli-0.4.0/src/netconverter_cli/workspace.py +148 -0
- netconverter_cli-0.4.0/tests/conftest.py +22 -0
- netconverter_cli-0.4.0/tests/test_boundaries.py +68 -0
- netconverter_cli-0.4.0/tests/test_clerk.py +400 -0
- netconverter_cli-0.4.0/tests/test_clerk_host_binding.py +74 -0
- netconverter_cli-0.4.0/tests/test_cli_020.py +229 -0
- netconverter_cli-0.4.0/tests/test_connect_030.py +180 -0
- netconverter_cli-0.4.0/tests/test_connect_031.py +108 -0
- netconverter_cli-0.4.0/tests/test_download_analysis.py +87 -0
- netconverter_cli-0.4.0/tests/test_inline.py +175 -0
- netconverter_cli-0.4.0/tests/test_mcp.py +714 -0
- netconverter_cli-0.4.0/tests/test_presentation.py +101 -0
- netconverter_cli-0.4.0/tests/test_protocols.py +173 -0
- netconverter_cli-0.4.0/tests/test_sessions.py +128 -0
- netconverter_cli-0.4.0/tests/test_setup.py +143 -0
- netconverter_cli-0.4.0/tests/test_signin_default.py +188 -0
- netconverter_cli-0.4.0/tests/test_update.py +231 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.4.0 — 2026-10-21
|
|
4
|
+
|
|
5
|
+
- **On PyPI as `netconverter-cli`.** `uv tool install --python 3.12 netconverter-cli`
|
|
6
|
+
installs the CLI; each tagged release is published from GitHub Actions with PyPI
|
|
7
|
+
trusted publishing, and the wheel plus `SHA256SUMS` stay on the GitHub Release.
|
|
8
|
+
- **One-line installers.** `curl -LsSf https://netconverter.ai/install.sh | sh`
|
|
9
|
+
(macOS/Linux) and `irm https://netconverter.ai/install.ps1 | iex` (Windows) install uv
|
|
10
|
+
if needed and the CLI from PyPI (or the latest release wheel after its SHA-256 check
|
|
11
|
+
when PyPI is unreachable), sign you in, create `~/migrations` and run
|
|
12
|
+
`connect --all`. `--yes` for IT/MDM, `--no-connect`, `--workspace PATH`. Safe to run
|
|
13
|
+
again. Sources: `scripts/install.sh`, `scripts/install.ps1`.
|
|
14
|
+
- **`netconverter update` follows the install.** A copy uv installed from PyPI is
|
|
15
|
+
upgraded with `uv tool upgrade netconverter-cli`; a copy installed from a wheel keeps
|
|
16
|
+
the verified-wheel path.
|
|
17
|
+
- **`netconverter --version`.**
|
|
18
|
+
|
|
19
|
+
## 0.3.2 — 2026-10-21
|
|
20
|
+
|
|
21
|
+
- **Safer Claude Code read rule.** `connect claude-code` no longer offers the
|
|
22
|
+
`Read(//<folder>/**)` deny rule when the workspace is your home folder (or contains
|
|
23
|
+
it): there it would stop Claude Code reading every project. Use a dedicated folder
|
|
24
|
+
such as `~/migrations`.
|
|
25
|
+
- **`connect --all` skips optional extras** such as that rule; run
|
|
26
|
+
`netconverter connect claude-code` on its own to review it.
|
|
27
|
+
- **Getting access guide** for new users and administrators: `docs/connect/getting-access.md`.
|
|
28
|
+
|
|
29
|
+
## 0.3.1 — 2026-10-21
|
|
30
|
+
|
|
31
|
+
- **More assistants.** `netconverter connect gemini` (Gemini CLI), `windsurf` and
|
|
32
|
+
`lmstudio` merge the bridge into each client's MCP config, keeping every other key
|
|
33
|
+
and a `.bak`, like `claude-desktop`.
|
|
34
|
+
- **ChatGPT and claude.ai.** `netconverter connect chatgpt` / `claude-ai` print the
|
|
35
|
+
steps to add NetConverter's hosted MCP as a custom connector. Those apps cannot start
|
|
36
|
+
a local program, so they read jobs, results and the knowledge base but do not submit
|
|
37
|
+
files; nothing on the computer is changed.
|
|
38
|
+
- **`netconverter connect --all`** connects every local assistant found on this
|
|
39
|
+
computer that is not connected yet, one prompt each (`--yes` for all). The list view
|
|
40
|
+
now marks connected (●), found (○ found on this computer) and remote (↗) clients.
|
|
41
|
+
|
|
42
|
+
## 0.3.0 — 2026-10-20
|
|
43
|
+
|
|
44
|
+
- **Remote tool allowlist.** The bridge proxies a NetConverter MCP tool only when it
|
|
45
|
+
is on the client's allowlist: the read tools the server advertises today plus the
|
|
46
|
+
new `get_account`. A tool the server adds later, or any `submit_*` tool, is not
|
|
47
|
+
offered to your AI until a client release lists it.
|
|
48
|
+
- **Strict mode.** `netconverter mcp --strict` (or `NETCONVERTER_MCP_STRICT=1`)
|
|
49
|
+
proxies only the strict-view set: `list_jobs`, `select_job`, `get_account`, `search`,
|
|
50
|
+
`fetch`, `kb_search`, `kb_explain`, `vendor_capability_lookup`, `get_job_brief`,
|
|
51
|
+
`get_evidence`, `get_report`, whatever the server advertises. When your account is
|
|
52
|
+
in the server's strict view mode, names in results arrive as `<name:…>` tokens.
|
|
53
|
+
- **New bridge tools.** `account` (tier, job types, rate limit, daily quota, auth kind,
|
|
54
|
+
client version, `update_available`; no tokens or e-mail addresses) and
|
|
55
|
+
`wait_for_job(job_id, timeout_s ≤ 600)`, which polls with backoff and returns the
|
|
56
|
+
`job_status` summary plus `waited_s` and `timed_out`. It sends MCP progress
|
|
57
|
+
notifications when the assistant asks for them. `job_status` also reports the job's
|
|
58
|
+
stage and percentage when the server sends them. `submit_file` accepts
|
|
59
|
+
`job_type: "analyze"` as an alias of validate.
|
|
60
|
+
- **`netconverter connect claude-desktop`** merges the bridge into Claude Desktop's
|
|
61
|
+
`claude_desktop_config.json` (macOS and Windows), after showing a diff, with a `.bak`.
|
|
62
|
+
- **Claude Code read rule.** After `connect claude-code`, the CLI and the app offer
|
|
63
|
+
(default yes) to add `Read(//<folder>/**)` to `permissions.deny` in
|
|
64
|
+
`~/.claude/settings.json`, so Claude Code works on the folder's configurations
|
|
65
|
+
through the bridge instead of reading them itself. See [privacy](docs/PRIVACY.md).
|
|
66
|
+
- **`netconverter update`** installs the latest GitHub release after verifying its
|
|
67
|
+
SHA-256 against the release's `SHA256SUMS` (`--check` only reports, `--yes` skips
|
|
68
|
+
the prompt). Interactive commands show a one-line notice at most once a day when
|
|
69
|
+
a newer release exists; `NETCONVERTER_NO_UPDATE_CHECK=1` turns it off.
|
|
70
|
+
|
|
71
|
+
## 0.2.2 — 2026-10-19
|
|
72
|
+
|
|
73
|
+
- **Validate and optimize downloads keep the result.** `download` (bridge and app)
|
|
74
|
+
saved only an empty `report.json` for these jobs; it now saves
|
|
75
|
+
`<job>.validation.json` or `<job>.optimization.json` from the job's result, plus the
|
|
76
|
+
evidence workbook when the server has one. An unfinished job answers
|
|
77
|
+
`job_not_completed` instead of writing an empty file. Conversion downloads are unchanged.
|
|
78
|
+
|
|
79
|
+
## 0.2.1 — 2026-10-19
|
|
80
|
+
|
|
81
|
+
- **Your sign-in just works.** After `netconverter login --clerk`, plain commands
|
|
82
|
+
(`capabilities`, `jobs`, `validate`, `convert`, …) and the app use it with no
|
|
83
|
+
`NETCONVERTER_AUTH` variable; 0.2.0 prompted for an API key. A stored key is
|
|
84
|
+
still used first, the sign-in only ever goes to a trusted NetConverter host, and
|
|
85
|
+
`NETCONVERTER_AUTH=key|clerk` forces one. With neither, the command says how to
|
|
86
|
+
connect instead of prompting.
|
|
87
|
+
- **First-run setup offers sign-in.** Plain `netconverter` in a new folder uses an
|
|
88
|
+
existing sign-in, or asks: sign in with your NetConverter account (browser) or
|
|
89
|
+
paste an API key. A workspace's `connection.json` still never chooses the credential.
|
|
90
|
+
|
|
91
|
+
## 0.2.0 — 2026-10-19
|
|
92
|
+
|
|
93
|
+
**NetConverter CLI.** The package is now `netconverter-cli` (the command is still
|
|
94
|
+
`netconverter`). Run `uv tool uninstall netconverter-terminal` before installing;
|
|
95
|
+
saved keys, sign-ins and workspace state carry over.
|
|
96
|
+
|
|
97
|
+
- **Every vendor the server supports.** Full-API keys and Clerk sign-ins use the
|
|
98
|
+
External API: menus come from `GET /capabilities` (vendors, source → target paths,
|
|
99
|
+
job types, limits), so firewalls, routers and switches all work and new server
|
|
100
|
+
vendors need no client release. Terminal Quick pilot keys keep ASA → Palo Alto
|
|
101
|
+
and are labelled as such.
|
|
102
|
+
- **`/validate` and `/optimize`** alongside `/convert`; the file's vendor is
|
|
103
|
+
suggested from a local look at its first lines.
|
|
104
|
+
- **Redesigned app.** One-row header (server, bridge, model, allowance), cards with
|
|
105
|
+
verdict badges, a bordered choice panel with a `▸` cursor and 1–9 jump keys, a
|
|
106
|
+
bordered prompt, one status line with a spinner and progress bar, a contextual
|
|
107
|
+
footer, readable labels instead of raw codes, and no wrapped review tables at 80 columns.
|
|
108
|
+
- **Your AI, visible.** `netconverter connect claude-code|cursor|vscode|codex` (or
|
|
109
|
+
`/connect`) wires the bridge after showing the change. The bridge records metadata-only
|
|
110
|
+
activity, shown live in the app and in `/activity`.
|
|
111
|
+
- **Bridge fixes.** Submissions send `technology` from the vendor code (router and
|
|
112
|
+
switch jobs were labelled firewall). Validate/optimize work as soon as the server
|
|
113
|
+
advertises them in `/me` (server change shipped alongside). Downloads add the
|
|
114
|
+
evidence workbook.
|
|
115
|
+
- `netconverter capabilities`; `validate`/`convert --vendor … --to …` in plain mode.
|
|
116
|
+
`login` and `setup` accept full-API keys (0.1.x checked only the pilot profile).
|
|
117
|
+
|
|
118
|
+
## 0.1.6 — 2026-10-18
|
|
119
|
+
|
|
120
|
+
- `netconverter login --clerk`: sign in with your NetConverter account (OAuth 2.1
|
|
121
|
+
PKCE through clerk.netconverter.ai). `--device` for machines without a browser.
|
|
122
|
+
Tokens live only in the OS credential store and refresh automatically.
|
|
123
|
+
`netconverter whoami` and `netconverter logout` added. Key login is unchanged.
|
|
124
|
+
- `netconverter mcp`: a local MCP server for Claude Code, Cursor, VS Code and Codex.
|
|
125
|
+
Your AI passes file paths; the client uploads the configuration directly to
|
|
126
|
+
NetConverter, so the configuration never goes through the model. Tools:
|
|
127
|
+
`submit_file`, `job_status`, `download`, plus the remote read-only NetConverter
|
|
128
|
+
tools (evidence, NAT, flows, knowledge base).
|
|
129
|
+
- Your sign-in is only ever sent to api.netconverter.ai (or hosts you trust with
|
|
130
|
+
`NETCONVERTER_TRUSTED_HOSTS`); a workspace file cannot redirect it.
|
|
131
|
+
|
|
132
|
+
## 0.1.5 — 2026-10-01
|
|
133
|
+
|
|
134
|
+
- Display server-authorized unlimited allowances as Unlimited in the status line
|
|
135
|
+
and `/allowance`. This client update does not grant or change server entitlements.
|
|
136
|
+
|
|
137
|
+
## 0.1.4 — 2026-10-01
|
|
138
|
+
|
|
139
|
+
- Skip `evidence.json` and `pipeline-evidence.json` in automatic downloads and
|
|
140
|
+
`/download`. Keep converted configs, YAML, reports and TXT/XLSX evidence.
|
|
141
|
+
- Existing local artifacts are not deleted. Follow-up query JSON/TXT is unchanged.
|
|
142
|
+
|
|
143
|
+
## 0.1.3 — 2026-10-01
|
|
144
|
+
|
|
145
|
+
- Replace modal forms, dropdowns and oversized buttons with compact inline
|
|
146
|
+
keyboard questions: arrow keys choose, Enter continues, Esc cancels a choice.
|
|
147
|
+
- Disable mouse capture so normal terminal text selection works.
|
|
148
|
+
- `/convert` starts with an ASA source, then asks separately for Palo Alto output,
|
|
149
|
+
server-supported options, cleanup and optional advanced overrides. Show the
|
|
150
|
+
review before explicit job submission; uploads are separately confirmed.
|
|
151
|
+
- `/open`, `/analyze` and `/model` use the same inline flow. Keep keys masked and
|
|
152
|
+
out of conversation history, preserve model connections on failed retries.
|
|
153
|
+
- A selected Palo Alto source now leads `/convert` to ASA file selection instead
|
|
154
|
+
of leaving the user at a source-format validation error.
|
|
155
|
+
- Preserve server job status, warnings, downloads, privacy and no-clobber behavior.
|
|
156
|
+
|
|
157
|
+
## 0.1.2 — 2026-10-01
|
|
158
|
+
|
|
159
|
+
- Implement the approved NETCONVERTER.ai terminal design: compact welcome commands,
|
|
160
|
+
persistent prompt/status, workspace file browser, readable jobs and local artifacts.
|
|
161
|
+
- File browser actions upload the selected config and open explicit conversion
|
|
162
|
+
choices or submit analysis. ASA-only migration and the 50,000-byte limit remain.
|
|
163
|
+
- Replace raw JSON help and generic errors with readable commands and next steps.
|
|
164
|
+
- Add `/model` with hidden key entry, a synthetic compatibility probe, and retry
|
|
165
|
+
without replacing a working model on failure. Setup distinguishes provider
|
|
166
|
+
authentication, permissions, model access, quota, rate limits, and connectivity.
|
|
167
|
+
- Detect keys accidentally entered in the server URL field and reprompt.
|
|
168
|
+
- Display server progress/verdicts and hash-verified local downloads. Failed
|
|
169
|
+
downloads remain retryable; existing outputs and source configurations survive.
|
|
170
|
+
- Responsive interaction coverage at 126×41 and 80×24; expanded negative tests.
|
|
171
|
+
|
|
172
|
+
Model protocol tests use mocks. The reported customer OpenAI connection failure
|
|
173
|
+
still needs live retesting with the customer's chosen API model. This release
|
|
174
|
+
does not add archive encryption, job cancellation, or a runtime guarantee.
|
|
175
|
+
|
|
176
|
+
## 0.1.1 — 2026-10-01
|
|
177
|
+
|
|
178
|
+
First public pilot client release under the MIT license.
|
|
179
|
+
|
|
180
|
+
- NetConverter branding and guided ASA → Palo Alto SET/XML/Panorama conversion.
|
|
181
|
+
- Production HTTPS setup, separate server/model credentials, and OS credential storage.
|
|
182
|
+
- Optional Anthropic, OpenAI, Gemini, and Ollama operation adapters.
|
|
183
|
+
- Analysis, optimization findings, structured policy questions, and revision selection.
|
|
184
|
+
- Server job IDs, resumable sessions, and verified artifacts beside the source.
|
|
185
|
+
- Customer installation, settings, privacy, troubleshooting, and uninstall guides.
|
|
186
|
+
|
|
187
|
+
This public repository begins with a reviewed client snapshot. Private development
|
|
188
|
+
history and server implementation are not included. See verification notes for
|
|
189
|
+
remaining acceptance work.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ValeronLabs LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: netconverter-cli
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: NetConverter CLI — any-vendor network configuration migration, validation and optimization, and a local MCP bridge for your AI assistant
|
|
5
|
+
Project-URL: Homepage, https://netconverter.ai
|
|
6
|
+
Project-URL: Repository, https://github.com/valeronlabs/netconverter_terminals
|
|
7
|
+
Project-URL: Documentation, https://github.com/valeronlabs/netconverter_terminals/blob/main/QUICK_START.md
|
|
8
|
+
Project-URL: Issues, https://github.com/valeronlabs/netconverter_terminals/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/valeronlabs/netconverter_terminals/blob/main/CHANGELOG.md
|
|
10
|
+
Author-email: ValeronLabs LLC <contact@netconverter.ai>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: check-point,cisco,firewall,fortinet,mcp,migration,model-context-protocol,netconverter,network-automation,palo-alto
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: System Administrators
|
|
17
|
+
Classifier: Intended Audience :: Telecommunications Industry
|
|
18
|
+
Classifier: Operating System :: MacOS
|
|
19
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
|
+
Classifier: Topic :: System :: Networking
|
|
26
|
+
Classifier: Topic :: System :: Networking :: Firewalls
|
|
27
|
+
Classifier: Topic :: Utilities
|
|
28
|
+
Requires-Python: >=3.12
|
|
29
|
+
Requires-Dist: httpx==0.28.1
|
|
30
|
+
Requires-Dist: keyring==25.7.0
|
|
31
|
+
Requires-Dist: pydantic==2.13.5
|
|
32
|
+
Requires-Dist: textual==8.2.8
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
|
|
35
|
+
# NetConverter CLI
|
|
36
|
+
|
|
37
|
+
<!-- mcp-name: ai.netconverter/netconverter -->
|
|
38
|
+
|
|
39
|
+
**Migrate, validate and optimize network configurations from the folder that holds them — and let your own AI assistant do it too, without the configuration ever passing through the model.**
|
|
40
|
+
|
|
41
|
+
NetConverter — by ValeronLabs LLC.
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
◆ NetConverter v0.3.0 ● Server ◆ Bridge claude-code · 2m ago
|
|
45
|
+
▍ Start
|
|
46
|
+
▍ /convert Migrate a configuration to another vendor
|
|
47
|
+
▍ /validate Check a configuration before migrating
|
|
48
|
+
▍ /optimize Cleanup and optimization findings
|
|
49
|
+
▍ /activity What your AI assistant did here
|
|
50
|
+
╭ What does edge-fw.conf contain? ───────────────────────────────╮
|
|
51
|
+
│ ▸ 1 Fortinet FortiGate · detected │
|
|
52
|
+
│ 2 Cisco ASA │
|
|
53
|
+
╰──────────────────────────────── ↑↓ choose · 1–9 jump · Enter ───╯
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
One small client, three ways in:
|
|
57
|
+
|
|
58
|
+
| | What it is |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| `netconverter` | A keyboard-first full-screen app: pick a file, answer a few inline questions, follow the job, get verified outputs beside your source. |
|
|
61
|
+
| `netconverter mcp` | A local MCP bridge for Claude Code, Claude Desktop, Cursor, VS Code and Codex. Your AI passes a **file path**; the bridge reads the file and uploads it straight to NetConverter. The AI sees paths, job IDs and summaries — never the configuration. |
|
|
62
|
+
| `netconverter validate edge.cfg --vendor fortinet` | Plain one-shot commands that print JSON, for scripts and CI. |
|
|
63
|
+
|
|
64
|
+
## What it supports
|
|
65
|
+
|
|
66
|
+
Whatever the NetConverter server you sign in to supports — the client reads
|
|
67
|
+
`GET /capabilities` and builds every menu from it, so new vendors appear
|
|
68
|
+
without a client update. Today that is:
|
|
69
|
+
|
|
70
|
+
- **Firewalls:** Palo Alto (SET, XML, Panorama), Fortinet FortiGate, Cisco FMC (JSON);
|
|
71
|
+
Cisco ASA as a source. Check Point is a source through a handoff bundle in the portal.
|
|
72
|
+
- **Routers and switches:** Cisco IOS-XE, Juniper JunOS (braces and set), Aruba CX;
|
|
73
|
+
ArubaOS as a source.
|
|
74
|
+
- **Jobs:** convert, validate, optimize; follow-up questions on NAT, policy, routes,
|
|
75
|
+
interfaces, unused objects, object dependencies and traffic flows.
|
|
76
|
+
|
|
77
|
+
Run `netconverter capabilities` to see exactly what your credential can do.
|
|
78
|
+
A 0.1.x **Terminal Quick pilot key** still works and keeps its ASA → Palo Alto
|
|
79
|
+
scope; the app labels it as such.
|
|
80
|
+
|
|
81
|
+
## Start here
|
|
82
|
+
|
|
83
|
+
One line installs everything (uv, the CLI from PyPI), signs you in and connects
|
|
84
|
+
your AI assistants to `~/migrations`:
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
curl -LsSf https://netconverter.ai/install.sh | sh # macOS / Linux
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```powershell
|
|
91
|
+
irm https://netconverter.ai/install.ps1 | iex # Windows PowerShell
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Options: `--yes` (no prompts, for IT/MDM), `--no-connect`, `--workspace PATH`
|
|
95
|
+
(`curl … | sh -s -- --yes`; PowerShell: `-Yes -NoConnect -Workspace PATH`, see
|
|
96
|
+
[scripts/install.ps1](scripts/install.ps1)). Running it again only does what is missing.
|
|
97
|
+
|
|
98
|
+
Or by hand:
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
# 1. Install (Python 3.12+ via uv: https://docs.astral.sh/uv)
|
|
102
|
+
uv tool install --python 3.12 netconverter-cli
|
|
103
|
+
|
|
104
|
+
# 2. Sign in once
|
|
105
|
+
netconverter login --clerk # your NetConverter account, in the browser
|
|
106
|
+
# or: netconverter login # paste an API key at a hidden prompt
|
|
107
|
+
|
|
108
|
+
# 3. Work in the folder that holds your configs
|
|
109
|
+
cd ~/migrations && netconverter
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Upgrading from `netconverter-terminal` 0.1.x: `uv tool uninstall netconverter-terminal`
|
|
113
|
+
first. Saved keys and sign-ins carry over (Keychain service **NetConverter Terminal**).
|
|
114
|
+
|
|
115
|
+
Full walkthrough: [Quick start](QUICK_START.md).
|
|
116
|
+
|
|
117
|
+
## Use it from your AI
|
|
118
|
+
|
|
119
|
+
Step-by-step guides for every assistant (Claude, ChatGPT, Cursor, Gemini CLI, Codex …):
|
|
120
|
+
[docs/connect](docs/connect/README.md).
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
netconverter connect claude-code # or claude-desktop, cursor, vscode, codex, gemini, windsurf, lmstudio
|
|
124
|
+
netconverter connect --all # every assistant found on this computer
|
|
125
|
+
netconverter connect chatgpt # ChatGPT / claude.ai: remote-connector setup steps
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
`connect` shows the exact change it will make and asks before applying it
|
|
129
|
+
(Claude Code through its own `claude mcp add`; JSON files keep a `.bak`). For
|
|
130
|
+
Claude Code it then offers a `Read` deny rule for the folder, so the assistant
|
|
131
|
+
works on your configurations only through the bridge.
|
|
132
|
+
Then ask your assistant, for example: *"Validate edge-fw.conf and tell me what it finds,"*
|
|
133
|
+
*"Convert it to Palo Alto XML,"* *"Can WEB reach DB on tcp/1433?"*
|
|
134
|
+
|
|
135
|
+
Bridge tools: `submit_file`, `job_status`, `wait_for_job`, `account`, `download`,
|
|
136
|
+
plus an allowlist of NetConverter's read-only tools (reports, evidence, NAT, flows,
|
|
137
|
+
knowledge base). `netconverter mcp --strict` narrows those to the strict-view set.
|
|
138
|
+
|
|
139
|
+
Inside the app, `/activity` and the header's **Bridge** pill show what your AI did
|
|
140
|
+
through the bridge — paths, sizes, SHA-256 and job IDs only.
|
|
141
|
+
|
|
142
|
+
## Stay current
|
|
143
|
+
|
|
144
|
+
`netconverter update` upgrades a PyPI install with `uv tool upgrade netconverter-cli`;
|
|
145
|
+
a copy installed from a release wheel gets the latest wheel after its SHA-256 is
|
|
146
|
+
checked (`--check` only reports). Interactive commands mention a new release at most once
|
|
147
|
+
a day; set `NETCONVERTER_NO_UPDATE_CHECK=1` to turn that off.
|
|
148
|
+
|
|
149
|
+
## Boundaries
|
|
150
|
+
|
|
151
|
+
- Configurations travel only from your workspace to NetConverter, over HTTPS.
|
|
152
|
+
The bridge never returns configuration text to the AI; the server tokenizes
|
|
153
|
+
addresses and removes credentials from every summary.
|
|
154
|
+
- The client never pushes to a device. Outputs are files you review and load.
|
|
155
|
+
- Downloads are hash-verified and never overwrite a file you changed.
|
|
156
|
+
- An optional in-app model (`/model`: Anthropic, OpenAI, Gemini or local Ollama)
|
|
157
|
+
only chooses among fixed operations; it never receives configurations or results.
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
- [Quick start](QUICK_START.md) · [Commands and troubleshooting](docs/COMMANDS.md)
|
|
162
|
+
- [Privacy and data flow](docs/PRIVACY.md) · [Verification status](docs/VERIFICATION.md)
|
|
163
|
+
- [Changelog](CHANGELOG.md) · [Contributing](CONTRIBUTING.md) · [Security](SECURITY.md)
|
|
164
|
+
|
|
165
|
+
The client is [MIT licensed](LICENSE). The license does not grant access to the
|
|
166
|
+
hosted service or license the server code. macOS is the exercised platform;
|
|
167
|
+
Windows acceptance remains pending.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Quick start (Mac)
|
|
2
|
+
|
|
3
|
+
Use synthetic configurations for your first run, and read the
|
|
4
|
+
[privacy notes](docs/PRIVACY.md) before using real ones.
|
|
5
|
+
|
|
6
|
+
## 1. Install
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
curl -LsSf https://netconverter.ai/install.sh | sh
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
This installs uv and `netconverter-cli` from PyPI, signs you in, creates
|
|
13
|
+
`~/migrations` and offers to connect each AI assistant it finds (steps 2 and 6 below).
|
|
14
|
+
Add `--no-connect` (`… | sh -s -- --no-connect`) to only install and sign in.
|
|
15
|
+
|
|
16
|
+
By hand:
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
brew install uv # if `uv --version` fails
|
|
20
|
+
uv tool install --python 3.12 netconverter-cli
|
|
21
|
+
uv tool update-shell # then open a new Terminal window
|
|
22
|
+
netconverter --version
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Without PyPI access, download `netconverter_cli-<version>-py3-none-any.whl` and
|
|
26
|
+
`SHA256SUMS` from the [latest release](https://github.com/valeronlabs/netconverter_terminals/releases/latest),
|
|
27
|
+
run `shasum -a 256 -c SHA256SUMS` (stop if it fails), then
|
|
28
|
+
`uv tool install --python 3.12 ./netconverter_cli-<version>-py3-none-any.whl`.
|
|
29
|
+
|
|
30
|
+
Coming from 0.1.x? Run `uv tool uninstall netconverter-terminal` first. Your
|
|
31
|
+
saved key, sign-in and per-folder `.netconverter/` state are kept.
|
|
32
|
+
|
|
33
|
+
## 2. Sign in
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
netconverter login --clerk # NetConverter account in the browser (MFA, SSO)
|
|
37
|
+
netconverter login --clerk --device # same, on a machine without a browser
|
|
38
|
+
netconverter login # or paste an API key / trial key, hidden
|
|
39
|
+
netconverter whoami
|
|
40
|
+
netconverter capabilities # what your credential can convert
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
After `login --clerk`, every command and the app use your sign-in; no key and no environment
|
|
44
|
+
variable are needed. A stored API key, if you also have one, is used first.
|
|
45
|
+
Credentials live in the macOS Keychain (service **NetConverter Terminal**), never
|
|
46
|
+
in the workspace folder. A 0.1.x Terminal Quick pilot key keeps working with its
|
|
47
|
+
ASA → Palo Alto scope.
|
|
48
|
+
|
|
49
|
+
## 3. Run the app in your config folder
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
mkdir -p ~/NetConverter-Demo && cd ~/NetConverter-Demo
|
|
53
|
+
cp /path/to/examples/demo-asa.cfg .
|
|
54
|
+
netconverter
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The folder you start in is the workspace. Nothing is uploaded when the app opens.
|
|
58
|
+
|
|
59
|
+
| Key | Does |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| `↑` `↓` / `1`–`9` | Move / jump to a choice |
|
|
62
|
+
| `Enter` | Continue |
|
|
63
|
+
| `Esc` | Cancel the open question (never a submitted job) |
|
|
64
|
+
| `Ctrl+O` · `Ctrl+J` · `Ctrl+R` | Open a file · jobs · refresh the active job |
|
|
65
|
+
| `F1` · `Ctrl+Q` | Help · quit |
|
|
66
|
+
|
|
67
|
+
## 4. Convert
|
|
68
|
+
|
|
69
|
+
1. Type `/convert` and pick the file.
|
|
70
|
+
2. **What does it contain?** The likely vendor is pre-selected from a local
|
|
71
|
+
look at the file (marked *detected*); confirm or choose another.
|
|
72
|
+
3. **Convert to** lists only the targets the server supports for that source.
|
|
73
|
+
4. Review the card and choose **Submit to NetConverter**. This is the moment
|
|
74
|
+
the file is sent, and it uses one conversion.
|
|
75
|
+
5. Follow the job in the status line. When it completes, the outputs download
|
|
76
|
+
beside the source, hash-verified:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
tra_….translated.txt converted configuration
|
|
80
|
+
tra_….report.json structured verdict, findings and reasons
|
|
81
|
+
tra_….evidence.xlsx evidence workbook, when the job has one
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Read warnings before using an output. `NEEDS REVIEW` and `BLOCKED` are set by
|
|
85
|
+
deterministic checks, not by AI.
|
|
86
|
+
|
|
87
|
+
## 5. Validate, optimize, ask
|
|
88
|
+
|
|
89
|
+
- `/validate` and `/optimize` follow the same file → vendor → review steps.
|
|
90
|
+
- After a job completes: `/nat`, `/policy`, `/routes`, `/interfaces`,
|
|
91
|
+
`/unused_objects`, and structured questions such as
|
|
92
|
+
`/flow {"source_ip":"192.0.2.10","destination_ip":"198.51.100.10","protocol":"tcp","destination_port":80}`.
|
|
93
|
+
Results are saved as JSON and TXT beside the source.
|
|
94
|
+
- `/target` saves the generated configuration and selects it, so you can `/validate` it.
|
|
95
|
+
|
|
96
|
+
## 6. Connect your AI assistant
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
netconverter connect # which assistants are already connected
|
|
100
|
+
netconverter connect claude-code # shows the change, asks, then applies
|
|
101
|
+
netconverter connect claude-desktop # Claude Desktop: merges its config file, keeps a .bak
|
|
102
|
+
netconverter connect --all # every assistant found here (Gemini CLI, Cursor, Codex …)
|
|
103
|
+
netconverter connect chatgpt # ChatGPT or claude.ai: prints the remote-connector steps
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Or `/connect` inside the app. For Claude Code, `connect` then offers a second
|
|
107
|
+
change (Enter accepts): a `Read(//…/**)` deny rule for this folder in
|
|
108
|
+
`~/.claude/settings.json`, so Claude Code hands files to the bridge by path instead
|
|
109
|
+
of reading them itself. Restart Claude Code or Claude Desktop afterwards. Then ask your assistant to validate or convert a file
|
|
110
|
+
by name. `/activity` shows each call the bridge handled: time, assistant, file,
|
|
111
|
+
size, SHA-256 and job ID — never content.
|
|
112
|
+
|
|
113
|
+
## 7. Resume, update, uninstall
|
|
114
|
+
|
|
115
|
+
- Quit with `Ctrl+Q`; run `netconverter` in the same folder to continue.
|
|
116
|
+
`/jobs` lists your jobs; `/resume JOB_ID` follows one. An interrupted submit is
|
|
117
|
+
retried by `/resume` with the same idempotency key, so it is not duplicated.
|
|
118
|
+
- Update: `netconverter update` runs `uv tool upgrade netconverter-cli` for a PyPI
|
|
119
|
+
install; for a copy installed from a wheel it downloads the latest release's wheel
|
|
120
|
+
and `SHA256SUMS`, checks the hash and runs `uv tool install --force` after you
|
|
121
|
+
confirm (`--check` only reports). Interactive commands mention a new release at most once
|
|
122
|
+
a day; `NETCONVERTER_NO_UPDATE_CHECK=1` turns that off. Manual route: verify the
|
|
123
|
+
new wheel, then `uv tool install --force ./netconverter_cli-….whl`.
|
|
124
|
+
- Remove: `uv tool uninstall netconverter-cli`. Configs, outputs, Keychain entries
|
|
125
|
+
and `.netconverter/` folders stay until you delete them; `netconverter logout --all`
|
|
126
|
+
removes the saved sign-in and key.
|
|
127
|
+
|
|
128
|
+
Something failed? See [troubleshooting](docs/COMMANDS.md#troubleshooting).
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# NetConverter CLI
|
|
2
|
+
|
|
3
|
+
<!-- mcp-name: ai.netconverter/netconverter -->
|
|
4
|
+
|
|
5
|
+
**Migrate, validate and optimize network configurations from the folder that holds them — and let your own AI assistant do it too, without the configuration ever passing through the model.**
|
|
6
|
+
|
|
7
|
+
NetConverter — by ValeronLabs LLC.
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
◆ NetConverter v0.3.0 ● Server ◆ Bridge claude-code · 2m ago
|
|
11
|
+
▍ Start
|
|
12
|
+
▍ /convert Migrate a configuration to another vendor
|
|
13
|
+
▍ /validate Check a configuration before migrating
|
|
14
|
+
▍ /optimize Cleanup and optimization findings
|
|
15
|
+
▍ /activity What your AI assistant did here
|
|
16
|
+
╭ What does edge-fw.conf contain? ───────────────────────────────╮
|
|
17
|
+
│ ▸ 1 Fortinet FortiGate · detected │
|
|
18
|
+
│ 2 Cisco ASA │
|
|
19
|
+
╰──────────────────────────────── ↑↓ choose · 1–9 jump · Enter ───╯
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
One small client, three ways in:
|
|
23
|
+
|
|
24
|
+
| | What it is |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `netconverter` | A keyboard-first full-screen app: pick a file, answer a few inline questions, follow the job, get verified outputs beside your source. |
|
|
27
|
+
| `netconverter mcp` | A local MCP bridge for Claude Code, Claude Desktop, Cursor, VS Code and Codex. Your AI passes a **file path**; the bridge reads the file and uploads it straight to NetConverter. The AI sees paths, job IDs and summaries — never the configuration. |
|
|
28
|
+
| `netconverter validate edge.cfg --vendor fortinet` | Plain one-shot commands that print JSON, for scripts and CI. |
|
|
29
|
+
|
|
30
|
+
## What it supports
|
|
31
|
+
|
|
32
|
+
Whatever the NetConverter server you sign in to supports — the client reads
|
|
33
|
+
`GET /capabilities` and builds every menu from it, so new vendors appear
|
|
34
|
+
without a client update. Today that is:
|
|
35
|
+
|
|
36
|
+
- **Firewalls:** Palo Alto (SET, XML, Panorama), Fortinet FortiGate, Cisco FMC (JSON);
|
|
37
|
+
Cisco ASA as a source. Check Point is a source through a handoff bundle in the portal.
|
|
38
|
+
- **Routers and switches:** Cisco IOS-XE, Juniper JunOS (braces and set), Aruba CX;
|
|
39
|
+
ArubaOS as a source.
|
|
40
|
+
- **Jobs:** convert, validate, optimize; follow-up questions on NAT, policy, routes,
|
|
41
|
+
interfaces, unused objects, object dependencies and traffic flows.
|
|
42
|
+
|
|
43
|
+
Run `netconverter capabilities` to see exactly what your credential can do.
|
|
44
|
+
A 0.1.x **Terminal Quick pilot key** still works and keeps its ASA → Palo Alto
|
|
45
|
+
scope; the app labels it as such.
|
|
46
|
+
|
|
47
|
+
## Start here
|
|
48
|
+
|
|
49
|
+
One line installs everything (uv, the CLI from PyPI), signs you in and connects
|
|
50
|
+
your AI assistants to `~/migrations`:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
curl -LsSf https://netconverter.ai/install.sh | sh # macOS / Linux
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```powershell
|
|
57
|
+
irm https://netconverter.ai/install.ps1 | iex # Windows PowerShell
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Options: `--yes` (no prompts, for IT/MDM), `--no-connect`, `--workspace PATH`
|
|
61
|
+
(`curl … | sh -s -- --yes`; PowerShell: `-Yes -NoConnect -Workspace PATH`, see
|
|
62
|
+
[scripts/install.ps1](scripts/install.ps1)). Running it again only does what is missing.
|
|
63
|
+
|
|
64
|
+
Or by hand:
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
# 1. Install (Python 3.12+ via uv: https://docs.astral.sh/uv)
|
|
68
|
+
uv tool install --python 3.12 netconverter-cli
|
|
69
|
+
|
|
70
|
+
# 2. Sign in once
|
|
71
|
+
netconverter login --clerk # your NetConverter account, in the browser
|
|
72
|
+
# or: netconverter login # paste an API key at a hidden prompt
|
|
73
|
+
|
|
74
|
+
# 3. Work in the folder that holds your configs
|
|
75
|
+
cd ~/migrations && netconverter
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Upgrading from `netconverter-terminal` 0.1.x: `uv tool uninstall netconverter-terminal`
|
|
79
|
+
first. Saved keys and sign-ins carry over (Keychain service **NetConverter Terminal**).
|
|
80
|
+
|
|
81
|
+
Full walkthrough: [Quick start](QUICK_START.md).
|
|
82
|
+
|
|
83
|
+
## Use it from your AI
|
|
84
|
+
|
|
85
|
+
Step-by-step guides for every assistant (Claude, ChatGPT, Cursor, Gemini CLI, Codex …):
|
|
86
|
+
[docs/connect](docs/connect/README.md).
|
|
87
|
+
|
|
88
|
+
```sh
|
|
89
|
+
netconverter connect claude-code # or claude-desktop, cursor, vscode, codex, gemini, windsurf, lmstudio
|
|
90
|
+
netconverter connect --all # every assistant found on this computer
|
|
91
|
+
netconverter connect chatgpt # ChatGPT / claude.ai: remote-connector setup steps
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`connect` shows the exact change it will make and asks before applying it
|
|
95
|
+
(Claude Code through its own `claude mcp add`; JSON files keep a `.bak`). For
|
|
96
|
+
Claude Code it then offers a `Read` deny rule for the folder, so the assistant
|
|
97
|
+
works on your configurations only through the bridge.
|
|
98
|
+
Then ask your assistant, for example: *"Validate edge-fw.conf and tell me what it finds,"*
|
|
99
|
+
*"Convert it to Palo Alto XML,"* *"Can WEB reach DB on tcp/1433?"*
|
|
100
|
+
|
|
101
|
+
Bridge tools: `submit_file`, `job_status`, `wait_for_job`, `account`, `download`,
|
|
102
|
+
plus an allowlist of NetConverter's read-only tools (reports, evidence, NAT, flows,
|
|
103
|
+
knowledge base). `netconverter mcp --strict` narrows those to the strict-view set.
|
|
104
|
+
|
|
105
|
+
Inside the app, `/activity` and the header's **Bridge** pill show what your AI did
|
|
106
|
+
through the bridge — paths, sizes, SHA-256 and job IDs only.
|
|
107
|
+
|
|
108
|
+
## Stay current
|
|
109
|
+
|
|
110
|
+
`netconverter update` upgrades a PyPI install with `uv tool upgrade netconverter-cli`;
|
|
111
|
+
a copy installed from a release wheel gets the latest wheel after its SHA-256 is
|
|
112
|
+
checked (`--check` only reports). Interactive commands mention a new release at most once
|
|
113
|
+
a day; set `NETCONVERTER_NO_UPDATE_CHECK=1` to turn that off.
|
|
114
|
+
|
|
115
|
+
## Boundaries
|
|
116
|
+
|
|
117
|
+
- Configurations travel only from your workspace to NetConverter, over HTTPS.
|
|
118
|
+
The bridge never returns configuration text to the AI; the server tokenizes
|
|
119
|
+
addresses and removes credentials from every summary.
|
|
120
|
+
- The client never pushes to a device. Outputs are files you review and load.
|
|
121
|
+
- Downloads are hash-verified and never overwrite a file you changed.
|
|
122
|
+
- An optional in-app model (`/model`: Anthropic, OpenAI, Gemini or local Ollama)
|
|
123
|
+
only chooses among fixed operations; it never receives configurations or results.
|
|
124
|
+
|
|
125
|
+
## Documentation
|
|
126
|
+
|
|
127
|
+
- [Quick start](QUICK_START.md) · [Commands and troubleshooting](docs/COMMANDS.md)
|
|
128
|
+
- [Privacy and data flow](docs/PRIVACY.md) · [Verification status](docs/VERIFICATION.md)
|
|
129
|
+
- [Changelog](CHANGELOG.md) · [Contributing](CONTRIBUTING.md) · [Security](SECURITY.md)
|
|
130
|
+
|
|
131
|
+
The client is [MIT licensed](LICENSE). The license does not grant access to the
|
|
132
|
+
hosted service or license the server code. macOS is the exercised platform;
|
|
133
|
+
Windows acceptance remains pending.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Security reporting
|
|
2
|
+
|
|
3
|
+
Do not publish credentials, customer configurations, reports, addresses, or
|
|
4
|
+
exploitable vulnerability details in a public issue.
|
|
5
|
+
|
|
6
|
+
Use GitHub's **Report a vulnerability** option when it is available, or contact
|
|
7
|
+
your established NetConverter support contact privately to arrange secure
|
|
8
|
+
submission. If you have no private contact, open a public issue asking for a
|
|
9
|
+
private reporting channel without including the sensitive details.
|
|
10
|
+
|
|
11
|
+
For a suspected credential exposure, revoke or rotate the affected credential
|
|
12
|
+
with its issuer. Deleting a local file or Keychain item does not revoke the key.
|
|
13
|
+
See [the privacy boundary](docs/PRIVACY.md) and
|
|
14
|
+
[current verification limits](docs/VERIFICATION.md).
|