@robbiesrobotics/alice-agents 1.5.9 โ†’ 1.5.11

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,187 +1,207 @@
1
- # ๐Ÿง  A.L.I.C.E. โ€” AI Agent Framework for NemoClaw & OpenClaw
1
+ # ๐Ÿง  A.L.I.C.E. โ€” Multi-Agent AI Team Framework
2
2
 
3
3
  **Adaptive Learning & Intelligent Coordination Engine**
4
4
 
5
- One conversation. One orchestrator. Ten starter agents โ€” with 23 more in Pro. A.L.I.C.E. turns your agent runtime into a full AI team โ€” talk to A.L.I.C.E. (or just Alice), and she routes your request to the right expert.
5
+ One conversation. One orchestrator. 10 starter agents โ€” with 23 more in Pro. Tell A.L.I.C.E. what you need, and she routes it to the right specialist and delivers the result.
6
6
 
7
- **NemoClaw compatible** โ€” A.L.I.C.E. v1.2.7+ runs natively on [NVIDIA NemoClaw](https://nvidia.com/nemoclaw), the secure open-source agent runtime. Agents execute inside the OpenShell sandbox for enterprise-grade security.
7
+ A.L.I.C.E. runs on any supported runtime โ€” OpenClaw, NemoClaw, or Hermes Agent. No required API key, no vendor lock-in.
8
+
9
+ ## Supported Runtimes
10
+
11
+ | Runtime | Status | Install Guide |
12
+ |---------|--------|---------------|
13
+ | **Hermes Agent** | โœ… Recommended | [hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com) |
14
+ | **NemoClaw** | โœ… Supported | [nvidia.com/nemoclaw](https://nvidia.com/nemoclaw) |
15
+ | **OpenClaw** | โœ… Supported | [openclaw.ai](https://openclaw.ai) |
16
+
17
+ ## Prerequisites
18
+
19
+ **Before installing**, make sure your runtime has a default model set:
20
+
21
+ - **Hermes Agent:** Run `hermes model` to select a provider and model
22
+ - **NemoClaw / OpenClaw:** Run `openclaw configure` โ†’ select "model" to configure your default
23
+
24
+ A.L.I.C.E. uses whatever model your runtime already has configured. If no model is set, the installer will tell you exactly which command to run.
8
25
 
9
26
  ## Quick Start
10
27
 
11
28
  ```bash
29
+ # Interactive install โ€” auto-detects your runtime
12
30
  npx @robbiesrobotics/alice-agents
13
- ```
14
31
 
15
- That's it. The installer detects your runtime (NemoClaw or OpenClaw) and sets everything up. If neither is installed, it will offer to install NemoClaw โ€” the recommended option.
32
+ # Non-interactive (Starter tier, auto-detected defaults)
33
+ npx @robbiesrobotics/alice-agents --yes
34
+
35
+ # Force a specific runtime
36
+ npx @robbiesrobotics/alice-agents --yes --runtime hermes
37
+ npx @robbiesrobotics/alice-agents --yes --runtime openclaw
38
+ ```
16
39
 
17
40
  ## What You Get
18
41
 
19
- **Starter** includes 10 agents. **Pro** unlocks 23 more โ€” [sign up at getalice.av3.ai](https://getalice.av3.ai/signup?plan=pro)
20
-
21
- **A.L.I.C.E. | Control Cloud** is available as a Pro add-on. If enabled during install, the package now:
22
- - installs the `mission-control-bridge` plugin into your OpenClaw home
23
- - writes a portable local A.L.I.C.E. | Control config at `~/.openclaw/.alice-mission-control.json`
24
- - enables the bridge in `openclaw.json` so your runtime can forward live telemetry to A.L.I.C.E. | Control
25
- - installs a bundled `coding-agent` skill that prefers Codex for OpenAI defaults and Claude Code for Anthropic defaults
26
-
27
- An orchestrator (A.L.I.C.E., also addressable as Alice or Olivia) backed by specialist agents across every domain:
28
-
29
- | Agent | Domain | Emoji | Tier |
30
- |-------|--------|-------|------|
31
- | **A.L.I.C.E.** | Orchestration | ๐Ÿง  | Starter |
32
- | **Dylan** | Development | ๐Ÿ’ป | Starter |
33
- | **Selena** | Security | ๐Ÿ›ก๏ธ | Starter |
34
- | **Devon** | DevOps | ๐Ÿš€ | Starter |
35
- | **Quinn** | QA/Testing | โœ… | Starter |
36
- | **Felix** | Frontend | ๐Ÿ–ฅ๏ธ | Starter |
37
- | **Daphne** | Documentation | ๐Ÿ“ | Starter |
38
- | **Rowan** | Research | ๐Ÿ” | Starter |
39
- | **Darius** | Data | ๐Ÿ“Š | Starter |
40
- | **Sophie** | Support | ๐Ÿ’ฌ | Starter |
41
- | **Hannah** | HR | ๐Ÿ‘ฅ | Pro |
42
- | **Aiden** | Analytics | ๐Ÿ“ˆ | Pro |
43
- | **Clara** | Communication | โœ๏ธ | Pro |
44
- | **Avery** | Automation | โš™๏ธ | Pro |
45
- | **Owen** | Operations | ๐Ÿ”ง | Pro |
46
- | **Isaac** | Integration | ๐Ÿ”Œ | Pro |
47
- | **Tommy** | Travel | โœˆ๏ธ | Pro |
48
- | **Sloane** | Sales | ๐Ÿ’ผ | Pro |
49
- | **Nadia** | UI/UX Design | ๐ŸŽจ | Pro |
50
- | **Morgan** | Marketing | ๐Ÿ“ฃ | Pro |
51
- | **Alex** | API Crawling | ๐Ÿ•ท๏ธ | Pro |
52
- | **Uma** | UX Research | ๐Ÿงช | Pro |
53
- | **Caleb** | CRM | ๐Ÿ—‚๏ธ | Pro |
54
- | **Elena** | Estimation | ๐Ÿ“‹ | Pro |
55
- | **Audrey** | Accounting | ๐Ÿ’ฐ | Pro |
56
- | **Logan** | Legal | โš–๏ธ | Pro |
57
- | **Eva** | Executive Assistant | ๐Ÿ“Œ | Pro |
58
- | **Parker** | Project Management | ๐Ÿ“… | Pro |
59
- | **Aria** | Autonomous Research | ๐Ÿ”ฌ | Pro |
60
- | **Nate** | n8n Automation | ๐Ÿ”ง | Pro |
61
- | **MaxxiPro** | Roof Maxx Expert | ๐Ÿ  | Pro |
62
- | **AccuScope** | AccuLynx CRM Auditor | ๐Ÿ“Š | Pro |
63
- | **SmokeTestAgent** | QA Specialist | ๐Ÿงช | Pro |
64
-
65
- ## Model Flexibility
66
-
67
- A.L.I.C.E. works with **whatever model you already have configured** in OpenClaw/NemoClaw. There's no required API key โ€” just use what you've got.
68
-
69
- When you install, the installer will **auto-detect your configured model** and let the agent team inherit that runtime default. You can also choose from presets or specify a custom model for the OpenClaw/NemoClaw defaults A.L.I.C.E. should use.
70
-
71
- | Preset | Models | Best For |
72
- |--------|--------|----------|
73
- | **Auto-detect** (default) | Your current OpenClaw/NemoClaw default | Zero friction โ€” agents inherit what your runtime already uses |
74
- | **Sonnet** | claude-sonnet-4-6 for all | Balanced speed + quality (requires Anthropic key) |
75
- | **Opus + Sonnet** | Opus for orchestrator, Sonnet for specialists | Maximum quality (requires Anthropic key) |
76
- | **OpenAI** | GPT-5.4 / GPT-5.4-mini | OpenAI users |
77
- | **Local (Ollama)** | Local models | Privacy, offline use, no API key needed |
78
- | **Custom** | Your choice | Full control |
79
-
80
- > **Tip:** We prefer Claude Opus for orchestration when available โ€” but A.L.I.C.E. is model-agnostic. Whatever model OpenClaw has configured will work.
42
+ **Starter** โ€” 10 core agents. **Pro** โ€” 23 additional agents. [Sign up at getalice.av3.ai](https://getalice.av3.ai/signup?plan=pro)
43
+
44
+ | Agent | Domain | Tier |
45
+ |-------|--------|------|
46
+ | **A.L.I.C.E.** | Orchestration | Starter |
47
+ | **Dylan** | Development | Starter |
48
+ | **Selena** | Security | Starter |
49
+ | **Devon** | DevOps | Starter |
50
+ | **Quinn** | QA / Testing | Starter |
51
+ | **Felix** | Frontend | Starter |
52
+ | **Daphne** | Documentation | Starter |
53
+ | **Rowan** | Research | Starter |
54
+ | **Darius** | Data | Starter |
55
+ | **Sophie** | Support | Starter |
56
+ | **Hannah** | HR | Pro |
57
+ | **Aiden** | Analytics | Pro |
58
+ | **Clara** | Communication | Pro |
59
+ | **Avery** | Automation | Pro |
60
+ | **Owen** | Operations | Pro |
61
+ | **Isaac** | Integration | Pro |
62
+ | **Tommy** | Travel | Pro |
63
+ | **Sloane** | Sales | Pro |
64
+ | **Nadia** | UI/UX Design | Pro |
65
+ | **Morgan** | Marketing | Pro |
66
+ | **Alex** | API Crawling | Pro |
67
+ | **Uma** | UX Research | Pro |
68
+ | **Caleb** | CRM | Pro |
69
+ | **Elena** | Estimation | Pro |
70
+ | **Audrey** | Accounting | Pro |
71
+ | **Logan** | Legal | Pro |
72
+ | **Eva** | Executive Assistant | Pro |
73
+ | **Parker** | Project Management | Pro |
74
+ | **Aria** | Autonomous Research | Pro |
75
+ | **Nate** | n8n Automation | Pro |
76
+ | **MaxxiPro** | Roof Maxx Expert | Pro |
77
+ | **AccuScope** | AccuLynx CRM Auditor | Pro |
78
+ | **SmokeTestAgent** | QA Specialist | Pro |
79
+
80
+ ## How It Works
81
+
82
+ 1. **You talk to A.L.I.C.E.** โ€” she's your single point of contact
83
+ 2. **A.L.I.C.E. routes to specialists** โ€” "Build me an API" โ†’ Dylan; "Audit my security" โ†’ Selena
84
+ 3. **Specialists do the work** โ€” using their domain tools and knowledge
85
+ 4. **A.L.I.C.E. synthesizes** โ€” combines results into one clear answer
86
+
87
+ Each specialist agent operates within their domain and flags when something falls outside their scope.
88
+
89
+ ## Model Configuration
90
+
91
+ A.L.I.C.E. does **not** pick a model for you. It uses whatever your runtime already has configured.
92
+
93
+ ### Before Installing
94
+
95
+ **Hermes Agent:**
96
+ ```bash
97
+ hermes model
98
+ # Follow the prompts to select a provider (e.g., OpenAI, Anthropic, Ollama, Nous Portal) and default model
99
+ ```
100
+
101
+ **OpenClaw / NemoClaw:**
102
+ ```bash
103
+ openclaw configure
104
+ # Select "model" โ†’ choose your provider and default model
105
+ ```
106
+
107
+ ### Model Presets (OpenClaw/NemoClaw only)
108
+
109
+ If your runtime already has a model configured, A.L.I.C.E. uses it automatically. The installer will not ask about models.
110
+
111
+ If you need to override for OpenClaw/NemoClaw specifically, you can pass model hints before install:
112
+ ```bash
113
+ # Set model in OpenClaw config directly
114
+ openclaw configure --section model
115
+
116
+ # Or configure API keys for your provider
117
+ openclaw configure --section credentials
118
+ ```
81
119
 
82
120
  ## Install Options
83
121
 
84
122
  ```bash
85
- # Interactive install
123
+ # Interactive install โ€” auto-detects runtime and guides you through setup
86
124
  npx @robbiesrobotics/alice-agents
87
125
 
88
- # Non-interactive with defaults (detected model if available, otherwise Sonnet; Starter tier unless --tier pro)
126
+ # Non-interactive (uses detected defaults)
89
127
  npx @robbiesrobotics/alice-agents --yes
90
128
 
91
- # Non-interactive Pro install with A.L.I.C.E. | Control Cloud enabled
92
- npx @robbiesrobotics/alice-agents --yes --tier pro --license-key YOUR_KEY --cloud --cloud-token YOUR_TOKEN
129
+ # Pro tier
130
+ npx @robbiesrobotics/alice-agents --yes --tier pro
93
131
 
94
- # Force the coding tool preference for this install
95
- npx @robbiesrobotics/alice-agents --yes --coding-tool codex
132
+ # With A.L.I.C.E. | Control Cloud (Pro)
133
+ npx @robbiesrobotics/alice-agents --yes --tier pro --license-key YOUR_KEY --cloud
96
134
 
97
- # Show help
98
- npx @robbiesrobotics/alice-agents --help
99
- ```
135
+ # Force a specific runtime (useful on machines with multiple runtimes)
136
+ npx @robbiesrobotics/alice-agents --yes --runtime hermes
137
+ npx @robbiesrobotics/alice-agents --yes --runtime openclaw
100
138
 
101
- ### Install Modes
139
+ # Reinstall over existing A.L.I.C.E.
140
+ npx @robbiesrobotics/alice-agents --yes --force
102
141
 
103
- - **Fresh** โ€” Replaces the agents section in `openclaw.json` (recommended for first install)
104
- - **Merge** โ€” Adds A.L.I.C.E. agents alongside your existing agents
105
- - **Upgrade** โ€” Updates product files (SOUL.md, AGENTS.md, etc.) without touching user customizations
142
+ # Show all options
143
+ npx @robbiesrobotics/alice-agents --help
144
+ ```
106
145
 
107
- ### A.L.I.C.E. | Control Cloud
146
+ ## A.L.I.C.E. | Control Cloud
108
147
 
109
- If you're a Pro user with the cloud add-on, the installer can configure your local runtime for A.L.I.C.E. | Control in the same pass.
148
+ A Pro add-on that connects your local runtime to the A.L.I.C.E. Control web dashboard. Enables telemetry, fleet visibility, and remote agent management.
110
149
 
111
- - Interactive install: choose `Pro`, validate your license, then enable the A.L.I.C.E. | Control Cloud add-on when prompted
112
- - Non-interactive install: pass `--tier pro --license-key YOUR_KEY --cloud`
113
- - Optional flags:
114
- - `--cloud-token <token>` โ€” access or ingest token for authenticated telemetry
115
- - `--cloud-dashboard-url <url>` โ€” defaults to `https://alice.av3.ai`
116
- - `--cloud-ingest-url <url>` โ€” defaults to `<dashboard-url>/api/v1/ingest`
150
+ ```bash
151
+ npx @robbiesrobotics/alice-agents --yes --tier pro --license-key YOUR_KEY --cloud
152
+ ```
117
153
 
118
- The cloud config is stored in `~/.openclaw/.alice-mission-control.json`, and the bundled bridge plugin reads from that file so the setup remains portable across macOS, Linux, and Windows.
154
+ Optional flags:
155
+ - `--cloud-token <token>` โ€” access or ingest token
156
+ - `--cloud-dashboard-url <url>` โ€” defaults to `https://alice.av3.ai`
157
+ - `--cloud-ingest-url <url>` โ€” defaults to `<dashboard-url>/api/v1/ingest`
119
158
 
120
- ## Upgrade
159
+ ## Upgrading
121
160
 
122
- Re-run the installer and choose "Upgrade":
161
+ ```bash
162
+ npx @robbiesrobotics/alice-agents --update
163
+ ```
123
164
 
165
+ Or run interactively and select "Upgrade":
124
166
  ```bash
125
167
  npx @robbiesrobotics/alice-agents
126
- # Select: Upgrade
168
+ # โ†’ Select: Upgrade
127
169
  ```
128
170
 
129
- This updates agent templates and config while preserving your PLAYBOOK.md, LEARNINGS.md, FEEDBACK.md, and memory/ directories.
171
+ Upgrade preserves your `PLAYBOOK.md`, `LEARNINGS.md`, `FEEDBACK.md`, and `memory/` directories.
130
172
 
131
- ## Uninstall
173
+ ## Uninstalling
132
174
 
133
175
  ```bash
134
176
  npx @robbiesrobotics/alice-agents --uninstall
135
177
  ```
136
178
 
137
- Removes A.L.I.C.E. agents from `openclaw.json` while preserving any non-ALICE agents. Creates a backup before making changes.
179
+ Removes A.L.I.C.E. agents from your runtime config. Creates a backup first.
138
180
 
139
- ## Maintainer Release Guard
181
+ ## Requirements
140
182
 
141
- Maintainer publishes are now gated.
183
+ - **Hermes Agent** v0.10.0+ **or** **OpenClaw** / **NemoClaw** installed and configured
184
+ - A default model set in your runtime (`hermes model` or `openclaw configure`)
185
+ - Node.js 18+ (for the installer itself)
186
+ - For local models: [Ollama](https://ollama.com) running locally
142
187
 
143
- - `npm publish` runs `prepublishOnly`
144
- - that hook runs tests, syntax checks, and `npm run release:check`
145
- - publish is blocked unless the package version has a matching git tag on `HEAD`
146
- - publish is blocked unless `landing/content/changelog.md` contains the matching version entry
147
- - publish is blocked unless `releases/vX.Y.Z.md` exists and is marked `Status: approved`
188
+ ## Architecture
148
189
 
149
- Use `releases/TEMPLATE.md` as the starting point for each release brief.
190
+ A.L.I.C.E. is an orchestrator + specialist agent team. The orchestrator (A.L.I.C.E.) receives all requests, classifies intent, routes to the right specialist(s), and synthesizes results.
150
191
 
151
- ## How It Works
192
+ On **Hermes Agent:** A.L.I.C.E. and all specialists are installed as Hermes skills (`~/.hermes/skills/alice/`). Delegation is skill-to-skill via Hermes tool calling.
152
193
 
153
- 1. **You talk to A.L.I.C.E.** โ€” she's your single point of contact
154
- 2. **A.L.I.C.E. routes to specialists** โ€” "Build me an API" โ†’ Dylan (Development)
155
- 3. **Specialists do the work** โ€” using their domain-specific tools and expertise
156
- 4. **A.L.I.C.E. synthesizes** โ€” combines results and presents them to you
194
+ On **OpenClaw / NemoClaw:** A.L.I.C.E. and specialists are installed as agent workspaces. Delegation uses `sessions_spawn`.
157
195
 
158
- Each agent has its own workspace with:
159
- - `SOUL.md` โ€” personality and values
160
- - `AGENTS.md` โ€” operating instructions
161
- - `PLAYBOOK.md` โ€” learned patterns (evolves over time)
162
- - `LEARNINGS.md` โ€” task log
163
- - `memory/` โ€” persistent context between sessions
196
+ Both architectures are functionally equivalent โ€” the user experience is identical.
164
197
 
165
198
  ## Compatibility
166
199
 
167
- A.L.I.C.E. runs on any OpenClaw-compatible runtime:
168
-
169
- | Runtime | Status | Notes |
170
- |---------|--------|-------|
171
- | **NemoClaw** | โœ… Recommended | NVIDIA's secure distribution. Agents run inside OpenShell sandbox. [Get NemoClaw](https://nvidia.com/nemoclaw) |
172
- | **OpenClaw** | โœ… Fully supported | Lightweight option. [openclaw.ai](https://openclaw.ai) |
173
-
174
- ### Why NemoClaw?
175
-
176
- NemoClaw is NVIDIA's open-source, enterprise-grade distribution of OpenClaw. It adds the OpenShell security sandbox โ€” isolating what agents can access on your machine, enforcing policy-based guardrails, and keeping your data private. A.L.I.C.E. is NemoClaw-native as of v1.2.7: the installer defaults to NemoClaw, and agents display their sandbox status on startup.
177
-
178
- If you're already running NemoClaw, A.L.I.C.E. works out of the box โ€” no extra config needed.
179
-
180
- ## Requirements
181
-
182
- - [OpenClaw](https://openclaw.ai) or [NemoClaw](https://nemoclaw.com) installed and configured
183
- - Node.js 18+
184
- - At least one model configured in OpenClaw or NemoClaw โ€” no specific API key required. A.L.I.C.E. uses whatever you already have set up.
200
+ | Runtime | Agent Model | Config Location |
201
+ |---------|-------------|----------------|
202
+ | Hermes Agent | `~/.hermes/config.yaml` | `~/.hermes/skills/alice/` |
203
+ | NemoClaw | `~/.nemoclaw/openclaw.json` | `~/.nemoclaw/workspace/` |
204
+ | OpenClaw | `~/.openclaw/openclaw.json` | `~/.openclaw/workspace/` |
185
205
 
186
206
  ## License
187
207
 
@@ -33,6 +33,8 @@ if (flags.has('--help') || flags.has('-h')) {
33
33
  npx @robbiesrobotics/alice-agents --doctor Run diagnostics on your A.L.I.C.E. install
34
34
  npx @robbiesrobotics/alice-agents --skills Manage skills (install, remove, browse)
35
35
  npx @robbiesrobotics/alice-agents --cloud Enable A.L.I.C.E. | Control Cloud during install
36
+ npx @robbiesrobotics/alice-agents --hermes-bridge Enable Hermes agent bridge during install (OpenClaw+Hermes)
37
+ npx @robbiesrobotics/alice-agents --runtime <hermes|openclaw|nemoclaw> Force runtime selection
36
38
  npx @robbiesrobotics/alice-agents --version Show version
37
39
  npx @robbiesrobotics/alice-agents --help Show this help
38
40
 
@@ -43,7 +45,10 @@ if (flags.has('--help') || flags.has('-h')) {
43
45
  --doctor Run diagnostics and check install health
44
46
  --cloud Enable A.L.I.C.E. | Control Cloud setup during install
45
47
  --no-cloud Skip A.L.I.C.E. | Control Cloud setup during install
48
+ --hermes-bridge Enable Hermes agent bridge (create hermes-agents.json, detect model)
46
49
  --tier <starter|pro> Force the install tier
50
+ --runtime <hermes|openclaw|nemoclaw> Force specific runtime
51
+ --force Force reinstall even if already installed
47
52
  --license-key <key> Provide a Pro license key for automation
48
53
  --coding-tool <auto|claude|codex> Override the preferred coding CLI
49
54
  --cloud-token <token> A.L.I.C.E. | Control ingest/access token
@@ -58,30 +63,31 @@ if (flags.has('--help') || flags.has('-h')) {
58
63
  process.exit(0);
59
64
  }
60
65
 
66
+ const baseOptions = {
67
+ tierOverride: getFlagValue('--tier'),
68
+ runtimeOverride: getFlagValue('--runtime'),
69
+ force: flags.has('--force'),
70
+ licenseKey: getFlagValue('--license-key'),
71
+ codingTool: getFlagValue('--coding-tool'),
72
+ cloudToken: getFlagValue('--cloud-token'),
73
+ cloudDashboardUrl: getFlagValue('--cloud-dashboard-url'),
74
+ cloudIngestUrl: getFlagValue('--cloud-ingest-url'),
75
+ cloudTeamId: getFlagValue('--cloud-team-id'),
76
+ cloudTeamSlug: getFlagValue('--cloud-team-slug'),
77
+ cloudTeamName: getFlagValue('--cloud-team-name'),
78
+ cloudTeamPlan: getFlagValue('--cloud-team-plan'),
79
+ hermesBridge: flags.has('--hermes-bridge'),
80
+ };
81
+
61
82
  if (flags.has('--doctor')) {
62
83
  runDoctor().then((ok) => process.exit(ok ? 0 : 1)).catch((err) => {
63
84
  console.error(' โŒ Doctor failed:', err.message);
64
85
  process.exit(1);
65
86
  });
66
87
  } else if (flags.has('--update')) {
67
- runInstall({
68
- yes: true,
69
- modeOverride: 'upgrade',
70
- cloud: flags.has('--cloud') ? true : flags.has('--no-cloud') ? false : undefined,
71
- tierOverride: getFlagValue('--tier'),
72
- licenseKey: getFlagValue('--license-key'),
73
- codingTool: getFlagValue('--coding-tool'),
74
- cloudToken: getFlagValue('--cloud-token'),
75
- cloudDashboardUrl: getFlagValue('--cloud-dashboard-url'),
76
- cloudIngestUrl: getFlagValue('--cloud-ingest-url'),
77
- cloudTeamId: getFlagValue('--cloud-team-id'),
78
- cloudTeamSlug: getFlagValue('--cloud-team-slug'),
79
- cloudTeamName: getFlagValue('--cloud-team-name'),
80
- cloudTeamPlan: getFlagValue('--cloud-team-plan'),
81
- }).then(() => process.exit(0)).catch((err) => {
82
- console.error(' โŒ Update failed:', err.message);
83
- process.exit(1);
84
- });
88
+ runInstall({ yes: true, modeOverride: 'upgrade', cloud: flags.has('--cloud') ? true : flags.has('--no-cloud') ? false : undefined, ...baseOptions })
89
+ .then(() => process.exit(0))
90
+ .catch((err) => { console.error(' โŒ Upgrade failed:', err.message); process.exit(1); });
85
91
  } else if (flags.has('--skills')) {
86
92
  runSkillsManager().then(() => process.exit(0)).catch((err) => {
87
93
  console.error(` โœ— Skills manager failed: ${err.message}`);
@@ -93,21 +99,7 @@ if (flags.has('--doctor')) {
93
99
  process.exit(1);
94
100
  });
95
101
  } else {
96
- runInstall({
97
- yes: flags.has('--yes'),
98
- cloud: flags.has('--cloud') ? true : flags.has('--no-cloud') ? false : undefined,
99
- tierOverride: getFlagValue('--tier'),
100
- licenseKey: getFlagValue('--license-key'),
101
- codingTool: getFlagValue('--coding-tool'),
102
- cloudToken: getFlagValue('--cloud-token'),
103
- cloudDashboardUrl: getFlagValue('--cloud-dashboard-url'),
104
- cloudIngestUrl: getFlagValue('--cloud-ingest-url'),
105
- cloudTeamId: getFlagValue('--cloud-team-id'),
106
- cloudTeamSlug: getFlagValue('--cloud-team-slug'),
107
- cloudTeamName: getFlagValue('--cloud-team-name'),
108
- cloudTeamPlan: getFlagValue('--cloud-team-plan'),
109
- }).then(() => process.exit(0)).catch((err) => {
110
- console.error(' โŒ Install failed:', err.message);
111
- process.exit(1);
112
- });
102
+ runInstall({ yes: flags.has('--yes'), cloud: flags.has('--cloud') ? true : flags.has('--no-cloud') ? false : undefined, ...baseOptions })
103
+ .then(() => process.exit(0))
104
+ .catch((err) => { console.error(' โŒ Install failed:', err.message); process.exit(1); });
113
105
  }