@crvouga/personal 0.0.0-stage → 0.1.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/README.md CHANGED
@@ -1,3 +1,105 @@
1
- # Temporary Holding Version
1
+ # Personal developer command center
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Public npm distribution: **`@crvouga/personal`**, executable **`personal`**.
4
+ The source workspace `@pkgs/personal-cli` stays private; its build bundles the
5
+ private fleet library into a standalone Node application. No Bun, repository
6
+ checkout, npm login or global installation is needed just to open the application.
7
+ Requires Node **22.13+ on the 22.x line, or 23.5+** with npm.
8
+
9
+ ```sh
10
+ npx --yes @crvouga/personal
11
+ ```
12
+
13
+ The terminal application has a searchable command palette, category submenus,
14
+ descriptions, target selection, progress indicators, result summaries, searchable
15
+ node/status/check drill-downs, remedies, retry/back navigation, and an add-node
16
+ wizard. It shows the equivalent noninteractive command before running anything.
17
+ Ctrl+C exits; `NO_COLOR` and narrow terminals are supported. It never clears the
18
+ terminal or automatically repairs machines. This is a command console, not an AI
19
+ chat service; no model key or chat subscription is required.
20
+
21
+ ## For people and agents
22
+
23
+ ```sh
24
+ npx --yes @crvouga/personal@latest commands --json --search ssh
25
+ npx --yes @crvouga/personal@latest agent --json
26
+ npx --yes @crvouga/personal@latest fleet doctor --local --json
27
+ npx --yes @crvouga/personal@latest fleet doctor --all --json
28
+ npx --yes @crvouga/personal@latest fleet doctor --node dev-linux --json
29
+ ```
30
+
31
+ Pin an **exact released version** instead of `latest` for automation. Direct
32
+ commands, `--json`, `--non-interactive` and redirected input never open prompts.
33
+ No arguments without a terminal prints the command catalog. JSON is one versioned
34
+ document on stdout; interactive chrome and progress use stderr. Exit codes:
35
+ **0** success/preview, **1** failed operation/check, **2** invalid usage/config,
36
+ **130** cancellation. `--strict` makes warnings and skips fail too.
37
+
38
+ `commands --json` exposes names, descriptions, categories, keywords, examples and
39
+ global flags; `agent --json` documents the output/safety contract; `fleet schema`
40
+ exposes the roster schema. JSON error messages never contain raw subprocess
41
+ output, environment variables, authentication responses or exception messages.
42
+
43
+ ## Register actual computers
44
+
45
+ Use the interactive **Fleet setup / add node** action, or preview first:
46
+
47
+ ```sh
48
+ personal fleet add --id dev-linux --ssh dev-linux --path /home/dev/workspace --json
49
+ personal fleet add --id dev-linux --ssh dev-linux --path /home/dev/workspace --apply --yes --json
50
+ personal fleet validate --json
51
+ personal fleet onboard --node dev-linux --json
52
+ personal fleet doctor --all --json
53
+ ```
54
+
55
+ This registers an **existing** computer; it does not provision a host, enable SSH,
56
+ accept a host key, log in, copy credentials, or edit SSH configuration. `--runtime`
57
+ may specify an absolute Node/Bun executable on the remote machine. The default is
58
+ `node` on the non-login SSH PATH. The bundled probe is streamed over SSH; the npm
59
+ package need not be installed on remote nodes. Remote targets require POSIX
60
+ shells; use WSL for Windows SSH nodes. Native Windows supports local commands.
61
+
62
+ Roster resolution: `--config`, `PERSONAL_FLEET_CONFIG`, closest ancestor
63
+ `.fleet.local.json`, then `~/.config/personal/fleet.json`. New rosters are saved
64
+ with mode 0600 using a lock and atomic replacement; existing entries are preserved,
65
+ duplicates fail, and symlink rosters are refused. Keep custom roster paths out of
66
+ Git. `fleet init` previews **example data**, not discovered machines; creating the
67
+ example also requires `--apply --yes`.
68
+
69
+ Controller checkout: `--workspace`, `PERSONAL_WORKSPACE`, closest ancestor
70
+ `mise.toml`, then the current directory. Opening the application requires no
71
+ checkout, but repository/dependency/toolchain checks need your actual personal
72
+ checkout. A missing checkout or roster is reported, never treated as healthy.
73
+
74
+ Doctor checks the controller and all configured nodes by default. `--node` limits
75
+ remote targets; `--local` skips remote connections and requires no roster. Its
76
+ `coverage` explicitly distinguishes all-configured, selected and local checks.
77
+ A roster is not discovery of every computer. Run from each intended controller:
78
+ directed SSH success is not all-pairs connectivity. T3 peer/relay traversal and
79
+ VS Code forwarding still need the operator tests in `fleet onboard`.
80
+
81
+ ## Sync is explicit
82
+
83
+ ```sh
84
+ personal fleet sync --node dev-linux --json
85
+ personal fleet sync --node dev-linux --apply --yes --json
86
+ ```
87
+
88
+ Sync delegates to the existing mise/setup owner, with frozen dependencies. It
89
+ does not replace workstation management or OpenTofu. `--pull` requests a
90
+ fast-forward-only pull and refuses dirty/detached checkouts. Never run sync on an
91
+ untrusted checkout: setup/dependency lifecycle scripts are executable code.
92
+ `npx --yes` approves the npm download only, **not** application mutations.
93
+
94
+ ## Development and release
95
+
96
+ ```sh
97
+ bun run personal # interactive development entry
98
+ bun run --cwd packages/personal-cli tc
99
+ bun run --cwd packages/personal-cli lint
100
+ bun run --cwd packages/personal-cli test
101
+ bun run personal:build
102
+ ```
103
+
104
+ See [releasing.md](releasing.md) for automatic CI releases, credential sources,
105
+ first-publish bootstrap, packed-consumer verification and recovery.