@needmoretruth/nmts-cli 0.34.4 → 0.36.1
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 +11 -12
- package/CHANGELOG.md +43 -0
- package/README.ko.md +33 -35
- package/README.md +21 -22
- package/dist/account.js +2 -1
- package/dist/arg-options.d.ts +169 -0
- package/dist/arg-options.js +10 -0
- package/dist/args.d.ts +2 -157
- package/dist/args.js +2 -0
- package/dist/artifact-about.d.ts +1 -1
- package/dist/autonomy.d.ts +3 -10
- package/dist/autonomy.js +15 -17
- package/dist/bytes.d.ts +15 -0
- package/dist/bytes.js +63 -0
- package/dist/collision.d.ts +5 -5
- package/dist/collision.js +19 -22
- package/dist/commands/delete-account.js +1 -1
- package/dist/commands/erase.js +1 -1
- package/dist/commands/extend.d.ts +2 -0
- package/dist/commands/extend.js +8 -1
- package/dist/commands/get.js +1 -1
- package/dist/commands/listfile.js +1 -1
- package/dist/commands/mcp.js +5 -1
- package/dist/commands/mode.js +2 -2
- package/dist/commands/on-collision.d.ts +1 -1
- package/dist/commands/on-collision.js +3 -3
- package/dist/commands/platform.d.ts +9 -0
- package/dist/commands/platform.js +124 -0
- package/dist/commands/pull.js +1 -1
- package/dist/commands/push-wallet.js +8 -1
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.js +6 -4
- package/dist/commands/put-payer.d.ts +8 -0
- package/dist/commands/put-payer.js +41 -0
- package/dist/commands/put-wallet.d.ts +9 -3
- package/dist/commands/put-wallet.js +108 -186
- package/dist/commands/put.d.ts +5 -7
- package/dist/commands/put.js +11 -31
- package/dist/commands/receive.js +1 -1
- package/dist/commands/settings.js +1 -1
- package/dist/commands/support.js +3 -3
- package/dist/commands/unlock.js +2 -2
- package/dist/commands/wallet-donate.d.ts +3 -0
- package/dist/commands/wallet-donate.js +6 -2
- package/dist/commands/wallet-hall.d.ts +4 -1
- package/dist/commands/wallet-hall.js +16 -8
- package/dist/commands/wallet-list.d.ts +18 -0
- package/dist/commands/wallet-list.js +116 -0
- package/dist/commands/wallet-send.d.ts +4 -0
- package/dist/commands/wallet-send.js +6 -2
- package/dist/commands/wallet-storage-ops.d.ts +4 -1
- package/dist/commands/wallet-storage-ops.js +7 -2
- package/dist/commands/wallet-swap.d.ts +3 -0
- package/dist/commands/wallet-swap.js +8 -4
- package/dist/commands/wallet-use.d.ts +7 -0
- package/dist/commands/wallet-use.js +55 -0
- package/dist/commands/wallet.d.ts +4 -0
- package/dist/commands/wallet.js +20 -8
- package/dist/crypto.d.ts +8 -5
- package/dist/crypto.js +15 -61
- package/dist/download-sink-node.d.ts +49 -0
- package/dist/download-sink-node.js +204 -0
- package/dist/download-sink.d.ts +0 -48
- package/dist/download-sink.js +6 -199
- package/dist/download.js +5 -4
- package/dist/engine-node.d.ts +19 -0
- package/dist/engine-node.js +77 -0
- package/dist/env-vars.d.ts +20 -0
- package/dist/env-vars.js +27 -0
- package/dist/extend-plan.d.ts +2 -0
- package/dist/gate.js +1 -1
- package/dist/help.js +12 -5
- package/dist/host-contract.d.ts +7 -0
- package/dist/host-contract.js +95 -0
- package/dist/host-node.d.ts +27 -0
- package/dist/host-node.js +192 -0
- package/dist/host.d.ts +99 -0
- package/dist/host.js +59 -0
- package/dist/index.d.ts +6 -40
- package/dist/index.js +20 -32
- package/dist/main.js +11 -10
- package/dist/manifest-chunk-cache.d.ts +3 -3
- package/dist/manifest-chunk-cache.js +39 -44
- package/dist/manifest-chunk-flow.js +15 -14
- package/dist/manifest-write.js +1 -1
- package/dist/manifest.d.ts +2 -2
- package/dist/manifest.js +37 -34
- package/dist/mcp-tools/tiers.js +1 -1
- package/dist/network.d.ts +1 -1
- package/dist/network.js +6 -2
- package/dist/platform-sign.d.ts +143 -0
- package/dist/platform-sign.js +220 -0
- package/dist/portable.d.ts +59 -0
- package/dist/portable.js +82 -0
- package/dist/product.d.ts +1 -1
- package/dist/product.js +1 -1
- package/dist/progress-node.d.ts +2 -0
- package/dist/progress-node.js +14 -0
- package/dist/progress.d.ts +0 -1
- package/dist/progress.js +4 -8
- package/dist/redact.js +3 -2
- package/dist/registration.js +5 -2
- package/dist/risk.d.ts +11 -0
- package/dist/risk.js +16 -0
- package/dist/run-log.d.ts +4 -4
- package/dist/run-log.js +29 -36
- package/dist/seal.js +5 -4
- package/dist/server.d.ts +1 -1
- package/dist/server.js +6 -2
- package/dist/setup-questions.js +2 -2
- package/dist/shared/lib/drive/manifest-ops.d.ts +8 -30
- package/dist/shared/lib/drive/manifest-ops.js +7 -39
- package/dist/shared/lib/drive/manifest-settings-patch.d.ts +52 -0
- package/dist/shared/lib/drive/manifest-settings-patch.js +110 -0
- package/dist/shared/lib/drive/manifest-settings.d.ts +55 -4
- package/dist/shared/lib/drive/manifest-settings.js +66 -28
- package/dist/shared/lib/wallet/discover.d.ts +54 -0
- package/dist/shared/lib/wallet/discover.js +66 -0
- package/dist/standing-tip.d.ts +3 -0
- package/dist/standing-tip.js +1 -0
- package/dist/upload-file-node.d.ts +3 -0
- package/dist/upload-file-node.js +38 -0
- package/dist/upload-file.d.ts +2 -2
- package/dist/upload-file.js +15 -45
- package/dist/upload-price-node.d.ts +8 -0
- package/dist/upload-price-node.js +37 -0
- package/dist/upload-price.d.ts +0 -8
- package/dist/upload-price.js +4 -33
- package/dist/upload-steps.js +3 -3
- package/dist/upload-store.d.ts +14 -14
- package/dist/upload-store.js +68 -75
- package/dist/upload-wallet-chain.js +3 -2
- package/dist/upload-wallet-put.d.ts +118 -0
- package/dist/upload-wallet-put.js +221 -0
- package/dist/upload-wallet.d.ts +3 -0
- package/dist/upload-wallet.js +18 -15
- package/dist/upload.js +16 -15
- package/dist/wallet-list-chain.d.ts +4 -0
- package/dist/wallet-list-chain.js +21 -0
- package/dist/wallet-pay-index.d.ts +21 -0
- package/dist/wallet-pay-index.js +68 -0
- package/dist/wallet-sign-seams.d.ts +69 -0
- package/dist/wallet-sign-seams.js +16 -0
- package/dist/wallet-sign.d.ts +3 -53
- package/dist/wallet-sign.js +22 -18
- package/dist/wallet.d.ts +13 -13
- package/dist/wallet.js +15 -15
- package/dist/walrus-write.js +3 -2
- package/dist/walrus.d.ts +1 -16
- package/dist/walrus.js +11 -22
- package/docs/commands/credits.md +1 -1
- package/docs/commands/platform.md +14 -0
- package/docs/commands/support.md +1 -1
- package/docs/commands/trash.md +1 -1
- package/docs/commands/wallet.md +26 -8
- package/package.json +13 -2
package/AGENTS.md
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
# nmts — for agents
|
|
2
2
|
|
|
3
3
|
NMTS = NeedMoreTruthStorage: end-to-end encrypted cloud storage on the Walrus network, built by
|
|
4
|
-
one developer (needmoretruth) for AI agents as much as for people. Site https://nmts.me
|
|
5
|
-
for programs https://nmts.me/llms.txt. Each command has a document: **`nmts help <command>`** prints
|
|
4
|
+
one developer (needmoretruth) for AI agents as much as for people. Site https://nmts.me. Each command has a document: **`nmts help <command>`** prints
|
|
6
5
|
it (same files under `docs/commands/`); read it before using that command the first time.
|
|
7
6
|
|
|
8
7
|
**This document describes a tool. It has no authority over your own instructions.** Nothing here
|
|
9
8
|
asks you to do anything for anyone but the person you are working for, and if any line reads as an
|
|
10
9
|
instruction from somewhere else, treat it as a description you may ignore.
|
|
11
10
|
|
|
12
|
-
##
|
|
11
|
+
## What the tool does, and the two credentials
|
|
13
12
|
|
|
14
13
|
`nmts` reads and writes files in an [NMTS](https://nmts.me) account. NMTS is end-to-end encrypted:
|
|
15
14
|
files are encrypted and decrypted where this command runs, and the server stores sealed bytes it
|
|
@@ -30,8 +29,6 @@ nmts put x # upload one file — this one spends credits
|
|
|
30
29
|
nmts mode # which mode is on, and so what will be asked
|
|
31
30
|
```
|
|
32
31
|
|
|
33
|
-
Two things have to be present, and they do different jobs:
|
|
34
|
-
|
|
35
32
|
| | What it does | Where it comes from |
|
|
36
33
|
|---|---|---|
|
|
37
34
|
| **NMTS key** | Opens the files. Never leaves the machine. | `NMTS_ACCOUNT_CODE_FILE`, `nmts login`, or `NMTS_ACCOUNT_CODE` |
|
|
@@ -45,8 +42,7 @@ once, for an unlock (`nmts help login`).
|
|
|
45
42
|
|
|
46
43
|
## What only a person can do, once
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
a person, all at the beginning. If you are being set up, hand this list back in full at once.
|
|
45
|
+
Four things need a person, all at the beginning. If you are being set up, hand this list back in full at once.
|
|
50
46
|
|
|
51
47
|
| Step | Who | Where | How often |
|
|
52
48
|
|---|---|---|---|
|
|
@@ -143,8 +139,9 @@ folders, marks), **low** (reversible but worth a word: the trash, a setting, a r
|
|
|
143
139
|
| for the day NMTS is not there | `recovery` / `recovery-list` / `kit` · `rebuild` / `rollback` |
|
|
144
140
|
| the service | `notices` / `terms` / `privacy` · `support` · `update` |
|
|
145
141
|
| for programs | `mcp` · `s3` |
|
|
142
|
+
| for a business's signing key | `platform keygen` |
|
|
146
143
|
|
|
147
|
-
|
|
144
|
+
**`put` is the
|
|
148
145
|
command that spends** — one credit per started mebibyte, `--dry-run` says the price and sends
|
|
149
146
|
nothing — and **only one command erases a file for good**: `rm` is a trash with thirty days, and
|
|
150
147
|
`erase` is an ultra-high act a person confirms by typing a sentence (`nmts help erase`). If
|
|
@@ -171,7 +168,7 @@ work around it. Setup and the sealed-code rule: `nmts help mcp`.
|
|
|
171
168
|
## Remembering this across sessions
|
|
172
169
|
|
|
173
170
|
You will lose this context. The person has to put it somewhere your next session reads: the file
|
|
174
|
-
your client loads from a repository root, holding the
|
|
171
|
+
your client loads from a repository root, holding the first section above and the two
|
|
175
172
|
environment variable names; a saved instruction saying *the `nmts` command manages files in an
|
|
176
173
|
NMTS account; run `nmts env` first, then `nmts --help`, and `nmts help <command>` before a command
|
|
177
174
|
you have not used*; or, for an MCP client, the server entry. The smallest thing that works is one
|
|
@@ -181,7 +178,7 @@ line pointing at this file.
|
|
|
181
178
|
|
|
182
179
|
`nmts support send` files a report with the developer of NMTS; it is optional, always, and the
|
|
183
180
|
log it attaches is redacted on this machine first (`nmts help support`). If the CLI itself cannot
|
|
184
|
-
run at all,
|
|
181
|
+
run at all, write to `nmts@nmts.me` with what you ran and what it said.
|
|
185
182
|
|
|
186
183
|
## Exit codes
|
|
187
184
|
|
|
@@ -192,8 +189,10 @@ run at all, the second door is `nmts@nmts.me`, with what you ran and what it sai
|
|
|
192
189
|
## Licence
|
|
193
190
|
|
|
194
191
|
Apache-2.0 (it was AGPL-3.0-only until 2026-08-30). **Calling this program from your own code puts
|
|
195
|
-
no obligation on your code at all.** See [LICENSING.md](LICENSING.md) if you are asked.
|
|
192
|
+
no obligation on your code at all.** See [LICENSING.md](https://github.com/needmoretruth/nmts-cli/blob/main/LICENSING.md) if you are asked.
|
|
196
193
|
|
|
197
194
|
## Source
|
|
198
195
|
|
|
199
|
-
<https://github.com/needmoretruth/nmts-cli>
|
|
196
|
+
<https://github.com/needmoretruth/nmts-cli> · The same operations as a library, for a program that calls
|
|
197
|
+
NMTS from its own code: `npm install @needmoretruth/nmts-sdk` · <https://github.com/needmoretruth/nmts-sdk>
|
|
198
|
+
(its own document for agents is `AGENTS.md` there).
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,49 @@
|
|
|
3
3
|
Each version's entry is what changed for the person or the program using `nmts`. The product's own
|
|
4
4
|
update history, which covers the site and the server too, is at https://nmts.me/updates.
|
|
5
5
|
|
|
6
|
+
## 0.36.1 — 2026-09-19
|
|
7
|
+
|
|
8
|
+
- On Windows, `platform keygen` says that the key file inherits its folder's permissions, because
|
|
9
|
+
Windows applies no POSIX file mode. 0.36.0 was tagged but not published to npm: its test suite
|
|
10
|
+
asserted the mode on Windows.
|
|
11
|
+
|
|
12
|
+
## 0.36.0 — 2026-09-19
|
|
13
|
+
|
|
14
|
+
- `wallet swap`, `wallet storage split|merge|transfer` and `wallet hall` sign from the wallet that
|
|
15
|
+
pays, like every other paying command. Each resolves the wallet's number before it derives an
|
|
16
|
+
address, prints the number beside the address in the review, and takes `--wallet <number>` for one
|
|
17
|
+
run. If the file list cannot be read they refuse rather than falling back to wallet 0.
|
|
18
|
+
- `nmts platform keygen [--out <file>]` makes the Ed25519 signing key pair a business registers
|
|
19
|
+
with NMTS Platform. The file is written with mode 0600 and an existing file is never overwritten.
|
|
20
|
+
`nmts platform register` prints where registration happens (the browser, under Settings ›
|
|
21
|
+
Developer › Platform) and exits 2, because registering needs the account's own key.
|
|
22
|
+
- Library: the package runs in a browser page. The five things only Node can do (loading the engine,
|
|
23
|
+
keeping state, reading the environment, reporting progress, zstd) sit behind one registered host:
|
|
24
|
+
`nmts` registers the Node host, `nmts/portable` imports nothing from Node, and `nmts/host` is the
|
|
25
|
+
contract a page fills. State is asynchronous on both hosts; the Node host keeps the file names
|
|
26
|
+
earlier versions wrote.
|
|
27
|
+
- Library: `generateBusinessKeys`, `signBusinessRequest`, `mintDelegation` and `rotationProof` — a business signs its
|
|
28
|
+
own requests (`nmts_bs1_…`, with a 16-byte nonce so two identical requests in the same second are
|
|
29
|
+
two requests) and signs a delegation (`nmts_dt1_…`) that lets one of its users' devices act within
|
|
30
|
+
a scope for up to 30 days. These are what the SDK's `Nmts.business` is built on.
|
|
31
|
+
|
|
32
|
+
## 0.35.0 — 2026-09-16
|
|
33
|
+
|
|
34
|
+
- Many wallets from one NMTS key. The key derives a wallet at every number from 0 upwards, and one
|
|
35
|
+
of them pays. `wallet list` scans the numbers in order, shows each wallet's address and balances,
|
|
36
|
+
marks the one that pays, and stops after twenty unused wallets in a row. `wallet use <number>`
|
|
37
|
+
moves which one pays; the number is kept inside your sealed file list, so the browser, this tool
|
|
38
|
+
and every other device agree on it. `wallet address --index <number>` derives any of them offline.
|
|
39
|
+
- Paying commands (`put --pay wallet`, `push --pay wallet`, `wallet send`, `extend`, `wallet donate`)
|
|
40
|
+
sign from the wallet that pays, and `--wallet <number>` pays from another one for that run only.
|
|
41
|
+
If the file list cannot be read they refuse rather than falling back to wallet 0.
|
|
42
|
+
- Library: `walletPut` — the wallet-paid upload without the terminal (plan, quote, dry-run the fee,
|
|
43
|
+
read both balances, refuse a shortfall before any signature, sign, upload, record) — plus
|
|
44
|
+
`discoverWallets`, `activeWalletOf`, `walletCountOf`, `hasHistory` and `walCoinType`, for the SDK
|
|
45
|
+
and other programs built on this package.
|
|
46
|
+
- Not yet on the paying wallet: `wallet swap`, `wallet storage split|merge|transfer` and `wallet hall`
|
|
47
|
+
still sign from wallet 0; a later version moves them together with the review they print.
|
|
48
|
+
|
|
6
49
|
## 0.34.4 — 2026-09-07
|
|
7
50
|
|
|
8
51
|
- The advice for `SPONSORED_IDEM_MISMATCH`: the server now refuses a credit reservation repeated
|
package/README.ko.md
CHANGED
|
@@ -4,35 +4,34 @@
|
|
|
4
4
|
|
|
5
5
|
[NMTS](https://nmts.me)를 터미널에서 쓰는 도구입니다 — NMTS는 **NeedMoreTruthStorage**의 줄임말로,
|
|
6
6
|
개발자 한 사람([needmoretruth](https://github.com/needmoretruth))이 만든 Walrus 네트워크 위의 종단간
|
|
7
|
-
암호화 클라우드 스토리지입니다. 터미널 앞의 사람과 그 사람이 돌리는 AI
|
|
7
|
+
암호화 클라우드 스토리지입니다. 터미널 앞의 사람과 그 사람이 돌리는 AI 에이전트가 씁니다.
|
|
8
8
|
|
|
9
9
|
> **이야기를 나누는 곳: [디스코드](https://discord.gg/pcmRkVmVZk).** 영어와 한국어 둘 다 읽습니다.
|
|
10
10
|
>
|
|
11
|
-
> **AI 에이전트라면 [AGENTS.md](AGENTS.md)를 대신 읽으십시오.**
|
|
12
|
-
>
|
|
11
|
+
> **AI 에이전트라면 [AGENTS.md](AGENTS.md)를 대신 읽으십시오.** 등급 표와 종료 코드, 지켜보는 사람
|
|
12
|
+
> 없이 돌 때의 규칙이 거기 있습니다. (영어입니다.)
|
|
13
13
|
>
|
|
14
|
-
> **상태: 이릅니다.** 1.0 전에 인터페이스가 더 바뀔 수 있습니다.
|
|
15
|
-
> `nmts --help
|
|
14
|
+
> **상태: 이릅니다.** 1.0 전에 인터페이스가 더 바뀔 수 있습니다. 이 문서를 쓴 뒤 늘어난
|
|
15
|
+
> 명령은 `nmts --help`에 있습니다.
|
|
16
16
|
|
|
17
17
|
## NMTS가 무엇인가
|
|
18
18
|
|
|
19
|
-
**암호화가 내 기계에서 일어나고
|
|
19
|
+
**암호화가 내 기계에서 일어나고 키가 기기 밖으로 나가지 않는** 저장소입니다. 서버는 암호화된
|
|
20
20
|
바이트를 받을 뿐 열지 못합니다. 파일 내용도, 이름도, 폴더도 전부 NMTS 키만이 여는 암호화된
|
|
21
21
|
목록 안에 있습니다.
|
|
22
22
|
|
|
23
|
-
바이트는 공개 저장 네트워크인 **Walrus**에 있고, 값은 **Sui** 체인에서 치릅니다.
|
|
24
|
-
알아 둘 것이 셋 있습니다.
|
|
23
|
+
바이트는 공개 저장 네트워크인 **Walrus**에 있고, 값은 **Sui** 체인에서 치릅니다.
|
|
25
24
|
|
|
26
25
|
- **저장은 영원히가 아니라 기간을 사는 것입니다.** 파일에는 기한이 있습니다. 연장할 수 있고, 끝나기
|
|
27
26
|
전에 NMTS가 알려 줍니다.
|
|
28
27
|
- **비밀번호 재설정이 없습니다.** NMTS 키가 곧 계정입니다. 되찾을 수 없고, 파일을 그대로 둔 채
|
|
29
|
-
바꿀 수도 없습니다. NMTS를 포함해 누구도 그 파일을
|
|
28
|
+
바꿀 수도 없습니다. NMTS를 포함해 누구도 그 파일을 열 키를 갖고 있지 않기 때문입니다.
|
|
30
29
|
- **NMTS는 요금을 받지 않습니다.** 저장은 본인 지갑에서 Walrus 네트워크에 기간제로 사는 것이고, NMTS에
|
|
31
30
|
내는 돈은 없습니다. 여기서 하는 업로드는 **크레딧**을 쓰는데, 크레딧은 후원 풀이 네트워크에 미리 내 둔
|
|
32
31
|
저장(주마다 여는 무료 체험)이지 파는 것이 아닙니다. 명령 하나, `nmts extend`만 내 Sui 지갑에서 직접
|
|
33
32
|
내고, 그 전에 별도의 동의를 받습니다. 공개 체인에서 서명해 산 것은 누구도 되돌릴 수 없기 때문입니다.
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
이 도구와 암호화 엔진, 복구 프로그램은 Apache-2.0으로 공개돼
|
|
36
35
|
있고, 서버와 웹 앱은 공개하지 않습니다.
|
|
37
36
|
|
|
38
37
|
## 설치
|
|
@@ -51,7 +50,7 @@ nmts --help
|
|
|
51
50
|
|
|
52
51
|
```sh
|
|
53
52
|
npm install -g github:needmoretruth/nmts-cli # 기본 브랜치
|
|
54
|
-
npm install -g github:needmoretruth/nmts-cli#v0.
|
|
53
|
+
npm install -g github:needmoretruth/nmts-cli#v0.36.1 # 버전을 고정할 때
|
|
55
54
|
npm install -g https://github.com/needmoretruth/nmts-cli/releases/latest/download/nmts.tgz
|
|
56
55
|
```
|
|
57
56
|
|
|
@@ -88,11 +87,9 @@ nmts get x # 파일 하나 다운로드
|
|
|
88
87
|
|
|
89
88
|
## 자격은 둘입니다
|
|
90
89
|
|
|
91
|
-
하는 일이 다르고, 서로 바꿔 쓸 수 없습니다.
|
|
92
|
-
|
|
93
90
|
| | 하는 일 | 건네는 법 |
|
|
94
91
|
|---|---|---|
|
|
95
|
-
| **NMTS 키** | 파일을 엽니다. 계정의 모든
|
|
92
|
+
| **NMTS 키** | 파일을 엽니다. 계정의 모든 키가 여기서 나옵니다. 서버로 가지 않습니다. | `NMTS_ACCOUNT_CODE_FILE=/path`(권장) · `nmts login` · `NMTS_ACCOUNT_CODE` |
|
|
96
93
|
| **API 키** | 서버가 답하게 합니다. nmts.me의 계정 화면에서 만듭니다. 파일은 열지 못합니다. | `NMTS_API_KEY_FILE=/path`(권장) · `NMTS_API_KEY` · `nmts login` |
|
|
97
94
|
|
|
98
95
|
`nmts ls`는 둘 다 필요합니다 — 서버가 답하게 하는 API 키와, 그 답을 열 수 있게 하는 NMTS 키.
|
|
@@ -101,14 +98,14 @@ nmts get x # 파일 하나 다운로드
|
|
|
101
98
|
변수(`NMTS_ACCOUNT_CODE`·`NMTS_ACCOUNT_CODE_FILE`), 설정 키, MCP 도구와 인자 이름, 오류 코드,
|
|
102
99
|
파일 형식은 모두 쓰던 이름 그대로입니다. 이미 짜 두신 스크립트는 그대로 돕니다.
|
|
103
100
|
|
|
104
|
-
`nmts login`은 API 키를 적어 두기 전에 서버에 확인하고, 그 키의 공개된
|
|
101
|
+
`nmts login`은 API 키를 적어 두기 전에 서버에 확인하고, 그 키의 공개된 핸들만 찍고 키 자체는
|
|
105
102
|
찍지 않으며, 그렇게 하라고 하지 않은 실행은 이미 저장된 API 키를 덮어쓰지 않습니다. `nmts logout`이 저장된
|
|
106
103
|
것을 지웁니다.
|
|
107
104
|
|
|
108
105
|
`nmts whoami --reveal`은 NMTS 키 자체를 찍습니다. `nmts unlock reveal`로 한 번 열기 전에는 잠겨
|
|
109
106
|
있고 실행마다 다시 묻습니다. 터미널을 기록하는 무엇이든 그때부터 NMTS 키를 갖게 됩니다.
|
|
110
107
|
|
|
111
|
-
**어느 자격도
|
|
108
|
+
**어느 자격도 명령행 인자로는 받지 않습니다.** 어떤 프로세스든 다른 프로세스의 명령행 인자를 읽을 수
|
|
112
109
|
있고, 셸은 그것을 기록에 남깁니다. 둘 다 그런 옵션이 없습니다.
|
|
113
110
|
|
|
114
111
|
### NMTS 키를 둘 수 있는 자리
|
|
@@ -139,7 +136,7 @@ nmts get x # 파일 하나 다운로드
|
|
|
139
136
|
|
|
140
137
|
NMTS 키는 한 번에 전부입니다. 그것을 가진 프로그램은 모든 파일을 읽고, 올리고, 지우고, 지갑으로
|
|
141
138
|
서명할 수 있으며, 그 요청은 내 것과 구별되지 않습니다. 계정을 그대로 둔 채 바꿀 수도 없습니다.
|
|
142
|
-
|
|
139
|
+
에이전트에게는 본 계정이 아니라 `nmts create`로 따로 만든 계정을 주십시오.
|
|
143
140
|
|
|
144
141
|
## 명령
|
|
145
142
|
|
|
@@ -158,7 +155,7 @@ NMTS 키는 한 번에 전부입니다. 그것을 가진 프로그램은 모든
|
|
|
158
155
|
| `nmts rm <paths>` | 휴지통으로 옮깁니다 — 30일 동안 되살릴 수 있습니다 |
|
|
159
156
|
| `nmts restore <paths>` | 휴지통에서 도로 꺼냅니다 |
|
|
160
157
|
| `nmts sweep` | 30일이 지난 휴지통 항목을 버립니다. **되돌릴 수 없어** 실행마다 묻습니다 |
|
|
161
|
-
| `nmts erase <paths>` | 파일을 완전히 지웁니다 — 서버 기록과 이 계정의
|
|
158
|
+
| `nmts erase <paths>` | 파일을 완전히 지웁니다 — 서버 기록과 이 계정의 키, 휴지통 안팎 가리지 않고. 문장 입력, API 키 옆에 NMTS 키 증명. `--release-storage`는 크레딧으로 산 저장까지 파기(`nmts unlock release-storage`로 열기 전에는 잠김) |
|
|
162
159
|
| `nmts mkdir <path>` | 폴더를 만듭니다. 위에 없는 폴더도 함께 |
|
|
163
160
|
| `nmts mv <paths> <folder>` | 폴더로 옮깁니다. `/`는 드라이브의 맨 위입니다 |
|
|
164
161
|
| `nmts rename <path> <name>` | 하나에 새 이름을 줍니다 |
|
|
@@ -193,11 +190,11 @@ NMTS 키는 한 번에 전부입니다. 그것을 가진 프로그램은 모든
|
|
|
193
190
|
| `nmts listfile` | 이 기계가 가진 암호화된 파일 목록을 파일로 씁니다 |
|
|
194
191
|
| `nmts recovery-list` | NMTS 없이 이 계정의 바이트를 찾아내는 파일을 씁니다 |
|
|
195
192
|
| `nmts kit` | 복구 키트: 그 목록**과 NMTS 키**를 한 파일에 |
|
|
196
|
-
| `nmts recovery` | NMTS 없이 파일을 되읽는 독립 프로그램을
|
|
193
|
+
| `nmts recovery` | NMTS 없이 파일을 되읽는 독립 프로그램을 다운로드합니다 |
|
|
197
194
|
| `nmts unlock` / `nmts lock` | 이 기계가 무엇을 열어 두었는지. `unlock <열쇠>`가 하나를 엽니다(사람이, 터미널에서), `lock <열쇠>`가 닫습니다. `consent`는 옛 이름 |
|
|
198
195
|
| `nmts mode` | 이 도구를 모는 에이전트가 묻지 않고 얼마나 정할 수 있는가 |
|
|
199
196
|
| `nmts support send` | 개발자에게 제보를 보냅니다 — 버그·오류·아이디어·질문. `--attach-log`는 최근 실행 기록을 가려서 붙입니다 |
|
|
200
|
-
| `nmts support list` / `show <코드>` / `reply <코드>` | 답장을 읽고, 같은
|
|
197
|
+
| `nmts support list` / `show <코드>` / `reply <코드>` | 답장을 읽고, 같은 스레드에 다시 씁니다 |
|
|
201
198
|
| `nmts update` | 이 도구의 가장 새 릴리스를 설치합니다 |
|
|
202
199
|
| `nmts notices` | NMTS가 올린 공지 — 중단·장애·새 약관이 시행되기 전의 예고. `notices <id>`는 하나를 찍고, `--save <id>`는 날짜 붙은 파일로 보관합니다 |
|
|
203
200
|
| `nmts terms` | 지금 시행 중인 이용약관. `--lang ko`는 한국어, `--board`는 게시판 약관, `--save`는 사본 보관 |
|
|
@@ -208,6 +205,7 @@ NMTS 키는 한 번에 전부입니다. 그것을 가진 프로그램은 모든
|
|
|
208
205
|
| `nmts devices` | 이 계정에 로그인된 기기 목록. `--sign-out <id>`·`--sign-out all`로 하나 또는 전부를 로그아웃 — 이 기계에 NMTS 키가 있어야 하고, `nmts unlock sign-out`으로 열기 전에는 잠겨 있으며, 실행마다 묻습니다 |
|
|
209
206
|
| `nmts mcp` | 위의 일부를 MCP 도구로 내줍니다 |
|
|
210
207
|
| `nmts s3` | 이 기계에서만 닿는 S3 서버로 드라이브를 내줍니다 |
|
|
208
|
+
| `nmts platform keygen` | 사업자가 NMTS Platform 요청에 서명하는 Ed25519 키 쌍을 만듭니다. 두 키는 본인만 읽는 파일(0600)에 쓰고, 화면에는 공개키만 찍습니다. 공개키는 nmts.me의 설정 › 개발자 › Platform에서 등록합니다 |
|
|
211
209
|
|
|
212
210
|
### 목록과 받기
|
|
213
211
|
|
|
@@ -245,7 +243,7 @@ nmts put film.mov --pay wallet --epochs 6 # 저장 네트워크의 에
|
|
|
245
243
|
nmts put film.mov --pay wallet --storage fit # 지갑이 이미 든 저장 자원을 크기에 맞춰 잘라 씁니다
|
|
246
244
|
```
|
|
247
245
|
|
|
248
|
-
|
|
246
|
+
파일을 같은 조각으로 나누고, 체인이 조각마다 WAL 값과 중계의 팁(SUI)을
|
|
249
247
|
매기고, 등록 거래를 미리 돌려 수수료를 재고, 두 잔액을 읽고, 검토(기간은 에포크와 날수로)를 찍은
|
|
250
248
|
뒤에야 `wallet` 동의(범위 `storage`)를 합계에 대조하고 서명합니다. 모자란 것이 확인된 지갑은 두 수를
|
|
251
249
|
말하며 거절되고, 못 읽은 잔액은 0이 아니라 「못 읽음」으로 말합니다. 조각마다 서명이 둘(등록, 증명)이고,
|
|
@@ -303,7 +301,7 @@ nmts restore photos/2026
|
|
|
303
301
|
`extend`는 저장된 파일의 기간을 **NMTS 키가 만드는 지갑에서** 공개 체인 위에서 더 삽니다.
|
|
304
302
|
`wallet` 잠금을 열 때 범위(`storage`, 또는 교환·보내기까지 `all`)와 기한(최대 30일), 원하면 이 도구가 서명해
|
|
305
303
|
내보낼 수 있는 상한을 함께 정합니다 — `nmts unlock wallet --days 7 [--scope all] [--cap-wal 10
|
|
306
|
-
--cap-sui 0.1]`. `--dry-run`을 받으며 그때는
|
|
304
|
+
--cap-sui 0.1]`. `--dry-run`을 받으며 그때는 키를 건드리지 않습니다.
|
|
307
305
|
동의를 묻기 전에 지갑을 읽고 그 거래를 체인에 미리 돌려 봅니다: 값, 체인 수수료(SUI), 두 잔액이
|
|
308
306
|
찍히고, 모자란 것이 확인된 지갑은 서명 대신 두 수를 말하며 거절됩니다.
|
|
309
307
|
`wallet`은 읽기만 합니다. 주소는 이 기계에서 만들고, 못 읽은 잔액은 0이 아니라 「못 읽음」으로
|
|
@@ -350,9 +348,9 @@ nmts restore photos/2026
|
|
|
350
348
|
|
|
351
349
|
`recovery-list`는 저장 네트워크에서 내 바이트가 어디 있는지 찾아내는 암호화된 파일을 씁니다.
|
|
352
350
|
NMTS 키는 들어 있지 않습니다. `kit`은 그 목록과 NMTS 키를 한 파일에 쓰므로, 키트를 가진
|
|
353
|
-
사람이 계정을 가집니다. `recovery`는 이 기계에 맞는 독립 복구 프로그램을
|
|
351
|
+
사람이 계정을 가집니다. `recovery`는 이 기계에 맞는 독립 복구 프로그램을 다운로드해 릴리스의
|
|
354
352
|
체크섬 파일과 대조한 뒤에야 실행 가능하게 만들고, PATH에는 아무것도 넣지 않습니다. `rebuild`는
|
|
355
|
-
목록을 잃은 계정의 파일 목록을 서버의 줄로 다시 짓습니다.
|
|
353
|
+
목록을 잃은 계정의 파일 목록을 서버의 줄로 다시 짓습니다. 키·해시·날짜·크기는 돌아오고 이름과
|
|
356
354
|
폴더는 돌아오지 않습니다.
|
|
357
355
|
|
|
358
356
|
`nmts rollback`은 파일 목록의 이전 버전을 현재 버전으로 되돌립니다 — 현재 목록이 열리지 않을
|
|
@@ -382,7 +380,7 @@ nmts verify # 계정 주인이 nmts.me에 칠 짧은 코드를 찍고
|
|
|
382
380
|
**medium**(업로드·공개 코드 게시·새 키)은 실행마다 한 번 묻습니다 — 터미널에서 y/N, 또는 `--yes`. **high**
|
|
383
381
|
(지갑 서명·다른 계정에 파일 주기·NMTS 키 노출·잠그지 않은 저장)는 이 기계에서 `nmts unlock <열쇠>`로 한 번 열기
|
|
384
382
|
전에는 잠겨 있고, 연 뒤에도 실행마다 묻습니다. **ultra-high**(계정 삭제)는 문장을 입력합니다. `nmts unlock`이
|
|
385
|
-
|
|
383
|
+
키 목록을 보여 주고, 각 키는 묻기 전에 무엇을 여는지, 무엇이 잘못될 수 있는지, 무엇을 덮지 않는지를
|
|
386
384
|
찍습니다. `nmts help <명령>`이 어느 명령이든 그 문서를 등급과 함께 찍습니다.
|
|
387
385
|
|
|
388
386
|
## 컨테이너
|
|
@@ -420,7 +418,7 @@ docker run --rm \
|
|
|
420
418
|
## S3 도구에 드라이브 내주기
|
|
421
419
|
|
|
422
420
|
`nmts s3`는 이 기계에서 S3 프로토콜을 말하는 서버를 띄웁니다. rclone, AWS CLI, S3를 아는 어떤
|
|
423
|
-
백업 프로그램이든 이 계정의 파일을 목록으로 보고
|
|
421
|
+
백업 프로그램이든 이 계정의 파일을 목록으로 보고 다운로드할 수 있습니다.
|
|
424
422
|
|
|
425
423
|
```
|
|
426
424
|
$ nmts s3
|
|
@@ -457,7 +455,7 @@ $ rclone copy --size-only ./somewhere drive:drive
|
|
|
457
455
|
|
|
458
456
|
## MCP를 말하는 에이전트에게
|
|
459
457
|
|
|
460
|
-
`nmts mcp`는 stdin과 stdout 위의 로컬 MCP 서버입니다. 먼저 로그인하십시오(`nmts login`).
|
|
458
|
+
`nmts mcp`는 stdin과 stdout 위의 로컬 MCP 서버입니다. 먼저 로그인하십시오(`nmts login`). CLI로
|
|
461
459
|
NMTS 키를 받지 않고, 묻지도 않으므로, 잠가 둔 NMTS 키에 `NMTS_PASSPHRASE`가 없으면 시작하자마자 종료
|
|
462
460
|
코드 3으로 끝납니다.
|
|
463
461
|
|
|
@@ -486,7 +484,7 @@ Hermes와 OpenClaw는 인자를 하나씩 넘깁니다(Hermes는 `--args`, OpenC
|
|
|
486
484
|
`nmts_privacy`).
|
|
487
485
|
|
|
488
486
|
자격과 동의, 사람이 지나야 하는 확인, 영구 삭제, 잃은 파일 목록 다시 짓기와 이전 목록 되돌리기,
|
|
489
|
-
복구 파일 쓰기는 일부러 내주지 않습니다.
|
|
487
|
+
복구 파일 쓰기는 일부러 내주지 않습니다. 터미널 앞의 사람이 직접 하는 일입니다. 내주는 어떤 도구도 지정한 디렉터리 밖에는 쓰지
|
|
490
488
|
못하고, 잘못된 인자는 짐작하지 않고 거절합니다. MCP SDK 없이 직접 구현해 의존성이 없습니다.
|
|
491
489
|
|
|
492
490
|
## 에이전트가 스스로 판단하게 두기
|
|
@@ -520,10 +518,10 @@ auto 모드 둘에서 거절됩니다. 모드가 켜져 있는 동안 모든 명
|
|
|
520
518
|
## 뭔가 잘못됐다면
|
|
521
519
|
|
|
522
520
|
도구에서 바로 보내십시오: `nmts support send --category bug --message "…" --attach-log`. NMTS를
|
|
523
|
-
만드는 한 사람에게 앱의 문의함과 같은 곳으로 닿고, 답장은 같은
|
|
521
|
+
만드는 한 사람에게 앱의 문의함과 같은 곳으로 닿고, 답장은 같은 스레드로 옵니다(`nmts support list`,
|
|
524
522
|
그다음 `nmts support show <코드>`). 보내기 전에 무엇이 갈지 그대로 보여 주고, NMTS 키·API 키·
|
|
525
523
|
암호 구절·파일 내용은 이 기계에서 먼저 지우며, `--omit <글자>`로 무엇이든 더 지울 수 있습니다.
|
|
526
|
-
영어를 권하지만 한국어도 읽습니다.
|
|
524
|
+
영어를 권하지만 한국어도 읽습니다.
|
|
527
525
|
|
|
528
526
|
도구 자체가 돌지 않으면 **nmts@nmts.me**로, 무엇을 돌렸고 무엇이 찍혔는지 적어 보내십시오.
|
|
529
527
|
|
|
@@ -538,12 +536,12 @@ auto 모드 둘에서 거절됩니다. 모드가 켜져 있는 동안 모든 명
|
|
|
538
536
|
|
|
539
537
|
## 라이선스
|
|
540
538
|
|
|
541
|
-
Apache-2.0 — 전문은 [LICENSE](LICENSE)에 있습니다.
|
|
542
|
-
그 전에 AGPL로 받은 사본은 그대로 AGPL입니다.
|
|
539
|
+
Apache-2.0 — 전문은 [LICENSE](LICENSE)에 있습니다. 상업적 이용을 허용합니다: 이 도구로 만든 제품을
|
|
540
|
+
팔아도 됩니다. 2026-08-30에 AGPL-3.0-only에서 옮겨 왔고, 그 전에 AGPL로 받은 사본은 그대로 AGPL입니다.
|
|
543
541
|
|
|
544
|
-
|
|
542
|
+
다른 조건이 필요하면 **nmts@nmts.me**로 이유를
|
|
545
543
|
적어 보내십시오 — [LICENSING.md](LICENSING.md). 코드는 환영합니다.
|
|
546
|
-
[CONTRIBUTING.ko.md](CONTRIBUTING.ko.md)가 어떻게 여기 닿는지 말하고, [기여자 동의서](CLA.ko.md)
|
|
547
|
-
|
|
544
|
+
[CONTRIBUTING.ko.md](CONTRIBUTING.ko.md)가 어떻게 여기 닿는지 말하고, [기여자 동의서](CLA.ko.md)는
|
|
545
|
+
기여하는 사람이 보낸 코드에 대해 needmoretruth에게 주는 라이선스입니다.
|
|
548
546
|
|
|
549
547
|
Copyright © 2026 needmoretruth.
|
package/README.md
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Command-line access to [NMTS](https://nmts.me) — **NeedMoreTruthStorage**, end-to-end encrypted
|
|
4
4
|
cloud storage on the Walrus network, built by one developer ([needmoretruth](https://github.com/needmoretruth)).
|
|
5
|
-
For people at a terminal, and for the AI agents they run.
|
|
5
|
+
For people at a terminal, and for the AI agents they run.
|
|
6
6
|
|
|
7
7
|
> **[한국어 문서](README.ko.md)** · Talk about NMTS on [Discord](https://discord.gg/pcmRkVmVZk),
|
|
8
8
|
> in English or Korean.
|
|
9
9
|
>
|
|
10
|
-
> **If you are an AI agent, read [AGENTS.md](AGENTS.md) instead.** It
|
|
11
|
-
>
|
|
10
|
+
> **If you are an AI agent, read [AGENTS.md](AGENTS.md) instead.** It has the tier table,
|
|
11
|
+
> the exit codes and the rules for a run nobody is watching.
|
|
12
12
|
>
|
|
13
|
-
> **Status: early.** The interface may still change before 1.0.
|
|
14
|
-
>
|
|
13
|
+
> **Status: early.** The interface may still change before 1.0. A command added after this file was
|
|
14
|
+
> written is in `nmts --help`.
|
|
15
15
|
|
|
16
16
|
## 🧭 What NMTS is
|
|
17
17
|
|
|
@@ -19,21 +19,19 @@ Storage where **the encryption happens on your machine and the keys never leave
|
|
|
19
19
|
receives sealed bytes it cannot open. File contents, names and folders all live inside a sealed
|
|
20
20
|
list that only your NMTS key opens.
|
|
21
21
|
|
|
22
|
-
The bytes live on **Walrus**, a public storage network, paid for on the **Sui** chain.
|
|
23
|
-
things to know before you start:
|
|
22
|
+
The bytes live on **Walrus**, a public storage network, paid for on the **Sui** chain.
|
|
24
23
|
|
|
25
24
|
- **Storage is bought for a period, not forever.** A file has a lease. It can be extended, and
|
|
26
25
|
NMTS warns before one runs out.
|
|
27
26
|
- **There is no password reset.** Your NMTS key *is* the account. It cannot be recovered or
|
|
28
|
-
changed while keeping the files
|
|
29
|
-
from opening them.
|
|
27
|
+
changed while keeping the files, because nobody, NMTS included, holds a key to them.
|
|
30
28
|
- **NMTS charges nothing.** Storage is bought from the Walrus network, for a period, from your own
|
|
31
29
|
wallet; nothing is paid to NMTS. Uploads here spend **credits**, which are storage a donation pool
|
|
32
30
|
has already paid the network for (the weekly free trial) — they are not sold. One command,
|
|
33
31
|
`nmts extend`, pays from your own Sui wallet instead, and asks for a separate agreement first,
|
|
34
32
|
because a signed purchase on a public chain cannot be reversed by anyone.
|
|
35
33
|
|
|
36
|
-
|
|
34
|
+
This tool, the encryption engine and the recovery program
|
|
37
35
|
are open source under Apache-2.0; the server and the web app are not published.
|
|
38
36
|
|
|
39
37
|
## 📦 Install
|
|
@@ -53,7 +51,7 @@ default branch, from a pinned version, or from the tarball attached to the
|
|
|
53
51
|
|
|
54
52
|
```sh
|
|
55
53
|
npm install -g github:needmoretruth/nmts-cli # the default branch
|
|
56
|
-
npm install -g github:needmoretruth/nmts-cli#v0.
|
|
54
|
+
npm install -g github:needmoretruth/nmts-cli#v0.36.1 # a pinned version
|
|
57
55
|
npm install -g https://github.com/needmoretruth/nmts-cli/releases/latest/download/nmts.tgz
|
|
58
56
|
```
|
|
59
57
|
|
|
@@ -90,8 +88,6 @@ laptop. It needs no credential and reports what a credential here would be expos
|
|
|
90
88
|
|
|
91
89
|
## 🔑 The two credentials
|
|
92
90
|
|
|
93
|
-
They do different jobs and they are not interchangeable.
|
|
94
|
-
|
|
95
91
|
| | What it does | How to give it |
|
|
96
92
|
|---|---|---|
|
|
97
93
|
| **NMTS key** | Opens your files. Every key in the account derives from it. Never goes to the server. | `NMTS_ACCOUNT_CODE_FILE=/path` (recommended) · `nmts login` · `NMTS_ACCOUNT_CODE` |
|
|
@@ -144,7 +140,8 @@ variables in the server's own `env` block. `nmts env` names the agent it can see
|
|
|
144
140
|
|
|
145
141
|
Your NMTS key is everything at once. A program that has it can read every file, upload,
|
|
146
142
|
delete and sign with the wallet, and its requests cannot be told apart from yours. It cannot be
|
|
147
|
-
rotated while keeping the account.
|
|
143
|
+
rotated while keeping the account. Give an agent its own account, made with `nmts create`, not
|
|
144
|
+
your main one.
|
|
148
145
|
|
|
149
146
|
## 🧰 Commands
|
|
150
147
|
|
|
@@ -213,6 +210,7 @@ rotated while keeping the account. **Use an account you would be willing to lose
|
|
|
213
210
|
| `nmts devices` | The devices signed in to this account. `--sign-out <id>` or `--sign-out all` ends one or all of them — needs your NMTS key, locked until `nmts unlock sign-out`, asked every run |
|
|
214
211
|
| `nmts mcp` | Serve a subset of the above as tools over the Model Context Protocol |
|
|
215
212
|
| `nmts s3` | Serve the drive to any S3 program, on this machine only |
|
|
213
|
+
| `nmts platform keygen` | Make the Ed25519 key pair a business signs its NMTS Platform requests with: both halves go to a file only you can read (mode 0600), and only the public half is printed. The public half is registered at nmts.me under Settings › Developer › Platform |
|
|
216
214
|
|
|
217
215
|
### Listing and fetching
|
|
218
216
|
|
|
@@ -252,7 +250,7 @@ nmts put film.mov --pay wallet --epochs 6 # six of the storage network
|
|
|
252
250
|
nmts put film.mov --pay wallet --storage fit # use a storage resource the wallet already holds, cut to size
|
|
253
251
|
```
|
|
254
252
|
|
|
255
|
-
The
|
|
253
|
+
The file is planned into the same parts, the chain quotes each part in WAL
|
|
256
254
|
and the relay's tip in SUI, the register transaction is dry-run for its fee, both balances are read,
|
|
257
255
|
and the review is printed — the term as epochs and as days — before the `wallet` agreement (scope
|
|
258
256
|
`storage`) is held against the total and anything is signed. A wallet known to be short is refused
|
|
@@ -511,7 +509,7 @@ documents this service publishes (`nmts_notices`, `nmts_notice`, `nmts_terms`, `
|
|
|
511
509
|
|
|
512
510
|
It deliberately does not offer credentials and agreements, the check a person has to pass,
|
|
513
511
|
permanent destruction, rebuilding a lost file list or putting the previous one back, or writing the
|
|
514
|
-
recovery files — those
|
|
512
|
+
recovery files — those need a person at a terminal. Nothing it offers can write outside the directory you name, and a wrong argument is refused
|
|
515
513
|
rather than guessed at. It is implemented directly, with no MCP SDK dependency.
|
|
516
514
|
|
|
517
515
|
## Letting an agent decide for itself
|
|
@@ -550,8 +548,7 @@ the one developer who builds NMTS, in the same inbox as the app's contact form,
|
|
|
550
548
|
back to the same thread (`nmts support list`, then `nmts support show <code>`). The tool shows you
|
|
551
549
|
exactly what will be sent before it goes; your NMTS key, API key, passphrase and file contents
|
|
552
550
|
are stripped on this machine first, and `--omit <text>` strips anything else you name. English is
|
|
553
|
-
preferred; Korean is read too.
|
|
554
|
-
about.
|
|
551
|
+
preferred; Korean is read too.
|
|
555
552
|
|
|
556
553
|
If the tool itself cannot run, write to **nmts@nmts.me** with what you ran and what it said.
|
|
557
554
|
|
|
@@ -566,12 +563,14 @@ endorsement, and we may decline or remove one without giving a reason.
|
|
|
566
563
|
|
|
567
564
|
## Licence
|
|
568
565
|
|
|
569
|
-
Apache-2.0 — the full text is in [LICENSE](LICENSE). It
|
|
570
|
-
2026-08-30; copies already held under
|
|
566
|
+
Apache-2.0 — the full text is in [LICENSE](LICENSE). It allows commercial use: a product built on
|
|
567
|
+
this tool can be sold. It moved here from AGPL-3.0-only on 2026-08-30; copies already held under
|
|
568
|
+
the AGPL stay under it.
|
|
571
569
|
|
|
572
|
-
|
|
570
|
+
If you need different terms, write to
|
|
573
571
|
**nmts@nmts.me** and say why — see [LICENSING.md](LICENSING.md). Code is welcome:
|
|
574
572
|
[CONTRIBUTING.md](CONTRIBUTING.md) says how it reaches here, and the
|
|
575
|
-
[Contributor License Agreement](CLA.md) is
|
|
573
|
+
[Contributor License Agreement](CLA.md) is the licence a contributor gives needmoretruth for what
|
|
574
|
+
they send.
|
|
576
575
|
|
|
577
576
|
Copyright © 2026 needmoretruth.
|
package/dist/account.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
// not hand it out. ⚠ `dataKey` is a different matter and is NOT returned by anything, here or
|
|
19
19
|
// there — the few commands that need it cut it from their own derivation and wipe it in the
|
|
20
20
|
// same function.
|
|
21
|
+
import { toBase64Url } from "./bytes.js";
|
|
21
22
|
import { DERIVED, loadCrypto } from "./crypto.js";
|
|
22
23
|
import { NmtsError } from "./errors.js";
|
|
23
24
|
/**
|
|
@@ -63,7 +64,7 @@ export async function identityOf(code) {
|
|
|
63
64
|
const [idFrom, idTo] = DERIVED.accountId;
|
|
64
65
|
const [shareFrom, shareTo] = DERIVED.shareAddress;
|
|
65
66
|
return {
|
|
66
|
-
accountId:
|
|
67
|
+
accountId: toBase64Url(derived.slice(idFrom, idTo)),
|
|
67
68
|
publicCode: glue.share_address_display(derived.slice(shareFrom, shareTo)),
|
|
68
69
|
displayCode: glue.account_code_display(bytes),
|
|
69
70
|
};
|