gigabuddy 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gigabuddy",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Command-line sign-in for Gigabuddy. Authenticates your machine and configures npm for @gigabuddy packages.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -20,21 +20,16 @@ export declare function resolveEnv(options: {
20
20
  export declare function activeAccount(explicit?: string): ResolvedAccount;
21
21
  export declare function signIn(env: Env, account?: string): Promise<UserCredentials>;
22
22
  /**
23
- * `gigabuddy login` — sign in AND set npm up, because for this client they are
24
- * one act. Installing `@gigabuddy` packages is what the CLI is for: nothing
25
- * else on the machine reads the credential this writes (the agent client
26
- * custodies its own), so a sign-in that stops short of npm has left the user
27
- * with a file and no capability.
28
- *
29
- * There is no prompt, and deliberately so. The device flow cannot complete
30
- * without a human approving a code in a browser, so "is anyone there?" is
31
- * already answered yes by the time we get here — and TTY detection would get
32
- * it wrong anyway for the SSH and devcontainer cases, silently skipping setup
33
- * for someone who just approved. We tell them exactly what was written
34
- * instead; `--no-npm` is there for the rare credential-file-only case.
23
+ * `gigabuddy login` — sign in. npm registry setup is OPT-IN (`--npm`), not
24
+ * part of a plain login: the registry is a pre-release surface we run
25
+ * internally, and this client's day job is now the account/agent gate — a
26
+ * sign-in no longer implies "I'm here to npm-install". (The original
27
+ * everything-in-one-act default dates from when installing `@gigabuddy`
28
+ * packages was the CLI's sole purpose; that stopped being true.) A plain
29
+ * login prints the one-liner for getting npm access, and `login --npm`
30
+ * remains the whole npm ceremony — sign in first if needed, then mint.
35
31
  */
36
32
  export declare function loginCommand(env: Env, options?: {
37
- npm?: boolean;
38
33
  account?: string;
39
34
  }): Promise<void>;
40
35
  /**
@@ -71,6 +66,22 @@ export interface SetupRunner {
71
66
  * custodies its own credential; our sign-in is neither needed nor offered here.
72
67
  */
73
68
  export declare function setupCommand(runner?: SetupRunner): void;
69
+ export interface UpdateRunner {
70
+ /** The latest published version on npm, or null when it can't be read. */
71
+ latestVersion(): string | null;
72
+ /** Run `npm i -g gigabuddy@latest` with output flowing to the user. Returns exit code. */
73
+ installLatest(): number;
74
+ /** Re-run the idempotent plugin refresh. Returns exit code, or 'missing' with no claude binary. */
75
+ refreshPlugin(): number | 'missing';
76
+ }
77
+ /**
78
+ * `gigabuddy update` — bring everything gigabuddy on this machine current.
79
+ * Doctor DIAGNOSES and never mutates; this is the verb that acts. There are
80
+ * only two things to act on: this CLI (npm global) and the Claude Code plugin
81
+ * shell (idempotent marketplace refresh). The agent server needs nothing —
82
+ * the plugin launches `@gigabuddy/agent@latest` via npx, so it updates itself.
83
+ */
84
+ export declare function updateCommand(current: string, runner?: UpdateRunner): Promise<void>;
74
85
  export declare function statusCommand(account?: string): Promise<void>;
75
86
  /**
76
87
  * `gigabuddy accounts` — every account on this machine, who each is signed in