bazaar.it 0.1.0 → 0.2.1

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 (57) hide show
  1. package/README.md +485 -3
  2. package/bin/baz.js +6 -1
  3. package/dist/commands/auth.d.ts +2 -0
  4. package/dist/commands/auth.js +109 -0
  5. package/dist/commands/capabilities.d.ts +2 -0
  6. package/dist/commands/capabilities.js +44 -0
  7. package/dist/commands/context.d.ts +13 -0
  8. package/dist/commands/context.js +498 -0
  9. package/dist/commands/export.d.ts +2 -0
  10. package/dist/commands/export.js +360 -0
  11. package/dist/commands/logs.d.ts +2 -0
  12. package/dist/commands/logs.js +180 -0
  13. package/dist/commands/loop.d.ts +2 -0
  14. package/dist/commands/loop.js +538 -0
  15. package/dist/commands/mcp.d.ts +2 -0
  16. package/dist/commands/mcp.js +143 -0
  17. package/dist/commands/media.d.ts +2 -0
  18. package/dist/commands/media.js +362 -0
  19. package/dist/commands/project.d.ts +2 -0
  20. package/dist/commands/project.js +786 -0
  21. package/dist/commands/prompt.d.ts +2 -0
  22. package/dist/commands/prompt.js +540 -0
  23. package/dist/commands/recipe.d.ts +15 -0
  24. package/dist/commands/recipe.js +607 -0
  25. package/dist/commands/review.d.ts +17 -0
  26. package/dist/commands/review.js +345 -0
  27. package/dist/commands/scenes.d.ts +2 -0
  28. package/dist/commands/scenes.js +481 -0
  29. package/dist/commands/share.d.ts +2 -0
  30. package/dist/commands/share.js +226 -0
  31. package/dist/commands/state.d.ts +2 -0
  32. package/dist/commands/state.js +171 -0
  33. package/dist/commands/status.d.ts +2 -0
  34. package/dist/commands/status.js +219 -0
  35. package/dist/commands/template.d.ts +2 -0
  36. package/dist/commands/template.js +123 -0
  37. package/dist/commands/verify.d.ts +2 -0
  38. package/dist/commands/verify.js +150 -0
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.js +124 -0
  41. package/dist/lib/api.d.ts +188 -0
  42. package/dist/lib/api.js +719 -0
  43. package/dist/lib/banner.d.ts +12 -0
  44. package/dist/lib/banner.js +69 -0
  45. package/dist/lib/config.d.ts +33 -0
  46. package/dist/lib/config.js +99 -0
  47. package/dist/lib/output.d.ts +52 -0
  48. package/dist/lib/output.js +162 -0
  49. package/dist/lib/project-state.d.ts +52 -0
  50. package/dist/lib/project-state.js +178 -0
  51. package/dist/lib/sse.d.ts +168 -0
  52. package/dist/lib/sse.js +227 -0
  53. package/dist/lib/version.d.ts +1 -0
  54. package/dist/lib/version.js +3 -0
  55. package/dist/repl.d.ts +4 -0
  56. package/dist/repl.js +764 -0
  57. package/package.json +32 -5
package/README.md CHANGED
@@ -1,5 +1,487 @@
1
- # bazaar.it
1
+ # BAZ CLI
2
2
 
3
- AI-powered motion graphics from the command line.
3
+ **AI-powered video generation from your terminal.**
4
4
 
5
- Visit [bazaar.it](https://bazaar.it) for more info.
5
+ ```
6
+ ██████╗ █████╗ ███████╗
7
+ ██╔══██╗██╔══██╗╚══███╔╝
8
+ ██████╔╝███████║ ███╔╝
9
+ ██╔══██╗██╔══██║ ███╔╝
10
+ ██████╔╝██║ ██║███████╗
11
+ ╚═════╝ ╚═╝ ╚═╝╚══════╝
12
+ ```
13
+
14
+ Programmatic access to Bazaar video generation for external agents, automation, and power users.
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ # From npm
20
+ npm install -g bazaar.it
21
+
22
+ # From repo (recommended for development)
23
+ cd cli
24
+ npm install
25
+ npm run build
26
+
27
+ # Link globally (optional)
28
+ npm link
29
+ ```
30
+
31
+ Or run directly with tsx during development:
32
+ ```bash
33
+ npx tsx src/index.ts <command>
34
+ ```
35
+
36
+ ## Quick Start
37
+
38
+ ```bash
39
+ # 1. Authenticate
40
+ baz auth login <your-api-key>
41
+
42
+ # 2. Set a project
43
+ baz project list
44
+ baz project create --name "My Video Project" --format landscape
45
+ baz project use <project-id>
46
+
47
+ # 3. Generate!
48
+ baz prompt "Create an intro scene with the text 'Hello World' in neon colors"
49
+
50
+ # Agent-friendly mode
51
+ export BAZ_AGENT=1
52
+ baz prompt "Create an intro scene with the text 'Hello World' in neon colors"
53
+ ```
54
+
55
+ ## Interactive Mode (REPL)
56
+
57
+ Run `baz` without arguments to enter interactive mode:
58
+
59
+ ```bash
60
+ $ baz
61
+
62
+ ██████╗ █████╗ ███████╗
63
+ ██╔══██╗██╔══██╗╚══███╔╝
64
+ ██████╔╝███████║ ███╔╝
65
+ ██╔══██╗██╔══██║ ███╔╝
66
+ ██████╔╝██║ ██║███████╗
67
+ ╚═════╝ ╚═╝ ╚═╝╚══════╝
68
+
69
+ AI-powered video generation v0.2.0
70
+ ─────────────────────────────────────
71
+ Type a command or prompt. Use 'help' for commands.
72
+
73
+ baz> project list
74
+ baz> prompt "Create an intro scene"
75
+ baz> exit
76
+ ```
77
+
78
+ Features:
79
+ - Tab completion for commands
80
+ - Persistent session state
81
+ - History navigation with arrow keys
82
+ - Commands work without `baz` prefix
83
+
84
+ ## Commands
85
+
86
+ ### Authentication
87
+
88
+ ```bash
89
+ # Login with API key
90
+ baz auth login <api-key>
91
+
92
+ # Check authentication status
93
+ baz auth status
94
+
95
+ # Logout
96
+ baz auth logout
97
+ ```
98
+
99
+ **Get an API Key:**
100
+ Sign in at [bazaar.it](https://bazaar.it), click your balance in the top bar, then select **API Keys** to generate one.
101
+
102
+ ### Projects
103
+
104
+ ```bash
105
+ # List your projects
106
+ baz project list
107
+
108
+ # Create a new project
109
+ baz project create --name "My Video Project"
110
+ baz project create --name "TikTok Hook" --format portrait
111
+
112
+ # Set active project (used by default for all commands)
113
+ baz project use <project-id>
114
+
115
+ # Show current project
116
+ baz project current
117
+ ```
118
+
119
+ ### Prompts
120
+
121
+ The main command for AI video generation:
122
+
123
+ ```bash
124
+ # Basic prompt
125
+ baz prompt "Create a 10 second intro with a blue gradient background"
126
+
127
+ # With images attached
128
+ baz prompt "Recreate this design" --image ./design.png --image ./logo.png
129
+
130
+ # With URL context (fetches and analyzes the URL)
131
+ baz prompt "Create a video based on this article" --url https://example.com/article
132
+
133
+ # Agent-max mode (more thorough, takes longer)
134
+ baz prompt "Complex animation sequence" --max
135
+
136
+ # Read prompt from file
137
+ baz prompt "Use the script" --file ./script.txt
138
+
139
+ # Show full agent response
140
+ baz prompt "Create something cool" --verbose
141
+ ```
142
+
143
+ **Options:**
144
+ | Option | Description |
145
+ |--------|-------------|
146
+ | `--mode <mode>` | Generation mode: `agent` (default), `agent-max`, `multi-scene` |
147
+ | `--max` | Shorthand for `--mode agent-max` |
148
+ | `--file <path>` | Read prompt from a file |
149
+ | `--image <path>` | Attach image(s) — can use multiple times |
150
+ | `--url <url>` | Attach URL(s) for context — can use multiple times |
151
+ | `--verbose` | Show agent's full response text |
152
+ | `--no-stream` | Disable streaming output |
153
+
154
+ ### Scenes
155
+
156
+ ```bash
157
+ # List all scenes in active project
158
+ baz scenes list
159
+
160
+ # Get scene details
161
+ baz scenes list
162
+
163
+ # Get scene TSX code
164
+ baz scenes code <scene-id>
165
+
166
+ # Get scene code
167
+ baz scenes code <scene-id>
168
+ ```
169
+
170
+ ### Media Upload
171
+
172
+ Upload files to your project's media library:
173
+
174
+ ```bash
175
+ # Upload an image
176
+ baz media upload ./image.png
177
+
178
+ # Upload a video
179
+ baz media upload ./video.mp4
180
+
181
+ # Upload with custom name
182
+ baz media upload ./file.png --name "my-logo.png"
183
+ ```
184
+
185
+ **Supported formats:**
186
+ - **Images**: jpg, png, gif, webp, avif, heic (max 50MB)
187
+ - **Videos**: mp4, webm, mov, avi, mkv (max 2GB)
188
+ - **Audio**: mp3, wav, ogg, flac, aac, m4a (max 500MB)
189
+
190
+ ### Export
191
+
192
+ ```bash
193
+ # Start export
194
+ baz export start
195
+
196
+ # Check export status
197
+ baz export status <job-id>
198
+
199
+ # Wait for completion
200
+ baz export status <job-id> --wait
201
+
202
+ # List recent exports
203
+ baz export list
204
+ ```
205
+
206
+ ### Status
207
+
208
+ ```bash
209
+ # Show overall status (auth, project, timeline)
210
+ baz status
211
+ ```
212
+
213
+ ### State & Verification
214
+
215
+ ```bash
216
+ # Snapshot state for agents/automation
217
+ baz state --json
218
+
219
+ # Structural validation (overlaps, invalid durations, compile errors)
220
+ baz project validate --json
221
+
222
+ # Criteria verification
223
+ baz verify --criteria "logo visible,CTA present,duration <= 60s" --json
224
+ ```
225
+
226
+ ### MCP Manifest
227
+
228
+ ```bash
229
+ # MCP-style manifest for integrations
230
+ baz mcp
231
+ baz mcp schema
232
+ ```
233
+
234
+ Example output:
235
+ ```
236
+ Project Status
237
+ ────────────────────────────────────────────────────────────
238
+
239
+ Project: My Product Demo
240
+ ID: f0ba67dc...
241
+
242
+ ┌─────────────────────────────────────────────────────────┐
243
+ │ Scenes: 5 Tracks: 2 Duration: 0:45 ✓ OK │
244
+ └─────────────────────────────────────────────────────────┘
245
+
246
+ Timeline:
247
+ Track 0 │▓▓▓▓Intro▓▓▓▓▓▓▓Main▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓Outro▓▓│
248
+ Track 1 │ ▓▓▓▓Logo▓▓▓▓ │
249
+ └──────────────────────────────────────────┘
250
+ 0:00 0:22 0:45
251
+ ```
252
+
253
+ ### Logs (Beta)
254
+
255
+ Query runtime logs:
256
+
257
+ ```bash
258
+ # Show recent logs
259
+ baz logs
260
+
261
+ # Show only errors
262
+ baz logs --errors
263
+
264
+ # Search logs
265
+ baz logs --search "error"
266
+
267
+ # Filter by API path
268
+ baz logs --path /api/generate-stream
269
+
270
+ # Custom time range
271
+ baz logs --since 24h --limit 100
272
+
273
+ # Filter by current project
274
+ baz logs --project
275
+ ```
276
+
277
+ ## Agent Capabilities
278
+
279
+ The agent has access to the same tools as the web app:
280
+
281
+ ### Scene Operations
282
+ - **Create scenes** — Add new scenes with animations, text, images
283
+ - **Edit scenes** — Modify existing scene code, styling, timing
284
+ - **Delete scenes** — Remove scenes from the project
285
+ - **Trim scenes** — Adjust start time and duration
286
+
287
+ ### Media Generation
288
+ - **Generate images** — AI image generation (DALL-E, etc.)
289
+ - **Generate video** — AI video generation (Seedance, Veo 3)
290
+ - **Generate voiceover** — Text-to-speech with multiple voices
291
+ - **Generate music** — AI background music generation
292
+ - **Remove backgrounds** — Extract subjects from images
293
+
294
+ ### Gathering Tools
295
+ - **Fetch URLs** — Extract content from web pages
296
+ - **Take screenshots** — Capture web pages as images
297
+ - **Summarize** — AI-powered content summarization
298
+
299
+ ### Planning & Orchestration
300
+ - **Video plans** — Create multi-scene video outlines
301
+ - **Recipes** — Reusable templates for video generation
302
+ - **Workflows** — Multi-step automation pipelines
303
+
304
+ ## Output Modes
305
+
306
+ ### Streaming (default)
307
+
308
+ Shows real-time progress:
309
+
310
+ ```
311
+ Mode: agent
312
+ Project: abc123
313
+
314
+ [2s] 🧠 Analyzing your request...
315
+ ✔ [3s] 🧠 Analyzing your request...
316
+ [4s] 🎬 Creating scene
317
+ ✔ [8s] 🎬 Creating scene
318
+ [8s] ✅ Created: "Intro Scene"
319
+
320
+ ┌────────────────────────────────────────────────┐
321
+ │ ✓ Done! (1 scene in 15s) │
322
+ └────────────────────────────────────────────────┘
323
+ ```
324
+
325
+ ### JSON Mode
326
+
327
+ For programmatic parsing:
328
+
329
+ ```bash
330
+ baz prompt "..." --json
331
+ ```
332
+
333
+ Returns:
334
+ ```json
335
+ {
336
+ "success": true,
337
+ "scenesCreated": ["scene-id-1"],
338
+ "scenesUpdated": [],
339
+ "errors": [],
340
+ "elapsed": "15s",
341
+ "steps": 4
342
+ }
343
+ ```
344
+
345
+ ## Global Options
346
+
347
+ ```
348
+ --json Output as JSON (for scripting)
349
+ --verbose Show detailed output
350
+ --config <path> Custom config file path
351
+ --api-url <url> Override API URL
352
+ --project-id <id> Override active project
353
+ ```
354
+
355
+ ## Configuration
356
+
357
+ Config stored at `~/.bazaar/config.json`:
358
+
359
+ ```json
360
+ {
361
+ "apiKey": "baz_...",
362
+ "apiUrl": "https://bazaar.it",
363
+ "activeProjectId": "abc123"
364
+ }
365
+ ```
366
+
367
+ Environment variables override config file:
368
+ - `BAZ_API_KEY` — API key
369
+ - `BAZ_API_URL` — API URL
370
+ - `BAZ_PROJECT_ID` — Active project
371
+ - `BAZ_AGENT=1` — Agent auto-mode (default `--json`, `--compact`, `--events-only`, and `--stream-json` on prompt/loop)
372
+
373
+ ## Examples
374
+
375
+ ### URL to Video
376
+
377
+ ```bash
378
+ # Turn any webpage into a video
379
+ baz prompt "Create a video summary of this article" \
380
+ --url https://example.com/blog/post
381
+
382
+ # Multiple URLs for comparison
383
+ baz prompt "Compare these products" \
384
+ --url https://example.com/product-a \
385
+ --url https://example.com/product-b
386
+ ```
387
+
388
+ ### Batch Processing
389
+
390
+ ```bash
391
+ # Generate and capture result
392
+ result=$(baz prompt "Create intro scene" --json)
393
+ scene_id=$(echo "$result" | jq -r '.scenesCreated[0]')
394
+ echo "Created scene: $scene_id"
395
+ ```
396
+
397
+ ### CI/CD Integration
398
+
399
+ ```bash
400
+ #!/bin/bash
401
+ set -e
402
+
403
+ export BAZ_API_KEY="$BAZAAR_API_KEY"
404
+
405
+ # Generate video from PR description
406
+ baz prompt "Create demo video: $PR_DESCRIPTION" --project-id "$PROJECT_ID"
407
+
408
+ # Export when ready
409
+ baz export --json > export-result.json
410
+ ```
411
+
412
+ ### Complex Workflow
413
+
414
+ ```bash
415
+ baz prompt "Create a 30 second promotional video for https://example.com \
416
+ including their logo, brand colors, and key messaging" --max
417
+ ```
418
+
419
+ ## Troubleshooting
420
+
421
+ ### "Unauthorized" Error
422
+
423
+ ```bash
424
+ baz auth status
425
+ baz auth login <api-key>
426
+ ```
427
+
428
+ ### "No active project"
429
+
430
+ ```bash
431
+ baz project list
432
+ baz project use <project-id>
433
+ ```
434
+
435
+ ### "Insufficient balance"
436
+
437
+ Check your balance in the app at [bazaar.it](https://bazaar.it) — visible in the top bar after signing in.
438
+
439
+ ### Connection Issues
440
+
441
+ ```bash
442
+ baz auth status --api-url https://bazaar.it
443
+ ```
444
+
445
+ ## Error Codes
446
+
447
+ | Code | Meaning |
448
+ |------|---------|
449
+ | `0` | Success |
450
+ | `10` | Transient error (retryable) |
451
+ | `11` | Resource/capacity error |
452
+ | `12` | Semantic/content-policy error |
453
+ | `13` | Authentication error |
454
+ | `64` | Input/not-found error |
455
+ | `65` | Validation error |
456
+ | `1` | Fatal/unclassified error |
457
+
458
+ ## Development
459
+
460
+ ```bash
461
+ npm run typecheck # Type check
462
+ npm run dev # Run in dev mode
463
+ npm run build # Build for production
464
+ ```
465
+
466
+ ## License
467
+
468
+ Copyright © 2024 Bazaar.it. All rights reserved.
469
+ ### Capabilities
470
+
471
+ ```bash
472
+ # Describe CLI capabilities (JSON for agents)
473
+ baz capabilities --json
474
+ ```
475
+
476
+ ### Loop (Basic OODA)
477
+
478
+ ```bash
479
+ # Iterate prompt → review with optional requirements
480
+ baz loop "Create a 15s intro for Acme" --requirements "logo visible, CTA present"
481
+
482
+ # Use agent mode + NDJSON for bots
483
+ BAZ_AGENT=1 baz loop "Create a 15s intro" --requirements "logo visible, CTA present"
484
+
485
+ # Stop on failure and set a time budget
486
+ baz loop "Create a 15s intro" --requirements "logo visible" --stop-on-fail --budget 90s
487
+ ```
package/bin/baz.js CHANGED
@@ -1,2 +1,7 @@
1
1
  #!/usr/bin/env node
2
- console.log("bazaar.it CLI — coming soon. Visit https://bazaar.it for more info.");
2
+
3
+ // This is the entry point for the CLI
4
+ // When running in development, use: npx tsx cli/src/index.ts
5
+ // When built, this file runs the compiled JS
6
+
7
+ import('../dist/index.js');
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const authCommand: Command;
@@ -0,0 +1,109 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { loadConfig, saveConfig, hasAuth, getConfigPath } from '../lib/config.js';
4
+ import { success, error, info, output } from '../lib/output.js';
5
+ export const authCommand = new Command('auth')
6
+ .description('Manage authentication');
7
+ /**
8
+ * baz auth login
9
+ */
10
+ authCommand
11
+ .command('login')
12
+ .description('Configure API key for authentication')
13
+ .argument('[api-key]', 'API key (or set BAZ_API_KEY env var)')
14
+ .action(async (apiKey) => {
15
+ // If no key provided, check environment
16
+ const key = apiKey || process.env.BAZ_API_KEY;
17
+ if (!key) {
18
+ console.log(chalk.cyan('Bazaar CLI Authentication'));
19
+ console.log();
20
+ console.log('To authenticate, you need an API key.');
21
+ console.log();
22
+ console.log('Options:');
23
+ console.log(' 1. Pass directly: baz auth login <your-api-key>');
24
+ console.log(' 2. Environment: export BAZ_API_KEY=<your-api-key>');
25
+ console.log();
26
+ console.log(chalk.gray('Get your API key at https://bazaar.it/api'));
27
+ process.exit(1);
28
+ }
29
+ // Validate key format
30
+ if (!key.startsWith('baz_sk_')) {
31
+ error('Invalid API key format', 'API keys should start with "baz_sk_"');
32
+ process.exit(1);
33
+ }
34
+ // Save to config first (needed for the validation request)
35
+ saveConfig({ apiKey: key });
36
+ // Validate key against server
37
+ const config = loadConfig();
38
+ try {
39
+ const url = `${config.apiUrl}/api/trpc/apiKey.list`;
40
+ const res = await fetch(url, {
41
+ method: 'GET',
42
+ headers: { 'x-api-key': key },
43
+ });
44
+ if (res.ok) {
45
+ success('Authenticated successfully');
46
+ console.log(` Key saved to ${chalk.gray(getConfigPath())}`);
47
+ }
48
+ else if (res.status === 401) {
49
+ saveConfig({ apiKey: undefined });
50
+ error('Invalid API key', 'The key was not recognized by the server. Check for typos or generate a new key.');
51
+ process.exit(1);
52
+ }
53
+ else {
54
+ // Non-auth error (500, network issue) — save key anyway, warn
55
+ info(`Key saved, but server returned ${res.status}. Run "baz auth status" to verify later.`);
56
+ }
57
+ }
58
+ catch (err) {
59
+ // Network error — save key anyway, warn
60
+ info('Key saved, but could not reach the server to verify. Check your connection.');
61
+ }
62
+ });
63
+ /**
64
+ * baz auth status
65
+ */
66
+ authCommand
67
+ .command('status')
68
+ .description('Show current authentication status')
69
+ .action(async (options, cmd) => {
70
+ const globalOpts = cmd.optsWithGlobals();
71
+ const config = loadConfig({
72
+ configPath: globalOpts.config,
73
+ apiUrl: globalOpts.apiUrl,
74
+ });
75
+ const data = {
76
+ authenticated: hasAuth(config),
77
+ apiUrl: config.apiUrl,
78
+ activeProjectId: config.activeProjectId || null,
79
+ configFile: getConfigPath(),
80
+ };
81
+ if (globalOpts.json) {
82
+ output(data, { json: true });
83
+ return;
84
+ }
85
+ console.log(chalk.cyan('Bazaar CLI Status'));
86
+ console.log();
87
+ if (hasAuth(config)) {
88
+ console.log(chalk.green('✓'), 'Authenticated');
89
+ console.log(` API Key: ${chalk.gray('baz_sk_****' + (config.apiKey?.slice(-4) || ''))}`);
90
+ }
91
+ else {
92
+ console.log(chalk.red('✗'), 'Not authenticated');
93
+ console.log(chalk.gray(' Run: baz auth login <api-key>'));
94
+ }
95
+ console.log();
96
+ console.log(`API URL: ${config.apiUrl}`);
97
+ console.log(`Active Project: ${config.activeProjectId || chalk.gray('none')}`);
98
+ console.log(`Config: ${getConfigPath()}`);
99
+ });
100
+ /**
101
+ * baz auth logout
102
+ */
103
+ authCommand
104
+ .command('logout')
105
+ .description('Clear stored credentials')
106
+ .action(async () => {
107
+ saveConfig({ apiKey: undefined });
108
+ success('Logged out. API key removed from config.');
109
+ });
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const capabilitiesCommand: Command;
@@ -0,0 +1,44 @@
1
+ import { Command } from 'commander';
2
+ import { output } from '../lib/output.js';
3
+ import { CLI_VERSION } from '../lib/version.js';
4
+ const PROTOCOL_VERSION = '1.0';
5
+ export const capabilitiesCommand = new Command('capabilities')
6
+ .description('Describe CLI capabilities and protocol support')
7
+ .action(async (options, cmd) => {
8
+ const globalOpts = cmd.optsWithGlobals();
9
+ const agentModeEnv = process.env.BAZ_AGENT === '1';
10
+ const jsonOutput = globalOpts.json || agentModeEnv;
11
+ const data = {
12
+ name: 'baz',
13
+ version: CLI_VERSION,
14
+ protocolVersion: PROTOCOL_VERSION,
15
+ agentMode: agentModeEnv,
16
+ commands: [
17
+ 'auth', 'project', 'prompt', 'scenes', 'export', 'media', 'logs',
18
+ 'status', 'recipe', 'review', 'context', 'capabilities', 'loop',
19
+ 'state', 'verify', 'mcp',
20
+ ],
21
+ modes: ['agent', 'agent-max', 'multi-scene'],
22
+ outputs: {
23
+ json: true,
24
+ streamJson: true,
25
+ summary: true,
26
+ },
27
+ features: {
28
+ planOnly: true,
29
+ requirements: true,
30
+ reviewSummary: true,
31
+ stateSnapshot: true,
32
+ projectValidate: true,
33
+ verifyCriteria: true,
34
+ mcpManifest: true,
35
+ directCodeEdit: true,
36
+ loop: {
37
+ stopOnFail: true,
38
+ budget: true,
39
+ oodaEvents: true,
40
+ },
41
+ },
42
+ };
43
+ output(data, { json: jsonOutput, compact: globalOpts.compact || agentModeEnv });
44
+ });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Context Commands - Project context for agent handshake
3
+ *
4
+ * Store and retrieve flexible context for projects:
5
+ * - Goals, requirements, specs
6
+ * - Reference URLs, videos
7
+ * - Uploaded files (PDFs, images)
8
+ * - Any other context the agent needs
9
+ *
10
+ * The AI uses this context when generating content.
11
+ */
12
+ import { Command } from 'commander';
13
+ export declare const contextCommand: Command;