arbella 0.1.2 → 0.1.3

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
@@ -44,6 +44,7 @@ Needs Node 18+.
44
44
  ```sh
45
45
  npm install -g arbella
46
46
  arbella --help
47
+ arbella update # later: update arbella itself
47
48
  ```
48
49
 
49
50
  ## What it does
@@ -71,6 +72,7 @@ Supported today: **Claude Code**, **Codex**, and **Cursor**. Cursor support cove
71
72
  | [`arbella push`](#arbella-push) | Snapshot your setup and push it — the everyday one |
72
73
  | [`arbella pull <url>`](#arbella-pull) | Rebuild your setup on a fresh machine |
73
74
  | [`arbella status`](#arbella-status) | Show what a push would change — read-only |
75
+ | [`arbella update`](#arbella-update) | Update arbella itself through npm |
74
76
  | [`arbella auth`](#arbella-auth) | Sign in to your repo host |
75
77
  | [`arbella secrets`](#arbella-secrets) | Move credentials between machines, off Git |
76
78
 
@@ -143,6 +145,16 @@ arbella status --json # pipe it somewhere
143
145
 
144
146
  New and modified files, plugin drift, the secrets it would skip. Writes nothing, installs nothing.
145
147
 
148
+ ### `arbella update`
149
+
150
+ Updates the Arbella CLI package itself. It does not touch your backed-up Claude, Codex, or Cursor setup.
151
+
152
+ ```sh
153
+ arbella update # npm install -g arbella@latest
154
+ arbella update --version 0.1.2 # pin a specific release
155
+ arbella update --dry-run # show the npm command only
156
+ ```
157
+
146
158
  ### `arbella auth`
147
159
 
148
160
  Handles sign-in to your repo host. You rarely call it yourself — `push` and `pull` sign in on their own when they hit a private repo. It's here for when you'd rather log in ahead of time, or check where you stand.
package/dist/index.js CHANGED
@@ -7699,6 +7699,35 @@ function renderChangeLine(c) {
7699
7699
  return `${sigil} ${c.repoPath}${linkTag}`;
7700
7700
  }
7701
7701
 
7702
+ // src/commands/update.ts
7703
+ init_version();
7704
+ init_install();
7705
+ init_log();
7706
+ function normalizeVersion(version) {
7707
+ const trimmed = version?.trim();
7708
+ if (!trimmed) return "latest";
7709
+ if (trimmed.startsWith("arbella@")) return trimmed.slice("arbella@".length);
7710
+ return trimmed.replace(/^v(?=\d)/, "");
7711
+ }
7712
+ function packageSpec(version) {
7713
+ return `arbella@${normalizeVersion(version)}`;
7714
+ }
7715
+ function register7(program) {
7716
+ program.command("update").description("Update arbella itself through npm").option("--version <version>", "install a specific arbella version or npm tag instead of latest").option("--dry-run", "show the npm command without running it").action(async (opts) => {
7717
+ await run6(opts);
7718
+ });
7719
+ }
7720
+ async function run6(opts = {}) {
7721
+ const spec = packageSpec(opts.version);
7722
+ if (opts.dryRun) {
7723
+ log.info(`Would run: npm install -g ${spec}`);
7724
+ return;
7725
+ }
7726
+ log.info(`Updating arbella ${getPackageVersion()} -> ${spec}`);
7727
+ await npmInstallGlobal(spec);
7728
+ log.success(`arbella updated (${spec}).`);
7729
+ }
7730
+
7702
7731
  // src/commands/secrets.ts
7703
7732
  import path23 from "path";
7704
7733
  import * as clack2 from "@clack/prompts";
@@ -7912,7 +7941,7 @@ function assertBundle(value) {
7912
7941
  init_fs();
7913
7942
  init_log();
7914
7943
  var DEFAULT_BLOB_FILE = "arbella-secrets.blob";
7915
- function register7(program) {
7944
+ function register8(program) {
7916
7945
  const secrets = program.command("secrets").description(
7917
7946
  "Move secret files (auth tokens / credentials) between machines via an encrypted, passphrase-protected blob. Never uses git."
7918
7947
  );
@@ -8106,6 +8135,7 @@ Supported tools: ${supported}.`
8106
8135
  register5(program);
8107
8136
  register6(program);
8108
8137
  register7(program);
8138
+ register8(program);
8109
8139
  return program;
8110
8140
  }
8111
8141
  async function main(argv = process.argv) {