@uru-intelligence/cli 0.1.0 → 0.3.53

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 (3) hide show
  1. package/README.md +60 -12
  2. package/dist/uru.mjs +4245 -876
  3. package/package.json +8 -3
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @uru-intelligence/cli
1
+ # uru
2
2
 
3
3
  Full-platform `uru` CLI. The package installs a `uru` binary and uses the same
4
4
  registry-backed platform operations exposed through MCP and the web UI.
@@ -8,7 +8,7 @@ staging smoke gates are all green; run it from the repo with Bun while iterating
8
8
 
9
9
  ```bash
10
10
  cd apps/cli
11
- bun src/index.ts login --token "$URU_TOKEN"
11
+ bun src/index.ts login
12
12
  bun src/index.ts whoami --json
13
13
  bun src/index.ts switch <workspace-id>
14
14
  ```
@@ -23,13 +23,25 @@ bun src/index.ts link --workspace <workspace-id> --path 'library/Golden Gems/My
23
23
 
24
24
  # Initialize and operate Gems through first-class Gem commands.
25
25
  bun src/index.ts init 'library/Golden Gems/My Gem.gem' --file ./main.html
26
+ bun src/index.ts build 'library/Golden Gems/My Gem.gem' --dry-run --outdir ./dist/uru
26
27
  bun src/index.ts deploy 'library/Golden Gems/My Gem.gem'
28
+ bun src/index.ts deploy 'library/Golden Gems/My Gem.gem' --skip-promote --no-wait
29
+ bun src/index.ts deploy 'library/Golden Gems/My Gem.gem' --prod --skip-promote --no-wait
30
+ bun src/index.ts promote <version-id> --link-id <link-id>
31
+ bun src/index.ts rollback <version-id> --link-id <link-id> --yes
27
32
  bun src/index.ts status 'library/Golden Gems/My Gem.gem' --json
28
33
  bun src/index.ts logs 'library/Golden Gems/My Gem.gem' --limit 100
34
+ bun src/index.ts logs 'library/Golden Gems/My Gem.gem' --follow
35
+ bun src/index.ts --output-format stream-json logs 'library/Golden Gems/My Gem.gem' --follow
29
36
  bun src/index.ts open 'library/Golden Gems/My Gem.gem'
30
37
  bun src/index.ts gems inspect 'library/Golden Gems/My Gem.gem'
31
38
  bun src/index.ts gems validate 'library/Golden Gems/My Gem.gem'
32
39
  bun src/index.ts gems build 'library/Golden Gems/My Gem.gem'
40
+ bun src/index.ts gems versions upload 'library/Golden Gems/My Gem.gem' --message "ready"
41
+ bun src/index.ts gems versions deploy <version-id> 'library/Golden Gems/My Gem.gem'
42
+ bun src/index.ts gems checks <version-id> 'library/Golden Gems/My Gem.gem'
43
+ bun src/index.ts gems checks run security 'library/Golden Gems/My Gem.gem' --deployment-id <deployment-id> --blocking --deep
44
+ bun src/index.ts gems checks run browser 'library/Golden Gems/My Gem.gem' --deployment-id <deployment-id> --blocking
33
45
  bun src/index.ts gems read 'library/Golden Gems/My Gem.gem' main.html
34
46
  bun src/index.ts gems write 'library/Golden Gems/My Gem.gem' main.html --file ./main.html
35
47
 
@@ -58,8 +70,20 @@ bun src/index.ts api platform/tools/search_tools/execute -F query=gem
58
70
  # MCP client config helper. Prefer a scoped API key for real installs.
59
71
  bun src/index.ts mcp config --api-key "$URU_API_KEY"
60
72
  bun src/index.ts mcp install --path ~/.config/claude-code/mcp.json --api-key "$URU_API_KEY"
73
+
74
+ # Local shell integration.
75
+ bun src/index.ts complete bash
76
+ bun src/index.ts complete zsh
77
+ bun src/index.ts complete fish
61
78
  ```
62
79
 
80
+ Gem version commands create immutable, build-backed versions through
81
+ `gem_control_plane` `op=version_upload`, then deploy those version ids through
82
+ `op=version_deploy`. Provider-internal flags such as `--runtime-provider` are
83
+ not accepted: runtime routing is compiled server-side from the Gem contract.
84
+ Gradual rollout percentages below 100 still fail with an explicit error until
85
+ split traffic routing is enabled.
86
+
63
87
  The scaffold defaults to the production API (`https://api.uruintelligence.com`).
64
88
  Use `--api-url`, `URU_API_BASE`, or `URU_API_URL` to point it at staging or a local backend:
65
89
 
@@ -70,25 +94,38 @@ URU_API_BASE=http://127.0.0.1:8000 bun src/index.ts whoami --json
70
94
 
71
95
  ## Auth and local state
72
96
 
73
- Current auth remains token/API-key based:
74
-
75
- - precedence: `--token` > `--token-file` > `--token-stdin` > `URU_TOKEN` > local config
97
+ The default login path is browser OAuth with PKCE and OS-keychain storage.
98
+ Headless environments can use device login or explicit token/API-key paths:
99
+
100
+ - `uru login` opens browser OAuth and stores the exchanged CLI session token in the OS keychain
101
+ - `uru login --device` prints a device-code URL for SSH/headless environments
102
+ - `uru login --token ...` stores the token in OS credential storage when available: macOS Keychain, Linux `secret-tool`/libsecret, or Windows Credential Manager via PowerShell
103
+ - `uru login --token ... --insecure-storage` is the explicit plaintext fallback
104
+ - Linux token storage requires `secret-tool` (often installed as `libsecret-tools`); Windows token storage requires PowerShell access to Credential Manager. If the OS store is unavailable, login fails closed with an actionable `--insecure-storage` fallback message.
105
+ - interactive commands with no stored token start browser login and then retry the command without printing login success text to stdout
106
+ - `--no-input` disables implicit login and exits `4` when authentication is missing
107
+ - precedence: `--token` / `--token-file` / `--token-stdin` > `URU_TOKEN` > OS keychain > `--insecure-storage` local config
76
108
  - local config: `URU_CONFIG_HOME`, then XDG config home, then `~/.config/uru`
77
109
  - config file permissions: `0600`
78
110
  - linked project state: `.uru/project.json` with `{workspaceId, gemId, libraryPath}`
79
111
  - no credentials are written to `.uru/project.json`
80
-
81
- Target auth from `docs/plans/uru-mcp-cli-design-standards.md` is still pending:
82
- browser OAuth + PKCE, device-code fallback, OS keychain storage, and Gem-scoped
83
- deploy tokens for CI.
112
+ - Gem-scoped deploy tokens for CI use `uru tokens create|ls|revoke`
113
+ - created tokens default to the server-enforced `gem:deploy` scope
114
+ - custom `--scope`/`--scopes` values must include `gem:deploy` before the token
115
+ can operate Gem deploy/query/control routes
116
+ - Gem secrets use `uru secrets put|ls|rm`; values are write-only
117
+ - `uru env pull` writes a metadata-only template, never downloads remote secret
118
+ values, and clamps the output file to `0600` even when overwriting an existing
119
+ file
120
+ - `uru env run -- <cmd>` overlays local values and redacts all non-empty values from captured output
84
121
 
85
122
  ## Install shape
86
123
 
87
- The package name is `@uru-intelligence/cli`; the installed binary is `uru`:
124
+ The package name is `@uru-intelligence/cli`; the installed binary is still `uru`:
88
125
 
89
126
  ```bash
90
127
  npm install -g @uru-intelligence/cli
91
- uru login --token-file ~/.config/uru/token
128
+ uru login --token "$URU_TOKEN"
92
129
  uru whoami --json
93
130
  ```
94
131
 
@@ -110,4 +147,15 @@ URU_CLI_MCP_STAGING_SMOKE_TARGET=staging \
110
147
  bun --filter=@uru-intelligence/cli run smoke:staging -- --json
111
148
  ```
112
149
 
113
- Remaining after the first npm release: OAuth/device auth, OS keychain storage, shell completions, compiled binaries, and fully-live secret/env/token backend capabilities where product scope requires them.
150
+ The npm package remains the canonical install path. Release builds can also
151
+ produce standalone Bun-compiled binaries for the planned macOS/Linux/Windows
152
+ matrix:
153
+
154
+ ```bash
155
+ bun --filter=@uru-intelligence/cli run build:binaries # current platform
156
+ bun --filter=@uru-intelligence/cli run build:binaries:matrix # planned release matrix
157
+ bun --filter=@uru-intelligence/cli run smoke:binaries # dry-run matrix planner
158
+ ```
159
+
160
+ The updater command is intentionally conservative: `uru update` prints the exact
161
+ `npm install -g @uru-intelligence/cli@latest` command instead of self-mutating the installation.