neozip-cli 0.80.0 → 0.95.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.
- package/AGENTS.md +93 -0
- package/CHANGELOG.md +117 -12
- package/DOCUMENTATION.md +33 -38
- package/README.md +137 -63
- package/dist/src/account/account-state.js +95 -0
- package/dist/src/account/format-account-status.js +62 -0
- package/dist/src/account/identity-provision.js +79 -0
- package/dist/src/account/identity-wrap.js +106 -0
- package/dist/src/account/profile-crypto.js +85 -0
- package/dist/src/account/profile-store.js +129 -0
- package/dist/src/account/require-account.js +32 -0
- package/dist/src/account/types.js +3 -0
- package/dist/src/account/wallet-evm.js +46 -0
- package/dist/src/account/wallet-setup.js +33 -0
- package/dist/src/archive/crypto-self.js +117 -0
- package/dist/src/archive/identity-key.js +217 -0
- package/dist/src/archive/recipient-lookup.js +61 -0
- package/dist/src/cli/output.js +100 -0
- package/dist/src/cli/params.js +122 -0
- package/dist/src/cli/schema.js +186 -0
- package/dist/src/cli/validate.js +119 -0
- package/dist/src/commands/mintTimestampProof.js +26 -14
- package/dist/src/config/ConfigSetup.js +82 -423
- package/dist/src/connect/command.js +364 -0
- package/dist/src/connection/bootstrap.js +50 -0
- package/dist/src/connection/cli-guidance.js +101 -0
- package/dist/src/connection/cli-prefs.js +180 -0
- package/dist/src/connection/cli-settings.js +140 -0
- package/dist/src/connection/cli-types.js +14 -0
- package/dist/src/connection/coordinator.js +83 -0
- package/dist/src/connection/credentials.js +33 -0
- package/dist/src/connection/crypto.js +96 -0
- package/dist/src/connection/dump.js +117 -0
- package/dist/src/connection/funding.js +187 -0
- package/dist/src/connection/incomplete-setup.js +89 -0
- package/dist/src/connection/interactive.js +871 -0
- package/dist/src/connection/legacy-profile-reader.js +87 -0
- package/dist/src/connection/magic-link.js +142 -0
- package/dist/src/connection/migrate.js +115 -0
- package/dist/src/connection/onboarding.js +616 -0
- package/dist/src/connection/origin.js +69 -0
- package/dist/src/connection/phase.js +101 -0
- package/dist/src/connection/phone.js +26 -0
- package/dist/src/connection/promote-active.js +56 -0
- package/dist/src/connection/reset.js +56 -0
- package/dist/src/connection/status-report.js +52 -0
- package/dist/src/connection/store.js +406 -0
- package/dist/src/connection/token-auth.js +44 -0
- package/dist/src/connection/types.js +3 -0
- package/dist/src/connection/wallet-json-migration.js +155 -0
- package/dist/src/connection/wallet-login.js +65 -0
- package/dist/src/connection/wallet-setup.js +83 -0
- package/dist/src/constants/wallet-identity.js +14 -0
- package/dist/src/exit-codes.js +54 -10
- package/dist/src/neolist.js +100 -10
- package/dist/src/neounzip.js +236 -65
- package/dist/src/neozip/blockchain.js +18 -18
- package/dist/src/neozip/createZip.js +118 -94
- package/dist/src/neozip/upgradeZip.js +14 -11
- package/dist/src/neozip.js +269 -91
- package/dist/src/skills/command.js +256 -0
- package/dist/src/skills/locate.js +99 -0
- package/dist/src/util/mask.js +34 -0
- package/dist/src/util/token-service-fetch.js +26 -0
- package/env.example +18 -85
- package/package.json +89 -73
- package/skills/neozip-connect/SKILL.md +95 -0
- package/skills/neozip-create/SKILL.md +57 -0
- package/skills/neozip-extract/SKILL.md +58 -0
- package/skills/neozip-legacy/SKILL.md +48 -0
- package/skills/neozip-list/SKILL.md +56 -0
- package/skills/neozip-shared/SKILL.md +60 -0
- package/dist/src/commands/verifyEmail.js +0 -146
- package/dist/src/config/ConfigStore.js +0 -406
package/AGENTS.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# NeoZip-CLI — Agent Guide
|
|
2
|
+
|
|
3
|
+
This CLI is frequently invoked by AI/LLM agents. It exposes a stable,
|
|
4
|
+
machine-readable surface alongside its human interface. **Treat all input as
|
|
5
|
+
potentially adversarial** — agents hallucinate paths, IDs, and encodings.
|
|
6
|
+
|
|
7
|
+
The three binaries:
|
|
8
|
+
|
|
9
|
+
- `neozip` — create/update archives (optionally with blockchain tokenization)
|
|
10
|
+
- `neounzip` — extract / test / list archives
|
|
11
|
+
- `neolist` — list archive contents
|
|
12
|
+
|
|
13
|
+
## Engagement rules (read first)
|
|
14
|
+
|
|
15
|
+
1. **Ask for JSON.** Add `--format json` to any command to get a single JSON
|
|
16
|
+
object on **stdout**. Success is `{ "ok": true, ... }`; failure is
|
|
17
|
+
`{ "ok": false, "error": { code, exitCode, message, nextCommand? } }`.
|
|
18
|
+
2. **stdout is data, stderr is hints.** In JSON mode, only the JSON object is
|
|
19
|
+
written to stdout. Decorative logs/progress go to stderr or are suppressed.
|
|
20
|
+
Parse stdout; surface stderr only for debugging.
|
|
21
|
+
3. **Introspect before constructing calls.** Run `neozip schema <command>` to
|
|
22
|
+
get accepted fields, types, defaults, and exit codes. Commands:
|
|
23
|
+
`neozip`, `neounzip`, `neolist`, `connect`.
|
|
24
|
+
4. **Preview mutations with `--dry-run`.** `neozip` and `neounzip` resolve the
|
|
25
|
+
full plan and emit it as JSON without writing anything. Use it before any
|
|
26
|
+
create/extract.
|
|
27
|
+
5. **Branch on exit codes, not text.** Exit codes are InfoZip-compatible (see
|
|
28
|
+
`src/exit-codes.ts`). They are also reported in the JSON `error.exitCode`.
|
|
29
|
+
6. **Follow `nextCommand`.** When present in an error, it is a safe recovery
|
|
30
|
+
command (e.g. `neozip connect` for blockchain configuration errors).
|
|
31
|
+
|
|
32
|
+
## Input: `--params` and `--json`
|
|
33
|
+
|
|
34
|
+
Two JSON inputs, mirroring "how" vs "what":
|
|
35
|
+
|
|
36
|
+
- `--params '<JSON>'` — control options object (level, encrypt, blockchain,
|
|
37
|
+
network, exdir, overwrite, ...). Maps onto the command's options.
|
|
38
|
+
- `--json '<JSON>'` — payload object (the "what"):
|
|
39
|
+
- `neozip`: `{ "archive": "out.zip", "files": ["a.txt","dir/"], "include": [], "exclude": [] }`
|
|
40
|
+
- `neounzip`: `{ "archive": "in.zip", "exdir": "out", "filePatterns": ["*.txt"] }`
|
|
41
|
+
|
|
42
|
+
Both accept `-` as the value to read the JSON document from stdin.
|
|
43
|
+
|
|
44
|
+
**Precedence:** explicit CLI flags override values from `--params`/`--json`.
|
|
45
|
+
|
|
46
|
+
Note: output format is selected with `--format json`, NOT `--json`. On `neolist`
|
|
47
|
+
the legacy `-j` / `--json` flag is an alias for `--format json` (it has no
|
|
48
|
+
payload).
|
|
49
|
+
|
|
50
|
+
## Examples
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Introspect
|
|
54
|
+
neozip schema neozip
|
|
55
|
+
|
|
56
|
+
# Create (agent-style, fully JSON-driven)
|
|
57
|
+
neozip --format json \
|
|
58
|
+
--params '{"level":9,"encrypt":true,"password":"s3cret"}' \
|
|
59
|
+
--json '{"archive":"out.zip","files":["src/","README.md"]}'
|
|
60
|
+
|
|
61
|
+
# Preview an extraction without writing
|
|
62
|
+
neounzip --format json --dry-run --params '{"exdir":"out"}' in.zip
|
|
63
|
+
|
|
64
|
+
# Extract
|
|
65
|
+
neounzip --format json --params '{"exdir":"out","overwrite":true}' in.zip
|
|
66
|
+
|
|
67
|
+
# List
|
|
68
|
+
neolist --format json in.zip
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Safety rails (enforced by the CLI)
|
|
72
|
+
|
|
73
|
+
- **Control characters / dangerous Unicode** in archive names and extraction
|
|
74
|
+
dirs are rejected (`src/cli/validate.ts`).
|
|
75
|
+
- **Zip-slip protection:** `neounzip` refuses any entry whose resolved output
|
|
76
|
+
path escapes the target directory.
|
|
77
|
+
- **`--dry-run`** never touches the filesystem.
|
|
78
|
+
|
|
79
|
+
## InfoZip / PKZIP compatibility
|
|
80
|
+
|
|
81
|
+
- Default compression is **zstd**, which stock InfoZip `unzip` cannot read.
|
|
82
|
+
- Pass `--legacy` to `neozip` to produce a standard archive readable by stock
|
|
83
|
+
`unzip`: it forces deflate (or store at `-0`) + PKZIP encryption and disables
|
|
84
|
+
all NeoZip extensions (zstd, blockchain `-b`/`-bd`/`-bm`, `-ots`, `-ts`).
|
|
85
|
+
- `--legacy` combined with blockchain features is a hard error (exit 10).
|
|
86
|
+
|
|
87
|
+
## Where things live
|
|
88
|
+
|
|
89
|
+
- Shared agent layer: `src/cli/` (`output.ts`, `params.ts`, `validate.ts`, `schema.ts`)
|
|
90
|
+
- Exit codes: `src/exit-codes.ts`
|
|
91
|
+
- Connection store / `neozip connect`: `src/connect/`, `src/connection/`
|
|
92
|
+
- MCP server is **not** in this repo; it lives in `neozip-mcp` and shares the
|
|
93
|
+
same `~/.neozip/connection/` store.
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,122 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
**Release notes** for each version are documented here (not in a separate “what’s new” file).
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
## [0.95.0] - 2026-07-03
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **AI-agent support** — machine-readable mode across `neozip`, `neounzip`, and `neolist`:
|
|
17
|
+
- `--format json` emits a single structured JSON object on stdout (`{ "ok": true, ... }` / `{ "ok": false, "error": { code, exitCode, message, nextCommand? } }`); human hints stay on stderr.
|
|
18
|
+
- `--params '<JSON>'` (control options) and `--json '<JSON>'` (payload: archive + files/targets) input flags; both accept `-` to read from stdin. Explicit CLI flags override JSON input.
|
|
19
|
+
- `neozip schema <neozip|neounzip|neolist|connect>` introspection command emits accepted fields, types, defaults, and exit codes.
|
|
20
|
+
- `--dry-run` on `neozip`/`neounzip` resolves and prints the plan as JSON without writing.
|
|
21
|
+
- Structured JSON errors mapped from `src/exit-codes.ts`, with `nextCommand` recovery hints (InfoZip-compatible exit codes preserved).
|
|
22
|
+
- Input hardening: control-character/Unicode rejection on names and extraction dirs; zip-slip protection refuses entries that escape the extraction directory.
|
|
23
|
+
- Agent docs and skills: [AGENTS.md](AGENTS.md) and [skills/](skills/) (`neozip-shared`, `neozip-create`, `neozip-extract`, `neozip-list`, `neozip-legacy`, `neozip-connect`).
|
|
24
|
+
- **`neozip skills`** — install bundled Agent Skills from the npm package: `path`, `list`, `install` (symlink into `~/.claude/skills` and/or `~/.cursor/skills`), and `pack` (ZIP per skill for Claude Cowork / claude.ai upload). Skills ship in the tarball under `skills/`.
|
|
25
|
+
- **`neozip --legacy`** — produce an InfoZip/PKZIP-compatible archive (forces deflate/store + PKZIP encryption, disables zstd and all blockchain extensions) readable by stock `unzip`. Combining `--legacy` with blockchain features is a parameter error.
|
|
26
|
+
- **`neozip connect refresh`** — renew an expired Token Service access token without disturbing the wallet/identity. Prefers a **silent wallet-signature login** (no email round-trip) when the Token Service supports it, and falls back to the email OTP flow otherwise. `connect status` now reports access-token expiry (`accessTokenExpired` / `accessTokenExpiresAt` in JSON; an "Access token" line in text).
|
|
27
|
+
- **Automatic token renewal for `-ts`** — before a Token Service timestamp, an expired access token is silently renewed via wallet signature when possible, so timestamping "just works" without a manual refresh.
|
|
28
|
+
- **`neozip connect fund`** — request native gas for the local Data Wallet from the Token Service funding API. Subactions: `request` (default; sends the policy-defined grant to your primary linked wallet), `status` (eligibility + recent grants), and `policy` (grant size/cooldown, no auth). Accepts `--network NAME` / `--chain ID` and `--json`; an expired access token is silently renewed via wallet signature first. The recipient is server-authoritative — the client cannot redirect funds. Wallet/insufficient-balance error messages across `-b`, `-ts`, `-ots`, and `--upgrade` now point to `neozip connect fund` (with the public faucet kept as a fallback).
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **Token Service HTTP clients moved to `neozip-blockchain`** — the account-auth (email/code, magic link, silent wallet-login, phone OTP), funding, and wallet/identity-key HTTP clients now live in `neozip-blockchain/token-service` (v0.8.0) and are shared with NeoZip Desktop and MCP. The CLI keeps only the local orchestration that needs the wallet private key (`runWalletEnsureAndAttach` in `src/account/wallet-setup.ts`) and product-specific UX (token-expiry guidance in `src/connection/token-auth.ts`). No user-facing command behavior changes; the library emits generic auth errors and the CLI maps them to `neozip connect refresh` guidance.
|
|
33
|
+
- **Production dependencies** — `neozipkit` and `neozip-blockchain` updated to `^0.8.0` (npm).
|
|
34
|
+
- **Development workflow** — pnpm-only from source (`engines.pnpm` `>=10.0.0`); Yarn config removed. Use `pnpm install`, `pnpm build`, and `pnpm test`.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **Blockchain tokenization (`-b`) blocked by an expired Token Service token** — `-b` and on-chain `mint` sign locally with the wallet key and never use the Token Service access token, but the readiness gate required a non-expired token for them. The gate now distinguishes on-chain abilities (wallet only) from Token Service abilities (`-ts`, which still require a current token), and expired-token errors now point to `neozip connect refresh`.
|
|
39
|
+
- **`pack:dry-run` script** — use `npm pack --dry-run` (pnpm has no `--dry-run` flag).
|
|
40
|
+
|
|
41
|
+
## [0.90.0] - 2026-03-18
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- **`neozip connect`** — Token Service account setup subcommand (status, register, verify, wallet, finish, migrate). Shares `~/.neozip/connection/` with NeoZip Desktop and MCP (`neozip-connect` from neozip-mcp).
|
|
46
|
+
- **Connection store bootstrap** — non-blocking startup read of active connection; gated operations (`-ts`, mint) require connect readiness with actionable guidance.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- **Unified wallet** — all blockchain operations (`-b`, `-ts`, mint) use the connection store wallet (`secrets.enc`); `wallet.json` retired. `neozip init` is an alias for `neozip connect`. On-chain prefs (`defaultNetwork`, RPC, gas) live on `public.json`.
|
|
51
|
+
- **Token Service configuration** — URL, verified email, and access token are read **only** from the connection store (`~/.neozip/connection/`), not from `wallet.json`, env vars, or CLI flags.
|
|
52
|
+
- **Package manager** — development workflow uses pnpm (`packageManager: pnpm@10.12.1`); use `pnpm install` and `pnpm build` from source.
|
|
53
|
+
|
|
54
|
+
### Removed
|
|
55
|
+
|
|
56
|
+
- **`~/.neozip/wallet.json`** — migrate via `neozip connect migrate`; archived as `wallet.json.migrated`.
|
|
57
|
+
- **`NEOZIP_WALLET_PASSKEY`** as user-facing configuration (connection store only; `-w` remains for one-off overrides).
|
|
58
|
+
|
|
59
|
+
- **`neozip verify-email`** command and `npm run verify-email` script — use `neozip connect` instead.
|
|
60
|
+
- **`--timestamp-email`** flag and `wallet.json` `tokenService.timestampEmail` — configure via `neozip connect`.
|
|
61
|
+
- **`TOKEN_SERVICE_URL`**, **`NEOZIP_TIMESTAMP_EMAIL`** runtime env vars for Token Service operations.
|
|
62
|
+
|
|
63
|
+
### Added (encryption)
|
|
64
|
+
|
|
65
|
+
- **Full AES-256 encryption support** — create, list, and extract password-protected archives with WinZip-compatible AES-256 (default) or legacy PKZIP encryption.
|
|
66
|
+
|
|
67
|
+
#### Creating encrypted archives
|
|
68
|
+
|
|
69
|
+
- **AES-256 (default)** — use `-e` / `--encrypt` or `--aes256`.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
neozip -e secure.nzip file.txt
|
|
73
|
+
neozip -e -P "mypassword" secure.nzip file.txt
|
|
74
|
+
neozip --aes256 -P "mypassword" secure.nzip file.txt folder/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- **Legacy PKZIP** — use `--pkzip` or `--pkzip-encrypt` only for older-tool compatibility (weak; prefer AES-256 for sensitive data).
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
neozip --pkzip -P "mypassword" legacy.nzip file.txt
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Listing encrypted archives
|
|
84
|
+
|
|
85
|
+
- **neolist** lists contents; filenames are visible without a password. Encryption method (AES-256 or PKZIP) is shown where applicable. Extraction requires the password.
|
|
86
|
+
|
|
87
|
+
#### Extracting encrypted archives
|
|
88
|
+
|
|
89
|
+
- **neounzip** auto-detects AES-256 vs PKZIP. Use `-P` / `--password`.
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
neounzip -P "mypassword" secure.nzip output/
|
|
93
|
+
neounzip --in-memory -P "mypassword" secure.nzip output/
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
- Wrong password yields a clear error (e.g. bad password / decryption failed).
|
|
97
|
+
|
|
98
|
+
#### Compatibility
|
|
99
|
+
|
|
100
|
+
- **AES-256**: WinZip, 7-Zip, and other tools supporting ZIP AES extension (AE-2).
|
|
101
|
+
- **PKZIP** (ZipCrypto): create/extract legacy archives only.
|
|
102
|
+
|
|
103
|
+
#### Encryption options summary
|
|
104
|
+
|
|
105
|
+
| Command | Option | Effect |
|
|
106
|
+
|-----------|--------------------|--------|
|
|
107
|
+
| neozip | `-e`, `--encrypt` | AES-256 (default); prompt if no `-P` |
|
|
108
|
+
| neozip | `--aes256` | Explicit AES-256 |
|
|
109
|
+
| neozip | `--pkzip` | Legacy PKZIP encryption |
|
|
110
|
+
| neozip | `-P`, `--password`| Encryption password |
|
|
111
|
+
| neounzip | `-P`, `--password` | Decryption password (AES-256/PKZIP auto-detected) |
|
|
112
|
+
| neounzip | `--pkzip-decrypt` | Force legacy PKZip 2.0 decryption |
|
|
113
|
+
|
|
114
|
+
See [README.md](README.md) and [DOCUMENTATION.md](DOCUMENTATION.md) for more examples.
|
|
115
|
+
|
|
116
|
+
### Changed
|
|
117
|
+
|
|
118
|
+
- **Dependencies**: `neozipkit` and `neozip-blockchain` updated to **^0.7.2** (latest).
|
|
119
|
+
- **Token service API**: imports migrated from `neozip-blockchain/zipstamp-server` to `neozip-blockchain/token-service`; `getZipStampServerUrl()` replaced by `getTokenServiceUrl()`. Configure the server with `TOKEN_SERVICE_URL` (see `env.example`).
|
|
120
|
+
- **ZipStamp → Token Service rename**: all user-facing "Zipstamp" terminology replaced with "Token Service"; `wallet.json` key `zipstamp.timestampEmail` removed in favor of `tokenService.timestampEmail`; CLI flags `--zipstamp-auto-upgrade` / `--zipstamp-skip-upgrade` replaced with `--token-service-auto-upgrade` / `--token-service-skip-upgrade`.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
8
124
|
## [0.80.0] - 2026-03-04
|
|
9
125
|
|
|
10
126
|
### Added
|
|
@@ -18,20 +134,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
18
134
|
- **Configuration**
|
|
19
135
|
- `neozip config` and `neozip init` work when run via ts-node (fixed dynamic import resolution for `.ts` vs `.js`)
|
|
20
136
|
|
|
21
|
-
### Changed
|
|
22
|
-
|
|
23
|
-
- User-facing copy now uses "blockchain" instead of "Ethereum blockchain" for Zipstamp and mint flows
|
|
24
|
-
- Zipstamp verification in `neounzip` shows "Zipstamp (blockchain timestamp)" instead of "Ethereum timestamp"
|
|
25
|
-
- Help text: `-ts, --timestamp` described as "Enable Zipstamp timestamp (blockchain)"
|
|
26
|
-
|
|
27
137
|
### Fixed
|
|
28
138
|
|
|
29
|
-
- `neozip config` / `neozip init` no longer fail with "Cannot find module './config/ConfigSetup.js'" when run via `
|
|
30
|
-
|
|
31
|
-
### Security
|
|
32
|
-
|
|
33
|
-
- `.env.*` (including `.env.local`, `.env.local.rem`) added to `.gitignore` to avoid committing secrets
|
|
34
|
-
- Documented how to purge env files from git history if they were ever committed
|
|
139
|
+
- `neozip config` / `neozip init` no longer fail with "Cannot find module './config/ConfigSetup.js'" when run via `pnpm neozip-config` or ts-node
|
|
35
140
|
|
|
36
141
|
---
|
|
37
142
|
|
package/DOCUMENTATION.md
CHANGED
|
@@ -47,11 +47,9 @@ neolist --help # Show listing help
|
|
|
47
47
|
- NeoZip ecosystem overview
|
|
48
48
|
- Technical innovations
|
|
49
49
|
|
|
50
|
-
- **[CHANGELOG.md](CHANGELOG.md)** - Version history
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
- Known limitations
|
|
54
|
-
- Breaking changes
|
|
50
|
+
- **[CHANGELOG.md](CHANGELOG.md)** - Version history and release notes
|
|
51
|
+
- Detailed changes per version (including feature guides, e.g. AES-256 in v0.90.0)
|
|
52
|
+
- Known limitations and breaking changes
|
|
55
53
|
|
|
56
54
|
- **[env.example](env.example)** - Environment variable configuration
|
|
57
55
|
- Wallet configuration
|
|
@@ -98,10 +96,15 @@ neolist --help # Show listing help
|
|
|
98
96
|
- No compression (fastest)
|
|
99
97
|
- Useful for already-compressed files
|
|
100
98
|
|
|
101
|
-
- **
|
|
102
|
-
-
|
|
99
|
+
- **AES-256 Encryption** (default, recommended)
|
|
100
|
+
- Strong WinZip-compatible AES-256 encryption
|
|
103
101
|
- Password-protected archives
|
|
104
|
-
-
|
|
102
|
+
- Compatible with WinZip, 7-Zip, and other AES-capable tools
|
|
103
|
+
|
|
104
|
+
- **PKZIP Encryption** (legacy)
|
|
105
|
+
- Traditional encryption for maximum compatibility
|
|
106
|
+
- Use `--pkzip` flag to select
|
|
107
|
+
- Not recommended for sensitive data
|
|
105
108
|
|
|
106
109
|
### Blockchain Features
|
|
107
110
|
|
|
@@ -116,16 +119,16 @@ neolist --help # Show listing help
|
|
|
116
119
|
- Cryptographic proof of archive existence
|
|
117
120
|
- Timestamp verification
|
|
118
121
|
|
|
119
|
-
- **
|
|
120
|
-
- Ethereum blockchain timestamping via
|
|
122
|
+
- **Token Service**
|
|
123
|
+
- Ethereum blockchain timestamping via NeoZip Token Service
|
|
124
|
+
- Account setup via `neozip connect` (shared store at `~/.neozip/connection/`)
|
|
121
125
|
- Pending timestamps (TS-SUBMIT.NZIP) can be upgraded to confirmed (TIMESTAMP.NZIP)
|
|
122
126
|
- Use `neozip upgrade <archive> [output] [--wait]` to upgrade pending timestamps
|
|
123
127
|
|
|
124
128
|
- **Wallet Integration**
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
- Secure wallet key storage
|
|
129
|
+
- Token Service account and wallet via `neozip connect` (alias: `neozip init`)
|
|
130
|
+
- Connection dashboard (`neozip config`) and `neozip connect settings` for on-chain prefs
|
|
131
|
+
- Wallet key in encrypted `secrets.enc` under `~/.neozip/connection/`
|
|
129
132
|
|
|
130
133
|
### Advanced Features
|
|
131
134
|
|
|
@@ -139,44 +142,36 @@ neolist --help # Show listing help
|
|
|
139
142
|
|
|
140
143
|
## 🔧 Configuration
|
|
141
144
|
|
|
142
|
-
###
|
|
143
|
-
|
|
144
|
-
For blockchain features, configure your wallet:
|
|
145
|
+
### Account, wallet, and on-chain preferences
|
|
145
146
|
|
|
146
147
|
```bash
|
|
147
|
-
#
|
|
148
|
-
neozip
|
|
149
|
-
|
|
150
|
-
#
|
|
151
|
-
neozip
|
|
148
|
+
neozip connect # Setup (alias: neozip init)
|
|
149
|
+
neozip connect status
|
|
150
|
+
neozip connect settings # default network, RPC, gas
|
|
151
|
+
neozip config # dashboard
|
|
152
|
+
neozip connect migrate # legacy wallet.json → connection store
|
|
152
153
|
|
|
153
|
-
# Upgrade pending
|
|
154
|
+
# Upgrade pending Token Service timestamp
|
|
154
155
|
neozip upgrade archive.nzip [output.nzip] [--wait]
|
|
155
156
|
```
|
|
156
157
|
|
|
157
|
-
|
|
158
|
-
- Wallet private key
|
|
159
|
-
- Network selection (testnet/mainnet)
|
|
160
|
-
- Custom RPC endpoints
|
|
161
|
-
- Gas settings
|
|
162
|
-
- Debug options
|
|
158
|
+
Store: `~/.neozip/connection/` (see [dev_doc/CONNECTION_CLI_PREFS.md](dev_doc/CONNECTION_CLI_PREFS.md)).
|
|
163
159
|
|
|
164
|
-
### Environment Variables
|
|
160
|
+
### Environment Variables (optional session overrides)
|
|
165
161
|
|
|
166
|
-
|
|
167
|
-
- `
|
|
168
|
-
- `
|
|
169
|
-
- `
|
|
170
|
-
- `NEOZIP_VERBOSE`
|
|
171
|
-
- `NEOZIP_DEBUG` - Enable debug mode
|
|
162
|
+
See [env.example](env.example):
|
|
163
|
+
- `NEOZIP_NETWORK` — override default network for this process
|
|
164
|
+
- `NEOZIP_BASE_SEPOLIA_RPC_URL` — override RPC for this process
|
|
165
|
+
- `NEOZIP_CONNECTION_DIR`, `NEOZIP_UNLOCK_PASSPHRASE` — connection store
|
|
166
|
+
- `NEOZIP_VERBOSE`, `NEOZIP_DEBUG`, `NEOZIP_GAS_MULTIPLIER`, `NEOZIP_MAX_GAS_PRICE`
|
|
172
167
|
|
|
173
168
|
## 📚 Reading Order
|
|
174
169
|
|
|
175
170
|
1. **Start with** [README.md](README.md) for installation and basic usage
|
|
176
171
|
2. **Read** [WHY_NEOZIP.md](WHY_NEOZIP.md) to understand the project vision
|
|
177
172
|
3. **Review** [CHANGELOG.md](CHANGELOG.md) for version history and known issues
|
|
178
|
-
4. **Configure**
|
|
179
|
-
5. **Reference** [env.example](env.example) for environment
|
|
173
|
+
4. **Configure** via `neozip connect` for blockchain features
|
|
174
|
+
5. **Reference** [env.example](env.example) for optional environment overrides
|
|
180
175
|
|
|
181
176
|
## 🔗 Related Links
|
|
182
177
|
|