@veilio-inc/cli 0.3.1 → 0.3.2

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.
Files changed (2) hide show
  1. package/README.md +37 -3
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -28,7 +28,7 @@ behavior; it only unlocks the four commands below that name Cloud explicitly.
28
28
  | Command | Purpose |
29
29
  | -------------------- | --------------------------------------------------------------------- |
30
30
  | `scrub [files...]` | Mask identifiers, redact credentials. Reads stdin when given no file. |
31
- | `restore [files...]` | Swap placeholders back, strip AI-generated noise. |
31
+ | `restore [files...]` | Swap placeholders back, strip AI-generated noise. Signed in, also a teammate's placeholders — see below. |
32
32
  | `scan [files...]` | Detect credentials only. Never rewrites. Exits 1 on findings. |
33
33
  | `map` | Show the symbol map (`--clear` to wipe it). |
34
34
 
@@ -39,7 +39,7 @@ veilio login # email, password, and the authentication code i
39
39
  veilio whoami # who you're signed in as, no request made
40
40
  veilio maps list # ids, scope and symbol counts for everything in Cloud
41
41
  veilio maps pull <id> # decrypt locally, write second — never a partial write
42
- veilio maps push <name> # upload the local map under a new Cloud name
42
+ veilio maps push [name] # upload the local map under a new Cloud name
43
43
  veilio team unlock # open the team key with your vault passphrase (kept 7 days)
44
44
  veilio team lock # remove the unlocked team key from this machine
45
45
  veilio rules pull # fetch your custom rules; scrub then applies them offline
@@ -62,6 +62,29 @@ Custom rules (whitelist and replace, set in the web app) are applied by
62
62
  offline - and says on every run how many rules it applied and how old the copy
63
63
  is. Pull again after the rules change; `logout` removes the copy.
64
64
 
65
+ Three files, all `0600`, all under `~/.veilio/`: `credential.json` (the session,
66
+ removed by `logout`), `rules.json` (the rules copy) and `team-keys.json` (the
67
+ keys `team unlock` opened, kept seven days).
68
+
69
+ ### Restoring a teammate's placeholders
70
+
71
+ `veilio restore` resolves a placeholder this project's map cannot explain
72
+ against the team's maps, so a reply pasted from a teammate's agent comes back
73
+ with the real names:
74
+
75
+ - **A disputed placeholder is left, not guessed.** Where this project's store
76
+ and the team use the same placeholder for *different* identifiers, neither
77
+ wins and the placeholder stays in the output with a line naming it. Same for
78
+ one this project numbered on its own while the team was out of reach — a
79
+ wrong name restored silently is worse than a placeholder left visibly.
80
+ - **Locked, and it says so.** With no team key on this machine it tells you to
81
+ run `veilio team unlock` rather than restoring half the text.
82
+ - **Signed out, it makes no request at all** — that restore is as offline as it
83
+ has always been. Signed in, it waits at most **5 seconds** for Cloud, so a
84
+ hung instance cannot stall `… | veilio restore > file`.
85
+ - **The counts are this project's.** "Restored 8 of 9" is measured against your
86
+ own map, not against a team namespace of four hundred entries.
87
+
65
88
  The map commands are clients of `GET /api/maps`, `GET /api/maps/:id` and
66
89
  `POST /api/maps` — the exact same routes the browser uses, behind the exact
67
90
  same entitlement check. There is no CLI-shaped API and nothing here can reach
@@ -77,9 +100,20 @@ a plan feature the web app couldn't.
77
100
  -m, --map <path> Use a specific map file
78
101
  --json Machine-readable output (scan, map)
79
102
  --strict scan: also fail on advisory findings
80
- -q, --quiet Suppress the stderr summary
103
+ --keep-docs restore: keep JSDoc blocks the model wrote
104
+ -f, --force Allow a map write that would drop existing entries
105
+ -q, --quiet Suppress the all-clear summary (findings always show)
106
+ --instance <url> login: the Veilio instance to sign in to. Defaults to
107
+ the public Cloud; https required (localhost excepted)
108
+ -h, --help Show this help
109
+ -v, --version Show the version
81
110
  ```
82
111
 
112
+ `--keep-docs` is worth knowing about: the default strip removes JSDoc along with
113
+ the narration and TODOs, which is wrong when the model was *asked* to document
114
+ its output. `--quiet` suppresses the all-clear only — a finding still prints,
115
+ because the text on stdout is what you are about to paste somewhere.
116
+
83
117
  ## Piping
84
118
 
85
119
  Transformed code goes to **stdout**; summaries, warnings and errors go to **stderr**. That split is what makes the CLI composable — the summary stays visible without corrupting the pipe.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veilio-inc/cli",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Anonymize identifiers and redact credentials in source code before it reaches an LLM \u2014 from the terminal, a pipe, or a pre-commit hook.",
5
5
  "type": "module",
6
6
  "bin": {