@studio-foundation/cli 0.3.0-beta.6 → 0.5.2

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 (40) hide show
  1. package/README.md +146 -79
  2. package/dist/commands/config.d.ts +5 -0
  3. package/dist/commands/config.d.ts.map +1 -1
  4. package/dist/commands/config.js +47 -6
  5. package/dist/commands/config.js.map +1 -1
  6. package/dist/commands/init.d.ts +1 -0
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +21 -10
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/commands/replay.d.ts.map +1 -1
  11. package/dist/commands/replay.js +10 -1
  12. package/dist/commands/replay.js.map +1 -1
  13. package/dist/commands/run.d.ts.map +1 -1
  14. package/dist/commands/run.js +64 -4
  15. package/dist/commands/run.js.map +1 -1
  16. package/dist/config.d.ts +1 -0
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/index.js +8 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/output/map-progress.d.ts +33 -0
  22. package/dist/output/map-progress.d.ts.map +1 -0
  23. package/dist/output/map-progress.js +138 -0
  24. package/dist/output/map-progress.js.map +1 -0
  25. package/dist/output/progress.d.ts +2 -0
  26. package/dist/output/progress.d.ts.map +1 -1
  27. package/dist/output/progress.js +53 -0
  28. package/dist/output/progress.js.map +1 -1
  29. package/dist/provider-validator.d.ts.map +1 -1
  30. package/dist/provider-validator.js +15 -0
  31. package/dist/provider-validator.js.map +1 -1
  32. package/dist/registry/resolver.d.ts.map +1 -1
  33. package/dist/registry/resolver.js +12 -5
  34. package/dist/registry/resolver.js.map +1 -1
  35. package/dist/registry/types.d.ts +3 -3
  36. package/dist/registry/types.d.ts.map +1 -1
  37. package/dist/registry/types.js +1 -1
  38. package/dist/registry/types.js.map +1 -1
  39. package/package.json +6 -6
  40. package/templates/.studiorc.yaml +1 -1
package/README.md CHANGED
@@ -1,13 +1,113 @@
1
1
  # @studio-foundation/cli
2
2
 
3
- The terminal interface for Studio. `studio run`, `studio init`, `studio config`, and more.
3
+ **Studio** is a declarative YAML runtime for AI agents. It orchestrates multi-stage agent workflows with structured output validation and automatic retry. Pipelines are defined in YAML, every stage output is validated against a contract, and failures are retried with escalated feedback — no stage advances until its output is structurally proven correct.
4
4
 
5
- ## Role
5
+ This package is the **CLI**: the `studio` binary. It reads your config, wires up providers and tools, delegates execution to the engine, and renders progress to your terminal.
6
6
 
7
- cli is the human-facing layer. It reads user input, loads config from `.studio/config.yaml`, wires up the provider and tool registries, delegates to engine, and renders progress output to the terminal.
7
+ - Homepage: https://github.com/studio-foundation/studio
8
+ - Full docs: [README](https://github.com/studio-foundation/studio#readme) · [CONCEPTS](https://github.com/studio-foundation/studio/blob/main/CONCEPTS.md) · [PHILOSOPHY](https://github.com/studio-foundation/studio/blob/main/PHILOSOPHY.md)
8
9
 
10
+ ## Why Studio
11
+
12
+ If you've ever wrapped the Anthropic or OpenAI API in a script and watched it claim success while silently skipping steps, Studio is for you. You get:
13
+
14
+ - **Structured output validation**: every stage output is checked against a JSON-schema contract. Binary pass/fail.
15
+ - **Automatic retry with feedback**: failures are re-run with the validation error injected into the prompt, up to `max_attempts`.
16
+ - **Tool-call verification (anti-theatre)**: if an agent claims to have written a file but made zero tool calls, it fails. Tool calls are tracked by the runner, not self-reported.
17
+ - **Observability out of the box**: stream every tool call, retry, and rejection in real time with `--live`.
18
+ - **Deterministic config**: pipelines, contracts, agents and tools are YAML. The engine is domain-agnostic; the behavior lives in the files.
19
+ - **TypeScript and YAML, no Python**: declarative configs, no decorators or graph builders. A LangGraph or CrewAI alternative for teams that prefer their orchestration in config files.
20
+
21
+ ## Install
22
+
23
+ ```bash
24
+ npm install -g @studio-foundation/cli
25
+ # or
26
+ pnpm add -g @studio-foundation/cli
27
+ ```
28
+
29
+ This installs a `studio` binary on your `PATH`.
30
+
31
+ ```bash
32
+ studio --version
33
+ ```
34
+
35
+ ## Quick start
36
+
37
+ ```bash
38
+ # 1. Scaffold a project (interactive wizard: template, provider, tools)
39
+ studio init
40
+
41
+ # 2. Run a pipeline with live output
42
+ studio run feature-builder --input "Add a FAQ section to the About page" --live
43
+
44
+ # 3. Inspect the result
45
+ studio status
46
+ studio logs
47
+ ```
48
+
49
+ No API key yet? Try the mock provider, no network calls, no cost:
50
+
51
+ ```bash
52
+ studio run feature-builder --input "..." --provider mock
53
+ ```
54
+
55
+ ## What you'll see
56
+
57
+ `studio run --live` streams each stage, every tool call, and every retry:
58
+
59
+ ```
60
+ [1/4] Analyzing brief...
61
+ ✔ 🔍 repo_manager-list_files(src/pages) → 3 files
62
+ ✔ 📖 repo_manager-read_file(src/pages/about.tsx) → 247 lines
63
+ ✓ (1 attempt, 8s)
64
+
65
+ [2/4] Creating implementation plan...
66
+ ✓ (1 attempt, 12s)
67
+
68
+ [3/4] Generating code...
69
+ ✔ 📖 repo_manager-read_file(src/pages/about.tsx) → 247 lines
70
+ ✔ ✏️ repo_manager-write_file(src/pages/about.tsx) → written
71
+ ↺ Retry 2/5 — TypeScript error: Property 'items' does not exist
72
+ ✔ ✏️ repo_manager-write_file(src/pages/about.tsx) → written
73
+ ✓ (2 attempts, 38s)
74
+
75
+ [4/4] QA review...
76
+ ✓ approved (1 attempt, 15s)
77
+
78
+ Pipeline completed in 1m13s
9
79
  ```
10
- user → studio run feature-builder --input "..." → cli → engine → ...
80
+
81
+ The `studio init` wizard:
82
+
83
+ ```
84
+ $ studio init
85
+
86
+ What type of app are you building?
87
+ ❯ software — Code generation, git operations
88
+ finance — Transaction analysis, budget management
89
+ analysis — Content extraction, entity recognition
90
+ data — Validation, transformation, compliance
91
+ conversation — Dialogue management, memory systems
92
+
93
+ Project name? my-code-builder
94
+
95
+ Which LLM provider?
96
+ ❯ Anthropic (Claude)
97
+ OpenAI (GPT)
98
+
99
+ Anthropic API Key: sk-ant-... ✓ Valid
100
+
101
+ Install default tools for this template?
102
+ ❯ ☑ repo-manager (file operations)
103
+ ☑ shell (run commands)
104
+ ☑ git (version control)
105
+ ☑ search (codebase search)
106
+
107
+ ✓ Created my-code-builder/.studio/
108
+ ✓ Copied software template
109
+ ✓ Installed 4 tools
110
+ ✓ Configured Anthropic provider
11
111
  ```
12
112
 
13
113
  ## Commands
@@ -15,19 +115,19 @@ user → studio run feature-builder --input "..." → cli → engine → ...
15
115
  ```bash
16
116
  # Daily use
17
117
  studio run <pipeline> --input "..." # Run a pipeline
18
- studio run <pipeline> --input-file input.yaml # Run with YAML input file
19
- studio run <pipeline> --live # Stream tool calls in real-time
20
- studio run <pipeline> --provider mock # Run with mock provider (no API calls)
118
+ studio run <pipeline> --input-file input.yaml # Run with a YAML input file
119
+ studio run <pipeline> --live # Stream tool calls in real time
120
+ studio run <pipeline> --provider mock # Run with the mock provider (no API calls)
21
121
  studio run <pipeline> --anonymize # Anonymize PII before sending to LLM
22
- studio status [run-id] # Check run status (latest run if no ID given)
122
+ studio status [run-id] # Check run status (latest if no ID)
23
123
  studio logs [run-id] # View JSONL logs for a run
24
124
  studio replay [run-id] # Replay a completed run
25
125
  studio list projects # List available projects
26
126
  studio list pipelines # List available pipelines
27
127
 
28
128
  # Init (interactive wizard)
29
- studio init # Full interactive wizard: template, provider, tools
30
- studio init --template software --name my-app # Direct mode (CI/CD-friendly)
129
+ studio init # Full interactive wizard
130
+ studio init --template software --name my-app # Direct mode (CI/CD-friendly)
31
131
  studio init --force # Re-initialize (backup + recreate)
32
132
 
33
133
  # Config
@@ -39,14 +139,14 @@ studio config list # Show config (API keys masked)
39
139
  # Tools
40
140
  studio tools list # List tools in current project
41
141
  studio tools add # Add tools (interactive wizard)
42
- studio tools add git # Add specific tool
43
- studio tools remove nutrition # Remove a tool
44
- studio tools info git # Show tool details
142
+ studio tools add git # Add a specific tool
143
+ studio tools remove <name> # Remove a tool
144
+ studio tools info <name> # Show tool details
45
145
 
46
146
  # Registry
47
147
  studio registry install <name> # Install a tool from the registry
48
148
  studio registry remove <name> # Remove a registry-installed tool
49
- studio registry search <query> # Search available tools in the registry
149
+ studio registry search <query> # Search available tools
50
150
  studio registry publish <path> # Publish a tool to the registry
51
151
  studio registry audit # Audit installed tools for updates/issues
52
152
  studio registry sync # Sync registry.lock.json with installed tools
@@ -54,7 +154,7 @@ studio registry update [name] # Update installed tools (all or
54
154
 
55
155
  # Templates
56
156
  studio templates # List available templates
57
- studio template validate <path> # Validate a template structure
157
+ studio template validate <path> # Validate a template structure
58
158
 
59
159
  # Integrations
60
160
  studio integrations # Manage integrations (Linear, etc.)
@@ -66,19 +166,18 @@ studio project # Project management
66
166
  studio api start # Start the HTTP REST API server
67
167
 
68
168
  # Validation
69
- studio validate <contract> <output.json> # Validate output against contract without LLM
169
+ studio validate <contract> <output.json> # Validate output against a contract (no LLM)
70
170
  ```
71
171
 
72
- ## Config resolution
172
+ ## Config
73
173
 
74
- cli looks for `.studio/config.yaml` by walking up the directory tree from the current working directory (via `findStudioDir()`). This is how running `studio run` from inside a user project finds its configuration same mechanism as `git` finding `.git/`.
75
-
76
- Format of `.studio/config.yaml`:
174
+ `studio` looks for `.studio/config.yaml` by walking up the directory tree from the current working directory, same mechanism as `git` finding `.git/`. Run `studio` from anywhere inside your project and it'll find the config.
77
175
 
78
176
  ```yaml
177
+ # .studio/config.yaml
79
178
  providers:
80
179
  anthropic:
81
- apiKey: ${ANTHROPIC_API_KEY} # Env var substitution supported
180
+ apiKey: ${ANTHROPIC_API_KEY} # Env var substitution supported
82
181
  openai:
83
182
  apiKey: ${OPENAI_API_KEY}
84
183
 
@@ -87,79 +186,47 @@ defaults:
87
186
  model: claude-sonnet-4-20250514
88
187
  ```
89
188
 
90
- This file is gitignored never commit API keys.
189
+ This file is gitignored by the scaffold. Never commit API keys.
91
190
 
92
- ## `studio init` wizard flow
191
+ ## Architecture
93
192
 
94
193
  ```
95
- $ studio init
96
-
97
- What type of app are you building?
98
- ❯ software — Code generation, git operations
99
- finance — Transaction analysis, budget management
100
- analysis — Content extraction, entity recognition
101
- data — Validation, transformation, compliance
102
- conversation — Dialogue management, memory systems
103
-
104
- Project name? my-code-builder
105
-
106
- Which LLM provider?
107
- ❯ Anthropic (Claude)
108
- OpenAI (GPT)
109
-
110
- Anthropic API Key: sk-ant-... ✓ Valid
111
-
112
- Install default tools for this template?
113
- ❯ ☑ repo-manager (file operations)
114
- ☑ shell (run commands)
115
- ☑ git (version control)
116
- ☑ search (codebase search)
117
-
118
- ✓ Created my-code-builder/.studio/
119
- ✓ Copied software template
120
- ✓ Installed 4 tools
121
- ✓ Configured Anthropic provider
122
- ```
123
-
124
- ## `studio run --live` output
125
-
194
+ user studio run feature-builder --input "..." → cli → engine → ralph / runner
126
195
  ```
127
- [1/4] Analyzing brief...
128
- ✔ 🔍 repo_manager-list_files(src/pages) → 3 files
129
- ✔ 📖 repo_manager-read_file(src/pages/about.tsx) → 247 lines
130
- ✓ (1 attempt, 8s)
131
196
 
132
- [2/4] Creating implementation plan...
133
- ✓ (1 attempt, 12s)
197
+ `cli` is the human-facing layer. It reads input, resolves `.studio/config.yaml`, wires up the provider and tool registries, delegates to `engine`, and renders progress to the terminal. It's part of a 7-package monorepo, see the [main README](https://github.com/studio-foundation/studio#readme) for the full picture.
134
198
 
135
- [3/4] Generating code...
136
- ✔ 📖 repo_manager-read_file(src/pages/about.tsx) → 247 lines
137
- ✔ ✏️ repo_manager-write_file(src/pages/about.tsx) → written
138
- ↺ Retry 2/5 — TypeScript error: Property 'items' does not exist
139
- ✔ ✏️ repo_manager-write_file(src/pages/about.tsx) → written
140
- ✓ (2 attempts, 38s)
199
+ Sister packages:
141
200
 
142
- [4/4] QA review...
143
- approved (1 attempt, 15s)
201
+ - [`@studio-foundation/engine`](https://www.npmjs.com/package/@studio-foundation/engine) pipeline orchestration
202
+ - [`@studio-foundation/ralph`](https://www.npmjs.com/package/@studio-foundation/ralph) retry loop + validation
203
+ - [`@studio-foundation/runner`](https://www.npmjs.com/package/@studio-foundation/runner) — tool plugin runtime, LLM providers
204
+ - [`@studio-foundation/anonymizer`](https://www.npmjs.com/package/@studio-foundation/anonymizer) — PII anonymization middleware
205
+ - [`@studio-foundation/api`](https://www.npmjs.com/package/@studio-foundation/api) — HTTP REST API
206
+ - [`@studio-foundation/contracts`](https://www.npmjs.com/package/@studio-foundation/contracts) — shared types
144
207
 
145
- Pipeline completed in 1m13s
146
- ```
208
+ ## For contributors
147
209
 
148
- ## Development
210
+ Working on the CLI itself, not just using it:
149
211
 
150
212
  ```bash
151
- # From Studio monorepo root
152
- pnpm build # Build all packages including cli
153
- node cli/dist/index.js run ... # Run directly
213
+ # From the Studio monorepo root
214
+ pnpm install
215
+ pnpm build # Builds all packages, including cli
216
+ node cli/dist/index.js run ... # Run directly without linking
154
217
 
155
218
  # Or link globally
156
219
  cd cli && npm link
157
220
  studio --version
158
221
  ```
159
222
 
160
- ## Rules
223
+ Internal rules:
224
+
225
+ - `cli` is the composition root, it imports from `engine`, `runner` (ToolRegistry, ProviderRegistry, MCPClient), and `api` (for `studio api start`). This is a documented exception to the package DAG (see [INVARIANTS.md](https://github.com/studio-foundation/studio/blob/main/INVARIANTS.md)).
226
+ - `cli` never contains business logic, it wires dependencies and delegates.
227
+ - All output rendering is in `output/`, display logic stays separate from command logic.
228
+ - `findStudioDir()` walks up the directory tree, tests must use `/tmp` as base, never a subdirectory of the Studio repo (the repo itself has a `.studio/` at its root).
229
+
230
+ ## License
161
231
 
162
- - cli is the composition root — it imports from engine, runner (ToolRegistry, ProviderRegistry, MCPClient), and api (for `studio api start`). This is a documented exception to the package DAG (see INVARIANTS.md).
163
- - cli never contains business logic — it wires up dependencies and delegates.
164
- - All output rendering is in `output/` — keep display logic separate from command logic.
165
- - `findStudioDir()` walks up the directory tree — tests must use `/tmp` as base, never a subdirectory of the Studio repo (the repo itself has `.studio/` at its root).
232
+ AGPL-3.0-only
@@ -14,8 +14,13 @@ export declare const PROVIDERS: readonly [{
14
14
  readonly id: "ollama";
15
15
  readonly label: "Ollama (local)";
16
16
  readonly defaultModel: "llama3.2";
17
+ }, {
18
+ readonly id: "claude-code";
19
+ readonly label: "Claude Code (subscription)";
20
+ readonly defaultModel: "claude-sonnet-4-5";
17
21
  }];
18
22
  export type ProviderId = (typeof PROVIDERS)[number]['id'];
23
+ export declare function isClaudeCodeInstalled(): boolean;
19
24
  export declare function validateApiKeyForProvider(provider: string, key: string): true | string;
20
25
  export declare function addProviderConfig(configFile: string, provider: string, apiKey: string, setDefault: boolean, model?: string): Promise<void>;
21
26
  export declare function isProviderConfigured(configFile: string, provider: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;EAKZ,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE1D,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWtF;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIjG;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQrF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWjG;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAcjD;AA0BD,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgHD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAqLf"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;EAMZ,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE1D,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWtF;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIjG;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQrF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWjG;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAcjD;AA0BD,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6HD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAgMf"}
@@ -1,5 +1,6 @@
1
1
  import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
2
  import { resolve, join, dirname } from 'node:path';
3
+ import { spawnSync } from 'node:child_process';
3
4
  import * as yaml from 'js-yaml';
4
5
  import chalk from 'chalk';
5
6
  import ora from 'ora';
@@ -13,7 +14,12 @@ export const PROVIDERS = [
13
14
  { id: 'openai', label: 'OpenAI (GPT)', defaultModel: 'gpt-4o' },
14
15
  { id: 'google', label: 'Google (Gemini)', defaultModel: 'gemini-1.5-pro' },
15
16
  { id: 'ollama', label: 'Ollama (local)', defaultModel: 'llama3.2' },
17
+ { id: 'claude-code', label: 'Claude Code (subscription)', defaultModel: 'claude-sonnet-4-5' },
16
18
  ];
19
+ export function isClaudeCodeInstalled() {
20
+ const result = spawnSync('which', ['claude'], { encoding: 'utf-8' });
21
+ return result.status === 0;
22
+ }
17
23
  export function validateApiKeyForProvider(provider, key) {
18
24
  if (provider === 'anthropic') {
19
25
  if (!key.startsWith('sk-ant-'))
@@ -38,6 +44,9 @@ export async function addProviderConfig(configFile, provider, apiKey, setDefault
38
44
  if (provider === 'ollama') {
39
45
  config.providers[provider] = { baseUrl: apiKey };
40
46
  }
47
+ else if (provider === 'claude-code') {
48
+ config.providers[provider] = {};
49
+ }
41
50
  else {
42
51
  config.providers[provider] = { apiKey };
43
52
  }
@@ -121,9 +130,16 @@ async function configAddProviderWizard(configFile) {
121
130
  ? Object.keys(config.providers)
122
131
  : [];
123
132
  // Step 1: Select provider
133
+ const claudeCodeInstalled = isClaudeCodeInstalled();
124
134
  const providerId = await select({
125
135
  message: 'Which provider would you like to add?',
126
- choices: PROVIDERS.map((p) => ({ value: p.id, name: p.label })),
136
+ choices: PROVIDERS.map((p) => ({
137
+ value: p.id,
138
+ name: p.id === 'claude-code' && !claudeCodeInstalled
139
+ ? `${p.label} (not installed)`
140
+ : p.label,
141
+ disabled: p.id === 'claude-code' && !claudeCodeInstalled,
142
+ })),
127
143
  });
128
144
  // Step 2: Handle already-configured case
129
145
  if (existingProviders.includes(providerId)) {
@@ -137,9 +153,20 @@ async function configAddProviderWizard(configFile) {
137
153
  return;
138
154
  }
139
155
  }
140
- // Step 3: Ask for API key (or base URL for ollama)
156
+ // Step 3: Ask for API key (or base URL for ollama, skip for claude-code)
141
157
  let apiKey = '';
142
- if (providerId === 'ollama') {
158
+ if (providerId === 'claude-code') {
159
+ const spinner = ora('Checking Claude Code session...').start();
160
+ const result = await validateApiKeyLive('claude-code', '');
161
+ if (result.status === 'valid')
162
+ spinner.succeed('Claude Code session active');
163
+ else if (result.status === 'warning')
164
+ spinner.warn('message' in result ? result.message : '');
165
+ else {
166
+ spinner.fail('error' in result ? result.error : '');
167
+ }
168
+ }
169
+ else if (providerId === 'ollama') {
143
170
  apiKey = await input({
144
171
  message: 'Ollama base URL:',
145
172
  default: 'http://localhost:11434',
@@ -186,7 +213,7 @@ async function configAddProviderWizard(configFile) {
186
213
  }));
187
214
  // Step 4b: Choose default model (if setting as default and models are available)
188
215
  let defaultModel;
189
- if (setDefault && providerId !== 'ollama') {
216
+ if (setDefault && providerId !== 'ollama' && providerId !== 'claude-code') {
190
217
  const models = await getAvailableModels(providerId, apiKey);
191
218
  const meta = PROVIDERS.find((p) => p.id === providerId);
192
219
  const fallbackModel = meta?.defaultModel ?? 'claude-sonnet-4-20250514';
@@ -316,12 +343,26 @@ export async function configCommand(action, args, options) {
316
343
  break;
317
344
  }
318
345
  // Direct mode
319
- if (provider !== 'ollama' && !options.apiKey) {
346
+ if (provider !== 'ollama' && provider !== 'claude-code' && !options.apiKey) {
320
347
  console.error(`Error: --api-key is required for provider '${provider}'`);
321
348
  process.exit(1);
322
349
  }
323
350
  const apiKey = options.apiKey ?? '';
324
- if (provider !== 'ollama') {
351
+ if (provider === 'claude-code') {
352
+ process.stdout.write('Checking Claude Code session...');
353
+ const result = await validateApiKeyLive('claude-code', '');
354
+ if (result.status === 'valid') {
355
+ console.log(chalk.green(' ✓ Session active'));
356
+ }
357
+ else if (result.status === 'warning') {
358
+ console.log(chalk.yellow(` ⚠ ${'message' in result ? result.message : ''}`));
359
+ }
360
+ else {
361
+ console.error(chalk.red(` ✗ ${'error' in result ? result.error : ''}`));
362
+ process.exit(1);
363
+ }
364
+ }
365
+ else if (provider !== 'ollama') {
325
366
  const validation = validateApiKeyForProvider(provider, apiKey);
326
367
  if (validation !== true) {
327
368
  console.error(`Error: ${validation}`);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,7 @@ interface InitOptions {
76
76
  template?: string;
77
77
  project?: string;
78
78
  provider?: string;
79
+ model?: string;
79
80
  apiKey?: string;
80
81
  force?: boolean;
81
82
  yes?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlE;AA6CD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,UAAO,GACf,OAAO,CAAC,IAAI,CAAC,CA2Df;AAyBD,wBAAgB,qBAAqB,IAAI,OAAO,CAK/C;AAID,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EACnD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,UAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM/D;AAKD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BnB;AAsCD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW/D;AAED,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuBhE;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,cAAc,IAAI,YAAY,CAU7C;AAiCD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsY5F"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlE;AA6CD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,UAAO,GACf,OAAO,CAAC,IAAI,CAAC,CA2Df;AAyBD,wBAAgB,qBAAqB,IAAI,OAAO,CAK/C;AAID,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EACnD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,UAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM/D;AAKD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BnB;AAsCD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW/D;AAED,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuBhE;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,cAAc,IAAI,YAAY,CAU7C;AAiCD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwZ5F"}
@@ -30,7 +30,7 @@ export async function backupStudioDir(cwd) {
30
30
  await rename(studioDir, backupDir);
31
31
  return backupDir;
32
32
  }
33
- const GITIGNORE_ENTRIES = ['.studio/config.yaml', '.studio/runs/', '*.keymap.json'];
33
+ const GITIGNORE_ENTRIES = ['node_modules/', '.studio/config.yaml', '.studio/runs/', '*.keymap.json'];
34
34
  const STUDIO_SUBDIRS = ['pipelines', 'agents', 'contracts', 'tools', 'inputs'];
35
35
  /**
36
36
  * Create or populate .studio/ with subdirs.
@@ -424,22 +424,34 @@ export async function initCommand(nameArg, options = {}) {
424
424
  console.log(chalk.green(` ✓ Backed up to ${backupName}/`));
425
425
  console.log('');
426
426
  }
427
+ // ── Auto-detect provider when --yes is given without --provider ───
428
+ // Allows: studio init --template blank --yes (picks ollama if available)
429
+ let resolvedProvider = options.provider;
430
+ if (!resolvedProvider && options.yes && options.template) {
431
+ if (detectOllamaInstalled()) {
432
+ resolvedProvider = 'ollama';
433
+ }
434
+ else {
435
+ console.error('Error: --provider is required (or install Ollama for auto-detection with --yes)');
436
+ process.exit(1);
437
+ }
438
+ }
427
439
  // ── Direct mode (all flags provided) vs Wizard ────────────────────
428
- const isDirectMode = !!(options.template && options.provider);
440
+ const isDirectMode = !!(options.template && resolvedProvider);
429
441
  if (isDirectMode) {
430
442
  // Validate required flags
431
- if (options.provider !== 'later' && options.provider !== 'ollama' && !options.apiKey) {
443
+ if (resolvedProvider !== 'later' && resolvedProvider !== 'ollama' && !options.apiKey) {
432
444
  console.error('Error: --api-key is required when --provider is not "later" or "ollama"');
433
445
  process.exit(1);
434
446
  }
435
- if (options.provider !== 'later' && options.provider !== 'ollama' && options.apiKey) {
436
- const validation = validateApiKeyFormat(options.provider, options.apiKey);
447
+ if (resolvedProvider !== 'later' && resolvedProvider !== 'ollama' && options.apiKey) {
448
+ const validation = validateApiKeyFormat(resolvedProvider, options.apiKey);
437
449
  if (validation !== true) {
438
450
  console.error(`Error: ${validation}`);
439
451
  process.exit(1);
440
452
  }
441
453
  process.stdout.write('Validating API key...');
442
- const result = await validateApiKeyLive(options.provider, options.apiKey);
454
+ const result = await validateApiKeyLive(resolvedProvider, options.apiKey);
443
455
  if (result.status === 'valid') {
444
456
  console.log(chalk.green(' ✓'));
445
457
  }
@@ -459,10 +471,9 @@ export async function initCommand(nameArg, options = {}) {
459
471
  ({ gitInitialized, generatedFiles } = await generateFullApp(cwd, projectName, options.template, {
460
472
  noTools: options.tools === false,
461
473
  }));
462
- if (options.provider !== 'later') {
474
+ if (resolvedProvider !== 'later') {
463
475
  const studioDir = resolve(cwd, '.studio');
464
- // For ollama: no apiKey needed uses DEFAULT_MODELS['ollama'] ('llama3.3') as model fallback
465
- await writeProviderToConfig(studioDir, options.provider, { apiKey: options.apiKey || undefined });
476
+ await writeProviderToConfig(studioDir, resolvedProvider, { apiKey: options.apiKey || undefined }, options.model);
466
477
  }
467
478
  spinner.stop();
468
479
  }
@@ -486,7 +497,7 @@ export async function initCommand(nameArg, options = {}) {
486
497
  console.log(chalk.bold('Done! Next steps:'));
487
498
  console.log(` ${chalk.cyan('npm install')}`);
488
499
  console.log(` ${chalk.cyan(`studio run ${firstPipeline} --input "..."`)}`);
489
- if (options.provider === 'later') {
500
+ if (resolvedProvider === 'later') {
490
501
  console.log('');
491
502
  console.log('Set your provider first:');
492
503
  console.log(` ${chalk.cyan('studio config set provider ollama')} # local, no API key`);